Я хотел бы отметить, что более стандартным файлом является / etc / hostname
. SuSE использует символическую ссылку, чтобы указать / etc / HOSTNAME
на этот файл, поэтому сценарий, который записал в / etc / hostname
(возможно, потому, что он был разработан для работы в многопользовательских дистрибутивах Linux / Unix) будет работать, если будет писать в / etc / hostname
.
У вас есть несколько вариантов: защитить свой resolv.conf, изменить код dhclient и отключить автообновление серверов имен, или отключить DNS с eth0.
Вариант 1: Защита от записи файла /etc/resolv.conf:
$ chattr +i /etc/resolv.conf
Опция +i (атрибут) защищает от записи файл /etc/resolv.conf в Linux так, что никто не может его изменить, включая пользователя root.
Вариант 2: dhclient-script hooks
Откройте файл "resolvconf" в папке dhclient:
$ nano /etc/dhcp/dhclient-enter-hooks.d/resolvconf
и измените код на:
make_resolv_conf(){
:
}
Приведенный выше скрипт заменит make_resolv_conf() на нашу собственную функцию. Эта функция ничего не делает.
Вариант 3:
Откройте ваш файл ifcfg:
$ nano /etc/sysconfig/network-scripts/ifcfg-eth0
и измените опцию PEERDNS на No:
PEERDNS=no
Bonus: Это не отменит ваш файл resolv.conf и не отключит обновление DNS, но перезапишет вашу таблицу маршрутов. Когда вы посылаете какой-либо DNS-запрос, независимо от содержимого вашего файла resolv. conf он проверит вашу таблицу маршрутов и отправит запрос на определенный адрес:
$ ip route add 8.8.8.8/32 via 192.168.1.1
Это связано с тем, что Vagrant предоставляет IP-адрес интерфейсу eth0, а настройка по умолчанию — через DHCP. Итак, если вы хотите сделать это с некоторыми исправлениями, вот ответ. Все, что вам нужно сделать, это отредактировать файл /etc/network/interfaces с помощью
nano /etc/network/interfaces
и добавить строку post-up resolvconf -d eth0.dhclient
послеiface eth1 inet dhcp
чтобы ваш /etc/network/interfaces
выглядел так
`
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# Source interfaces
# Please check /etc/network/interfaces.d before changing this file
# as interfaces may have been defined in /etc/network/interfaces.d
# NOTE: the primary ethernet device is defined in
# /etc/network/interfaces.d/eth0
# See LP: #1262951
source /etc/network/interfaces.d/*.cfg
#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
auto eth1
iface eth1 inet dhcp
post-up resolvconf -d eth0.dhclient
#VAGRANT-END`