我在笔记本电脑和服务器之间建立了一个隧道,客户端使用 OpenVPN 2.3.10,服务器上使用 2.3.13。它最初是为 IPv4 设置的,目的是将我的 IP 地址伪装成我的服务器 IP 地址,并隐藏我从本地 ISP 连接到的位置。然后我添加了 IPv6,所以它现在是双栈的。我使用 IPv6 伪装来让事情尽可能简单。
我的笔记本电脑设置和信息:
lt1/pdh /home/pdh 1> cat /etc/issue.net
Ubuntu 16.04.1 LTS
lt1/pdh /home/pdh 2> uname -r
4.4.0-57-generic
lt1/pdh /home/pdh 3> ifconfig tun2kepler
tun2kepler Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.0.2.2 P-t-P:192.0.2.1 Mask:255.255.255.255
inet6 addr: fdff::2/64 Scope:Global
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 Metric:1
RX packets:425555 errors:0 dropped:0 overruns:0 frame:0
TX packets:386998 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:296698202 (296.6 MB) TX bytes:56672484 (56.6 MB)
我的服务器设置和信息:
kepler/phil /home/phil 1> cat /etc/issue.net
Ubuntu 14.04.5 LTS
kepler/phil /home/phil 2> uname -r
3.13.0-101-generic
kepler/phil /home/phil 3> ifconfig tun2home
tun2home Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.0.2.1 P-t-P:192.0.2.2 Mask:255.255.255.255
inet6 addr: fdff::1/64 Scope:Global
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 Metric:1
RX packets:6730209 errors:0 dropped:0 overruns:0 frame:0
TX packets:7546625 errors:0 dropped:3158 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:835431595 (835.4 MB) TX bytes:5118239922 (5.1 GB)
一切都正常,包括 IPv6。我遇到的问题是,我的浏览器和其他客户端正在使用 IPv4。我希望它们在可以使用 IPv6 的情况下使用 IPv6(DNS 具有 AAAA 记录和/或 /etc/hosts 具有 IPv6 地址)。如果只有 IPv6 地址,那么只要该地址可访问且有效,它就可以工作。但如果有 IPv4 地址,那么就会使用它。我希望它优先使用 IPv6。所以我在 Google 上搜索了这个问题,找到了修改文件/etc/gai.conf
以更改优先级的建议,使 IPv4 更低。这是该文件:
# # #
precedence ::1/128 50
precedence ::/0 40
precedence 2002::/16 30
precedence ::/96 20
precedence ::ffff:0:0/96 12
precedence fec0::/10 10
precedence fc00::/7 19
precedence 2001:0::/32 18
# # #
label ::1/128 0
label ::/0 1
label 2002::/16 2
label ::/96 3
label ::ffff:0:0/96 4
label fec0::/10 4
label fc00::/7 4
label 2001:0::/32 4
# # #
那么 IPv4 的优先级是 12,而大多数 IPv6 的优先级更高?这是正确的设置吗? 我需要进行哪些更改才能使我的笔记本电脑在可以的情况下优先使用 IPv6? 我意识到在某些情况下我应该优先选择 IPv4 而不是 IPv6,但我甚至无法解决该问题。如果可能的话,我希望其他启用 IPv6 的客户端也在整个主机范围内优先选择 IPv6。