Forzar dirección IPv4

15

Actualicé mi Raspberry Pi a Jessie, que usa systemd. Un efecto secundario es que se conecta usando solo IPv6 y no tiene una dirección IPv4. ¿Cómo puedo forzarlo a obtener una dirección IPv4 del servidor DHCP?

Una solución ad-hoc es el comando

sudo dhclient -4 -v eth0

pero esto solo dura la sesión actual.

John Smith
fuente
Ninguna de las respuestas a continuación funcionó para mí, en cambio, necesitaba hacerlo sudo apt-get install isc-dhcp-clientdespués de usar sudo dhclient -4 -v eth0para estar en línea.
mrswadge
Algún contexto adicional a mi comentario anterior. En mi situación, los síntomas al ejecutar sudo ifup -v eth0la llamada a dhclient fallaban y en su lugar mostraban la información de uso.
mrswadge

Respuestas:

9

Raspbian Jessie ya no tiene un archivo llamado /etc/sysctl.d, ahora es una carpeta con el mismo nombre.

Según el archivo Léame en la misma carpeta, README.sysctlbásicamente dice que cualquier .confarchivo se leerá en el momento del arranque y se procesará. Cualquier nombre de archivo legal funcionará, pero sugirieron local.conf, así que eso es lo que usé.

Creé /etc/sysctl.d/local.confy agregué la línea única de las otras respuestas:

net.ipv6.conf.all.disable_ipv6=1

Esto parece funcionar bien.

Jim
fuente
Cualquier cosa .den /etcnunca fue nada más que un directorio para empezar. No sé si la respuesta de Joe Platano involucra un error tipográfico o si eso realmente funcionará, de alguna manera lo dudo (aunque parece haber otra respuesta que confirma que lo hará).
Ricitos de oro
2

puede insertar una línea en sysctl para deshabilitar ipv6.

echo net.ipv6.conf.all.disable_ipv6=1 > /etc/sysctl.d

esto funcionará después del próximo reinicio.

Joe Platano
fuente
Es /etc/sysctl.conf como archivo de destino. ¡Tenga en cuenta que> anulará todo el archivo!
David
2

En Raspbian Jessie / Jessie Lite, simplemente edite el /etc/sysctl.confarchivo y agregue el interruptor para deshabilitar ipv6, de la siguiente manera:

sudo nano /etc/sysctl.conf

Ingrese el texto:

net.ipv6.conf.all.disable_ipv6=1

Guarde el archivo con Ctrl-O, Ctrl-Xy reinicie el RPI.

guitarpicva
fuente
2

sudo nano /etc/sysctl.conf

agregue las siguientes líneas para desactivar ipv6:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

ejecutar sudo sysctl -ppara que surta efecto o simplemente reiniciar.

AlexOnLinux
fuente
1

la forma más fácil que encontré para obtener también una dirección IPv4 para la interfaz fue cambiando / etc / network / interfaces: configurando el manual en dhcp ... eso también te da una dirección IPv4 en eth0 ... probablemente solo un hack pero haven ' No encontré nada mejor todavía ...

    auto eth0
    allow-hotplug eth0
    # iface eth0 inet manual
    iface eth0 inet dhcp
Fantasma
fuente
Raspbian Jessie no usa dhcp(a menos que el usuario realmente lo haya manipulado) y esto evitaría que funcione el soporte de GUI WiFi.
Milliways
1

Combinando, corrigiendo y agregando a las respuestas anteriores:

Para arreglar una interfaz (ya sea eth o wlan) que muestra solo una dirección inet6 (IPV6) y ninguna dirección inet (IPV4), puede agregar un archivo de configuración para deshabilitar la asignación inet6 (IPV6), de modo que todas las interfaces reciban una entrada (IPV4) dirección. Si ese archivo de configuración se elimina nuevamente, las interfaces recibirán AMBAS direcciones inet (IPV4) y inet6 (IPV6), es decir, un retorno al estado predeterminado habitual.

Para agregar el archivo:

sudo nano /etc/sysctl.d/local.conf

y agregue la línea simple:

net.ipv6.conf.all.disable_ipv6=1

Guardar con Ctrl-O, Y, [Volver]. Reinicie e inicie sesión nuevamente.

sudo reboot

Verifique las direcciones usando

ifconfig

Elimine el archivo de configuración y reinicie:

cd /etc/sysctl.d
sudo rm local.conf
sudo reboot

Verifique nuevamente con ifconfig:

ifconfig

Consulte las direcciones inet (IPV4) e inet6 (IPV6) para todas las interfaces:

eth0      Link encap:Ethernet  HWaddr 00:e0:4c:53:44:58
          inet addr:192.168.1.228  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::26a5:b629:f948:92c3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:62:b4:7a
          inet addr:192.168.1.229  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::254c:3f61:fdc:bc49/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Y puedo una vez más SSH a mi Pi Zero usando eth0 o wlan0, ambos usando la dirección IPV4 o IPV6.

ExperiMentor
fuente
1

Actualicé mi Raspberry Pi a Stretch y no pude tener éxito con ninguna variación de las net.ipv6.conf.all.disable_ipv6=1respuestas.

Ejecutando manualmente sudo dhclient -4 -v eth0para que mi conectividad de red / internet vuelva a funcionar, sin embargo, como lo indica el póster original, no sobrevive a un reinicio.

Noté que sudo ifup -v eth0llamaba dhclient, pero estaba fallando y en lugar de funcionar correctamente, mostraba la información de uso del dhclientcomando.

La solución alternativa parece ser alejarse dhclienty, en su lugar, instalar isc-dhcp-client. Al reiniciar mi conectividad estaba disponible automáticamente después de instalar este paquete.

sudo apt-get install isc-dhcp-client
sudo reboot
mrswadge
fuente
0

Tengo el mismo problema y probé la solución a continuación, esto funciona bien después de reiniciar mi Pi.

sudo nano  /etc/sysctl.d

tipo

net.ipv6.conf.all.disable_ipv6=1

ahorre con ^Oasysctl.d

sudo reboot

Ahora veo mi dirección ip4 en la pantalla de inicio.

sns5400
fuente