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
```
保存之后,重启系统即可。