Linux命令学习手册-route命令

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]

[功能]

设定和操作路由器表。

[描述]

route用来操作管理内核的IP路由表。它的作用是在使用ifconfig命令配置好网络接口之后,通过网络接口设定到特定主机或者网络的静态路由表。

当使用add或者del选项的时候,route修改路由表。如果没有这些选项,那么route会显示当前路由表中的内容。

常用项:

-n:不使用主机名称而直接使用主机IP或端口号。

-ee:使用详细信息显示。

增加(add)和删除(del)选项的参数:

-net:表示后面所指定的是为一个网络。

-host:表示后面所指定的是一个主机的路由。

netmask:和网络相关,可以设定netmask来决定网络大小。

gw:表示gateway(网关),后面连接其IP。

dev:指定连接的设备(网卡),例如eth0。

[举例]

1、需要预先了解的内容:

(1)路由可为各种品牌路由(例如cisco),PC为访问网络的设备(例如主机)。

(2)路由器上面至少有两类网口,一个可连接WAN,一个可连接PC组成LAN。

(3)PC只有一个网口,要么连接WAN,要么连接路由组成LAN。

(4)路由可与PC直连,与之组成LAN;路由也可再与WAN相连,使其LAN内主机可经它访问WAN;也可PC直连到WAN。

(5)内网:又叫LAN,是路由和PC组成的内部局域网,其网内主机假设为172.168.1.*。

(6)外网:又叫WAN,是外部一个更大的局域网,其网内主机假设为10.1.10.*。

(7)PC内网网址(LAN):可静态指定,也可通过路由的dhcp服务动态获取(例如172.168.1.105)。

(8)路由内网网址(LAN):连接到路由的PC以它作为默认网关,PC也可通过它登陆并配置路由(如172.168.1.14)。

(9)PC外网网址(WAN):可静态指定,也可通过WAN网中的dhcp服务动态获取(如10.1.10.182)。(似PC从路由)

(10)路由的外网网址(WAN):可静态指定,也可通过WAN网中的dhcp服务获取(如10.1.10.32)。(似PC从外网)

2、当把路由器插连接WLAN,然后pc连接路由器组成LAN之后:

pc的网址(LAN):172.168.1.105(可以pc自己指定静态的,也可通过路由的dhcp服务动态获取)。

cisco的网址(LAN):172.168.1.14。

pc的网关设置成(LAN):172.168.1.14。

*查看PC机器ip信息:

# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:24:7e:03:62:14

inet addr:172.168.1.105  Bcast:172.168.1.255  Mask:255.255.255.0

inet6 addr: fe80::224:7eff:fe03:6214/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:1776511 errors:12 dropped:1 overruns:0 frame:8

TX packets:1174511 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:934065225 (934.0 MB)  TX bytes:107898203 (107.8 MB)

Interrupt:16 Memory:fc500000-fc520000

lo        Link encap:Local Loopback

inet addr:127.0.0.1  Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING  MTU:16436  Metric:1

RX packets:310438 errors:0 dropped:0 overruns:0 frame:0

TX packets:310438 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:28063379 (28.0 MB)  TX bytes:28063379 (28.0 MB)

*查看当前路由如下:

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         172.168.1.14    0.0.0.0         UG    0      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

172.168.1.0     *               255.255.255.0   U     1      0        0 eth0

可以看到机器路由,其中(其他参见man手册):

Destination:目标网络或者主机。

Gateway:网关地址,如果没有设置则为*。

Genmask:目标网络掩码;如果目标主机则用"255.255.255.255",如果默认路由则用"0.0.0.0"。

Flags标志说明:

U Up表示此路由当前为启动状态

H Host,表示此网关为一主机

G Gateway,表示此网关为一路由器

R Reinstate Route,使用动态路由重新初始化的路由

D Dynamically,此路由是动态性地写入

M Modified,此路由是由路由守护程序或导向器动态修改

! 表示此路由当前为关闭状态

