vpc主网卡多内网IP的情况下,服务器内部上不了网,但是外面可以访问服务器,如何解决

2024-04-15 17:08:22 浏览数 (1)

转载windows 多 IP 时指定流量外访的出口 IP

这篇文档实实在在帮助我解决了问题

场景:

早年的vpc不支持dhcp,只能手动配静态IP,有台这样的vpc机器只有一个主网卡(默认有个主内网IP 172.19.16.114),手动在控制台加了一个辅助内网IP 172.19.16.2,然后在机器内部添加静态IP把这个辅助内网IP加上,加之前,服务器出入流量都正常,加上后,服务器远程正常,但是服务器里面上不了网

0.0.0.0/0默认路由走了辅助内网IP 172.19.16.2,出现服务器内部上不了网的情况

排查:防火墙是关闭的、IP安全策略是空的、安全组是放行所有的,netsh int ipv4 show dynamicport tcp 是正常的,也没有被封禁,总之,其他可能性都排除了,发现0.0.0.0/0默认路由走了辅助内网IP 172.19.16.2,如何确认就是这个原因导致的?

首先,辅助内网IP在控制台我是没有绑定外网IP的,所以走它出去的话是没法通外网的

其次用ping -S $srcip $dstip可以判定就是这个原因导致

-S指定主内网IP可以出去,指定辅助内网IP出不去

接下来如何解决?

经验主义:powershell执行(不要分开执行,连在一行只敲一次回车执行,执行一次即可,执行第2次或执行多次会报错,但是无妨,不影响结果)

route delete 0.0.0.0 mask 0.0.0.0 "主网卡网关" ; route add 0.0.0.0 mask 0.0.0.0 "主网卡内网IP" ; route -p add 0.0.0.0 mask 0.0.0.0 "主网卡网关"

或者

route delete 0.0.0.0/0 "主网卡网关" ; route add 0.0.0.0/0 "主网卡内网IP" ; route -p add 0.0.0.0/0 "主网卡网关"

例如

route delete 0.0.0.0 mask 0.0.0.0 172.19.16.1 ; route add 0.0.0.0 mask 0.0.0.0 172.19.16.114 ; route -p add 0.0.0.0 mask 0.0.0.0 172.19.16.1

route delete 0.0.0.0/0 172.19.16.1 ; route add 0.0.0.0/0 172.19.16.114 ; route -p add 0.0.0.0/0 172.19.16.1

这样执行后机器里面可以上网了,但是执行route print查看路由,发现默认路由没有变,还是走的辅助内网IP 172.19.16.2

百般抓耳挠腮的时候,看到了这篇文档windows 多 IP 时指定流量外访的出口 IP

发现个关键参数skipAsSource=true

具体办法:

1、手动删掉辅助内网IP 172.19.16.2(删掉后route print查看发现默认路由已经走主内网IP了)

2、通过 skipassource=true参数添加辅助内网IP 172.19.16.2

netsh int ipv4 add address "以太网" 172.19.16.2 255.255.255.0 skipassource=true

注:命令形式通用≥2008系统;2012R2中文版默认一般是“以太网”,如果是别的名称,需要把命令里的名称改一下

3、执行route print查看默认路由还是走主内网IP就对了

0 人点赞