Я новичок Linux, экспериментирующий с настройкой сервера кеша DNS на Pine64 на Ubuntu 16.04. Я пытаюсь настроить статический IP-адрес с локальным DNS-сервером Bind9. Я следил за этим замечательным учебником и смотрел на несколько других.
Однако у меня возникли проблемы с вводом изменений в /etc/resolv.conf. /: Когда я перезагружаюсь, настройки в /etc/network/interfaces не записываются в /etc/resolv.conf.
Это мой /etc/network/interfaces:
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
# Disable wlan1 by default (8723bs has two intefaces)
iface wlan1 inet manual
# Loopback interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.18
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.18
dns-search green.intra
Это мой /etc/default/bind9 :
# run resolvconf?
RESOLVCONF=yes
# startup options for the server
OPTIONS="-4 -u bind"
Из этих двух файлов у меня создалось впечатление, что /etc/resolv.conf должен стать этим (автоматически при загрузке):
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.0.18
search green.intra
... но вместо этого он станет следующим:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 83.255.255.1
nameserver 83.255.255.2
search home
Если я добавлю нужные настройки в /etc/resolv.conf, все будет работать так, как я ожидаю, до тех пор, пока я не перезагружу.
Что я делаю неправильно? [ ! d16]
Изменить: у меня есть RTFM, пытаясь понять это:
Pine64 https://help.ubuntu.com/12.04/serverguide/network-configuration .html Ubuntu 16.04
Изменить: ifup и ifdown fail: Как было предложено в ответе на предлагаемый дублированный вопрос, использование service networking restart может оказаться ненадежным в этом ситуация. Вместо этого я попробовал следующее:
ubuntu@pinex:~$ sudo ifdown -v eth0
Reading directory /etc/network/interfaces.d
Parsing file /etc/network/interfaces.d/eth0
ifdown: interface eth0 not configured
и:
ubuntu@pinex:~$ sudo ifdown -v eth0
Reading directory /etc/network/interfaces.d
Parsing file /etc/network/interfaces.d/eth0
ifdown: interface eth0 not configured
ubuntu@pinex:~$ sudo ifup -v eth0
Reading directory /etc/network/interfaces.d
Parsing file /etc/network/interfaces.d/eth0
Configuring interface eth0=eth0 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
/sbin/dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/36:c9:e3:f1:b8:05
Sending on LPF/eth0/36:c9:e3:f1:b8:05
Sending on Socket/fallback
DHCPREQUEST of 192.168.0.18 on eth0 to 255.255.255.255 port 67 (xid=0x79b015c0)
DHCPACK of 192.168.0.18 from 192.168.0.1
RTNETLINK answers: File exists
bound to 192.168.0.18 -- renewal in 5280 seconds.
/bin/run-parts --exit-on-error --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/000resolvconf
run-parts: executing /etc/network/if-up.d/bind9
run-parts: executing /etc/network/if-up.d/openssh-server
run-parts: executing /etc/network/if-up.d/upstart
run-parts: executing /etc/network/if-up.d/wpasupplicant
Configuring interface eth0=eth0 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
/bin/ip addr add 192.168.0.18/255.255.255.0 broadcast 192.168.0.255 dev eth0 label eth0
RTNETLINK answers: File exists
Failed to bring up eth0.
... что привело меня к ответу (см. Ниже).