如下图所示,eth0、eth2双网卡的ip只能ping通eth2。
出现该问题的原因为:Linux系统默认启用了反向路由检查
。即配置好双网卡后,服务器只能从其中一块网卡发现网关。如果用户一个包从eth0进入,而服务器发现的网关在eth1上,那么包是从eth1直接NG出不去,所以就ping不通。
查看路由,发现网关在eth2上。
解决办法
步骤一:找到两块网卡名称,再执行关闭反向路由检查。
# ifconfig
# echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
# echo 0 > /proc/sys/net/ipv4/conf/网卡名0/rp_filter
# echo 0 > /proc/sys/net/ipv4/conf/网卡名1/rp_filter
步骤二:步骤一配置完后双IP都能ping通,但若服务器重启后依然会默认开启反向路由检查。将以上命令加入/etc/rc.local
,服务器开机将自动关闭反向路由检查。
# vi /etc/rc.local
若涉及到文件权限问题,可以给/etc/rc.local添加执行权限
# chmod +x /etc/rc.local