http://blog.csdn.net/centerpoint/article/details/38542719

 

根本原因:

Linux默认启用了反向路由检查

如果2个网卡在一个Lan里面,那么服务器可能从eth0或者eth1发现网关, 如果一个包从eth0进入了, 而网关在eth1上, 那么从eth1是出不去的, 就不通了.  反向路由检查要求从哪里来的才能回哪去.

关闭反向路由检查(根据自己的情况替换第二第三行的网卡名):

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter

 

每次开机自动关闭反向路由检查, 加入 /etc/rc.local 即可.

 

双线双IP在Linux这种有灵活路由功能的环境下可以玩出很多花样的, 可以任意调节流量, 但是如果折腾的不好, 也会出现很多奇怪的故障, 大家继续努力吧.