Metric:到目标的距离(一般为跳数),当前kernel可能不用,但是路由守护进程可能会需要它。

Ref:此路由引用数目(当前kernel不用)。

Use:对此路由的查找。

Iface:对于这个路由,数据包将要发送到那个接口(网卡)。

*查看路由信息的另外一个方法:

# netstat -rn

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

0.0.0.0         172.168.1.14    0.0.0.0         UG        0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

172.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

这里,信息类似,速度稍快,不象route需要等待一段时间,(区别是什么?)。然后可以用如下命令查看连通性:

# ping 10.1.10.100

PING 10.1.10.100 (10.1.10.100) 56(84) bytes of data.

From 172.168.1.14 icmp_seq=1 Destination Net Unreachable

From 172.168.1.14 icmp_seq=2 Destination Net Unreachable

可见无法ping通(这里10.1.10.100是外网的一台机器),原因是因为没有给route插入外网网线,而是只将route的lan口与机器相连,当将外网和route的wan口相连之后,就可以ping通了。

# ping 172.168.1.14

PING 172.168.1.14 (172.168.1.14) 56(84) bytes of data.

64 bytes from 172.168.1.14: icmp_req=1 ttl=64 time=0.457 ms

64 bytes from 172.168.1.14: icmp_req=2 ttl=64 time=0.425 ms

可见可以ping通本网段(这里172.168.1.14是路由器)。

3、让pc直接连接到外部网络,不经过路由器:

pc的网址:10.1.10.182。

外网其网内主机ip是10.1.10.*。

*查看PC基本信息:

# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:24:7e:03:62:14

inet addr:10.1.10.182  Bcast:10.1.10.255  Mask:255.255.255.0

inet6 addr: fe80::224:7eff:fe03:6214/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:1776739 errors:12 dropped:2 overruns:0 frame:8

TX packets:1174650 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:934090706 (934.0 MB)  TX bytes:107913085 (107.9 MB)

Interrupt:16 Memory:fc500000-fc520000

lo        Link encap:Local Loopback

inet addr:127.0.0.1  Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING  MTU:16436  Metric:1

RX packets:310442 errors:0 dropped:0 overruns:0 frame:0

TX packets:310442 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:28063715 (28.0 MB)  TX bytes:28063715 (28.0 MB)

*查看PC路由信息:

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         ns.amazon.esdl. 0.0.0.0         UG    0      0        0 eth0

10.1.10.0       *               255.255.255.0   U     1      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

# netstat -rn

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

0.0.0.0         10.1.10.254     0.0.0.0         UG        0 0          0 eth0

10.1.10.0       0.0.0.0         255.255.255.0   U         0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

在这个路由信息的基础上,测试连通性:

# ping 10.1.10.119

PING 10.1.10.119 (10.1.10.119) 56(84) bytes of data.

64 bytes from 10.1.10.119: icmp_req=1 ttl=64 time=3.72 ms

这里,10.1.10.119是网内另外一台主机。

*添加一个192.168.1.0网络:

# route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         ns.amazon.esdl. 0.0.0.0         UG    0      0        0 eth0

10.1.10.0       *               255.255.255.0   U     1      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

*再添加192.0.0.0和192.0.0.0网络:

# route add -net 192.0.0.0 netmask 255.255.0.0 dev eth0

# route add -net 192.0.0.0 netmask 255.0.0.0 dev eth0

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         ns.amazon.esdl. 0.0.0.0         UG    0      0        0 eth0

10.1.10.0       *               255.255.255.0   U     1      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

192.0.0.0       *               255.255.255.0   U     0      0        0 eth0

192.0.0.0       *               255.255.0.0     U     0      0        0 eth0

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

这里,网络地址结合子网掩码来标识。

*删除192.0.0.0:

# route del 192.0.0.0

SIOCDELRT: No such process

# route del -net 192.0.0.0

SIOCDELRT: Invalid argument

