误将vEthernet (WSL)适配器共享至物理适配器后,如何恢复对远程Windows 10主机的VNC连接?
我有一台运行Windows 10的远程物理主机,它位于带公网IP的4G路由器(Teltonika Rut955)之后。Rut955上已经配置并运行了OpenVPN服务器,我之前通过VPN配合TightVNC来访问这台主机。
最初的局域网配置是:
- Rut955:192.168.2.1,子网掩码255.255.255.0
- Windows主机:192.168.2.3,子网掩码255.255.255.0
OpenVPN服务器设置了push route 192.168.2.0 255.255.255.0选项,所以我能通过VPN连接到主机。
因为TightVNC是我访问这台主机的唯一方式,我想再配置一个SSH通道。但我对Windows管理不太熟悉,所以打算在WSL2里安装SSH服务器,用来管理主机里的文件。
在WSL2上装好Debian后,我发现WSL实例既没有网络连接,也无法被直接访问——Windows主机相当于WSL的路由器/网关。为了让WSL能被直接访问,我跟着教程操作,但这里出问题了:我没有把物理适配器共享给vEthernet (WSL),反而搞反了——我选中了vEthernet (WSL)适配器,在“家庭网络连接”里选择了物理以太网连接。当时我很着急没仔细看,虽然不能100%确定,但应该是这么操作的。
之后弹出提示说地址会改成192.168.137.1,我以为这是指WSL的地址,就点了继续,但实际上改的是物理适配器的地址。瞬间我就失去了连接。
之后我把Rut955的IP改成了192.168.137.100/24,还把OpenVPN服务器的push选项改成了push route 192.168.137.100/24,但通过VPN还是ping不通主机。我猜是因为主机没有配置网关。
不过如果我SSH到Rut955,是能ping通Windows主机的;在Rut955的GUI里扫描网络,也能看到这台Windows主机:
- IP:192.168.137.1
- MAC地址:XX:XX:XX:XX:XX:XX
- 主机名:DESKTOP-9V9NTVH
我接着把路由器WAN口的所有端口都转发到主机,尝试通过Rut955的公网IP进行VNC连接,但也失败了。
请问我该怎么恢复对这台Windows 10主机的VNC连接?
针对@user1686回答的补充说明
感谢你的回答。我完全不是网络专家,所以花了些时间在网上研究你的建议。
关于选项A:我不确定自己理解得对不对——192.168.137.1不是Rut955的IP,而是现在Windows主机的IP。我已经在Rut955的GUI里把WAN口的5900端口(VNC端口,也试过转发0:65535全端口)转发到了主机IP(192.168.137.1:5900)。
我深入研究了一下,发现路由器的GUI是基于iptables工作的。我从没直接用过iptables,但查了一下,执行iptables -t nat -L返回的内容里有:
DNAT tcp -- anywhere anywhere tcp dpt:5900 /* emergency */ to:192.168.137.1:5900 DNAT udp -- anywhere anywhere udp dpt:5900 /* emergency */ to:192.168.137.1:5900
看起来路由器GUI创建的是DNAT规则。我需要把它换成SNAT吗?另外我也完全不确定应该在哪些IP之间设置SNAT...
关于选项B:恕我无知,如果主机上没有SSH服务器的话,这个方案可行吗?其实主机上是有OpenSSH for Windows的,但唯一的Windows用户密码是空的...
备注:内容来源于stack exchange,提问作者Héctor

