我有有線和無線網路連線。
有線連接可以上網,而wifi不能上網
如果連接到有線和 WiFi,以下是 ifconfig 的輸出。
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
如果僅使用 wifi,它會 ping 到 192.168.0.1
$ 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
而 ping 到 google.com 卻沒有顯示任何內容。它並沒有更進一步。
/etc/resolv.conf 是
nameserver 192.168.0.1
另外,使用 wifi 時:
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
當有線時:
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
我無法理解這個問題。
這一切都是在我升級 archlinux 之後發生的。
答案1
首先,如果您 ping google.com,您的 PC 會嘗試透過中給出的名稱伺服器將該名稱解析為 IP 位址/etc/resolv.conf
(末尾不帶 e!)。
其次,如果 superuser.com 上沒有拼字錯誤,您的名稱伺服器指向 193.168.0.1,不是 192.168.0.1。因此,它無法解析該名稱。相反,您的電腦嘗試存取 193.168.0.1,但找不到。 (即使193.168.0.1 是您的名稱伺服器,它與 192.168.0.0/255.255.248.0 不在同一網路上。它不必位於同一網路上,但必須設定路由才能知道到名稱伺服器的路由)。
ip route show
然後,透過,ip route
或ip r
(同義詞)檢查您的路由表。如果沒有預設路由,請透過 新增一條ip route add default via 192.168.0.1
。之後,再試ping google.com
一次。
編輯:根據您的 systemd 版本,永久配置包括預設路由在內的路由,使用netctl
或systemd-networkd
。在我的電腦上,我發現netctl
設定路由比systemd-networkd
.
答案2
與我的情況相同,我的設備(戴爾配備博通 BCM43228我手動安裝的地方b43-韌體)已連接到(無線)Wi-Fi(因為它在路由器的連接設備中可見),但它無法存取互聯網(不能ping
)。我在用國際婦女節 /iwctl
按照目前的指示Arch Linux安裝文檔。
一些值得嘗試的事情:
- 筆記:
- 你可以直接嘗試下面的#5。這一步最終使我能夠
ping google.com
- 下面的命令假定
wlan0
為設備名稱,如 所示ip link
。相應地進行調整。
- 你可以直接嘗試下面的#5。這一步最終使我能夠
啟動/重新啟動國際婦女節服務
sudo systemctl start iwd.service
如果尚不存在,請安裝。使用有線乙太網路連接到路由器或連接 Android 手機(可存取網路)並啟用「數據機 USB」以充當有線連接。如果在 Arch Linux 環境中無法實現,您可以嘗試使用 Arch 安裝程式(可啟動磁碟機),然後使用
mount
硬碟mount --mkdir /dev/sda2 /mnt/sda2
並chroot
進入該安裝程式arch-chroot /mnt/sda2
pacman -S iwd
-
ip link # or ls /sys/class/net ip link set wlan0 up # where wlan0 is the device name
確保你是連接到 Wi-Fi。
sudo iwctl device wlan0 show sudo iwctl station wlan0 show
連接如果尚未連接
sudo iwctl --passphrase mywifipassword station wlan0 connect MyWifiSsidName
另外,訪問路由器並查看已連接的設備以確保已連接。
若要啟用自動 IP 位址分配,手動啟用內建 DHCP 用戶端如註釋中所述Wi-Fi 連線步驟。
sudo cat >> /etc/iwd/main.conf [General] EnableNetworkConfiguration=true
-
檢查系統日誌中是否有與 DNS 相關的任何內容
error
。fail
我的顯示WARNING: src/resolve.c:resolve_systemd_set_dns() condition !systemd_state.is_ready failed
journalctl journalctl | grep -i dns
檢查是否有錯誤。我的顯示
Failed to set global data: Unit dbus-org.freedesktop.resolve1.service not found.
systemd-resolve --status
重新啟動服務
sudo systemctl restart systemd-resolved
經過這一步,我能夠成功
ping google.com
對於調試,一些有用的命令是dmesg
和journalctl
。