根本原因:
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这种有灵活路由功能的环境下可以玩出很多花样的, 可以任意调节流量, 但是如果折腾的不好, 也会出现很多奇怪的故障, 大家继续努力吧.