Я использую Debian jessie, у меня не установлен сетевой менеджер или resolvconf, и я использую DHCP.
DHCP со статическим DNS
Первым делом я попробовал отредактировать:
/etc/network/interfaces
И добавил это:
dns-nameservers 8.8.8.8
Итак, теперь файл интерфейсов выглядит так:
allow-hotplug eth0
iface eth0 inet dhcp
dns-nameservers 8.8.8.8
Чтобы иметь DHCP и статический DNS одновременно, но после перезапуск network.service ничего не изменится.
при использовании DHCP:
ps aux | grep dhcp
dhclient -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
Редактирование вручную
Если я вручную редактирую /etc/resolv.conf и помещаю туда сервер имен 8.8.8.8, после перезапуска network.service системный DNS-сервер меняется на 8.8.8.8, но после выполнения a ifup:
sudo ifup eth0
И снова /etc/resolv.conf автоматически меняется на 192.168.1.1.
NetworkManager
Затем я решил использовать network-manger, я установил network-manager, и после установки IP-адреса DNS-сервера в соединение по умолчанию и повторного подключения он работает, но после перезагрузки системы network-manager создает новое соединение с DNS-сервер по умолчанию (192.168.1.1) и автоматически подключается к нему.
Я также проверил, что автоматически подключается к этой сети, когда она доступна при правильном подключении, но после перезагрузки сетевой менеджер снова подключается к другой.
Сброс через 10 часов
Мне каким-то образом удалось исправить эту проблему, изменив новые конфигурации подключения, теперь он не создает новое подключение при каждой загрузке и подключается к правильному подключению, однако теперь, спустя примерно 10 часов DNS-сервер автоматически изменяется на 192.168.1.1, и я должен повторно подключить соединение или перезапустить NetworkManager.service, чтобы вернуть DNS в 8.8.8.8.
Значит, это не сетевой менеджер, который отменяет /etc/resolv.cof
Static config
После того, как я столкнулся со всем этим, я решил использовать статическую конфигурацию.
Сначала я удалил сетевой менеджер, затем добавил статическую конфигурацию в:
/etc/network/interfaces
примерно так:
iface eth0 inet static
address 192.168.1.10
gateway 192.168.1.1
netmask 255.255.255.0
dns-nameservers 8.8.8.8
После перезапуска network.service эти настройки не будут применяться к системе, а интерфейс не имеет IP, поэтому сеть также недоступна.
Отключение DHCP на маршрутизаторе Теперь, когда я отключил DHCP на моем маршрутизаторе, статическая конфигурация работает нормально, но мне нужно, чтобы DHCP был включен для других устройств.
Разрешение
Я могу отредактировать /etc/resolv.conf и изменить его разрешение, чтобы никто не мог его редактировать ...
Но я ищу причину. Я хочу знать, почему они не работают, какая программа переопределяет /etc/resolv.conf и как правильно настроить DNS-сервер.
Есть что-нибудь, чего мне здесь не хватает?
Поскольку по умолчанию сеть jessie настроена через DHCP
, у вас есть несколько решений
sol 1:
sudo update-rc.d dhcpcd remove
sol 2:
sudo nano /etc/dhcpcd.conf
или /etc/dhcp/dhclient.conf
, добавив следующую команду
nodhcp
и в файле / etc / network / interfaces необходимо изменить строки в следующим образом:
iface lo inet loopback
auto eth0
any config .......
sudo nano /etc/dhcpcd.conf
interface eth0
static ip_address=192.168.1.56
#gateway
static routers=192.168.1.210
static domain_name_servers=8.8.8.8
Если установлена программа resolvconf
, вам не следует редактировать файл конфигурации resolv.conf
вручную в системе на основе Debian или Ubuntu, так как он будет динамически изменен программами в системе. . Если вам нужно вручную определить серверы имен (как в случае со статическим интерфейсом), добавьте строку примерно следующего вида в файл конфигурации интерфейсов в / etc / network / interfaces
файл:
#Place the line indented within an iface stanza, e.g., right after the gateway line.
dns-nameservers
8.8.8.8
127.0.0.1