Arch Linux - connect: Netzwerk ist nicht erreichbar

22

Nach fünf erfolglosen Arch Linux-Installationen habe ich zwei, die korrekt installiert wurden. Das erste Mal funktionierte das Netzwerk einwandfrei und ich installierte sogar Arch Linux über SSH.

Nach dem Booten vom installierten System anstelle der Live-CD kann keine Verbindung zum Netzwerk hergestellt werden. Ich erhalte die folgende Meldung, wenn ich versuche, einen Ping-Befehl zu senden, auch bei meinem Router:

connect: Netzwerk ist nicht erreichbar

Ich habe versucht, Arch erneut zu installieren, da nichts im Internet mein Problem zu beheben schien. Nach der Installation erhalte ich das gleiche Problem.

Es scheint, dass eth0 nicht gestartet werden kann, da das Zeitlimit überschritten wird.

Novicode
quelle
4
Hast du es versucht dhcpcd eth0?
Uzsolt
@uzsolt Ja, es wird ein Methodenaufruf "Fehlgeschlagen" ausgegeben: Kein solcher Datei- oder Verzeichnisfehler. Ich habe auch ein Thema in den offiziellen Foren gepostet. Ich werde die Antwort hier posten, wenn ich eine finde.
Novicode
ifconfig eth0 upschon erledigt? Wird Ihre Netzwerkkarte von Linux erkannt (Modul ist geladen)? Vor allem bittesystemctl stop netctl-eth0...
uzsolt
Verdammt ... du hast kein eth0, du hast ... ich kann es nicht lesen :( bbs.archlinux.org/viewtopic.php?pid=1291880#p1291880 Also solltest du NO eth0 einrichten, das du verwenden solltest stattdessen enp1s0(oder was zum Teufel ist auf deinem Foto :)).
Uzsolt
Ich bin froh, Ihr Problem gelöst zu haben.
Uzsolt

Antworten:

26

Das Problem, mit dem ich konfrontiert war, war, dass es keine gab eth0(soweit ich das verstehen kann). Führen Sie den Befehl aus ip link, dies sollte Ihre Schnittstellen ausgeben. Ich hatte die eth0Schnittstelle nicht. Stattdessen hatte ich enp1s8.

Weil ich statisch wurde mit, kopierte ich das Beispiel Profil mit cd /etc/netctldann cp examples/ethernet-static my-network. Danach habe ich bearbeitet my-networkmit nano my-network, und änderte die Schnittstelle aus eth0zu en1s8(oder was auch immer Ihr Adapter ist in ip link). Schließlich habe ich es aktiviert, um dieses Profil beim Start mit zu verwenden netctl enable my-network.

Durch das Aktivieren des Profils wird sichergestellt, dass es beim Start gestartet wird. Es ist jedoch nicht erforderlich, das System neu zu starten. Führen Sie netctl start my-networkes einfach aus , um es sofort zu initialisieren.

Ich konnte in den offiziellen Arch Linux-Foren Hilfe bekommen, Sie können mein Thema dort ansehen .

Novicode
quelle
4

Netzwerk nicht erreichbar bedeutet, dass Sie keine Route zum Netzwerk haben. Wenn Sie nicht einmal den lokalen Router anpingen können, haben Sie entweder keine IP-Adresse oder Ihre Netzwerkschnittstelle ist ausgefallen.

netctlist das Standarddienstprogramm zum Verwalten von Netzwerkschnittstellen in Arch. Wenn Sie dies (oder etwas anderes) nicht eingerichtet haben, haben Sie kein Netzwerk. Nicht einmal DHCP.

David Baggerman
quelle
Ich habe eine Beispieldatei von examples / ethernet-static nach "my-network" kopiert, diese Datei geändert und beim Start mit "netctl enable my-network" aktiviert. Auch im Netzwerk gibt es keine IP-Konflikte. Es sollte "Einrichten" sein
Novicode
Um herauszufinden, ob Sie Ihr Standard-Gateway erreichen können (dies ist häufig Ihr Router), geben Sie ein ip route. Wenn sich herausstellt, dass Sie kein Standard-Gateway haben, sollten Sie eines entweder per DHCP oder mit hinzufügen ip route add default via xxx.xxx.x.xxx. Fügen Sie die IP zu hinzu, um das Standard-Gateway dauerhaft zu machen /etc/network/interfaces.
Matthias Braun
3

Die Netzwerkeinrichtung für ArchLinux ist im ArchLinux-Wiki unter https://wiki.archlinux.org/index.php/Netctl ausführlich dokumentiert

Eine wichtige Klarstellung der Antwort mit der höchsten Stimmenzahl - es besteht KEINE Notwendigkeit, neu zu starten. Wenn nur die Netzwerkschnittstelle vorhanden ist und der richtige Schnittstellenname und die richtige Konfiguration in der Profildatei in / etc / netcl verwendet werden (die Beispielkopie soll mynet1 heißen), dann

netctl start mynet1

startet das Netzwerkprofil mynet1 und die Netzwerkroute soll funktionieren.

jedoch

netclt enable mynet1

ermöglicht, dass der Systemdienst von systemd service manager bei jedem Start gestartet wird, dh, es wird eine Einheitendatei in /etc/systemd/system/netc@[mynetprofilename).service mit den Einheitendetails (Gerätebindung und -abhängigkeit) erstellt.

Beachten Sie auch, dass das Netzwerkprofil, wenn es geändert wird, erneut aktiviert werden muss.

predmod
quelle
0

Archlinux sagt, versuchen Sie es mit dhcpcd, falls Ihr Installationsprogramm keine automatische Verbindung herstellen kann. Dies funktionierte für mich sofort nach der Installation. Geben Sie einfach "dhcpcd" als Befehl ein, warten Sie einige Sekunden und dann "ip route" oder "ping 8.8.8.8", um zu überprüfen, ob es funktioniert. Ich habe sogar "watch ip address" benutzt, um zu sehen, wie schnell diese inet- und inet6-Adressen auftauchen.

Anstatt dhcpcd zu verwenden, kann ich auch eine Verbindung von Null aus herstellen mit:

modprobe e1000e

ip link set dev eth0 up
ip address add 192.168.0.16/24 dev eth0
ip route add 192.168.0.0/24 dev eth0
ip route add default via 192.168.0.1

e1000e ist ein "Netzwerktreiber", sagt modinfo. Durch das Laden dieses Moduls erhalte ich einen eth0-Link (nein, nicht in / dev suchen). Die "ip" -Befehle aktivieren den Link, wählen eine Adresse und definieren ein lokales (Subnetz) und dann ein Standard-Gateway. Ich habe einige Zeit gebraucht, um dies zu testen (Hilfe zu IP-Links, Hilfe zu IP-Adressen, Hilfe zu IP-Routen ...).

Das ist also lehrreich, aber "dhcpcd" ist schneller zu tippen und wahrscheinlich robuster. Und Sie können es mit "dhcpcd -x" sauber stoppen.

Mit einem funktionierenden Ping und der Spiegelliste in /etc/pacman.d/ haben Sie alles, was Sie für Pacman oder Pacstrap benötigen.

Und ja, ich habe eine Kernel-Nachricht gesehen, die eth0 in enoxxx umbenannt hat. Sie müssen also zuerst mit "ip link" überprüfen, welche Schnittstellen bereits von systemd eingerichtet wurden. Es passiert hier:

[    3.052354] e1000e 0000:00:1f.6 eth0: (PCI Express:2.5GT/s:Width x1) 94:c6:91:a5:39:b8
[    3.052360] e1000e 0000:00:1f.6 eth0: Intel(R) PRO/1000 Network Connection
[    3.052445] e1000e 0000:00:1f.6 eth0: MAC: 13, PHY: 12, PBA No: FFFFFF-0FF
[    3.055917] e1000e 0000:00:1f.6 eno1: renamed from eth0

Die .16 in meiner Adresse ist nur eine beliebige (freie) Nummer, und 192.168.0.1 sollte immer das Gateway sein. Vielleicht hatte ich Glück, aber es ist eine gute Nachricht, dass Sie unter systemd und inet6 herumhacken können. Ich werde allerdings netctl ausprobieren.

Und jetzt habe ich mit systemd gebootet und dhcpcd gestartet. Ich habe die Adresse .15 auf "eno1" und drei inet6-Adressen erhalten, aber ansonsten ist das Ergebnis ziemlich das gleiche wie beim obigen "ip" -Hack.

3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 94:c6:91:a5:39:b8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.15/24 brd 192.168.0.255 scope global noprefixroute eno1
       valid_lft forever preferred_lft forever
    inet6 2a05:41c0:12:bf00::2/128 scope global dynamic noprefixroute 
       valid_lft 2559430sec preferred_lft 572230sec
    inet6 2a05:41c0:12:bf00:f51e:97c1:de6f:6f49/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 2591994sec preferred_lft 604794sec
    inet6 fe80::47cf:a2e4:af0b:b7cd/64 scope link 
       valid_lft forever preferred_lft forever 


 default via 192.168.0.1 dev eno1 proto dhcp src 192.168.0.15 metric 203 
 192.168.0.0/24 dev eno1 proto dhcp scope link src 192.168.0.15 metric 203 

quelle