我有一台运行 Ubuntu 16.04 的新笔记本电脑,几个星期以来运行良好,但现在无法通过 Wi-fi 连接互联网。我知道这不是我的路由器或 ISP 的问题,因为我正在使用我的旧 Windows 笔记本电脑在同一个家庭网络上撰写这篇文章,而 Ubuntu 笔记本电脑无法连接到该网络。
我已成功连接到我的路由器,并且运行nmcli dev
显示我已连接到我的 wifi 设备(wlp2s0)和无线网络。
昨晚我可以打开一些页面(Google、Facebook、YouTube),但不能打开其他页面(ubuntu.com、riken.jp)。当时我怀疑是 IPv6 可以工作但 IPv4 不能工作。但是现在,什么都不起作用。Chromium、ping、wget、dig —— 什么都没有。/etc/resolv.conf/
什么都没有(除了注释行告诉我不要编辑它),并且返回的表route
是空的。
更新 1:我ipconfig /all
在我的 Windows 机器上用来查明它正在使用哪些 DNS 服务器(75.75.75.75、75.75.76.76.、2001:558:feed::1、2001:558:feed::2),然后使用网络连接将它们添加为我的家庭网络的 DNS 服务器。cat /etc/resolv.conf
现在给了我nameserver 127.0.1.1
;我不完全确定这是什么意思,但我认为它是某种别名,对吗?nmcli dev show | grep DNS
显示我使用两个 IPv6 DNS 服务器(2001:558:feed::1 和 2001:558:feed::2)。
我可以wget
使用解析为 IPv6 地址的 URL,如下所示:
craig@craig-XPS-13-9370:~$ wget www.google.com
--2018-04-14 13:06:17-- http://www.google.com/
Resolving www.google.com (www.google.com)... 2607:f8b0:4004:808::2004,
172.217.13.68
Connecting to www.google.com
(www.google.com)|2607:f8b0:4004:808::2004|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html.5’
index.html.5 [ <=> ] 10.41K --.-KB/s in 0.003s
2018-04-14 13:06:17 (3.36 MB/s) - ‘index.html.5’ saved [10659]
我无法获取wget
处理解析为 IPv4 地址的 URL 的请求:
craig@craig-XPS-13-9370:~$ wget www.ubuntu.com
--2018-04-14 13:06:28-- http://www.ubuntu.com/
Resolving www.ubuntu.com (www.ubuntu.com)... 91.189.89.118
Connecting to www.ubuntu.com (www.ubuntu.com)|91.189.89.118|:80... failed:
Network is unreachable.
添加-4
标志以wget
强制使用 IPv4 会得到类似的结果:
craig@craig-XPS-13-9370:~$ wget -4 www.google.com
--2018-04-14 13:06:41-- http://www.google.com/
Resolving www.google.com (www.google.com)... 172.217.13.68
Connecting to www.google.com (www.google.com)|172.217.13.68|:80... failed:
Network is unreachable.
同样,ping www.google.com
不起作用,但ping6 www.google.com
确实起作用。因此,很明显 IPv4 出了问题,但我不确定是什么...
更新2:我觉得我的问题看起来很类似这个问题,但那里建议的解决方案(通过网络连接禁用 IPv4)似乎没有影响任何东西。不过,它确实给了我一些想法,让我可以与其他人分享:
输出自cat /etc/network/interfaces
:
craig@craig-XPS-13-9370:~$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
输出自ifconfig
:
craig@craig-XPS-13-9370:~$ ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:13526 errors:0 dropped:0 overruns:0 frame:0
TX packets:13526 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:1031920 (1.0 MB) TX bytes:1031920 (1.0 MB)
wlp2s0 Link encap:Ethernet HWaddr 9c:b6:d0:8b:4b:c5
inet6 addr: fe80::1f3b:5545:508:919a/64 Scope:Link
inet6 addr: 2601:140:8600:e0:d64b:9272:665f:3734/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19665 errors:0 dropped:0 overruns:0 frame:0
TX packets:10262 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14731745 (14.7 MB) TX bytes:1722860 (1.7 MB)
输出自iwconfig
:
craig@craig-XPS-13-9370:~$ iwconfig
lo no wireless extensions.
wlp2s0 IEEE 802.11abgn ESSID:"MOTOROLA-ABD39"
Mode:Managed Frequency:2.447 GHz Access Point: 34:1F:E4:E4:35:D0
Bit Rate=1 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=55/70 Signal level=-55 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:39 Missed beacon:0
输出自cat /etc/resolv.conf
:
craig@craig-XPS-13-9370:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
输出自route -n
:
craig@craig-XPS-13-9370:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
输出自route -6 -n
:
craig@craig-XPS-13-9370:~$ route -6 -n
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
2601:140:8600:e0::/64 :: U 600 0 0 wlp2s0
2601:140:8600:e0::/60 fe80::361f:e4ff:fee4:35cf UG 600 0 0 wlp2s0
fe80::/64 :: U 256 0 0 wlp2s0
::/0 fe80::361f:e4ff:fee4:35cf UG 600 2 4 wlp2s0
::/0 :: !n -1 1 1495 lo
::1/128 :: Un 0 7 46 lo
2601:140:8600:e0:d64b:9272:665f:3734/128 :: Un 0 2 150 lo
fe80::1f3b:5545:508:919a/128 :: Un 0 2 4 lo
ff00::/8 :: U 256 7 99 wlp2s0
::/0 :: !n -1 1 1495 lo
输出自ip neigh
:
craig@craig-XPS-13-9370:~$ ip neigh
fe80::361f:e4ff:fee4:35cf dev wlp2s0 lladdr 34:1f:e4:e4:35:cf router REACHABLE
答案1
不确定这是否是一个永久的解决方案,但我设法通过释放和更新我的 IP 地址使一切恢复正常:
sudo dhclient -r wlp2s0
sudo dhclient wlp2s0
现在inet addr
我运行时会看到一行ifconfig
(以前从来没有出现过),并且cat /etc/resolv.conf
已为我的 ISP 添加 IPv4 名称服务器和“搜索”行(搜索 hsd1.va.comcast.net)。问题解决了!
答案2
有时这可能是由于系统时间不正确造成的。如果您的系统时间相差太大,DHCP 将不会为您租用 IPv4,而只会为您租用 IPv6。
timedatectl
您可以通过在终端中运行来检查系统时间设置。
如果您需要重新配置系统时间和/或时区,请sudo dpkg-reconfigure tzdata
在终端中运行。
无论如何,分配静态 IP/网关/DNS 也可以起作用,但某些网站会抱怨。
答案3
在我的例子中(在 Ubuntu 20.04 FWIW 上),NIC 没有配置为使用 DHCP。我不得不/etc/netplan/00-installer-config.yaml
更新
network:
ethernets:
enp5s0: # new interface
dhcp4: true
然后运行netplan apply
我不记得是否还必须运行dhclient -r enp5s0
以强制它再次获取 DHCP。
答案4
在花了一整天时间在笔记本电脑上进行故障排除后,将我的移动 APN 从 ipv6 更改为 ipv4/ipv6 终于成功了。