连接vpn导致win主机无法访问Nat子网

42 阅读2分钟

连接公司vbn的情况下访问Nat虚拟机服务

由于审核不通过,那个敏感词改成vbn

问题背景

网络连接:到业兴证券出差,连了这家公司的网络,同时也连了公司的vbn。

本地环境:天鉴控制台服务搭建在Nat子网,通过192.168.150.101:8081端口可成功访问。

端口映射:win主机设置端口映射(127.0.0.1:18081 => 192.168.150.101:8081)

windos访问Nat子网服务:在不开vbn的情况下,win主机输入127.0.0.1:18081可成功访问,但连接到公司的vbn后就访问不了。

win主机开启vbn后无法访问Nat子网原因

三块网卡(以<ip,网关>形式表示):

  • 本机网卡:<10.20.206.167, 10.20.192.1>,这块网卡连着公司网络
  • Nat子网网卡:<192.168.150.1, 192.168.150.2>
  • 公司vbn网卡:<172.24.52.132,~>

win下查看路由表,命令route print:

20230329172154

看第一条路由,它表示如果目的IP匹配其他路由表项都未成功,数据包将通过接口192.168.150.1转发到子网192.168.150.2,但是根据路由表的匹配规则是最长前缀匹配原则 ,往下查找,还会发现一条路由(这是开启vbn后写入的):

20230329191652转存失败,建议直接上传图片文件

它的意思是IP地址处于(192.168.150.64/255.255.255.192)范围内的IP,都通过172.245.2.132直接访问,而 192.168.150.101正处于这个网段内(注意你的IP可能同时会命中好几条路由,根据最长前缀匹配原则进行选择就是了)

问题就出在这里,请求转发到错误的网卡了

解决方法:

  1. 删除vbn服务写入的路由:route delete 192.168.150.1,当这条路由的ip前缀长度为32时,采用这种方法,否则尽量新增一条路由,以避免其他ip无法路由。
  2. win添加路由,与子网服务进行直连:route add -p 192.168.150.101 mask 255.255.255.255 192.168.150.1,其中,-p表示该路由永久生效,测试的时候尽量不要加。

查看路由命令:route print 192.168.150.101 mask 255.255.255.255