Как отключить определенный интерфейс (dhclient) из resolvconf?

Я хотел бы отметить, что более стандартным файлом является / etc / hostname . SuSE использует символическую ссылку, чтобы указать / etc / HOSTNAME на этот файл, поэтому сценарий, который записал в / etc / hostname (возможно, потому, что он был разработан для работы в многопользовательских дистрибутивах Linux / Unix) будет работать, если будет писать в / etc / hostname .

7
13.04.2017, 15:36
2 ответа

У вас есть несколько вариантов: защитить свой 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
1
27.01.2020, 20:19

Это связано с тем, что 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` 
2
27.01.2020, 20:19

Теги

Похожие вопросы