OpenVPN 完整路由客户端问题

OpenVPN 完整路由客户端问题
  1. 我使用 OpenVPN 在 AWS 上创建了一个服务器。
  2. 设置它,通过管理页面,我选择完全路由选项并下载 .ovpn
  3. 我在客户端 .ovpn 中添加了三行;(由于 ssh 冻结问题,我必须使用它)

    redirect-gateway def1
    up /etc/openvpn/update-resolv-conf
    down /etc/openvpn/update-resolv-conf
    

这是客户端文件;

setenv FORWARD_COMPATIBLE 1
client
server-poll-timeout 4
nobind
remote SERVER IP 1194 udp
remote SERVER IP 1194 udp
remote SERVER IP 443 tcp
remote SERVER IP 1194 udp
remote SERVER IP 1194 udp
remote SERVER IP 1194 udp
remote SERVER IP 1194 udp
remote SERVER IP 1194 udp
dev tun
redirect-gateway def1
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
dev-type tun
ns-cert-type server
setenv opt tls-version-min 1.0 or-highest
reneg-sec 604800
sndbuf 0
rcvbuf 0
auth-user-pass auth.txt
# NOTE: LZO commands are pushed by the Access Server at connect time.
# NOTE: The below line doesn't disable LZO.
comp-lzo no
verb 3
setenv PUSH_PEER_INFO

我尝试使用 Tunnelblick 的客户端 .ovpn,启用完整路由并连接,没有任何问题。当我尝试在我的 Ubuntu 服务器上使用此 VPN 时,事情开始变得有趣。(仅限终端)

当我尝试在我的 Ubuntu 服务器上使用 VPN 时,我首先会这样做;

sudo ip rule add from $(ip route get 1 | grep -Po '(?<=src )(\S+)') table 128
sudo ip route add table 128 to $(ip route get 1 | grep -Po '(?<=src )(\S+)')/32 dev $(ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)')
sudo ip route add table 128 default via $(ip -4 route ls | grep default | grep -Po '(?<=via )(\S+)')

然后我开始运行 VPN;

screen -dmS openvpn
screen -S openvpn -X stuff 'sudo openvpn --config client.ovpn --script-security 2'$(echo -ne '\015')

有趣的是,当我curl ifconfig.co尝试做任何需要互联网的事情时,我都无法做到,因为路由出了问题。

这曾经有效,但由于某种原因现在不再有效。我愿意接受任何建议。


更新

问题出在路由表的某个地方。这是我没有连接 VPN 时的正常路由表;

VPN 前路由表

这是我连接到 VPN 之后的情况;

VPN 路由表之后

而且如果我没有完全路由,路由表是有序的并且互联网运行良好;

VPN之后没有完整的路由表

答案1

如果您不用额外的路由表使事情复杂化128,而只是将路由放入主路由表,会怎么样?这redirect-gateway def1应该可以解决问题。

需要检查以下几件事:

  • 你有iptables 网络地址转换OpenVPN 网关上是否设置正确?
  • 你有IP 转发是否在 OpenVPN 网关上启用?
  • tcpdump能否在网关上运行以查看通过接口传入的内容tun0以及从接口传出的内容(如果有)eth0
  • 您是否已Src/Dest Check在 EC2 实例设置中禁用它?

查看这些详细步骤如何设置 OpenVPN 网关

希望有帮助:)

相关内容