# route del -net 192.0.0.0 netmask 255.255.0.0

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         ns.amazon.esdl. 0.0.0.0         UG    0      0        0 eth0

10.1.10.0       *               255.255.255.0   U     1      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

192.0.0.0       *               255.255.255.0   U     0      0        0 eth0

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

# route del -net 192.0.0.0 netmask 255.255.255.0

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         gateway.amazon. 0.0.0.0         UG    0      0        0 eth0

10.1.10.0       *               255.255.255.0   U     1      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

从这里可知,如果没指定子网掩码,那么如果两个一样的ip的网络就无法删除成功。

*添加一台主机:

# route add -host 10.1.10.47 dev eth0

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         gateway.amazon. 0.0.0.0         UG    0      0        0 eth0

10.1.10.0       *               255.255.255.0   U     1      0        0 eth0

quietheart      *               255.255.255.255 UH    0      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

# netstat -rn

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

0.0.0.0         10.1.10.254     0.0.0.0         UG        0 0          0 eth0

10.1.10.0       0.0.0.0         255.255.255.0   U         0 0          0 eth0

10.1.10.47      0.0.0.0         255.255.255.255 UH        0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

# ping 10.1.10.47

PING 10.1.10.47 (10.1.10.47) 56(84) bytes of data.

64 bytes from 10.1.10.47: icmp_req=1 ttl=64 time=8.02 ms

64 bytes from 10.1.10.47: icmp_req=2 ttl=64 time=9.49 ms

从这里我们可以看出,主机10.1.10.47名称是"quietheart",注意,添加主机的时候,不指定netmask。添加之后,仍然可以ping通。

*添加一个默认的网关:

# route add default gw 10.1.10.1

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         10.1.10.1       0.0.0.0         UG    0      0        0 eth0

default         gateway.amazon. 0.0.0.0         UG    0      0        0 eth0

10.1.10.0       *               255.255.255.0   U     1      0        0 eth0

quietheart      *               255.255.255.255 UH    0      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

这里,默认的路由"default"在没有其他路由匹配的时候,会被使用到,可以有特殊的命令修改默认路由(例如"route add default gw mango-gw"会添加mango-gw主机),具体可以参见"man"手册。

*删除一个默认网关:

# route del default gw 10.1.10.1

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         gateway.amazon. 0.0.0.0         UG    0      0        0 eth0

10.1.10.0       *               255.255.255.0   U     1      0        0 eth0

quietheart      *               255.255.255.255 UH    0      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

*为一台主机添加一个特定网关:

# route add -host  10.1.10.47 gw 10.1.10.1 dev eth0

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         gateway.amazon. 0.0.0.0         UG    0      0        0 eth0

10.1.10.0       *               255.255.255.0   U     1      0        0 eth0

quietheart      10.1.10.1       255.255.255.255 UGH   0      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

这里10.1.10.47的主机名称为quietheart,这里如果gw后面指定的ip地址是不存在的,则命令运行失败,例如:

# route add -host 10.1.10.47 gw 172.168.1.1 dev eth0

SIOCADDRT: No such process

这里,172.168.1.1是不存在的,但是192.168.1.1是存在的,因为路由表中有192.168.1.0的网络,可是实际上192.168.1.1不可达。

*添加一个不可达的路由也无法正常工作,例如:

# route add -host 10.1.10.47 gw 192.168.1.1 dev eth0

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         ns.amazon.esdl. 0.0.0.0         UG    0      0        0 eth0

10.1.10.0       *               255.255.255.0   U     1      0        0 eth0

quietheart      192.168.1.1     255.255.255.255 UGH   0      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

# ping 10.1.10.47

PING 10.1.10.47 (10.1.10.47) 56(84) bytes of data.

因为192.168.1.1不可达,所以即使添加上去了,也不能正常工作。

*删除一个主机:

# route del -host 10.1.10.47 dev eth0

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         ns.amazon.esdl. 0.0.0.0         UG    0      0        0 eth0

