15%

Спести 15% на всички хостинг услуги

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код:

Skills
За начало
25.10.2024
2 +1

Файлът Hosts: Какво представлява, къде да го намерите и как да го редактирате на всяка ОС

Вашето локално DNS заобикаляне — без нужда от интернет

Всеки път, когато въведете име на домейн в браузъра си, компютърът ви тихо извършва процес на търсене, за да преведе това име в IP адрес. Но преди да се свърже с външен DNS сървър, той проверява малък, често пренебрегван текстов файл, намиращ се тихо на вашата локална система: hosts файлът.

Този файл е един от най-мощните и недооценени инструменти, достъпни за разработчици, системни администратори и напреднали потребители. Той ви позволява ръчно да съпоставяте имена на домейни с IP адреси — незабавно, локално и без да докосвате рутера или DNS доставчика си. Независимо дали тествате нов уебсайт преди да го пуснете на живо, блокирате рекламни сървъри или отстранявате проблеми с DNS разпространението, hosts файлът ви дава директен, нискониво контрол върху начина, по който машината ви разрешава имена на домейни.

В това ръководство ще научите точно какво представлява hosts файлът, къде да го намерите в Windows, macOS и Linux, и как да го редактирате безопасно и ефективно.

Какво е hosts файлът?

Hosts файлът е обикновен текстов системен файл, който съпоставя имена на хостове (имена на домейни) с IP адреси. Той предшества съвременната DNS система и първоначално е бил единственият механизъм за разрешаване на имена в ARPANET. Днес той все още функционира като локален DNS заобикалящ слой — вашата ОС го проверява първо, преди да направи каквито и да е външни DNS заявки.

Как работи

Когато навигирате към уебсайт, вашата операционна система следва този ред на разрешаване:

  1. Проверява локалния hosts файл за съответстващ запис
  2. Прави заявка към локалния DNS кеш
  3. Свързва се с конфигурирания DNS резолвър (напр. DNS на вашия ISP или публичен резолвър като 8.8.8.8)

Ако hosts файлът съдържа съответстващ запис, търсенето спира там. Не се прави външна DNS заявка. Това го прави изключително бърз и полезен за локални заобикаляния.

Чести случаи на употреба на hosts файла

Случай на употребаКак работи
Локално тестване на уебсайтНасочете домейн към 127.0.0.1 или IP на staging сървър
Блокиране на нежелани уебсайтовеПренасочете рекламни или проследяващи домейни към 0.0.0.0
Заобикаляне на забавяния при DNS разпространениеРъчно задайте IP за новомигриран домейн
Маршрутизиране на среда за разработкаСъпоставете персонализирани локални домейни с Docker контейнери или VM-и
Заобикаляне на повредени DNS записиПринудете правилен IP, когато DNS е неправилно конфигуриран

> Съвет за разработчици: Ако работите с локална среда за разработка или тествате сайт на VPS Хостинг сървър преди DNS разпространението да приключи, редактирането на hosts файла е най-бързият начин да прегледате живия си сайт, без да променяте DNS настройките си.

Къде се намира hosts файлът?

Местоположението на hosts файла варира в зависимост от операционната система. Ето бърза справка:

Windows

C:WindowsSystem32driversetchosts

macOS

/etc/hosts

Linux (всички основни дистрибуции)

/etc/hosts

В macOS и Linux, /etc/hosts обикновено е символна връзка или директен файл, управляван от системата. В Linux дистрибуции, използващи systemd-resolved, файлът все още има приоритет за локални заобикаляния.

Как да редактирате hosts файла в Windows

Редактирането на hosts файла в Windows изисква администраторски привилегии. Файлът е защитен от системата, така че стандартните потребителски акаунти не могат да го променят.

Стъпка 1: Отворете Notepad като администратор

  1. Натиснете Windows Key + S и въведете Notepad в лентата за търсене
  2. Щракнете с десния бутон върху Notepad в резултатите
  3. Изберете Изпълни като администратор
  4. Щракнете Да, ако бъдете подканени от Контрол на потребителските акаунти (UAC)

Стъпка 2: Отворете hosts файла

  1. В Notepad щракнете върху Файл → Отвори
  2. Навигирайте до: C:WindowsSystem32driversetc
  3. В падащото меню за тип файл (до полето за име на файл), променете го от Text Documents (*.txt) на Всички файлове (*.*)
  4. Изберете файла с име hosts и щракнете Отвори

Стъпка 3: Добавете или променете записи

Форматът за всеки запис е прост:

[IP Address]    [Hostname]

Добавете вашите записи в долната част на файла. Например:

# Redirect example.com to local development server
127.0.0.1       example.com

# Point testsite.com to a staging VPS
192.168.1.100   testsite.com

# Block an ad network
0.0.0.0         ads.unwanteddomain.com

Редовете, започващи с #, са коментари и се игнорират от системата.

Стъпка 4: Запазете файла

Щракнете върху Файл → Запази. Ако получите грешка за разрешения, уверете се, че сте отворили Notepad като администратор. Не запазвайте файла с разширение .txt.

Стъпка 5: Изчистете DNS кеша

След запазване, изчистете DNS кеша, за да влязат в сила промените ви незабавно:

  1. Отворете Command Prompt като администратор
  2. Изпълнете следната команда:
ipconfig /flushdns

Трябва да видите съобщението: *”Successfully flushed the DNS Resolver Cache.”*

Как да редактирате hosts файла в macOS

В macOS hosts файлът се редактира чрез Terminal, използвайки текстов редактор с привилегии sudo (суперпотребител).

Стъпка 1: Отворете Terminal

Натиснете Command + Space, за да отворите Spotlight Search, въведете Terminal и натиснете Enter.

Стъпка 2: Отворете hosts файла с nano

Изпълнете следната команда:

sudo nano /etc/hosts

Въведете вашата администраторска парола, когато бъдете подканени. Паролата няма да бъде видима, докато пишете — това е нормално.

Стъпка 3: Редактирайте файла

Текстовият редактор nano ще отвори hosts файла. Използвайте клавишите със стрелки, за да навигирате до долната част на файла и добавете вашите записи:

# Development environment
127.0.0.1       myproject.local

# Staging server
203.0.113.45    staging.example.com

# Block tracking domain
0.0.0.0         tracker.example.net

Стъпка 4: Запазете и излезте

  • Натиснете Control + O, за да запишете (запазите) файла
  • Натиснете Enter, за да потвърдите името на файла
  • Натиснете Control + X, за да излезете от nano

Стъпка 5: Изчистете DNS кеша в macOS

Изпълнете подходящата команда за вашата версия на macOS:

macOS Monterey, Ventura, Sonoma (и повечето съвременни версии):

sudo killall -HUP mDNSResponder

macOS Big Sur и по-ранни (алтернатива):

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Вашите промени вече ще бъдат активни в цялата система.

Как да редактирате hosts файла в Linux

Linux следва същия общ процес като macOS, тъй като и двете са Unix-базирани системи. Ще ви е необходим root или sudo достъп.

Стъпка 1: Отворете Terminal

Стартирайте приложението Terminal. В повечето настолни среди можете да го намерите в менюто с приложения или да натиснете Ctrl + Alt + T.

Стъпка 2: Отворете hosts файла

sudo nano /etc/hosts

Въведете вашата root или sudo парола, когато бъдете подканени.

Стъпка 3: Добавете вашите записи

Навигирайте до долната част на файла и добавете вашите персонализирани съпоставяния:

# Local dev environment
127.0.0.1       devsite.local

# Internal server
10.0.0.5        internal.company.com

# Block unwanted domain
0.0.0.0         malicious-ads.example.com

Стъпка 4: Запазете и излезте

  • Натиснете Control + O, след това Enter, за да запазите
  • Натиснете Control + X, за да излезете от nano

Стъпка 5: Изчистете DNS кеша в Linux

Командата за изчистване на DNS варира в зависимост от дистрибуцията и DNS резолвъра:

Ubuntu / Debian (със systemd-resolved):

sudo systemd-resolve --flush-caches

Или в по-нови версии:

sudo resolvectl flush-caches

CentOS / RHEL / Fedora:

sudo systemctl restart NetworkManager

Arch Linux:

sudo systemd-resolve --flush-caches

Ако използвате персонализиран DNS кеширащ демон като nscd или dnsmasq, рестартирайте съответната услуга:

sudo systemctl restart nscd
# or
sudo systemctl restart dnsmasq

Разбиране на структурата на hosts файла по подразбиране

Когато за първи път отворите hosts файла на която и да е ОС, ще видите някои записи по подразбиране. Ето как изглежда типичен Linux/macOS hosts файл по подразбиране:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

Обяснение на ключовите записи:

  • 127.0.0.1 localhost — Съпоставя адреса на loopback с “localhost”. Това е от съществено значение за локалната мрежа и никога не трябва да се премахва.
  • ::1 localhost — IPv6 еквивалентът на loopback адреса.
  • 255.255.255.255 broadcasthost — Използва се за мрежово излъчване (специфично за macOS).

