Ubuntu 14.04
两条网络,电信与移动,测试服务器位于内网,移动IP:192.168.1.8,电信IP:192.168.23.8。
路由器使用端口映射对外暴露部分服务。
/etc/network/interfaces
auto em1
#iface em1 inet dhcp
iface em1 inet static
address 192.168.1.8
gateway 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
auto em2
iface em2 inet static
address 192.168.23.8
netmask 255.255.255.0
em1 使用移动网络,服务器默认出口。em2 使用电信网络,不设置网关。
修改:/etc/iproute2/rt_tables 文件,增加条记录
252 mobile
251 telecom
执行命令:
ip route flush table telecom
ip route add default via 192.168.23.1 dev em2 src 192.168.23.8 table telecom
ip rule add from 192.168.23.8 table telecom
将以上命令加入 /etc/rc.local 实现重启配置不丢失。
在这个案例中,移动为默认网络,所以不需要特殊配置路由表,否则会导致网络不通。
route add -host 91.189.95.83 gw 192.168.23.1
91.189.95.83 是 launchpad.net 源的IP地址,移动访问不稳定,这里指定网关使用电信网络访问。
网上很多教程是错误的,主要在实现原路返回数据部分,很多人都说要写两个网络的路由表,但这会直接导致网络不通,我也在这里卡了很久。