10.1.10.0       *               255.255.255.0   U     1      0        0 eth0

link-local      *               255.255.0.0     U     1000   0        0 eth0

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

[其它]

待更新。

参考资料:

http://www.2cto.com/os/201203/125081.html

http://blog.chinaunix.net/uid-22646981-id-3048260.html

man手册

时间: 2025-01-02 17:13:27

Linux命令学习手册-route命令的相关文章

Linux命令学习手册-printf命令(转)

分类: LINUX 参考资料:http://sns.linuxpk.com/space-566-do-blog-id-15819.html printf FORMAT [ARGUMENT]... printf OPTION [功能] 格式化并打印数据. [举例] *打印整数和字符串: $printf 'the integer is:%d\nthe string is: %s\n' 3 "test" 输入之后,输出如下: the integer is:3 the string is: t

linux 几个不常用命令学习 之 cal 命令

看了极客里面的文章:一些实用但不为人知的unix命令 文章参考:http://blog.jobbole.com/66590/ 准备好好学习下这些命令,成为Linux高手 这次学习显示日历命令:cal #显示日历,默认格式 $ cal 五月 2014 日 一 二 三 四 五 六 1  2  3 4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #默认日历显示是从星期天作为第一天,你也

Linux命令学习总结: file命令

http://www.cnblogs.com/kerrycode/p/3806618.html Linux命令学习总结: file命令 命令简介: 该命令用来识别文件类型,也可用来辨别一些文件的编码格式.它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的. 执行权限 :All User 指令所在路径:/usr/bin/file 命令语法: file [ -bchikLnNprsvz ] [ -f namefile ] [ -F separator ] [

(转) Git版本控制软件结合GitHub从入门到精通常用命令学习手册

转载自:爱分享 » Git版本控制软件结合GitHub从入门到精通常用命令学习手册 原文传送门: http://www.ihref.com/read-16369.html 注意: 学习前请先配置好Git客户端 相关文章:Git客户端图文详解如何安装配置GitHub操作流程攻略 官方中文手册:http://git-scm.com/book/zh GIT 学习手册简介 本站为 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划

c/c++unix/linux基础学习笔记-常用命令和vi的使用

linux 基本命令的使用-命令在ubuntu下面执行,有些命令通用其他linux,有些不通用. 多条命令间用;号隔开,回车后可以一起执行. clear-前屏,pwd显示当前目录,cd跳转目录. sudo [命令]  -ubuntu 下以管理员身份运行命令. 一般情况下,运行当前目录下的程序,要用 ./文件名 执行. 查看当前shell名称:ps 进入另外一个shell,直接输入shell名称:ksh/tcsh/sh/bash,退出一个shell用:exit. 切换shell命令,如:exec

Linux常用命令41:route命令

Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现.在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由.要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,

linux命令学习之文件目录命令-mv命令

mv命令可以用来移动文件或者将文件改名(move (rename) files),经常用来备份文件或者目录 命令学习 命令格式:mv [选项] 源文件或目录 目标文件或目录命令功能:根据mv命令中第二个参数类型(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中.当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名.当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各

Linux命令学习(2) cd命令

Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. 1. 命令格式: cd [目录名] 2. 命令功能: 切换当前目录至dirName 3. 常用范例 3.1 例一:进入系统根目录 命令: cd / 输出: [[email protected] ~]# cd / 说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到系统根目录了 命令: c

Git版本控制软件结合GitHub从入门到精通常用命令学习手册

GIT 学习手册简介 本站为 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划分,并且将提供日常使用中需要的一些常用的命令以及参数. 本手册将从入门到精通指导大家. 首先,我们要从如何以 Git 的思维方式管理源代码开始. 如何以 GIT 的方式思考(这里可以不用看懂,接着看下面的内容,看完就全懂了.) 懂得 Git,第一件重要的事情就是要知道它与 Subversion.Perforce 或者任何你用过的版本控制工具都有