我在托管于账户 A 下的 aws 账户上运行 VPN 服务器。我还有另一个 aws 账户 B,其中有一个 Ubuntu ec2 实例。在此实例上,我安装了 Openvpn 并配置了客户端设置。
每当我在帐户 B Ubuntu ec2 实例上启动 Openvpn 客户端时,我都会被踢出服务器,因为 Ubuntu 网络管理器 Openvpn 会覆盖默认路由。此外,如果不重启主机,我无法再次建立 ssh 连接。
启动 vpn 客户端之前的默认路由:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.0.16.1 0.0.0.0 UG 0 0 0 eth0
172.0.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
启动openvpn客户端后的默认路由:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.9 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 172.0.16.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 10.8.0.9 255.255.0.0 UG 0 0 0 tun0
10.8.0.1 10.8.0.9 255.255.255.255 UGH 0 0 0 tun0
10.8.0.9 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.8.0.9 128.0.0.0 UG 0 0 0 tun0
172.0.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
我做到了谷歌搜索它并发现它是一个已知的错误,并且提供的解决方法在我的情况下不起作用,因为它是Ubuntu 服务器(CLI 不是 GUI) 在具有 dhcp 设置的 aws 上,我不想更改该设置来修复此问题。因为将来可能会有多个服务器。
有人遇到过这个问题并解决了吗?任何建议都会很有帮助。
仅供参考:服务器和客户端配置上的相同 openvpn 设置适用于我的笔记本电脑(虽然运行 Windows)和其他机器,并且我可以从我的笔记本电脑连接到 aws ec2 实例而不会出现任何问题。
答案1
经过一番挖掘后,它终于成功了。我不得不禁用我的推送重定向网关条目,尽管它在其他操作系统上可以正常工作。要使用 Ubuntu/Debian,我必须在 Openvpn 的 server.conf 文件中禁用我的推送重定向网关。这解决了我的问题。
以下是我正在运行的 server.conf 文件输出:
port 1194
user nobody
group nobody
proto udp
dev tun
ca /etc/openvpn/EasyRSA-2.2.2/keys/ca.crt
cert /etc/openvpn/EasyRSA-2.2.2/keys/server.crt
key /etc/openvpn/EasyRSA-2.2.2/keys/server.key
dh /etc/openvpn/EasyRSA-2.2.2/keys/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig 10.8.0.1 255.255.255.0
route 10.8.0.0 255.255.255.0 10.8.0.1
push "route 10.8.0.0 255.255.255.0"
route 10.0.0.0 255.255.0.0 10.0.0.1
push "route 10.0.0.0 255.255.0.0"
ifconfig-pool-persist ipp.txt
#push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 3