Никога не изтривайте тези записи по подразбиране. Това може да наруши локалната мрежа на приложенията, връзките с бази данни и други системни услуги.

Най-добри практики при редактиране на hosts файла

1. Винаги създавайте резервно копие първо

Преди да правите каквито и да е промени, направете резервно копие на оригиналния файл:

Linux / macOS:

sudo cp /etc/hosts /etc/hosts.backup

Windows (Command Prompt като администратор):

copy C:WindowsSystem32driversetchosts C:WindowsSystem32driversetchosts.backup

Ако нещо се счупи, можете незабавно да възстановите оригинала.

2. Използвайте коментари за документиране на промените си

Винаги анотирайте записите си с коментари, използвайки #. Това е особено важно в екипни или сървърни среди:

# Added 2024-01-15 — Staging environment for client project
192.168.1.50    staging.clientproject.com

# Temporary block — remove after campaign ends
0.0.0.0         ads.campaign-tracker.net

3. Използвайте 0.0.0.0 вместо 127.0.0.1 за блокиране

При блокиране на домейни, 0.0.0.0 обикновено се предпочита пред 127.0.0.1, защото:

  • Не се опитва да се свърже с вашата локална машина
  • Се проваля по-бързо (без изчакване на връзката)
  • Не пречи на локални уеб сървъри, работещи на порт 80/443

4. Не блокирайте критични системни домейни

Бъдете внимателни при блокиране на домейни, свързани с:

  • Услуги за актуализация на Windows или macOS Software Update
  • Сървъри за актуализация на антивирусни програми
  • Услуги за синхронизиране в облака (Dropbox, OneDrive, iCloud)
  • Сървъри за валидиране на лицензи за софтуер, който използвате

5. Поддържайте записите организирани

Групирайте свързаните записи заедно и използвайте заглавия на коментари за яснота:

# ==========================================
# LOCAL DEVELOPMENT ENVIRONMENTS
# ==========================================
127.0.0.1       myapp.local
127.0.0.1       api.myapp.local

# ==========================================
# BLOCKED DOMAINS
# ==========================================
0.0.0.0         ads.example.com
0.0.0.0         tracker.example.net

6. Помнете, че промените в hosts файла са само локални

Hosts файлът засяга само машината, на която се намира. Ако управлявате множество сървъри или имате нужда от DNS промени, приложими в цялата ви инфраструктура, ще трябва да конфигурирате DNS на ниво сървър или мрежа. За екипи, управляващи множество среди, правилно конфигуриран Dedicated Server с локален DNS резолвър (като BIND или Unbound) е по-мащабируемо решение.

Разширени случаи на употреба

Тестване на уебсайт преди DNS разпространение

Когато мигрирате уебсайт към нов хостинг доставчик или нов VPS с cPanel, DNS разпространението може да отнеме от няколко минути до 48 часа. Вместо да чакате, можете да добавите IP адреса на новия сървър към вашия hosts файл и незабавно да тествате живия сайт, такъв какъвто ще изглежда на новия сървър:

# Testing migration to new VPS — remove after DNS propagates
203.0.113.10    yourdomain.com
203.0.113.10    www.yourdomain.com

Отворете браузъра си, навигирайте до yourdomain.com и ще видите сайта, хостван на новия сървър — докато всички останали все още виждат стария.

Настройване на локални домейни за разработка

Разработчиците често предпочитат да използват реалистични имена на домейни за локални проекти, вместо localhost:3000. Можете да създадете персонализирани локални домейни:

127.0.0.1       myproject.dev
127.0.0.1       api.myproject.dev
127.0.0.1       admin.myproject.dev

Комбинирайте това с локален уеб сървър (Apache, Nginx или Caddy), конфигуриран с виртуални хостове, и ще имате чиста, професионална локална среда за разработка.

Блокиране на цели рекламни мрежи

Можете да добавите множество записи за блокиране на известни домейни за реклами и проследяване:

0.0.0.0         doubleclick.net
0.0.0.0         googlesyndication.com
0.0.0.0         adservice.google.com

За по-изчерпателен подход, проекти като StevenBlack’s hosts предоставят редовно актуализирани, консолидирани hosts файлове с десетки хиляди блокирани домейни.

Отстраняване на чести проблеми с hosts файла

Промените не влизат в сила

  • Изчистихте ли DNS кеша? Това е най-честата причина. Изпълнете подходящата команда за изчистване за вашата ОС.
  • Запазихте ли файла правилно? В Windows се уверете, че не сте го запазили случайно като hosts.txt.
  • Използва ли браузърът ви собствен DNS кеш? Chrome и Firefox поддържат собствени DNS кешове. Опитайте да ги изчистите или отворете прозорец в режим инкогнито/частен.
  • Използвате ли VPN? VPN клиентите често заобикалят локалните DNS настройки, заобикаляйки изцяло hosts файла.

