我在客户的计算机上运行 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 服务器和端口的数据包)。