有一台虚拟服务器初始分配一个网卡eth0,后面增加一个网卡eth1,使它能在另一个网络环境中能够访问,后面因为一些原因废除初始的eth0。
最近因为迁移需要两个环境都需要能够访问,当我配置好ip等设置时发现原先网卡eth0只能内网通讯不能访问外网,在网络设备上端口映射外网机器也访问不了这台服务器。
检查网络设备一切配置都是正常,排查问题的原因还是出在虚拟机上。
经查询linux的本地网卡也含有路由优先级的设定,查看本地路由。
图中的参数Metric表示的就是路由优先级
查看网卡配置
两个网卡路由都是默认设置,都把默认路由设为yes,这导致后启用网卡的路由优先级更高,机器所有外网的流量都从后启用的网卡通过。
解决方式有两种:
方法一:
把不需要和外网交互的网卡DEFROUTE设为no。
方法二:
修改各个网卡的优先级,在网卡配置中增加一行(原先没有)。
数值越低,优先级越高,把不需要和外网交互的网卡志设置高即可。