Грешки за отказан достъп

  • Windows: Уверете се, че Notepad (или вашият редактор) работи като администратор.
  • Linux/macOS: Уверете се, че използвате sudo преди командата си.

Уебсайтът все още се разрешава към стария IP

  • Проверете дали записът е форматиран правилно: IP_ADDRESS[TAB or SPACES]hostname — без http:// или наклонени черти в края.
  • Проверете за правописни грешки в името на домейна.
  • Потвърдете, че няма конфликтни записи по-горе в файла.

Случайно сте счупили нещо

Възстановете резервното си копие:

# Linux/macOS
sudo cp /etc/hosts.backup /etc/hosts

# Windows (as Administrator)
copy C:WindowsSystem32driversetchosts.backup C:WindowsSystem32driversetchosts

Hosts файл срещу DNS: Кога да използвате кое

СценарийHosts файлDNS конфигурация
Бърз локален тест на една машина✅ Идеален❌ Излишно
Среда за разработка за целия екип❌ Не се мащабира✅ Използвайте вътрешен DNS
Блокиране на сайтове на едно устройство✅ Работи добре❌ Ненужно
Управление на производствени домейни❌ Неподходящо✅ Задължително
Тестване на сайт преди пускане✅ Перфектно❌ Би засегнало всички потребители
Инфраструктура с множество сървъри❌ Твърде ръчно✅ Съществено

За производствени среди винаги управлявайте DNS чрез вашия регистратор на домейни или контролния панел на хостинга. Ако трябва да регистрирате или управлявате домейни професионално, Регистрация на домейни чрез надежден доставчик гарантира, че вашите DNS записи се разпространяват правилно и сигурно в интернет.

По същия начин, ако управлявате пощенски сървър и трябва да осигурите правилна доставка на имейли, редактирането на hosts файла не е заместител на правилно конфигурирани MX записи. Разгледайте специализирани решения за Email Хостинг за надеждна, правилно конфигурирана пощенска инфраструктура.

Бърза справка: Cheat Sheet за hosts файла

Местоположения на файловете

ОСПът
WindowsC:WindowsSystem32driversetchosts
macOS/etc/hosts
Linux/etc/hosts

Отваряне за редактиране

ОСКоманда / Метод
WindowsNotepad → Изпълни като администратор → Файл → Отвори
macOSsudo nano /etc/hosts
Linuxsudo nano /etc/hosts

Изчистване на DNS кеша

ОСКоманда
Windowsipconfig /flushdns
macOSsudo killall -HUP mDNSResponder
Ubuntu/Debiansudo systemd-resolve --flush-caches
CentOS/RHELsudo systemctl restart NetworkManager

Формат на записа

[IP Address]    [hostname]    [optional alias]

# Examples:
127.0.0.1       localhost
127.0.0.1       myapp.local
0.0.0.0         blocked-site.com
192.168.1.10    staging.example.com

Заключение: Овладейте локалния си DNS с hosts файла

Hosts файлът е измамно прост инструмент с изненадващо широка полезност. Само с няколко реда обикновен текст можете да пренасочвате домейни, да блокирате нежелано съдържание, да тествате нови конфигурации на сървъри и да отстранявате DNS проблеми — всичко това без да докосвате рутера, DNS доставчика или мрежовата инфраструктура.

Основните изводи:

  • Винаги правете резервно копие на hosts файла преди редактиране
  • Използвайте коментари за документиране на всяка промяна, която правите
  • Изчиствайте DNS кеша след всяко редактиране, за да се уверите, че промените се прилагат незабавно
  • Използвайте 0.0.0.0 вместо 127.0.0.1 при блокиране на домейни
  • Помнете, че е локално — промените в hosts файла засягат само машината, на която са направени

За разработчици и системни администратори, работещи с хостнати среди, hosts файлът се съчетава перфектно с добре конфигуриран сървър. Независимо дали тествате ново приложение на план за VPS Хостинг, преглеждате сайт в акаунт за Споделен Уеб Хостинг преди пускане на живо, или валидирате SSL конфигурация след инсталиране на SSL Сертификат, hosts файлът ви дава локалния контрол, от който се нуждаете, за да работите уверено и ефективно.

Сега отворете този файл, направете промените си внимателно, изчистете кеша и поемете пълен контрол върху начина, по който вашата машина вижда интернет.

15%

Спести 15% на всички хостинг услуги

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код:

Skills
За начало