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這種有靈活路由功能的環境下可以玩出很多花樣的, 可以任意調節流量, 但是如果折騰的不好, 也會出現很多奇怪的故障, 大家繼續努力吧.