我正在创建一个 VPN 来访问 VPC,但我希望其余流量不通过该 VPN。
我已经能够通过 VPN 访问 VPC,但是连接到它之后,我就无法访问互联网。
这是我的服务器配置:
port 1194
proto udp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/vpn.crt
key /etc/openvpn/server/vpn.key
dh /etc/openvpn/server/dh.pem
topology subnet
server 172.16.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "route 10.0.0.0 255.255.0.0"
keepalive 10 120
tls-auth /etc/openvpn/server/ta.key 0
cipher AES-256-GCM
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305
我已将此 iptable 添加到服务器以访问 VPC:
sudo iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -d 10.0.0.0/8 -j MASQUERADE
这是我的客户端的 .ovpn 文件:
client
dev tun
proto udp
remote XXXXXXXXXXXXX 1194
resolv-retry infinite
nobind
persist-key
persist-tun
cipher AES-256-GCM
data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305
verb 3
ca [inline]
cert [inline]
key [inline]
tls-auth [inline] 1
pull
<ca>....
当连接到 VPN 时,客户端中添加了一条路由,目的地为 0.0.0.0,网关为 VPN 服务器,我认为这是问题所在,但我不知道如何避免这种情况发生。
~ route -n
Tabla de rutas IP del núcleo
Destino Pasarela Genmask Indic Métric Ref Uso Interfaz
0.0.0.0 172.16.0.1 0.0.0.0 UG 50 0 0 tun0
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno1
10.0.0.0 172.16.0.1 255.255.0.0 UG 50 0 0 tun0
[**VPN IP**] 192.168.1.1 255.255.255.255 UGH 50 0 0 eno1
172.16.0.0 0.0.0.0 255.255.255.0 U 50 0 0 tun0
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
192.168.1.1 0.0.0.0 255.255.255.255 UH 50 0 0 eno1
我正在使用默认的 ubuntu 网络管理器导入 .ovpn 文件并连接到 vpn。
好的,这似乎是 ubuntu 网络管理器的一个问题。
我已经使用过OpenVPN Connect,这个应用程序在 Windows 和 Mac 上运行良好,在 Linux 上使用命令行也可以: