程序员人生 网站导航

多个IP选择线路的解决办法之route命令

栏目:服务器时间:2013-12-11 04:10:21

一台电脑两条线路一个电信IP一个联通的IP,解决访问电信的时候自动走电信线路,访问联通的时候自动走联通的线路,我们可以用到下面这个命令

ROUTEDOS命令我们都可以在 Cmd 下用 route /? 来查看他的帮助信息

先看一下他的帮助

Manipulates network routing tables.

ROUTE [-f] [-p] [command [destination]

[MASK netmask] [gateway] [METRIC metric] [IF interface]

-f Clears the routing tables of all gateway entries. If this is

used in conjunction with one of the commands, the tables are

cleared prior to running the command.

-p When used with the ADD command, makes a route persistent across

boots of the system. By default, routes are not preserved

when the system is restarted. Ignored for all other commands,

which always affect the appropriate persistent routes. This

option is not supported in Windows 95.

command One of these:

PRINT Prints a route

ADD Adds a route

DELETE Deletes a route

CHANGE Modifies an existing route

destination Specifies the host.

MASK Specifies that the next parameter is the 'netmask' value.

netmask Specifies a subnet mask value for this route entry.

If not specified, it defaults to 255.255.255.255.

gateway Specifies gateway.

interface the interface number for the specified route.

METRIC specifies the metric, ie. cost for the destination.

All symbolic names used for destination are looked up in the network database

file NETWORKS. The symbolic names for gateway are looked up in the host name

database file HOSTS.

If the command is PRINT or DELETE. Destination or gateway can be a wildcard,

(wildcard is specified as a star '*'), or the gateway argument may be omitted.

If Dest contains a * or ?, it is treated as a shell pattern, and only

matching destination routes are printed. The '*' matches any string,

and '?' matches any one char. Examples: 157.*.1, 157.*, 127.*, *224*.

Diagnostic Notes:

Invalid MASK generates an error, that is when (DEST & MASK) != DEST.

Example> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1

The route addition failed: The specified mask parameter is invalid

(Destination & Mask) != Destination.

Examples:

> route PRINT

> route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2

destination^ ^mask ^gateway metric^ ^

Interface^

If IF is not given, it tries to find the best interface for a given

gateway.

> route PRINT

> route PRINT 157* .... Only prints those matching 157*

> route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2

CHANGE is used to modify gateway and/or metric only.

> route PRINT

> route DELETE 157.0.0.0

> route PRINT

route - 显示 / 操作IP选路表

总览 SYNOPSIS

route [-CFvnee]

route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I][reject] [mod] [dyn] [reinstate] [[dev] If]

route [-v] [-A family] del [-net|-host] target [gw Gw][netmask Nm] [metric N] [[dev] If]

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

好了,写到这里了。写的不好,大家见笑了,投稿于列火网,欢迎转载。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