OpenVPN 正在运行--但是如何路由所有流量呢?

OpenVPN 正在运行--但是如何路由所有流量呢?

我已经设置了静态一对一 OpenVPN 连接。但是我似乎无法让客户端通过 VPN 设备路由所有流量。这是我的配置:

客户端配置:

remote 89.21.xx.xx
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key

服务器配置:

dev tun
ifconfig 10.8.0.1 10.8.0.2
push "redirect-gateway def1"
secret static.key
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
verb 5

根据我所做的所有研究,服务器配置行推“重定向网关 def1”应该让客户端通过 VPN 路由所有流量。但是它没有这个效果。我可以 ping/ssh/http 到 10.8.0.1 上的服务器,客户端的路由表如下所示,但正常流量采用正常(不安全)路由:

root@t42:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.1        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
192.168.69.0    0.0.0.0         255.255.255.0   U     2      0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlan0
0.0.0.0         192.168.69.1    0.0.0.0         UG    0      0        0 wlan0

答案1

您需要在客户端配置中有“拉”功能才能从服务器“推送”设置。

一旦添加它,它就会按您预期的方式工作。

(如果您使用“客户端”指令,它基本上会扩展为“pull”和“tls-client”)

答案2

您可以运行route add default gw 10.8.0.1(手动运行或在隧道启动时自动运行);这样会添加路由。或者,我push "route 0.0.0.0 0.0.0.0"在 OpenVPN 配置中为我设置了默认路由,这样也可以正常工作。

答案3

def1论点稍微改变了的行为redirect-gateway。它类似于:

route add 0.0.0.0/1 gw <vpn_endpoint>

这可确保 VPN 路由优先于现有默认路由,但不会删除现有默认路由。

至于调试该问题我建议:

  1. 看一眼詹姆斯非常好的观点。
  2. 增加客户端详细程度。它应该指示指令是否来自服务器以及运行路由命令是否存在问题。
  3. 尝试将指令放置在客户端的配置中,以测试它是否可以在没有的情况下工作push
  4. 尝试删除该def1参数并让它替换默认路由,看看它是否会对行为产生任何影响。

相关内容