IPv6 工作正常,但 IPv4 不工作

cjo*_*ley 14 ipv6 wireless networking dns ipv4

我有一台运行 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]
Run Code Online (Sandbox Code Playgroud)

我无法收到使用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.
Run Code Online (Sandbox Code Playgroud)

添加-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.
Run Code Online (Sandbox Code Playgroud)

同样,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
Run Code Online (Sandbox Code Playgroud)

输出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)
Run Code Online (Sandbox Code Playgroud)

输出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
Run Code Online (Sandbox Code Playgroud)

输出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
Run Code Online (Sandbox Code Playgroud)

输出route -n

craig@craig-XPS-13-9370:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
Run Code Online (Sandbox Code Playgroud)

输出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
Run Code Online (Sandbox Code Playgroud)

输出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
Run Code Online (Sandbox Code Playgroud)

cjo*_*ley 20

不确定这是否是一个永久的解决方案,但我通过释放和更新我的 IP 地址设法让事情再次工作:

sudo dhclient -r wlp2s0
sudo dhclient wlp2s0
Run Code Online (Sandbox Code Playgroud)

现在我inet addr在运行时看到一行ifconfig(以前从未出现过)并cat /etc/resolv.conf为我的 ISP 添加了一个 IPv4 名称服务器和一个“搜索”行(搜索 hsd1.va.comcast.net)。问题解决了!

  • 因为它不是永久的解决方案,而且我在这里遇到了同样的问题 - 什么是永久的解决方案? (4认同)

小智 8

有时这可能是由不正确的系统时间引起的。如果您的系统时间太远,您将不会被 DHCP 租用 IPv4——只会租用 IPv6。

您可以通过timedatectl在终端中运行来检查系统时间设置。

如果您需要重新配置系统时间和/或时区,请sudo dpkg-reconfigure tzdata在终端中运行。

无论如何,分配静态 IP/网关/DNS 也可以工作,但某些网站会抱怨。