OpenVPN 启用分割隧道,客户端可以通过自己的互联网连接过载

OpenVPN 启用分割隧道,客户端可以通过自己的互联网连接过载

我正在尝试使用我的 VPN 网络启用拆分隧道。我使用 OpenVPN 来托管我的 VPN 网络,并已按照步骤使拆分隧道正常工作,但我的客户端仍然收到:0.0.0.0 {VPN 本地地址} 推送

这是我在 OpenVPN 服务器上的 server.conf 文件,它具有一个带有真实 IP 的真实公共接口。

port 1194
proto udp
dev tun
#ssl stuff
ca /etc/openvpn/certs/ca.crt
cert /etc/openvpn/certs/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/dh2048.pem
#server statement and subnet for VPN IPs /24 for simplicity
server 10.0.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt # for persistant IPing of VPN clients
push "route-nopull"
push "route 172.16.0.11 255.255.255.255 vpn_gateway" #internal node i want VPN clients to have access to
push "route 172.16.0.3 255.255.255.255 vpn_gateway" #internal node I want VPN clients to have access to
push "dhcp-option DNS 172.16.0.3" # so VPN clients use internal dns for resolution
client-to-client
[rest of config omitted]

客户端的路由表,其中:172.16.250.10 是客户端的 VPN 地址 {publicIP} = 是客户端网络的公共 IP {localIP} = 是本地网络的本地 IP,例如 192.168.xx,而不是 VPN。

Destination      Gateway        Genmask         Flags
0.0.0.0          10.0.0.10      0.0.0.0         UG
{publicIP}       {localIP}      255.255.255.255 UGH
10.0.0.0         10.0.0.10      255.255.255.0   Ug
10.0.0.10        0.0.0.0        255.255.255.255 UH   # don't really understand this statement
172.16.0.3       10.0.0.10      255.255.255.255 UGH  #from push command in server.conf
172.16.0.11      10.0.0.10      255.255.255.255 UGH  #from push command in server.conf
{client's localSubnet}    0.0.0.0        255.255.255.0   U

OpenVPN 盒上的 IPTables,该盒具有用于接受传入的 OpenVPN 请求的公共接口。

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  10.0.0.0/24      172.16.0.3          /* Allow VPN IPs to connect to the internal DNS for resolution */
ACCEPT     all  --  10.0.0.0/24      172.16.0.11         /* Allows VPN IPs to connect to homeserver */

我相信这些是我设置中涉及 VPN 连接的唯一配置。因此我有点困惑,因为我的 VPN 客户端将显式推送语句接收到其路由表中,但客户端仍然无法将其本地网关用于非发往 10.0.0.0/24 或 172.16.0.0/24 网络的 IP 请求。

提前感谢您的帮助和时间。

-吉姆

答案1

我最近做了类似的事情。
但是我必须在重定向所有流量和仅重定向 vpn 流量之间做出选择。
我在 client.ovpn 文件中进行了配置。
所以我有 2 个文件。一个用于通过 VPN 重定向所有流量(不安全网络),另一个用于拆分隧道(安全网络)。

我仅在 client.ovpn 中添加以下几行

方法 1:

将此行添加到客户端配置文件文件或添加--route-noexecopenvpn 行命令

route-noexec

(客户端的路由表有此选项)

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    302    0        0 wlan0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     302    0        0 wlan0

curl ipinfo.io显示真实的客户位置。


方法 2:

将此行添加到客户端配置文件文件

route-nopull
route 0.0.0.0 128.0.0.0 net_gateway
route 128.0.0.0 128.0.0.0 net_gateway
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     128.0.0.0       UG    0      0        0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG    302    0        0 wlan0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
128.0.0.0       192.168.1.1     128.0.0.0       UG    0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     302    0        0 wlan0

curl ipinfo.io显示真实的客户位置。


你的案例。

如果你添加以下行客户端配置文件文件

route-nopull
route 172.16.0.11 255.255.255.255 vpn_gateway
route 172.16.0.3 255.255.255.255 vpn_gateway
route 0.0.0.0 128.0.0.0 net_gateway
route 128.0.0.0 128.0.0.0 net_gateway

我在我的一个客户端上测试了它:

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     128.0.0.0       UG    0      0        0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG    302    0        0 wlan0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
128.0.0.0       192.168.1.1     128.0.0.0       UG    0      0        0 wlan0
172.16.0.3      10.8.0.1        255.255.255.255 UGH   0      0        0 tun0
172.16.0.11     10.8.0.1        255.255.255.255 UGH   0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     302    0        0 wlan0

curl ipinfo.io显示真实的客户位置。

相关内容