我有一个 OpenVPN 设置,由 Internet 上的独立机器组成:一台机器运行单个 OpenVPN 服务器,私有地址为 10.10.0.1,其他机器运行 OpenVPN 客户端,私有地址范围为 10.10.0.0/16。Tun 设备随处可见(使用适当的路由和 iroute 命令)。一切正常,每个主机都可以根据需要访问。
但是,出于使用简便的原因,我希望在第一台机器上也运行一个 OpenVPN 客户端。这个“本地客户端”将拥有自己唯一的 IP 地址,与其他远程客户端一样连接到相同的 OpenVPN 服务器守护程序,并且可以从 VPN 内部访问,就像物理上分开的机器上的其他“远程”客户端一样。最后,可以通过其 OpenVPN 客户端 IP 地址登录到第一台机器,从而避免连接到服务器 IP 地址 10.10.0.1。
是否可以通过这种方式“虚拟化 OpenVPN 客户端”?我尝试了最直接的方法,但当我在第一台机器上执行 openvpn client.conf 时,虽然它保持运行并连接到服务器守护程序,但它只能在第一台机器上本地访问。与其他 OpenVPN 客户端不同,它不响应来自 VPN 中其他机器的 ping 请求。
我认为如果我将本地客户端放入其单独的虚拟机中,这当然是可能的,但我想避免这种情况,而只是并排运行两个守护进程。