我在 Google Cloud Platform 上的 Compute Engine 上运行 Ubuntu 18.04。我使用 Nyr 的 1194/UDP 设置了 VPN很棒的脚本(我也尝试过 443/TCP)。VPN 连接成功,但连接后无法访问互联网。
greg@vpn:~$ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- 10.8.0.0/24 !10.8.0.0/24 to:104.154.-.- #removed
VPN 上的跟踪路由
greg@vpn:~$ traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
1 209.85.241.122 (209.85.241.122) 10.729 ms 216.239.63.174 (216.239.63.174) 9.965 ms 209.85.241.122 (209.85.241.122) 10.771 ms
2 108.170.243.187 (108.170.243.187) 10.086 ms 108.170.243.196 (108.170.243.196) 10.330 ms 10.285 ms
3 141.101.73.2 (141.101.73.2) 10.867 ms 10.860 ms 11.104 ms
4 one.one.one.one (1.1.1.1) 10.753 ms 9.886 ms 9.930 ms
连接到 VPN 时的本地跟踪路由
greg ~ $traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 64 hops max, 52 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
...
有一个Nyr 仓库中的问题这表明这是一个网络配置问题。我的问题是,我该如何解决这个问题?如果 VPN 服务器可以访问互联网,这可能是防火墙/GCP 配置问题吗?
/etc/openvpn/server.conf
port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
我已确保 iptables 正确
greg@vpn:~$ iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o ens4 -j SNAT --to 104.154.x.x
这是我的 IP 路由显示
greg@vpn:~$ ip route show
default via 10.128.0.1 dev ens4 proto dhcp metric 100
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
10.128.0.1 dev ens4 proto dhcp scope link metric 100
子网
greg@vpn:~$ netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default _gateway 0.0.0.0 UG 0 0 0 ens4
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
_gateway 0.0.0.0 255.255.255.255 UH 0 0 0 ens4
我还启用net.ipv4.tcp_syncookies=1
了/etc/sysctl.conf
连接到 VPN 时从本地进行的跟踪路由
greg ~ $sudo mtr 1.1.1.1
My traceroute [vUNKNOWN]
Gregs-MacBook-Pro.local (10.8.0.2) 2019-03-14T13:57:40-0400
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 10.8.0.1 0.0% 24 35.3 36.5 34.3 48.2 3.8
2. ???
我的跟踪路由直接来自 VPN 服务器
greg@vpn:~$ mtr 1.1.1.1
My traceroute [v0.92]
vpn (10.128.0.28) 2019-03-14T18:11:28+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 216.239.40.188 0.0% 177 10.1 11.3 10.0 33.7 3.8
2. 108.170.243.196 0.0% 177 10.5 10.6 10.4 13.9 0.5
3. 141.101.73.2 0.0% 177 10.8 14.2 10.7 52.4 7.1
4. one.one.one.one 0.0% 176 11.1 11.1 10.9 12.6 0.2
答案1
答案2
我建议尝试以下方法:
1)使用 TCP 协议代替 UDP;这可以通过更改‘proto udp’ 改为 ‘proto tcp’在客户端和服务器配置文件中。
端口 443
协议 TCP
;原始 UDP
2) 通过在客户端和服务器配置文件中将“dev tun”更改为“dev tap”,使用 tap 设备代替 tun。TAP 设备是虚拟以太网适配器,而 TUN 设备是虚拟点对点 IP 链路。您必须使用其中一种,不能混合使用。