我有有线和 wifi 连接。
有线连接互联网可用,但 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
/etc/resolv.conf
首先,如果您 ping google.com,您的 PC 会尝试通过给出的名称服务器(末尾没有 e!)将名称解析为 IP 地址。
其次,如果这不是 superuser.com 上的拼写错误,则您的名称服务器指向 193.168.0.1,而不是 192.168.0.1。因此,它无法解析名称。相反,您的 PC 会尝试访问 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
。在我的 PC 上,我发现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 客户端如注释中所述无线网络连接步骤。
sudo cat >> /etc/iwd/main.conf [General] EnableNetworkConfiguration=true
-
检查系统日志中是否存在
error
与fail
DNS 相关的内容。我的日志显示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
。