![OpenVPN 即服务,客户端物理连接到网络](https://linux22.com/image/799223/OpenVPN%20%E5%8D%B3%E6%9C%8D%E5%8A%A1%EF%BC%8C%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%89%A9%E7%90%86%E8%BF%9E%E6%8E%A5%E5%88%B0%E7%BD%91%E7%BB%9C.png)
我在客户的计算机上运行 OpenVPN 作为服务,但他经常在办公室,能够物理连接到网络。我遇到的问题是,即使连接到我们的 LAN,OpenVPN 仍然会连接。这会导致延迟问题,如果不通过 VPN,速度几乎是正常速度的 5 倍。
我看了这个帖子当笔记本电脑物理上已经连接到网络时,如何将 OpenVPN 客户端作为服务来处理?但恐怕我不如这里的发帖人那么了解,或者我们的情况略有不同。有人能帮我理解如何在物理连接到我们的网络时不通过 OpenVPN 连接吗?谢谢大家。
答案1
从网络角度来看,最好在客户端上解决这个问题:检查 LAN IP 并采取相应措施(不要启动 OpenVPN;调整路由;等等)。不过,我不知道如何在 Windows 上做到这一点。
一种解决方法可能是更改客户端连接的 IP 地址。可能只是客户端连接的几个系统。根据查询的来源,可以为同一主机名配置不同的 IP 地址。因此,您可以创建一个主机名 samba.vpn.example.org,指向例如 192.168.1.15。如果您有本地 DNS 服务器,您可以对其进行配置,以便它为该主机名提供例如 192.168.2.15。您的 OpenVPN 网关可以从 .1.15 到 .2.15 进行 DNAT。这不会影响带宽。如果客户端是本地的,它不会尝试通过 OpenVPN 连接,因为目标位于 LAN 网络中,而不是 OpenVPN 网络中。因此,如果物理连接,OpenVPN 仍会(尝试)建立连接,但不会使用 OpenVPN 连接,因此只会浪费最少的带宽。
第三种选择:放弃 Windows 客户端,让 Linux 在虚拟机中运行,并通过虚拟机路由公司地址(或客户端映射)。在虚拟机中,可以轻松完成所有必要的操作。带宽损失应该很小(如果使用 virtio NIC)。
答案2
设置网络或 VPN 服务器,使得客户端在内部网络上时无法连接(例如,设置防火墙来阻止从内部网络发往 VPN 服务器和端口的数据包)。