Файлът Hosts: Какво представлява, къде да го намерите и как да го редактирате на всяка ОС
Вашето локално DNS заобикаляне — без нужда от интернет
Всеки път, когато въведете име на домейн в браузъра си, компютърът ви тихо извършва процес на търсене, за да преведе това име в IP адрес. Но преди да се свърже с външен DNS сървър, той проверява малък, често пренебрегван текстов файл, намиращ се тихо на вашата локална система: hosts файлът.
Този файл е един от най-мощните и недооценени инструменти, достъпни за разработчици, системни администратори и напреднали потребители. Той ви позволява ръчно да съпоставяте имена на домейни с IP адреси — незабавно, локално и без да докосвате рутера или DNS доставчика си. Независимо дали тествате нов уебсайт преди да го пуснете на живо, блокирате рекламни сървъри или отстранявате проблеми с DNS разпространението, hosts файлът ви дава директен, нискониво контрол върху начина, по който машината ви разрешава имена на домейни.
В това ръководство ще научите точно какво представлява hosts файлът, къде да го намерите в Windows, macOS и Linux, и как да го редактирате безопасно и ефективно.
Какво е hosts файлът?
Hosts файлът е обикновен текстов системен файл, който съпоставя имена на хостове (имена на домейни) с IP адреси. Той предшества съвременната DNS система и първоначално е бил единственият механизъм за разрешаване на имена в ARPANET. Днес той все още функционира като локален DNS заобикалящ слой — вашата ОС го проверява първо, преди да направи каквито и да е външни DNS заявки.
Как работи
Когато навигирате към уебсайт, вашата операционна система следва този ред на разрешаване:
- Проверява локалния hosts файл за съответстващ запис
- Прави заявка към локалния DNS кеш
- Свързва се с конфигурирания 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:WindowsSystem32driversetchostsmacOS
/etc/hostsLinux (всички основни дистрибуции)
/etc/hostsВ macOS и Linux, /etc/hosts обикновено е символна връзка или директен файл, управляван от системата. В Linux дистрибуции, използващи systemd-resolved, файлът все още има приоритет за локални заобикаляния.
Как да редактирате hosts файла в Windows
Редактирането на hosts файла в Windows изисква администраторски привилегии. Файлът е защитен от системата, така че стандартните потребителски акаунти не могат да го променят.
Стъпка 1: Отворете Notepad като администратор
- Натиснете Windows Key + S и въведете
Notepadв лентата за търсене - Щракнете с десния бутон върху Notepad в резултатите
- Изберете Изпълни като администратор
- Щракнете Да, ако бъдете подканени от Контрол на потребителските акаунти (UAC)
Стъпка 2: Отворете hosts файла
- В Notepad щракнете върху Файл → Отвори
- Навигирайте до:
C:WindowsSystem32driversetc - В падащото меню за тип файл (до полето за име на файл), променете го от
Text Documents (*.txt)на Всички файлове (*.*) - Изберете файла с име
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 кеша, за да влязат в сила промените ви незабавно:
- Отворете Command Prompt като администратор
- Изпълнете следната команда:
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 mDNSRespondermacOS 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-cachesCentOS / RHEL / Fedora:
sudo systemctl restart NetworkManagerArch 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.backupWindows (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.net3. Използвайте 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.net6. Помнете, че промените в 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:WindowsSystem32driversetchostsHosts файл срещу DNS: Кога да използвате кое
| Сценарий | Hosts файл | DNS конфигурация |
|---|---|---|
| Бърз локален тест на една машина | ✅ Идеален | ❌ Излишно |
| Среда за разработка за целия екип | ❌ Не се мащабира | ✅ Използвайте вътрешен DNS |
| Блокиране на сайтове на едно устройство | ✅ Работи добре | ❌ Ненужно |
| Управление на производствени домейни | ❌ Неподходящо | ✅ Задължително |
| Тестване на сайт преди пускане | ✅ Перфектно | ❌ Би засегнало всички потребители |
| Инфраструктура с множество сървъри | ❌ Твърде ръчно | ✅ Съществено |
За производствени среди винаги управлявайте DNS чрез вашия регистратор на домейни или контролния панел на хостинга. Ако трябва да регистрирате или управлявате домейни професионално, Регистрация на домейни чрез надежден доставчик гарантира, че вашите DNS записи се разпространяват правилно и сигурно в интернет.
По същия начин, ако управлявате пощенски сървър и трябва да осигурите правилна доставка на имейли, редактирането на hosts файла не е заместител на правилно конфигурирани MX записи. Разгледайте специализирани решения за Email Хостинг за надеждна, правилно конфигурирана пощенска инфраструктура.
Бърза справка: Cheat Sheet за hosts файла
Местоположения на файловете
| ОС | Път |
|---|---|
| Windows | C:WindowsSystem32driversetchosts |
| macOS | /etc/hosts |
| Linux | /etc/hosts |
Отваряне за редактиране
| ОС | Команда / Метод |
|---|---|
| Windows | Notepad → Изпълни като администратор → Файл → Отвори |
| macOS | sudo nano /etc/hosts |
| Linux | sudo nano /etc/hosts |
Изчистване на DNS кеша
| ОС | Команда |
|---|---|
| Windows | ipconfig /flushdns |
| macOS | sudo killall -HUP mDNSResponder |
| Ubuntu/Debian | sudo systemd-resolve --flush-caches |
| CentOS/RHEL | sudo 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 файлът ви дава локалния контрол, от който се нуждаете, за да работите уверено и ефективно.
Сега отворете този файл, направете промените си внимателно, изчистете кеша и поемете пълен контрол върху начина, по който вашата машина вижда интернет.
