Use a seguinte solução alternativa para evitar que o cliente dhcp atualize seu /etc/resolv.conf cuidadosamente elaborado:
# chattr +i /etc/resolv.conf
Seguindo o wiki da Debian NetworkConfiguration , eu tenho tentado setup estático DNS OpenNIC sem sucesso. A primeira coisa que tentei foi editar diretamente o /etc/resolv.conf
, mas ele continua sendo sobrescrito. A página wiki lista três fontes possíveis de sobrescrever:
- The
resolvconf
program- The
network-manager
daemon- DHCP clients
$ apt-cache policy resolvconf
resolvconf:
Installed: (none)
Candidate: 1.76.1
Version table:
1.76.1 0
500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
$ apt-cache policy network-manager
network-manager:
Installed: (none)
Candidate: 0.9.10.0-7
Version table:
0.9.10.0-7 0
500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
Considerando que não tenho resolvconf
ou network-manager
instalado, podemos assumir que a origem é um cliente DHCP. Estou usando wicd
como uma alternativa para network-manager
, mas a configuração de dns estáticos nas propriedades wicd-gtk
não funciona. Assim, editei /etc/dhcp/dhclient.conf
adicionando supersede domain-name-servers 50.116.40.226;
, mas meu /etc/resolv.conf
ainda é:
$ cat /etc/resolv.conf
nameserver 2001:558:feed::2
nameserver 2001:558:feed::1
O que está acontecendo aqui? Devo instalar o resolvconf
para ver se funciona? Devo desistir de wicd
e instalar network-manager
?
Acho que o seu servidor DHCP envia respostas não solicitadas, portanto, o seu resolv.conf também foi substituído se você definir o parâmetro de substituição. Adicionar o + i attr pode ser uma solução, mas requer que você o desmarque e redefina manualmente se tiver que fazer algumas alterações.
Você pode, de fato, escrever alguns scripts no lado do cliente (veja man 8 dhclient-script
).
Este tópico também é explicado em debian wiki :
Another approach makes use of dhclient-script's hook scripts. According to dhclient-script(8):
When it starts, the client script first defines a shell function, make_resolv_conf , which is later used to create the /etc/resolv.conf file. To override the default behaviour, redefine this function in the enter hook script. Therefore, we can stop dhclient from overwriting resolv.conf by doing the following:
echo 'make_resolv_conf() { :; }' > /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone chmod 755 /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone
The execute bit is required because dhclient-script uses run-parts(8) to decide which files to read. For that same reason, the filename must not contain anything but letters, digits, underscores and hyphens.
pela forma como as coisas não estão indo bem, não é nem mesmo um amigo, mas você deve vê-lo bem antes de sair, aplicando assim os arquivos "chattr + i" ao sistema, acho que devemos procurar uma solução para o problema que às vezes é algo tão simples que está na nossa cara e não podemos encher porque estamos nervosos querendo impor nossa vontade no sistema, às vezes um pequeno script até faz milagres quando bem executado na rede, mas aparentemente você faz não quero isso e pelo jeito não é ou está estudando para ser um administrador de sistemas, desculpe! Mas se você preferir ficar nervoso e executar esses truques absurdos desse tipo no sistema, afinal de contas, não está no meu sistema, desculpe deixá-lo irritado com isso! Em vez de fazer isso! para usar o comando 'chattr' configure, edite o arquivo 'interfaces', que geralmente está na pasta / etc / network / e adicione / altere as opções dns-nameserver com o ip do servidor que você quiser. Se essas opções não estiverem no arquivo, você poderá adicioná-las como pequenos exemplos:
-Simple: basta editar o arquivo "/ etc / network / interfaces" desta forma.
auto lo
iface lo inet loopback
iface lo inet6 loopback
iface eth0 inet dhcp <= Here would be for DHCP devices.
iface eth0 init 192.168.1.2 <= Here your fixed IP on the network.
iface eth0 inet6 auto <= Here you define your IPv6 automatically.
dns-nameserver 192.168.1.1 <= Your IP address here.
dns-nameserver 8.8.8.8
dns-nameserver 8.8.4.4
-Salve o arquivo e reinicie a rede ...
No seu caso, você só quer definir o endereço IP dos servidores, definir apenas o seguinte para o final do arquivo de interfaces.
dns-nameserver 8.8.4.4
dns-nameserver 8.8.8.8
Aqui está um exemplo que é usado aqui, só não usa DHCP deve usar o IP definido automaticamente pelo roteador que muda cada inicialização no sistema de rede.
auto lo
iface lo inet loopback
iface lo inet6 loopback
iface eth0 inet static
address 192.168.1.4/24
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 192.168.1.4
dns-nameserver 8.8.4.4
dns-nameserver 8.8.8.8
-Apenas uma pequena amostra para você verificar melhor para entender.
Tags dns resolv.conf debian dhcp dhclient