OpenVPN(IPV6)无法上网

OpenVPN(IPV6)无法上网

我已经搜索过了但我仍然无法从 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

经过大量研究,我发现:

  1. 在 ipv4 上,我需要伪装来自 OpenVPN 的流量:

    sudo iptables -t nat -A POSTROUTING -i tun0 -s 10.8.0.0/24 -j MASQUERADE

这允许流量来自您的 IP,这似乎是 ipv4 所需要的。

  1. 如果您的路由器正在重定向,那么来自 IPv6 的流量将直接运行,我的情况就是如此。H然而,在测试期间,我重启了 OpenVPN,因此 dhcpcd 删除了分配,ping 不再起作用。每次以 IpV6 配置重启 OpenVPN 时,都需要重启 dhcpcd

  2. 最后,我有一个公共 ipv6 地址,来自我的 VPN 分配,还有一个来自我服务器 IP 的 ipv4。我不知道 ipv6 流量是否也通过 VPN 传输,但似乎是这样的。

仅当您的路由器将分配的块重定向到您的机器时,这才有效。

相关内容