一台双网卡电脑拥有两个网关是不可能的,因为默认网关(default gateway)只能是一个。给服务器安装两块网卡,分别设置不同的ip和网关(内网和外网),外网的通过外网网卡来访问,内网的通过内网网卡来访问,似乎实现起来很简单,但有些问题,因为默认网关(default gateway)只能是一个!
解决的办法就是:
1、将其中一块网卡(如外网)设置默认网关,另外一块网卡eth1不设置网关
sudo vi /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth1
iface eth1 inet dhcp
post-up iptables-restore < /etc/iptables.up.rules
#the second eth1
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
注意没有为 eth1(内部网络) 设置 gateway.
在这里设置了网卡,那么network-manager就没有权限读其进行管理了。可以将上面配置文件中的无线网卡删除,让network-manager管
理,这样方便点。
2. (注意:对于Ubuntu系统,该步骤似乎可以省略) 输入命令:route, 如果没有下面一行:
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
就手工加上一条静态路由,让另一个网段(内网)的数据经过第二个网卡。使用route命令,命令的范例如下
参考命令:
sudo route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1(让对192.168.0.0的访问走eth1网卡,netmask 后面是子网掩码)
如果想让上面的命令在开机时运行,编辑下面的文件执行上面的命令,把上面的命令加入文件exit 0之前
sudo vi /etc/rc.local