我想知道我该怎么做。我可以通过 VPN 访问两个客户端(nielswork 和 nielsnet,来自 OpenVPN 服务器(Ubuntu 18.04 LTS):nielsserver),但我还想通过 VPN 从 nielswork 访问 nielsnet,反之亦然。所有机器都在同一个网络(10.8.0.0/24)中,并且服务器上已打开 IP 转发。奇怪的是它们都有不同的网关,虽然我不确定这是问题所在。我还没有向客户端推送任何路由(目前),也没有使用 VPN 来处理我的所有流量,只是 NFS/SSH。以下是 tun0 设备的路由输出。
关于 NIELSWORK(客户 1):
10.8.0.1 10.8.0.9 255.255.255.255 UGH 50 0 0 tun0
10.8.0.9 * 255.255.255.255 UH 50 0 0 tun0
在 NIELSSERVER (OPENVPN 服务器)
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
在 NIELSNET(客户端 2)上:
10.8.0.1 10.8.0.5 255.255.255.255 UGH 50 0 0 tun0
10.8.0.5 * 255.255.255.255 UH 50 0 0 tun0
答案1
整个事情似乎可以通过取消注释得到妥善解决
;client-to-client
在/etc/openvpn/server.conf
文件本身指出:
# Uncomment this directive to allow different
# clients to be able to "see" each other.
# By default, clients will only see the server.
# To force clients to only see the server, you
# will also need to appropriately firewall the
# server's TUN/TAP interface.
尽管奇怪的是所有客户端和服务器在路由表中都有不同的网关,但它们现在都可以愉快地相互通信。
答案2
如果您使用 openvpn-as 作为 VPN 服务器,则只需允许在私有子网中路由。
这可以在 admin webgui 的“VPN 设置”部分实现:
- 在问题“VPN 客户端是否有权访问私有子网”中,设置“是使用路由”或“是使用 NAT”
- 然后在下面的列表中添加私有子网(例如 172.27.224.0/20)
- 保存并应用到正在运行的服务器上,就完成了。