在 Windows 系统下,如果有两个网卡(一般是内网和外网),要设置内外网同时使用,只需要两条命令:
route delete 0.0.0.0 route add -p 0.0.0.0 mask 0.0.0.0 192.168.1.1 route add -p 192.0.0.0 mask 255.0.0.0 192.168.2.1
192.168.1.1 是外网网关;192.168.2.1 是内网网关,192.0.0.0 是内网的地址 255.0.0.0 是子网掩码,这两个地址表示,IP 地址为 192 开头的网络包都会走 192.168.2.1 这个路由。
这三条命令的意思分别是:删除默认网关、添加默认网关为外网网关、添加内网路由。
Linux 双网卡联网
Linux 的 route 命令设置路由。
route add -net 内网网段 netmask 子网掩码 网卡名称(比如 eth0) route add -net 内网网段 netmask 子网掩码 gw 路由/网关IP
先用 ifconfig 命令查看当前的网络信息,有两个网卡分别为 eth0 和 wwan0。
从终端输出的信息可以看出,我的一个网卡名为 eth0,另一个是 wwan0。
eth0 对应的是内网的环境,wwan0 对应的是外网的环境。
内网网段是 10 开头,路由/网关地址为 10.168.2.1。
外网的路由地址为 192.168.1.10。
设置外网的路由为默认路由:
route add -net 0.0.0.0/0 wwan0 route add -net 0.0.0.0/0 gw 192.168.1.10
设置内网的路由:
route add -net 10.0.0.0 255.0.0.0 eth0 route add -net 10.0.0.0 255.0.0.0 gw 10.168.2.1
或写成
route add -net 10.0.0.0/8 eth0 route add -net 10.0.0.0/8 gw 10.168.2.1
就可以了。
10.168.2.1 是 10 开头的网络包的路由,不是 10 开头的 IP 包都走 192.168.1.10。(默认路由的优先级较低)
这些命令可以保存到 .sh 文件中,方便在需要使用时快速运行。
如果希望在系统启动时自动执行上面的设置,只需要修改 rc.local。
sudo nano /etc/rc.local
然后将命令保存到 rc.local 文件中,如下:
route add -net 0.0.0.0/0 wwan0 route add -net 0.0.0.0/0 gw 192.168.1.10 route add -net 10.0.0.0/8 eth0 route add -net 10.0.0.0/8 gw 10.168.2.1 exit 0
保存之后,重启系统即可。