![如何选择用于 VNC、ping 或其他应用程序的 LAN 端口?](https://linux22.com/image/792149/%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%E7%94%A8%E4%BA%8E%20VNC%E3%80%81ping%20%E6%88%96%E5%85%B6%E4%BB%96%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%20LAN%20%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
查看图片来了解我的网络是如何构建的:
我确实有一个通过路由器/NAT 连接到互联网的办公网络 192.168.1.0/24。我的 PC 有两个 LAN 端口:主端口的地址为 192.168.1.50,第二个端口的地址为 192.168.10.50。第二个 LAN 是 192.168.10.0/24,带有一些测试设备。
客户站点的网络为 192.168.10.0/24,其中有一些设备。客户站点有带 VPN 服务器的路由器。我的 PC 上确实有 VPN 客户端。因此,我可以建立 VPN 连接,并且可以 ping 客户 LAN 中的设备。(注意:VPN 服务器/路由器由 HW eWon 实现;我在 PC 上使用 eCatcher VPN 客户端。)
我可以同时连接到远程 192.168.10.0/24 LAN(通过 VPN)和本地连接到 192.168.10.0/24 LAN(通过第二个 LAN 端口),而不会出现任何问题/冲突。
连接到设备的服务应用程序能够选择使用哪个接口进行连接(第一个还是第二个 LAN 端口) - 因此我可以连接到远程 LAN 和本地 LAN 中的设备,尽管这些设备具有相同的地址。
到目前为止,一切都很好。
(注意:如果我前往客户现场,我会将我的主 LAN 端口切换为 192.168.10.50,然后直接连接到客户的 LAN。)
重要提示:我需要让所有设备(客户 LAN 和本地设备 LAN 中的设备)都具有相同的子网地址 192.168.10.x,因为在我的开发软件中更改 IP 地址会非常复杂……就这么简单吧。没有办法改变它!!!
现在要解决的问题是:如果我使用其他应用程序软件(如 VNC)或 ping 远程设备,它总是通过 VPN 连接到远程设备。我无法选择要使用的端口,因此无法通过 VNC、ping 等连接到本地 192.168.10.0/24 网络。应用程序总是选择主 LAN 端口。有什么办法可以解决吗?
答案1
如果无法将本地网络更改为不易发生冲突的另一个子网,那么您能做的事情就不多。
选择传出 IP 地址的功能需要在应用程序中实现,有些应用程序提供此功能,有些则不提供。
- Windows
ping
命令提供了参数-S
-S srcaddr 要使用的源地址。
- Powershell cmdlet
Test-NetConnection
提供论据-ConstrainInterface
和-ConstrainSourceAddress
- VNC ... 实现太多,无法一一列举。您也许能找到一个允许设置源地址的实现。
另一种选择可能是为您的软件设置一个容器或虚拟机,可以将其路由到您选择的接口。
第三种选择:在您的网络上设置一个具有不同子网的路由器,当您连接到具有冲突子网的 VPN 时,您可以将您的机器插入该路由器。
答案2
我可以同时连接到远程 192.168.10.0/24 LAN(通过 VPN)和本地连接到 192.168.10.0/24 LAN(通过第二个 LAN 端口),而不会出现任何问题/冲突。
你不能 - 正如你所见。你没有收到任何错误消息,但大多数应用程序并不关心网卡;它们关心 IP 地址,并让操作系统处理路由决策。一些应用程序可以设置源 IP,但许多应用程序不能。
在 Linux 中你可以使用以下方法解决网络命名空间,但我不知道 Windows 上有这样的功能。
这给你留下了几个选择:
- 使用 192.168.10.0/24 上不了解您的 LAN 的虚拟机。
- 让您的 VPN 服务器执行 NAT,以便 192.168.10.0/24 显示为其他内容。
- 重新寻址其中一个(或两个)网络,以便获得唯一的范围。
VM 和 NAT 可能是最简单、最快捷的配置,但是 NAT 是一个可能以后会再次困扰您的难题。
答案3
我认为你需要的是一个分离式 VPN 配置,你可以指定哪个网络通过 VPN 进行路由
如果可以的话,我会为 VPN 创建一个小型子网,并使用 IP 路由将其转发到连接到 VPN 的接口。然后,您可以保持与 VPN 的连接,并且仍能处理家庭网络中的工作负载
例如,将 10.0.0.1 分配给连接到 VPN 的网络适配器,然后更改路由表,以便只有该网络通过 VPN 进行路由
另一个选择是获取带有 openwrt 或类似设备的路由器,然后使用 openvpn 直接从路由器连接到 VPN,然后更新路由表,以便只有该网络通过 VPN 路由
但这些都是客户端 VPN,更理想的情况是站点到站点 VPN,您可以创建到整个网络的 VPN。您可能需要一个高级网络设备,小型 Linux 设备也可以