Forza indirizzo IPv4


15

Ho aggiornato il mio Raspberry Pi a Jessie, che utilizza systemd. Un effetto collaterale è che si connette solo tramite IPv6 e non ha un indirizzo IPv4. Come posso forzarlo a ottenere un indirizzo IPv4 dal server DHCP?

Una soluzione ad hoc è il comando

sudo dhclient -4 -v eth0

ma questo dura solo per la sessione corrente.


Nessuna delle risposte di seguito ha funzionato per me, invece avevo bisogno di sudo apt-get install isc-dhcp-clientdopo aver usato sudo dhclient -4 -v eth0per andare online.
mrswadge,

Qualche ulteriore contesto al mio commento precedente. Nella mia situazione i sintomi durante l'esecuzione sudo ifup -v eth0della chiamata a dhclient non andavano a buon fine e mostravano invece le informazioni sull'utilizzo.
mrswadge,

Risposte:


9

Raspbian Jessie non ha più un file chiamato /etc/sysctl.d: ora è una cartella con lo stesso nome.

Secondo il file read-me nella stessa cartella, README.sysctlin pratica dice che qualsiasi .conffile verrà letto all'avvio ed elaborato. Qualsiasi nome di file legale funzionerà, ma hanno suggerito local.conf, quindi è quello che ho usato.

Ho creato /etc/sysctl.d/local.confe aggiunto la riga singola dalle altre risposte:

net.ipv6.conf.all.disable_ipv6=1

Questo sembra funzionare bene.


Qualsiasi cosa .ddentro /etcnon è mai stata nient'altro che una directory con cui iniziare. Non so se la risposta di Joe Platano implichi un refuso o se funzionerà effettivamente, in qualche modo ne dubito (anche se sembra che ci sia un'altra risposta che lo confermi).
Riccioli d'oro

2

è possibile inserire una riga in sysctl per disabilitare ipv6.

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

questo funzionerà dopo il prossimo riavvio.


È /etc/sysctl.conf come file di destinazione. Tieni presente che> sostituirà l'intero file!
David,

2

In Raspbian Jessie / Jessie Lite, è sufficiente modificare il /etc/sysctl.conffile e aggiungere l'opzione per disabilitare ipv6, come segue:

sudo nano /etc/sysctl.conf

Inserisci il testo:

net.ipv6.conf.all.disable_ipv6=1

Salvare il file con Ctrl-O, Ctrl-Xe riavviare il RPI.


2

sudo nano /etc/sysctl.conf

aggiungere le seguenti righe per disattivare ipv6:

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

eseguire sudo sysctl -pper rendere effettive o semplicemente riavviare.


1

il modo più semplice che ho trovato per ottenere anche un indirizzo IPv4 per l'interfaccia stava cambiando / etc / network / interfaces: impostando il manuale su dhcp ... che ti procura anche un indirizzo IPv4 su eth0 ... probabilmente solo un hack ma rifugio ' non ho ancora trovato niente di meglio ...

    auto eth0
    allow-hotplug eth0
    # iface eth0 inet manual
    iface eth0 inet dhcp

Raspbian Jessie non lo utilizza dhcp(a meno che l'utente non abbia veramente smanettato con esso) e ciò impedirebbe il funzionamento del supporto WiFi della GUI.
Milliways,

1

Combinazione, correzione e aggiunta alle risposte precedenti:

Per correggere un'interfaccia (eth o wlan) che mostra solo un indirizzo inet6 (IPV6) e nessun indirizzo inet (IPV4), è possibile aggiungere un file di configurazione per disabilitare l'assegnazione inet6 (IPV6), in modo che tutte le interfacce ricevano un inet (IPV4) indirizzo. Se quel file di configurazione viene quindi nuovamente cancellato, alle interfacce verrà dato ENTRAMBE un indirizzo inet (IPV4) e un inet6 (IPV6), ovvero un ritorno al solito stato predefinito.

Per aggiungere il file:

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

e aggiungi la riga singola:

net.ipv6.conf.all.disable_ipv6=1

Salva con Ctrl-O, Y, [Ritorna]. Riavvia e accedi di nuovo.

sudo reboot

Controlla gli indirizzi usando

ifconfig

Rimuovere il file di configurazione e riavviare:

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

Controlla di nuovo con ifconfig:

ifconfig

Vedi entrambi gli indirizzi inet (IPV4) e inet6 (IPV6) per tutte le interfacce:

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

E posso ancora una volta SSH sul mio Pi Zero usando eth0 o wlan0, entrambi usando l'indirizzo IPV4 o IPV6.


1

Ho aggiornato il mio Raspberry Pi a Stretch e non sono riuscito ad avere alcun successo con qualsiasi variazione delle net.ipv6.conf.all.disable_ipv6=1risposte.

Esecuzione manuale sudo dhclient -4 -v eth0per ripristinare la connettività di rete / Internet, tuttavia, come indicato dal poster originale, non sopravvive al riavvio.

Ho notato che ha sudo ifup -v eth0chiamatodhclient , ma non funzionava e invece di funzionare correttamente, mostrava le informazioni sull'uso del dhclientcomando.

La soluzione alternativa sembra essere quella di allontanarsi dhcliente installare invece isc-dhcp-client. Al riavvio, la mia connettività era automaticamente disponibile dopo l'installazione di questo pacchetto.

sudo apt-get install isc-dhcp-client
sudo reboot

0

Ho lo stesso problema e ho provato la soluzione di seguito, funziona benissimo dopo aver riavviato il mio Pi.

sudo nano  /etc/sysctl.d

genere

net.ipv6.conf.all.disable_ipv6=1

risparmia con ^Oasysctl.d

sudo reboot

Ora vedo il mio indirizzo IP4 sullo schermo di avvio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.