背景不说了,网上的教程查过之后感觉写的都挺复杂的,遂抛弃之。
在Windows下,如果要设置内外网同时可用,只需要两条命令:
#内外网连接上后,此时内外网的默认网关同时存在
#1、清除两个默认网关
#2、添加默认网关为外网网关
#3、添加内网路由
route delete 0.0.0.0
route add -p 0.0.0.0 mask 0.0.0.0 192.92.48.1
route add -p 192.0.0.0 mask 255.0.0.0 192.92.36.1
说明:
1、 192.92.48.1是我的外网网关,通常来说,如果要设置的话,第二条命令只需要将外网网关改成你自己的网络环境里的外网网关
2、 192.92.36.1是我的内网网关,192.0.0.0 是我的内网的地址 255.0.0.0是子网掩码,这两个地址表示,ip地址为192开头的网络包都会走192.92.36.1这个路由。这个也要根据你自己的环境来设置。可能需要一些网络基础才行。
Ubuntu双网卡上网
依据windows下的双网卡上网原理,我推测如果是Ubuntu的话这么设置应该也可以。
不过Linux 的route命令设置路由要分成两条命令。
route add -net {内网网段} netmask {子网掩码} 网卡名称(比如最常见的eth0)
route add -net {内网网段} netmask {子网掩码} gw {路由ip/网关IP}
以我的网络为例,先用ifconfig命令查看当前的网络信息。
#用ifconfig命令查看我的网卡名称和其他网络信息
终端返回的数据如下:
eth0 Link encap:以太网 硬件地址 6c:0b:84:0b:cd:2c
inet 地址:10.92.36.90 广播:10.92.36.255 掩码:255.255.255.0
inet6 地址: fe80::6e0b:84ff:fe0b:cd2c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:89887 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:35575 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:21515279 (21.5 MB) 发送字节:4718843 (4.7 MB)
中断:20 Memory:f7c00000-f7c20000
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 跃点数:1
接收数据包:8632 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:8632 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:649777 (649.7 KB) 发送字节:649777 (649.7 KB)
usb0 Link encap:以太网 硬件地址 be:1e:34:87:4c:4a
inet 地址:192.168.42.159 广播:192.168.42.255 掩码:255.255.255.0
inet6 地址: fe80::bc1e:34ff:fe87:4c4a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:31 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:109 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:2924 (2.9 KB) 发送字节:19978 (19.9 KB)
从终端输出的信息可以看出,我的一个网卡名为eth0,另一个是usb0
eth0对应的是内网的环境,usb0对应的是外网的环境。
内网网段是10开头,路由/网关地址为10.92.36.1(可在Ubuntu的工具栏的网络图标那里查看)
外网的路由地址为192.168.42.129
设置外网的路由(route命令需要root权限),将外网路由为默认路由
route add -net 0.0.0.0/0 usb0
route add -net 0.0.0.0/0 gw 192.168.42.129
设置内网的路由
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.92.36.1
也可以写成
route add -net 10.0.0.0/8 eth0
route add -net 10.0.0.0/8 gw 10.92.36.1
然后就可以上网了。
稍微解释下上面几个命令的意思:
10.92.36.1是10开头的网络包的路由,不是10开头的ip包都走192.168.42.129. (默认路由的优先级较低)
这些命令可以保存到.sh文件中,方便使用。不过这些命令都不是永久的,如果是想设置成永久的可以接着看:
设置永久路由
sudo vim /etc/rc.local
然后将以上命令保存到rc.local文件中,我修改后的文本内容为:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
route add -net 0.0.0.0/0 usb0
route add -net 0.0.0.0/0 gw 192.168.42.129
route add -net 10.0.0.0/8 eth0
route add -net 10.0.0.0/8 gw 10.92.36.1
exit 0
保存之后,需要重启系统才能生效。
参考文章:
http://man.linuxde.net/route 感觉这个网站很好,Linux的每个基本命令讲的都很详细