Файл /etc/hosts в Linux: привязка домена без DNS для новичков
Как протестировать сайт до переключения DNS?
При переносе сайта на новый сервер нельзя сразу менять публичные DNS-записи: если сайт сломается, пользователи увидят ошибки. Чтобы разработчик мог открыть новый сервер по доменному имени локально, используется локальный файл hosts.
Порядок разрешения имен в ОС
- Локальный файл
/etc/hosts(имеет наивысший приоритет). - Локальный кэш DNS.
- Внешние публичные DNS-серверы провайдера.
Редактирование файла hosts
- На клиентском компьютере Linux / macOS открываем терминал:
sudo nano /etc/hosts(На Windows файл находится по адресу:
C:\Windows\System32\drivers\etc\hosts, открывать Блокнотом от имени Администратора). - Добавляем в самый конец файла строку с IP нового сервера и доменом:
# IP_ВАШЕГО_СЕРВЕРА ДОМЕННОЕ_ИМЯ 198.51.100.25 my-shop.com www.my-shop.com - Сохраняем файл: в Nano нажмите Ctrl + O, затем Enter, затем Ctrl + X.
- Проверяем, что домен теперь ведет на нужный IP:
ping my-shop.com
После окончания тестирования и официального переключения DNS не забудьте удалить эту строчку из файла hosts!
Частые вопросы (FAQ)
Нужно ли перезагружать компьютер после правки hosts?
Нет, изменения применяются моментально. Достаточно обновить страницу в браузере (Ctrl + F5).
Почему браузер продолжает открывать старый сайт?
Очистите кэш сокетов браузера или откройте сайт в режиме 'Инкогнито'.
Можно ли перенаправить чужой сайт на свой IP через hosts?
Да, но только локально на вашем компьютере (например, для заглушек и тестов).
Как сбросить кэш DNS в Windows?
Выполните в командной строке: ipconfig /flushdns.