![OpenVPN(IPV6)无法上网](https://linux22.com/image/783783/OpenVPN%EF%BC%88IPV6%EF%BC%89%E6%97%A0%E6%B3%95%E4%B8%8A%E7%BD%91.png)
我已经搜索过了这和这但我仍然无法从 VPN 客户端访问互联网。我的 VPN 提供了一个本地 IPV4 (10.8.xx) IP,允许访问本地基础设施。它允许提供一个 IPV6 公共 IP。但是,我无法从此 IP 访问互联网。我的 ISP 为我的 VPN 提供了一个 /64 块(这与我为 eth0 提供的块不同,我的 ISP 提供了一个整个 /56 块),这是我使用的 dhcpcd 的配置:
interface eth0
ipv6rs
ia_na 1
ia_pd 2 tun0/0
这个前缀也写在我的路由器页面上,所以我知道这是可行的。ip addr 给出:
2: eth0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP>
inet6 2a01:xxxx:xxxx:xxxx:db4:8d5b:2db9:41ad/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86362sec preferred_lft 562sec
inet6 fe80::2158:199b:59c2:aa05/64 scope link
valid_lft forever preferred_lft forever
34: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 10.8.0.1/16 scope global tun0
valid_lft forever preferred_lft forever
inet6 2a01:xxxx:xxxx:xxxx::1/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::dfd2:3a17:4381:4253/64 scope link stable-privacy
valid_lft forever preferred_lft forever
通过 VPN 连接时,我可以获得 ipv4 和 ipv6 地址,但无法访问互联网,这是我的配置:
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.0.0
server-ipv6 2a01:xxxx:xxxx:xxxx::/64
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 2001:4860:4860::8888"
push "dhcp-option DNS 2001:4860:4860::8844"
push "dhcp-option DNS 8.8.4.4"
push "redirect-gateway def1 bypass-dns"
push "redirect-gateway ipv6 bypass-dns"
dh none
ecdh-curve prime256v1
tls-crypt tls-crypt.key
#tls-export-cert /etc/openvpn/tempcrt
#crl-verify crl.pem
# Compress data to save bandwidth
#comp-lzo
#learn-address /etc/openvpn/learn-address
ca fullchain.crt
cert cert-server.pem
mute-replay-warnings
tls-verify /etc/openvpn/script.sh
key server-key.pem
auth SHA256
cipher AES-256-GCM
ncp-ciphers AES-256-GCM:AES-128-GCM
tls-server
tls-version-min 1.2
script-security 2
#tls-cipher TLS_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
client-config-dir /etc/openvpn/ccd
status /var/log/openvpn/status.log
log-append /var/log/openvpn/openvpn.log
verb 3
答案1
经过大量研究,我发现:
在 ipv4 上,我需要伪装来自 OpenVPN 的流量:
sudo iptables -t nat -A POSTROUTING -i tun0 -s 10.8.0.0/24 -j MASQUERADE
这允许流量来自您的 IP,这似乎是 ipv4 所需要的。
如果您的路由器正在重定向,那么来自 IPv6 的流量将直接运行,我的情况就是如此。H然而,在测试期间,我重启了 OpenVPN,因此 dhcpcd 删除了分配,ping 不再起作用。每次以 IpV6 配置重启 OpenVPN 时,都需要重启 dhcpcd。
最后,我有一个公共 ipv6 地址,来自我的 VPN 分配,还有一个来自我服务器 IP 的 ipv4。我不知道 ipv6 流量是否也通过 VPN 传输,但似乎是这样的。
仅当您的路由器将分配的块重定向到您的机器时,这才有效。