Скорее всего, вам не нужно помещать назначенный DHCP -IP-адрес в файл hosts. Например, вы, вероятно, захотите указать браузеру http://your-domain-here/
, и ваш локальный веб-сервер ответит на это. (То же самое с любой другой настройкой клиент/сервер ). В этом случае просто сопоставьте домен с IP-адресом локального хоста, который представляет собой любой IP-адрес, начинающийся с 127.
(. Я бы избегал 127.0.0.1, так как это может дать странные ответы для обратного поиска ). Просто выберите новый, которого еще нет в вашем файле hosts.
Другой вариант — просто выбрать статический пространственный IP-адрес RFC1918 (192.168.x.x, 10.x.x.x, 172.16–31.x.x )и добавить его к локальному интерфейсу, а затем просто использовать этот IP-адрес.
Если вам действительно нужно сопоставить его с вашим текущим IP-адресом, обычно есть место, где вы можете поместить сценарий оболочки для запуска, когда ваша машина получает IP-адрес через DHCP. Если вы используете dhclient, вы можете поместить скрипт в /etc/dhcp/dhclient-enter-hooks.d/
. Существует dhclient -скрипт (8 )справочная страница , в которой это документировано, но что-то вроде этого (очень непроверено ), вероятно, сработает (он использует "губку" из пакета moreutils):
#!/bin/sh
MY_DOMAIN=your-domain.com
if [ "$reason" != "BOUND" ] && [ "$reason" != "REBIND" ]; then
exit 0
fi
grep -v " $MY_DOMAIN\$" /etc/hosts | sponge /etc/hosts # really should escape the dots in the domain, but probably doesn't matter.
printf '%s %s\n' "$new_ip_address" "$MY_DOMAIN" >> /etc/hosts
Это очень не проверено. Убедитесь, что у вас есть резервная копия /etc/hosts
, прежде чем пытаться это сделать!