У меня есть сервер в моем доме, чтобы доказать, и когда я на своем ноутбуке в моем доме, я должен написать локальный IP-адрес, чтобы увидеть веб-сервер, и я хочу знать, возможно ли написать скрипт для автоматического обнаружить сеть и добавить строку в файл hosts, а когда находится в другой сети, удалить эту строку.
Благодаря.
Возможно, триггером записи пользовательского файла хостов может быть NetworkManager, когда он подключается к домашней точке доступа.
Лучшим решением, чем копирование файла вручную, было бы иметь внутренний DNS-сервер. Вы можете добавить свои внутренние записи к этому. Это можно сделать двумя способами:
Для всей вашей сети : Установите pdnsd
(a - это хороший простой сервер кэширования DNS) на ваш сервер, настройте его с внешним провайдером DNS для кеширования, а затем укажите маршрутизатором IP вашего внутреннего сервера для DNS. Все устройства, подключенные к сети, будут получать DNS-запросы через ваш внутренний сервер.
По моему опыту, этот маршрут невозможен для маршрутизаторов Home / SME Netgear, так как они взрываются, если вы попытаетесь установить внутренний IP-адрес в качестве маршрута DNS. Глупое, ненужное ограничение на иное аппаратное обеспечение.
Только для вашего ноутбука : как указано выше, за исключением того, что вы устанавливаете и настраиваете pdnsd
на своем ноутбуке (он не очень тяжелый) и изменяете настройки домашнего подключения, чтобы использовать 127.0.0.1 для DNS. 117]
Вы на самом деле могли бы уже выполнять решение:
https://help.ubuntu.com/community/HowToZeroconf
Если Ваш сервер называют 'моим-сервером', попробуйте эту команду от машины, которая не является сервером:
$ ping my-server.local
Если Вы успешно выполняетесь, то Вы выполняете avahi на своих машинах, и они делают "zeroconf".
Могут быть другие причины, почему Вы хотите выполнить локальный сервер DNS, такой как кэширование и т.д. Подход zeroconf не обращается к тем потребностям.
Вы даже можете использовать DNS-сервер маршрутизатора и добавить запись хоста для сервера и указать основной DNS вашего ноутбука на маршрутизаторе.
DNS в основном заменяет ведение записей на отдельных компьютерах.