openvpn服务器的多个客户端如何互相找到对方?

openvpn服务器的多个客户端如何互相找到对方?

我正在搭建一个 openvpn 服务器,该服务器将支持多个客户端进入私有子网。因此,在私有子网上,连接的客户端将获得 IP 地址,例如 10.8.0.10、10.8.0.11 等。

我需要的功能之一是客户端能够相互找到对方。有没有简单且普遍接受的方法让客户端查看已分配给所有客户端的 IP 地址列表?

我不需要 DNS 名称或类似的东西。

答案1

在 OpenVPN 服务器配置文件中,先决条件是以下指令:

# 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.
client-to-client

为了方便客户端轻松找到彼此,我建议将动态 DNS 作为(几乎)始终存在的企业解决方案。要显示活跃客户端列表,您可以:

  • 找到一种向客户端分发或提供 openvpn-status.log 的方法?
  • 将 ping 脚本或类似脚本分发给客户端,也许对每个实时主机进行反向 DNS 查找?
  • 让客户端在连接时在自定义数据库或文件中注册/注销自己,并采用某种清理机制。这种替代方案似乎完全是重新发明轮子,但毫无疑问,这是一种有趣的消磨时间的方式,对整个 IT 世界没有任何帮助。

答案2

这是支持 OpenVPN 2.x 客户端到客户端功能的原始链接:

https://openvpn.net/index.php/open-source/documentation/howto.html#scope

取消注释此指令以允许不同的客户端能够“看到”彼此。默认情况下,客户端只能看到服务器。要强制客户端只能看到服务器,您还需要适当地对服务器的 TUN/TAP 接口设置防火墙。

;client-to-client

如果您希望连接的客户端能够通过 VPN 互相访问,请取消注释上述客户端到客户端指令。默认情况下,客户端只能访问服务器。

接下来,问问自己是否要允许客户端 2 的子网 (192.168.4.0/24) 与 OpenVPN 服务器的其他客户端之间的网络流量。如果是,请将以下内容添加到服务器配置文件中。

client-to-client
push "route 192.168.4.0 255.255.255.0"

这将导致 OpenVPN 服务器将 client2 的子网通告给其他连接的客户端。

相关内容