route [-V] [--version] [-h] [--help]
描述 DESCRIPTION
route程序对内核的IP选路表进行操作。它主要用于通过已用ifconfig(8)程序配置好的接口来指定的主机或网络设置静态路由。
选项 OPTIONS
-v
选用细节操作模式
-A family
用指定的地址族(如`inet',`inet6')。
-n
以数字形式代替解释主机名形式来显示地址。此项对试图检测对域名服务器进行路由发生故障的原因非常有用。
-e
用netstat(8)的格式来显示选路表。-ee将产生包括选路表所有参数在内的大量信息。
-net
路由目标为网络。
-host
路由目标为主机。
-F
显示内核的FIB选路表。其格式可以用-e 和 -ee选项改变。
-C
显示内核的路由缓存。
del
删除一条路由。
add
添加一条路由。
target
指定目标网络或主机。可以用点分十进制形式的IP地址或主机/网络名。
netmask Nm
为添加的路由指定网络掩码。
gw Gw
为发往目标网络/主机的任何分组指定网关。注意:指定的网关首先必须是可达的。也就是说必须为该网关预先指定一条静态路由。如果你为本地接口之一指定这个网关地址的话,那么此网关地址将用于决定此接口上的分组将如何进行路由。这是BSD风格所兼容的。
metric M
把选路表中的路由值字段(由选路进程使用)设为M。
mss M
把基于此路由之上的连接的TCP最大报文段长度设为M字节。这通常只用于优化选路设置。默认值为536。
window W
把基于此路由之上的连接的TCP窗口长度设为W字节。这通常只用于AX.25网络和不能处理背对背形式的帧的设备。
irtt I
把基于此路由之上的TCP连接的初始往返时间设为I毫秒(1-12000)。这通常也只用于AX.25网络。如果省略此选项,则使用RFC1122的缺省值300ms。
reject
设置一条阻塞路由以使一条路由查找失败。这用于在使用缺省路由前先屏蔽掉一些网络。但这并不起到防火墙的作用。
mod, dyn, reinstate
设置一条动态的或更改过的路由。这些标志通常只由选路进程来设置。这只用于诊断目的,
dev If
强制使路由与指定的设备关联,因为否则内核会自己来试图检测相应的设备(通常检查已存在的路由和加入路由的设备的规格)。在多数正常的网络上无需使用。
如果dev If是命令行上最后一个指定的选项,那么可以省略关键字dev,因为它是缺省值。否则路由修改对象(metric - netmask- gw - dev)无关紧要。
范例 EXAMPLES
route add -net 127.0.0.0
加入正常的环回接口项,它使用掩码255.0.0.0(由目标地址决定了它是A类网络)并与设备"lo"相关联(假定该设备先前已由ifconfig(8)正确设置)。
route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
向"eth0"添加一条指向网络192.56.76.x的路由。其中的C类子网掩码并不必须,因为192.*是个C类的IP地址。在此关键字"dev"可省略。
route add default gw mango-gw
加入一条缺省路由(如果无法匹配其它路由则用它)。使用此路由的所有分组将通过网关"mango-gw"进行传输。实际使用此路由的设备取决于如何到达"mango-gw" - 先前必须设好到"mango-gw"的静态路由。
route add ipx4 sl0
向SLIP接口添加一条指向"ipx4"的路由(假定"ipx4"是使用SLIP的主机)。
route add -net 192.57.66.0 netmask 255.255.255.0 gw ipx4
此命令为先前SLIP接口的网关ipx4添加到网络"192.57.66.x"的路由。
route add 224.0.0.0 netmask 240.0.0.0 dev eth0
此命令为"eth0"设定所有D类地址(用于组播)的路由。这是用于组播内核的正确配置行。
route add 10.0.0.0 netmask 255.0.0.0 reject
此命令为私有网络"10.x.x.x."设置一条阻塞路由。
输出信息 OUTPUT
内核选路表的输出信息由以下栏目组成:
Destination
目标网络或目标主机。
Gateway
网关地址或'*'(如未设)。
Genmask
目标网络的子网掩码;'255.255.255.255'为主机,'0.0.0.0'为缺省路由。
Flags
可能出现的标志有:
U (route is up) 路由正常
H (target is a host) 主机路由
G (use gateway) 使用网关的间接路由
R (reinstate route for dynamic routing) 为动态选路恢复路由
D (dynamically installed by daemon or redirect) 该路由由选路进程或重定向动态创建
M (modified from routing daemon or rederict) 该路由已由选路进程或重定向修改
! (reject route) 阻塞路由
Metric
通向目标的距离(通常以跳来计算)。新内核不使用此概念,而选路进程可能会用。
Ref
使用此路由的活动进程个数(Linux内核并不使用)。
Use
查找此路由的次数。根据-F 和 -C的使用,此数值是路由缓存的损失数或采样数。
Iface
使用此路由发送分组的接口。
MSS
基于此路由的TCP连接的缺省最大报文段长度。
Window
基于此路由的TCP连接的缺省窗口长度。
irtt
初始往返时间。内核用它来猜测最佳TCP协议参数而无须等待(可能很慢的)应答。
HH (cached only)
为缓存过的路由而访问硬件报头缓存的ARP记录和缓存路由的数量。如果缓存过路由的接口(如lo)无须硬件地址则值为-1。
Arp (cached only)
无论缓存路由所用的硬件地址情况如何都进行更新。
文件 FILES
/proc/net/ipv6_route
/proc/net/route
/proc/net/rt_cache
两个都能共享了,但是怎么自动选择线路呢?目前有的网吧可以自动选择线路,有的还得手动切换,呵呵,我的目的就是自动选择。我想到了路由表,目标ip是学校的通过有线网卡,除此之外的所有ip都通过无限网卡。对,就是route命令,上网查了查有关route命令.具体设置是这样的:tplink 410静态ip,添加学校分给的ip,克隆mac,打开dhcp,dmz(验证不打开也行。),lan端口设置 ip地址为 192.168.2.1,因为无线网络要用到ip192.168.1.1,所以这个改成2.1当然改成别的也可以。无线路由当然要添加adsl的账号密码,dhcp打开,lan端口设置 ip默认,密匙之类的统统没用,只是限制了mac地址,禁止宿舍几台电脑之外的mac访问路由。
设置好了以后就是路由表了,也就是route命令。Route命令在windows下和在linux下适用类似,但是有些细微的差别。下面介绍介绍我自己的route的理解,也是一知半解。高手可以给大家讲详细点儿。先把我的批处理贴出来:
route add 202.206.0.0 mask 255.255.0.0 192.168.2.1
route add 10.186.0.0 mask 255.255.0.0 192.168.2.1
route add 10.185.0.0 mask 255.255.0.0 192.168.2.1
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1
参数含义:^destination ^mask ^gateway metric^ ^interface
destination【网段地址】
mask【子网掩码】
gateway【网关地址】
metric 【路由跳数】
if【端口号】
其中:
可以省略【路由跳数】参数;
当通往该网关地址的路径唯一时,【端口号】参数可以省略。(因为在多端口的路由交换设备上,可能存在通往同一个IP地址的多条备份路径。)
mask 是关键字,不能省略。
route add 202.206.0.0 mask 255.255.0.0 192.168.2.1
意思是:所有发往202.206.0.0地址段的ip数据包,全部由192.168.2.1网关发送。
这样大家就能看出来我们学校一些服务器的ip段大概就是202.206.0.0, 10.186.0.0 和10.185.0.0,其实还有其他的,只是我暂时用不到,所以没添加。
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1
意思是:其他所有的地址段的ip数据包都由192.168.1.1发送。
这样每台机子开机运行这个批处理,就能自动选择双线上网了。网吧的我估计也类似,他们完全可以用个双wan路由,在路由器里或者服务器里边添加静态路由表,其他的机子就不用添加路由表了,就可以自动双线上网了,不过电信网通的路由表貌似还很大,不知道谁能共享一下哦。呵呵
还有route change 命令,就是把add改为change,就是更改静态路由表。
这样,我们的目的就实现了,校内校外都能访问,其中一台电脑还可以通过学校的拨号程序访问校外的资源,如果他已经运行了批处理,已经添加了静态路由表,还可以通过route change命令更改。下面是我写的一个批处理贴出:
@ECHO OFF
CLS
color 0a
ECHO =-=-=-=-=请选择要启动的服务项目=-=-=-=-=
ECHO.
ECHO 1 双网双线,如果不使用elink,开机选择!
ECHO.
ECHO 2 恢复elink拨号(之前选择了1,现在重新选择2,如果之前没有选择线路,此时不需
ECHO 选择,直接拨号即可)
ECHO.
ECHO 3 恢复双网双线(之前选择了2现在重新选回双网双线)
ECHO.
ECHO.
SET /P ST= 请输入 1 2 3 或 其他任意键取消:
if /I "%ST%"=="1" goto SERVICE1
if /I "%ST%"=="2" goto SERVICE2
if /I "%ST%"=="3" goto SERVICE3
goto END
:SERVICE1
route add 202.206.0.0 mask 255.255.0.0 192.168.2.1
route add 10.186.0.0 mask 255.255.0.0 192.168.2.1
route add 10.185.0.0 mask 255.255.0.0 192.168.2.1
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1
:SERVICE2
route change 0.0.0.0 mask 0.0.0.0 192.168.2.1
:SERVICE3
route change 0.0.0.0 mask 0.0.0.0 192.168.1.1
:END
这样就可以自由选择怎么上网了,其实我感觉用vb写个小程序更好一些呵呵。
先告一段落吧,还有一点就是linux下的route add命令。
Route 202.206.0.0 netmask 255.255.0.0 gw 192.168.2.1
好了,写到这里了,思路很乱不知道改怎么整理,这是我第一次写类似这样的文章。大家别取笑了。希望对宿舍内共享上网的人能有帮助。
……