Me dieron los archivos para un mini linux
, que arranca directamente en firefox
. Funciona para todo lo que debería estar haciendo, solo que no tengo conexión a Internet.
Tenemos 3 servidores DNS en la red, todos funcionan. Puedo hacer ping a ellos, también. Pero al intentar ping google.de
o wget google.de
Recibo una bad address
error.
nslookup google.de
funciona por alguna razón.
Rastreé el problema hasta mi resolv.conf
en el sistema arrancado que no tiene el mismo contenido que el resolv.conf
que puse en el .iso
archivo.
Traté de comprender todos los factores que intervienen en la creación y modificación de resolv.conf
. No estoy muy seguro de haberlo entendido todo, pero definitivamente no encontré la solución allí.
Entonces, como último esfuerzo, intenté hacer el resolv.conf
archivo inmutable usando
:~# chattr +i /etc/resolv.conf
Al reconstruir y arrancar de nuevo, para mi sorpresa, mi archivo cambió de nombre a resolv.conf~
y en su lugar estaba el mismo archivo estándar que me ha estado persiguiendo.
El contenido del archivo me hace creer que obtiene la información de la propia red. Al iniciar el .iso
en Virtualbox sin acceso a Internet, mi archivo se mantiene como está.
Intenté cambiar /etc/dhcp/dhclient.conf
para no obtener la información de la red, eliminando domain-name-server
y domain-name-search
de la request
parte del archivo.
Desafortunadamente no funcionó.
No tengo el NetworkManager instalado. La iso está basada en Ubuntu 14.04.
Probablemente falta información vital. Me complace proporcionarlo.
ACTUALIZAR:
Creo que encontré el archivo que borra resolv.conf
.
Parece ser /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
Es parte del udhcpc
programa. Un pequeño cliente dhcp, que es parte de busybox
Investigará más a fondo.
ACTUALIZACIÓN2 Y SOLUCIÓN:
Comenté la parte (#Start to #End), que aparentemente sobrescribe el /etc/resolv.conf
archivo y por supuesto. Ese fue el culpable. Así que un guión oscuro causó todo este problema.
Cambié la pregunta para reflejar lo que realmente se necesitaba saber para resolver mi problema, de modo que fuera más fácil de encontrar para las personas con el mismo problema y así pudiera aceptar una respuesta.
Gracias por la ayuda aquí para resolver las cosas.
Respuesta aceptada:
-
No debe actualizar manualmente su
resolv.conf
, porque todos los cambios se sobrescribirán con los datos que proporciona su servidor DHCP local. Si desea que sea estático, ejecutesudo dpkg-reconfigure resolvconf
y responda "no" a las actualizaciones dinámicas. Si desea agregar nuevas entradas allí, edite/etc/resolvconf/resolv.conf.d/base
y ejecutasudo resolvconf -u
, agregará sus entradas y las entradas del servidor DHCP. -
Intenta editar tu
/etc/network/interfaces
y agregue sus entradas allí, comoauto eth0 iface eth0 inet dhcp dns-search google.com dns-nameservers dnsserverip
y luego reinicie /etc/init.d/networking restart
o sudo ifdown -a
y sudo ifup -a
- Su sistema utiliza udhcp, que es un programa de cliente DHCP muy pequeño. El cliente udhcp negocia una concesión con el servidor DHCP y notifica
a un conjunto de scripts cuando se obtiene o se pierde una concesión. Puede leer sobre su uso aquí o simplemente editar este script (como lo hizo).