当我在路由器上使用库存的 Linksys 固件时,我的联网设备仅正确使用 IPv4 来访问 Internet。
当我使用 OpenWRT 15.05.1 时,设备会尝试使用 IPv6 地址连接到各种站点,如果我的 ISP 提供 IPv6 服务(但它没有提供),那就太好了。
我尝试了一些无效的方法:关闭 DHCPv6,禁用 dnsmasq 的 DNS 缓存,设置 dnsmasq 的 DHCP 服务器以提供静态 DNS 服务器地址 ( 8.8.8.8),以及设置 OpenWRT 的内部 DNS 服务器设置以使用该 DNS 服务器.
如何让 OpenWRT 停止告诉设备可以使用 IPv6?
结果如下ip addr:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:1a:80:7a:4e:47 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.107/24 brd 192.168.1.255 scope global dynamic enp6s0
valid_lft 42521sec preferred_lft 42521sec
inet6 fd7f:77c6:629f::9e8/128 scope global
valid_lft forever preferred_lft forever
inet6 fd7f:77c6:629f::4e3/128 scope global
valid_lft forever preferred_lft forever
inet6 fd7f:77c6:629f:0:21a:80ff:fe7a:4e47/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::21a:80ff:fe7a:4e47/64 scope link
valid_lft forever preferred_lft forever
3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:1d:e0:44:04:57 brd ff:ff:ff:ff:ff:ff
Run Code Online (Sandbox Code Playgroud)
结果如下route -6:
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
fd7f:77c6:629f::4e3/128 :: U 256 0 0 enp6s0
fd7f:77c6:629f::9e8/128 :: U 256 0 0 enp6s0
fd7f:77c6:629f::/64 :: U 100 1 3 enp6s0
fd7f:77c6:629f::/48 fe80::c256:27ff:fe77:37a7 UG 100 0 0 enp6s0
fe80::/64 :: U 256 2 10 enp6s0
::/0 :: !n -1 1 729 lo
::1/128 :: Un 0 3 6 lo
fd7f:77c6:629f::4e3/128 :: Un 0 1 0 lo
fd7f:77c6:629f::9e8/128 :: Un 0 1 0 lo
fd7f:77c6:629f:0:21a:80ff:fe7a:4e47/128 :: Un 0 2 3 lo
fe80::21a:80ff:fe7a:4e47/128 :: Un 0 2 30 lo
ff00::/8 :: U 256 2 67 enp6s0
::/0 :: !n -1 1 729 lo
Run Code Online (Sandbox Code Playgroud)
两者的结果ping6 google.com和ping6 2607:f8b0:4008:808::200e为:
connect: Network is unreachable
Run Code Online (Sandbox Code Playgroud)
Mic*_*ton 15
在初始安装(或重置设置)时,OpenWrt 会生成一个唯一本地地址前缀并将 ULA 分配给网络中的所有设备,即使没有全球 IPv6 连接,它们也可以通过 IPv6 进行内部通信。
这通常可以正常工作,但在两种情况下除外:
明确地说:通过宣传 ULA 前缀,OpenWrt 并没有告诉您的设备可以通过 IPv6 访问 Internet。它只是告诉他们可以通过 IPv6 访问您的家庭网络。
长期的解决方案是修复行为不端的应用程序。如果您在特定应用程序中遇到此行为,则应将其作为错误报告给其开发人员。
短期解决方法是让 OpenWrt不通告 ULA 前缀。您可以转到Network > Interfaces,清除IPv6 ULA-Prefix框,然后单击Save & Apply。这将阻止 OpenWrt 广告 ULA 前缀。如果您曾经将路由器的设置重置为默认值,则可能需要再次执行此操作。
一种更简单的方法是通过 SSH 连接到您的 OpenWrt 路由器并执行以下命令:
uci set 'network.lan.ipv6=off'
uci set 'network.wan.ipv6=off'
uci set 'dhcp.lan.dhcpv6=disabled'
/etc/init.d/odhcpd disable
uci commit
Run Code Online (Sandbox Code Playgroud)
第一个命令禁用 IPv6 LAN 接口,第二个命令禁用 IPv6 WAN 接口,第三个和第四个命令禁用 DHCPv6 服务器并uci commit提交更改。
| 归档时间: |
|
| 查看次数: |
56417 次 |
| 最近记录: |