Ubuntu双线双IP配置

March 2015 · 1 minute read

软件环境

Ubuntu 14.04

网络环境

两条网络,电信与移动,测试服务器位于内网,移动IP:192.168.1.8,电信IP:192.168.23.8。

路由器使用端口映射对外暴露部分服务。

设置网络

/etc/network/interfaces

<code>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
</code>

em1 使用移动网络,服务器默认出口。em2 使用电信网络,不设置网关。

设置路由表,实现原路返回数据

修改:/etc/iproute2/rt_tables 文件,增加条记录

<code>252 mobile
251 telecom
</code>

执行命令:

<code>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
</code>

将以上命令加入 /etc/rc.local 实现重启配置不丢失。

在这个案例中,移动为默认网络,所以不需要特殊配置路由表,否则会导致网络不通。

设置路由表,实现指定网络访问特定内容

<code>route add -host 91.189.95.83 gw 192.168.23.1
</code>

91.189.95.83 是 launchpad.net 源的IP地址,移动访问不稳定,这里指定网关使用电信网络访问。

结语

网上很多教程是错误的,主要在实现原路返回数据部分,很多人都说要写两个网络的路由表,但这会直接导致网络不通,我也在这里卡了很久。