Mi sono stati dati i file per un mini linux
, che si avvia direttamente in firefox
. Funziona per tutto quello che dovrebbe fare, solo che non ottengo una connessione a Internet.
Abbiamo 3 server DNS nella rete, che funzionano tutti. Posso anche pingerli. Ma quando si tenta di ping google.de
o wget google.de
Ricevo un bad address
errore.
nslookup google.de
funziona per qualche motivo.
Ho rintracciato il problema nel mio resolv.conf
sul sistema avviato non ha lo stesso contenuto di resolv.conf
che ho inserito nel .iso
file.
Ho provato a capire tutti i fattori che concorrono alla creazione e alla modifica di resolv.conf
. Non sono sicuro di aver capito tutto, ma sicuramente non ho trovato la mia soluzione lì.
Quindi, come ultimo sforzo disperato, ho provato a creare il resolv.conf
file immutabile utilizzando
:~# chattr +i /etc/resolv.conf
Durante la ricostruzione e il riavvio, con mia sorpresa, il mio file è stato rinominato in resolv.conf~
e al suo posto c'era lo stesso file standard che mi perseguitava.
Il contenuto del file mi fa credere che ottenga le informazioni dalla rete stessa. All'avvio di .iso
in Virtualbox senza accesso a Internet, il mio file viene mantenuto così com'è.
Ho provato a cambiare /etc/dhcp/dhclient.conf
per non ottenere le informazioni dalla rete, eliminando domain-name-server
e domain-name-search
dalla request
parte del file.
Purtroppo non ha funzionato.
Non ho installato NetworkManager. L'iso è basato su Ubuntu 14.04.
Probabilmente mancano informazioni vitali. Sono felice di fornirlo.
AGGIORNAMENTO:
Penso di aver trovato il file che cancella resolv.conf
.
Sembra essere /usr/share/udhcpc/default.script
#!/bin/sh
# udhcpc script edited by Tim Riker <[email protected]>
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
RESOLV_CONF="/etc/resolv.conf"
[ - n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"
case "$1" in
deconfig)
/bin/ifconfig $interface 0.0.0.0
for i in /etc/ipdown.d/*; do
[ -e $i ] && . $i $interface
done
;;
renew|bound)
/bin/ifconfig $interface $ip $BROADCAST $NETMASK
if [ -n "$router" ] ; then
echo "deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do
:
done
metric=0
for i in $router ; do
route add default gw $i dev $interface metric $((metric++))
done
fi
echo -n > $RESOLV_CONF # Start ----------------
[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo nameserver $i >> $RESOLV_CONF
done
for i in /etc/ipup.d/*; do
[ -e $i ] && . $i $interface $ip $dns
done # End ------------------
;;
esac
exit 0
Fa parte di udhcpc
programma. Un minuscolo client DHCP, che fa parte di busybox
Indagherà ulteriormente.
AGGIORNAMENTO2 E SOLUZIONE:
Ho commentato la parte (#Start to #End), che apparentemente sovrascrive il /etc/resolv.conf
file e abbastanza sicuro. Quello era il colpevole. Quindi uno script oscuro ha causato tutti questi problemi.
Ho cambiato la domanda in modo che riflettesse ciò che in realtà doveva essere noto per risolvere il mio problema, così sarebbe stato più facile trovarlo per le persone con lo stesso problema e quindi avrei potuto accettare una risposta.
Grazie per l'aiuto qui a capire le cose.
Risposta accettata:
-
Non dovresti aggiornare manualmente il tuo
resolv.conf
, perché tutte le modifiche verranno sovrascritte dai dati forniti dal server DHCP locale. Se vuoi che sia statico, eseguisudo dpkg-reconfigure resolvconf
e rispondi "no" agli aggiornamenti dinamici. Se vuoi aggiungere nuove voci lì, modifica/etc/resolvconf/resolv.conf.d/base
ed eseguisudo resolvconf -u
, aggiungerà le tue voci e le voci del server DHCP. -
Prova a modificare il tuo
/etc/network/interfaces
e aggiungi le tue voci lì, comeauto eth0 iface eth0 inet dhcp dns-search google.com dns-nameservers dnsserverip
e quindi riavvia /etc/init.d/networking restart
o sudo ifdown -a
e sudo ifup -a
- Il tuo sistema usa udhcp che è un programma client DHCP molto piccolo. Il client udhcp negozia un lease con il server DHCP e notifica
a una serie di script quando un lease viene ottenuto o perso. Puoi leggere il suo utilizzo qui o semplicemente modificare questo script (come hai fatto).