Per gli utenti DHCP, potrebbero essere necessari momenti in cui è necessario modificare /etc/resolv.conf
per utilizzare altri nameserver. Quindi, dopo un periodo di tempo (o dopo un riavvio del sistema), scopri che le modifiche /etc/resolv.conf
sono state ripristinate.
Questo tutorial mostra tre metodi per impedire a DHCP di cambiare /etc/resolv.conf
su Debian o Ubuntu.
Metodo 1: modifica le impostazioni dell'interfaccia su statica
- Su un cloud vps, non suggerisco di usare questo metodo.
- Se si utilizza questo metodo, è possibile che l'elaborazione del riavvio (fino a quando non è possibile accedere tramite ssh) richieda più tempo.
Innanzitutto, dobbiamo ottenere l' IP / netmask / gateway del server. Esegui il seguente comando.
ifconfig | grep "inet addr" | head -n 1 | awk '{print $2, $4}'
Ciò fornisce l'IP del server e la maschera di rete. Guardando l'output di esempio ...
addr:1.2.3.4 Mask:255.255.254.0
... l'indirizzo IP del server è 1.2.3.4 e la maschera è 255.255.254.0 .
Per ottenere l'indirizzo gateway, eseguire il comando seguente.
netstat -rn | grep '^0.0.0.0' | awk '{print $2}'
In questo esempio, userò l'indirizzo gateway 1.2.3.1 .
Ora che abbiamo l' IP / maschera di rete / gateway , modifica /etc/network/interfaces
.
vim /etc/network/interfaces
Apporta le seguenti modifiche:
# Comment out this line
# iface eth0 inet dhcp
# Add these contents
iface eth0 inet static
address 1.2.3.4
mask 255.255.254.0
gateway 1.2.3.1
Ricordare che è necessario sostituire questi valori con l' IP / netmask / gateway appropriato del server.
Salva ed esci, quindi riavvia.
Metodo 2: protezione da scrittura dei nameserver
Cambia i tuoi nameserver modificando /etc/resolv.conf
. Dopo aver apportato le modifiche, proteggi quel file in scrittura.
chattr +i /etc/resolv.conf
L' +i
opzione (attributo) write protegge il /etc/resolv.conf
file su Linux in modo che nessuno possa modificarlo, nemmeno l'utente root.
Se è necessario rimuovere l'attributo di protezione dalla scrittura, utilizzare il comando seguente.
chattr -i /etc/resolv.conf
Metodo 3: utilizzare hook DHCP
Questo è il metodo che consiglio di utilizzare di più.
Modifica /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
.
vim /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
Apporta le seguenti modifiche:
#!/bin/sh
make_resolv_conf(){
:
}
Salva ed esci.
Aggiorna le autorizzazioni sul nodnsupdate
file.
chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
Riavvia il tuo server. Ora puoi aggiornare i nameserver modificando /etc/resolv.conf
senza preoccuparti del rollback.