openvpn 护套与 stunnel 路由问题

openvpn 护套与 stunnel 路由问题

我正在尝试配置一个在 Ubuntu 上运行的新 OpenVPN 服务器(发行版对我来说无关紧要),但在 stunnel 内部建立隧道(以避免 DPI)。我的问题是,如果我将客户端配置为通过 VPN 路由所有内容,那么我得到的流量为零。没有 stunnel 的相同配置工作正常。我怀疑存在某种本地主机路由问题,但我就是无法确定。

我的 OpenVPN 服务器配置:

[...]

topology subnet
port 1196
proto tcp
mode server

[...]

dev tun0
server 192.168.81.0 255.255.255.0
push "redirect-gateway def1 bybass-dhcp"
push "route 192.168.10.0 255.255.255.0"
push "dhcp-option DNS 192.168.10.254"

我在同一个 OpenVPN 服务器上的 stunnel 配置:

# Connection
[openvpn-localhost]
# Incoming connection port
accept = 8443
# Connection to local OpenVPN server
connect = 127.0.0.1:1196

我的主网络是 192.168.10.0/24,VPN 子网是 192.168.81.0/24。同样在 OpenVPN 服务器上,我有以下 iptables 规则来转发所有内容:

Chain POSTROUTING (policy ACCEPT)
[...]

MASQUERADE  all  --  192.168.81.0/24      anywhere            

内核中也启用了 IP 转发。

在我的 OpenVPN 客户端上,我连接到本地端口,然后将 OpenVPN 流量通过隧道传输到服务器。客户端上的 stunnel 配置:

[openvpn-localhost]
client = yes

# Local openvpn connection
accept = 127.0.0.1:1196

# Remote tunnel
connect = <my remote target>:8443

一旦一切连接好,这就是我的客户端上的路由表:

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window irtt Iface
0.0.0.0         192.168.81.1    0.0.0.0         UG        0 0         0 tun0
0.0.0.0         192.168.43.1    0.0.0.0         UG        0 0         0 wlp2s0
127.0.0.1       192.168.43.1    255.255.255.255 UGH       0 0         0 wlp2s0
192.168.10.0    192.168.81.1    255.255.255.0   UG        0 0          0 tun0
192.168.43.0    0.0.0.0         255.255.255.0   U         0 0          0 wlp2s0
192.168.43.1    0.0.0.0         255.255.255.255 UH        0 0          0 wlp2s0
192.168.81.0    0.0.0.0         255.255.255.0   U         0 0          0 tun0

在这种情况下,192.168.43.0/24 是我为了测试而连接的网络。它根本没有连接到我的内部网络。

我的客户端无法在 VPN 上 ping 任何内容。如能提供任何帮助或意见以解决此问题,我将不胜感激。

答案1

您需要做的是将以下路由推送行添加到 openvpn 配置文件中(在服务器端):

push "route [ENDPOINT_IP] 255.255.255.255 net_gateway"

或者

您可以在客户端上手动添加该路由(每次您想要使用它时 - 或者您可以将其添加到您的网络脚本中),方法是输入:

sudo route add -host (or -net) [DESTINATION-SERVER-IP aka ENDPOINT_IP] gw [YOUR-LAN-GW-IP] (e.g. 192.168.10.1) netmask 0.0.0.0 dev [Interface] (e.g. wlp2s0)

如果这不起作用;您可能还需要检查 /etc/sysctl.conf 文件中是否启用了 ip-v4.forwarding。

祝你好运

相关内容