OpenVPN:允许服务器到达客户端而无需通过 VPN 重定向所有客户端流量吗?

OpenVPN:允许服务器到达客户端而无需通过 VPN 重定向所有客户端流量吗?

因此,我建立了一个相当基本的tunOpenVPN 服务器,但在使该服务器能够与所有连接的客户端进行通信方面遇到了麻烦。

我目前有两组客户端,一些不使用 VPN 连接到互联网(仅与其他客户端通信),一些使用redirect-gatewayVPN 发送所有流量。

根据我的设置,所有连接的客户端都可以与服务器和其他客户端通信。但是,从服务器,我只能访问(例如 ping)那些redirect-gateway通过 VPN 发送所有流量的客户端。不使用该配置的客户端可以 ping 服务器,但服务器无法 ping 回(它们不响应并且超时)。

如何设置路由,以便即使客户端不使用 VPN 作为默认网关,服务器仍然可以与客户端通信?

以下是相关的服务器配置:

port 1194
proto udp
dev tun
topology subnet
push "topology subnet"
server 10.7.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir /etc/openvpn/ccd
client-to-client
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
explicit-exit-notify 1

在服务器上的客户端配置目录中,每个客户端都有一个这样的文件(只是为了给每个客户端一个静态 IP):

ifconfig-push 10.7.0.10 255.255.255.0

本地客户端配置的相关部分:

client
dev tun
proto udp
remote {server's public ip} 1194
float
keepalive 15 60
ns-cert-type server
key-direction 1
tun-mtu 1500
cipher AES-256-CBC
keysize 256
comp-lzo yes
nobind

使用 VPN 访问互联网的客户端添加redirect-gateway def1 bypass-dhcp到他们的配置中。

我正在使用ufw我的服务器的防火墙 - 这是相关配置(在 /etc/ufw/before.rules 中):

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.7.0.0/8 -j SNAT --to-source {server's public ip}

由于这是在 OpenVZ VPS 上运行的,我无法使用MASQUERADE,但上述操作似乎同样有效。

关于如何正确设置,您有什么想法吗?提前致谢。如果重要的话,服务器正在运行 CentOS。

相关内容