Ich habe eine Kabel- und auch eine WLAN-Verbindung.
Die kabelgebundene Internetverbindung funktioniert, während das Internet über WLAN nicht funktioniert
Bei einer Verbindung per Kabel und auch per WLAN ist die folgende Ausgabe von ifconfig zu sehen.
root@gauranga /home/simha # ifconfig
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.5.113 netmask 255.255.248.0 broadcast 192.168.7.255
inet6 fe80::66f9:5aa3:5449:bbf5 prefixlen 64 scopeid 0x20<link>
ether 68:f7:28:71:8d:be txqueuelen 1000 (Ethernet)
RX packets 736130 bytes 710984014 (678.0 MiB)
RX errors 0 dropped 181 overruns 0 frame 0
TX packets 278415 bytes 23924104 (22.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 1428 bytes 369189 (360.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1428 bytes 369189 (360.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.5.245 netmask 255.255.248.0 broadcast 192.168.7.255
inet6 fe80::14ac:2256:c091:2660 prefixlen 64 scopeid 0x20<link>
ether 2e:dc:cd:0d:1f:82 txqueuelen 1000 (Ethernet)
RX packets 1237969 bytes 135361481 (129.0 MiB)
RX errors 0 dropped 4059 overruns 0 frame 0
TX packets 18074 bytes 2059915 (1.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Wenn Sie nur WLAN verwenden, wird ein Ping an 192.168.0.1 gesendet.
$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=10.7 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=7.82 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=12.0 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=7.14 ms
Beim Pingen an google.com wird jedoch nichts angezeigt. Weiter geht es nicht.
/etc/resolv.conf ist
nameserver 192.168.0.1
Auch bei WLAN:
simha@gauranga ~ % ip route show
default via 192.168.0.1 dev wlp3s0 proto static metric 600
192.168.0.0/21 dev wlp3s0 proto kernel scope link src 192.168.5.245 metric 600
Und bei kabelgebundener Verbindung:
simha@gauranga ~ % ip route show
default via 192.168.0.1 dev enp2s0 proto static metric 100
192.168.0.0/21 dev enp2s0 proto kernel scope link src 192.168.5.113 metric 100
Ich verstehe das Problem nicht.
All dies geschah, nachdem ich Archlinux aktualisiert hatte.
Antwort1
/etc/resolv.conf
Wenn Sie zunächst google.com anpingen, versucht Ihr PC, den Namen über einen in (ohne e am Ende!) angegebenen Nameserver in eine IP-Adresse aufzulösen .
Zweitens, falls es hier auf superuser.com kein Tippfehler war, verweist Ihr Nameserver auf 193.168.0.1, nicht 192.168.0.1. Daher kann der Name nicht aufgelöst werden. Stattdessen versucht Ihr PC, zu 193.168.0.1 zu gelangen und findet es nicht. (Auch wenn 193.168.0.1 war Ihr Nameserver, er befindet sich nicht im selben Netzwerk wie 192.168.0.0/255.255.248.0. Er muss sich nicht im selben Netzwerk befinden, aber dann muss das Routing so eingerichtet sein, dass eine Route zum Nameserver bekannt ist).
Überprüfen Sie dann Ihre Routing-Tabelle über ip route show
oder ip route
( ip r
Synonyme). Falls keine Standardroute vorhanden ist, fügen Sie eine über hinzu ip route add default via 192.168.0.1
. Versuchen Sie es anschließend ping google.com
erneut.
Bearbeiten: Um die Routen einschließlich der Standardroute dauerhaft zu konfigurieren, verwenden Sie je nach Ihrer Systemd-Version netctl
oder systemd-networkd
. Auf meinen PCs finde ich netctl
das Festlegen der Routen tendenziell stabiler als systemd-networkd
.
Antwort2
Derselbe Fall wie bei mir, wo mein Gerät (Dell mitBroadcom BCM43228wo ich manuell installiert habe dieb43-firmware) ist mit dem (drahtlosen) WLAN verbunden (da es in den verbundenen Geräten des Routers sichtbar ist), hat aber keinen Zugriff auf das Internet (kann nicht ping
). Ich verwendeiwd /iwctl
wie derzeit in derArch Linux-Installationsdokument.
Einige Dinge, die Sie ausprobieren können:
- Anmerkungen:
- Sie können unten direkt Nr. 5 ausprobieren. Dies ist der Schritt, der letztendlich dazu führte, dass ich
ping google.com
- Bei den folgenden Befehlen wird
wlan0
der Name des Geräts wie in angenommenip link
. Passen Sie ihn entsprechend an.
- Sie können unten direkt Nr. 5 ausprobieren. Dies ist der Schritt, der letztendlich dazu führte, dass ich
Starten / Neustarten desiwdService
sudo systemctl start iwd.service
Installieren Sie es, falls es noch nicht existiert. Verwenden Sie entweder eine kabelgebundene Ethernet-Verbindung zum Router oder schließen Sie ein Android-Telefon (mit Internetzugang) an und aktivieren Sie „Modem USB“, damit es als kabelgebundene Verbindung fungiert. Wenn dies in der Arch Linux-Umgebung nicht möglich ist, können Sie versuchen, das Arch-Installationsprogramm (bootfähiges Laufwerk) und dann
mount
das Festplattenlaufwerk zu verwendenmount --mkdir /dev/sda2 /mnt/sda2
undchroot
in diesesarch-chroot /mnt/sda2
pacman -S iwd
Aktivieren Sie die Schnittstelle
ip link # or ls /sys/class/net ip link set wlan0 up # where wlan0 is the device name
Stellen Sie sicher, dass Siemit dem WLAN verbunden.
sudo iwctl device wlan0 show sudo iwctl station wlan0 show
Verbindenwenn noch nicht verbunden
sudo iwctl --passphrase mywifipassword station wlan0 connect MyWifiSsidName
Greifen Sie außerdem auf den Router zu und zeigen Sie die verbundenen Geräte an, um sicherzustellen, dass Sie verbunden sind.
Um die automatische IP-Adresszuweisung zu aktivieren,den integrierten DHCP-Client manuell aktivierenwie in der Anmerkung imSchritte zur Wi-Fi-Verbindung.
sudo cat >> /etc/iwd/main.conf [General] EnableNetworkConfiguration=true
Daswar dasSchrittdadurch hat es bei mir endlich geklappt.
Überprüfen Sie die Systemprotokolle auf DNS-bezogene Dinge. Meines
error
zeigtefail
WARNING: src/resolve.c:resolve_systemd_set_dns() condition !systemd_state.is_ready failed
journalctl journalctl | grep -i dns
Überprüfen Sie, ob ein Fehler vorliegt. Meins zeigte
Failed to set global data: Unit dbus-org.freedesktop.resolve1.service not found.
systemd-resolve --status
Starten Sie den Dienst neu
sudo systemctl restart systemd-resolved
Nach diesem Schritt konnte ich erfolgreich
ping google.com
Zum Debuggen sind die Befehle dmesg
und einige nützliche Befehle journalctl
.