IPv4-Adresse erzwingen

15

Ich habe meinen Raspberry Pi auf Jessie upgegradet, der verwendet systemd. Ein Nebeneffekt ist, dass die Verbindung nur über IPv6 hergestellt wird und keine IPv4-Adresse hat. Wie kann ich erzwingen, dass eine IPv4-Adresse vom DHCP-Server abgerufen wird?

Eine Ad-hoc-Lösung ist der Befehl

sudo dhclient -4 -v eth0

Dies dauert jedoch nur für die aktuelle Sitzung.

John Smith
quelle
Keine der folgenden Antworten hat für mich funktioniert, stattdessen musste ich sudo apt-get install isc-dhcp-clientnach dem Verwenden von sudo dhclient -4 -v eth0, um online zu gehen.
Mrswadge
Ein weiterer Kontext zu meinem vorherigen Kommentar. In meiner Situation sind die Symptome beim Ausführen sudo ifup -v eth0des Aufrufs an dhclient fehlgeschlagen und es wurden stattdessen die Nutzungsinformationen angezeigt.
Mrswadge

Antworten:

9

Raspbian Jessie hat keine Datei mehr mit dem Namen /etc/sysctl.d- es ist jetzt ein Ordner mit dem gleichen Namen.

Gemäß der Readme-Datei im selben Ordner wird README.sysctlim Grunde gesagt, dass jede .confDatei beim Booten eingelesen und verarbeitet wird. Jeder legale Dateiname wird funktionieren, aber sie haben vorgeschlagen local.conf, also habe ich das verwendet.

Ich habe /etc/sysctl.d/local.confdie einzelne Zeile aus den anderen Antworten erstellt und hinzugefügt:

net.ipv6.conf.all.disable_ipv6=1

Dies scheint gut zu funktionieren.

Jim
quelle
Alles .din /etcwar nie etwas anderes als ein Verzeichnis. Ich weiß nicht, ob es sich bei Joe Platanos Antwort um einen Tippfehler handelt oder ob das tatsächlich funktionieren wird, irgendwie bezweifle ich es (obwohl es eine andere Antwort zu geben scheint, die dies bestätigt).
Goldlöckchen
2

Sie können eine Zeile in sysctl einfügen, um ipv6 zu deaktivieren.

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

Dies funktioniert nach dem nächsten Neustart.

Joe Platano
quelle
Es ist /etc/sysctl.conf als Zieldatei. Beachten Sie, dass> die gesamte Datei überschreibt!
David
2

Bearbeiten Sie in Raspbian Jessie / Jessie Lite einfach die /etc/sysctl.confDatei und fügen Sie den Schalter zum Deaktivieren von ipv6 wie folgt hinzu:

sudo nano /etc/sysctl.conf

Geben Sie den Text ein:

net.ipv6.conf.all.disable_ipv6=1

Speichern Sie die Datei mit Ctrl-O, Ctrl-Xund starten Sie den RPi.

guitarpicva
quelle
2

sudo nano /etc/sysctl.conf

Fügen Sie die folgenden Zeilen hinzu, um ipv6 zu deaktivieren:

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

Führen Sie sudo sysctl -pden Befehl aus , um die Einstellungen zu übernehmen, oder starten Sie den Computer neu.

AlexOnLinux
quelle
1

Der einfachste Weg, auch eine IPv4-Adresse für die Schnittstelle zu erhalten, war das Ändern von / etc / network / interfaces: Setzen des Handbuchs auf dhcp. Damit erhalten Sie auch eine IPv4-Adresse auf eth0. Wahrscheinlich nur ein Hack, aber ein Port. Ich habe auch noch nichts besseres gefunden ...

    auto eth0
    allow-hotplug eth0
    # iface eth0 inet manual
    iface eth0 inet dhcp
Ghosty
quelle
Raspbian Jessie wird nicht verwendet dhcp(es sei denn, der Benutzer hat wirklich damit herumgespielt), und dies würde verhindern, dass die GUI-WiFi-Unterstützung funktioniert.
Milliways
1

Kombinieren, Korrigieren und Hinzufügen zu den vorherigen Antworten:

Um eine Schnittstelle (entweder eth oder wlan) zu reparieren, die nur eine inet6-Adresse (IPV6) und keine inet-Adresse (IPV4) anzeigt, können Sie eine Konfigurationsdatei anhängen, um die inet6-Zuweisung (IPV6) zu deaktivieren, sodass alle Schnittstellen ein inet erhalten (IPV4) -Adresse. Wenn diese Konfigurationsdatei dann wieder gelöscht wird, erhalten die Schnittstellen BEIDE eine inet (IPV4) und eine inet6 (IPV6) -Adresse, dh eine Rückkehr zum normalen Standardzustand.

So fügen Sie die Datei hinzu:

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

und füge die einzelne Zeile hinzu:

net.ipv6.conf.all.disable_ipv6=1

Speichern Sie mit Strg-O, Y, [Return]. Starten Sie neu und melden Sie sich erneut an.

sudo reboot

Überprüfen Sie die Adressen mit

ifconfig

Entfernen Sie die Konfigurationsdatei und starten Sie neu:

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

Überprüfen Sie noch einmal mit ifconfig:

ifconfig

Informationen zu allen Schnittstellen finden Sie unter den Adressen inet (IPV4) und inet6 (IPV6):

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

Und ich kann wieder mit eth0 oder wlan0 zu meinem Pi Zero SSH, beide entweder mit IPV4- oder IPV6-Adresse.

ExperiMentor
quelle
1

Ich habe meinen Raspberry Pi auf Stretch umgestellt und konnte mit keiner Variation der net.ipv6.conf.all.disable_ipv6=1Antworten Erfolg haben .

Manuelles Ausführen sudo dhclient -4 -v eth0, um die Netzwerk- / Internetverbindung wiederherzustellen. Wie auf dem Originalposter angegeben, übersteht es einen Neustart nicht.

Mir ist aufgefallen, dass der Befehl sudo ifup -v eth0aufgerufen wurde dhclient, aber er schlug fehl und statt ordnungsgemäß zu funktionieren, wurden die Verwendungsinformationen für den dhclientBefehl angezeigt.

Die Problemumgehung scheint darin zu bestehen, sich von der dhclientInstallation zu entfernen isc-dhcp-client. Beim Neustart war meine Konnektivität nach der Installation dieses Pakets automatisch verfügbar.

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

Ich habe das gleiche Problem und habe die folgende Lösung ausprobiert. Dies funktioniert nach dem Neustart meines Pi einwandfrei.

sudo nano  /etc/sysctl.d

Art

net.ipv6.conf.all.disable_ipv6=1

sparen mit ^Ozusysctl.d

sudo reboot

Jetzt sehe ich meine IP4-Adresse auf dem gebooteten Bildschirm.

sns5400
quelle