linux 下route命令

简介:

为了让设备能访问另一个子网,需要在设备里增加路由到子网络。基本操作如下:

一般来说,都是为了能访问别的子网才设置路由的,比如说,你的主机处于192.168.10.0/24,而你想访问192.168.20.0/24网的主机,当然你知道一个网关IP,例如192.168.10.1(必须和你主机处于同一子网),那么,你可以这样配置路由。

添加路由

route add -net 192.168.20.0 netmask 255.255.255.0 gw 192.168.10.1

查看路由状态

route -n

删除路由

route del -net 192.168.20.0 netmask 255.255.255.0

路由修改 route       

两部主机之间一定要有路由才能够互通 TCP/IP 的协定,否则就无法进行连线啊!

一般来说,只要有网路介面,该介面就会产生一个路由,例如在鸟哥实验室内部的主机有一个 eth0 及 lo ,所以:

[root@linux ~]# route [-nee]

[root@linux ~]# route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]

[root@linux ~]# route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]

观察的参数:

   -n  :不要使用通讯协定或主机名称,直接使用 IP 或 port number;

   -ee :使用更详细的资讯来显示

增加 (add) 与删除 (del) 路由的相关参数:

   -net    :表示后面接的路由为一个网域;

   -host   :表示后面接的为连接到单部主机的路由;

   netmask :与网域有关,可以设定 netmask 决定网域的大小;

   gw      :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;

   dev     :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等

范例一:单纯的观察路由状态

[root@linux ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.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

0.0.0.0         192.168.10.30   0.0.0.0         UG    0      0        0 eth0

[root@linux ~]# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.10.0    *               255.255.255.0   U     0      0        0 eth0

169.254.0.0     *               255.255.0.0     U     0      0        0 eth0

default         server.cluster      0.0.0.0         UG    0      0        0 eth0

   由上面的例子当中仔细观察 route 与 route -n 的输出结果,你可以发现有加 -n参数的主要是显示出 IP ,至于使用 route 而已的话,显示的则是『主机名称』喔!也就是说,在预设的情况下, route 会去找出该 IP 的主机名称,如果找不到呢?就会显示的钝钝的(有点小慢),所以说,鸟哥通常都直接使用 route -n 啦!由上面看起来,我们也知道 default = 0.0.0.0/0.0.0.0 ,而上面的资讯有哪些你必须要知道的呢?

               

· Destination, Genmask:这两个玩意儿就是分别是 network 与netmask 啦!所以这两个咚咚就组合成为一个完整的网域囉!

· Gateway:该网域是通过那个 gateway 连接出去的? 如果显示 0.0.0.0 表示该路由是直接由本机传送,亦即可以透过区域网路的 MAC 直接传讯;如果有显示 IP 的话,表示该路由需要经过路由器 (通讯闸) 的帮忙才能够传送出去。

· Flags:总共有多个旗标,代表的意义如下:                        

o U (route is up):该路由是启动的;                       

o H (target is a host):目标是一部主机 (IP) 而非网域;                       

o G (use gateway):需要透过外部的主机 (gateway) 来转递封包;                       

o R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;                       

o D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由                       

o M (modified from routing daemon or redirect):路由已经被修改了;                       

o !  (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)

· Iface:这个路由传递封包的介面。

此外,观察一下上面的路由排列顺序喔,依序是由小网域(192.168.10.0/24 是 Class C),逐渐到大网域(169.254.0.0/16 Class B) 最后则是预设路由 (0.0.0.0/0.0.0.0)。然后当我们要判断某个网路封包应该如何传送的时候,该封包会经由这个路由的过程来判断喔!举例来说,我上头仅有三个路由,若我有一个传往 192.168.10.20 的封包要传递,那首先会找 192.168.10.0/24 这个网域的路由,找到了!所以直接由 eth0 传送出去;如果是传送到 Yahoo 的主机呢? Yahoo 的主机 IP 是 202.43.195.52,我通过判断 

1)不是 192.168.10.0/24,

       2)不是 169.254.0.0/16 结果到达 

3)0/0 时,OK!传出去了,透过 eth0 将封包传给 192.168.10.30那部 gateway 主机啊!所以说,路由是有顺序的。因此当你重复设定多个同样的路由时,例如在你的主机上的两张网路卡设定为相同网域的 IP 时,会出现什么情况?会出现如下的情况:

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

也就是说,由于路由是依照顺序来排列与传送的,所以不论封包是由那个介面 (eth0, eth1) 所接收,都会由上述的 eth0 传送出去,所以,在一部主机上面设定两个相同网域的 IP 本身没有什么意义!有点多此一举就是了。除非是类似虚拟主机 (Xen, VMware 等软体) 所架设的多主机时,才会有这个必要~

范例二:路由的增加与删除

[root@linux ~]# route del -net 169.254.0.0 netmask 255.255.0.0 dev eth0

# 上面这个动作可以删除掉 169.254.0.0/16 这个网域!

# 请注意,在删除的时候,需要将路由表上面出现的资讯都写入

# 包括  netmask , dev 等等参数喔!注意注意

[root@linux ~]# route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0

# 透过 route add 来增加一个路由!请注意,这个路由必须要能够与你互通。

# 举例来说,如果我下达底下的指令就会显示错误:

# route add -net 192.168.200.0 netmask 255.255.255.0 gw 192.168.200.254

# 因为我的环境内仅有 192.168.10.100 这个 IP ,所以不能与 192.168.200.254

# 这个网段直接使用 MAC 互通!这样说,可以理解喔!?

[root@linux ~]# route add default gw 192.168.10.30

# 增加预设路由的方法!请注意,只要有一个预设路由就够了喔!

# 在这个地方如果您随便设定后,记得使用底下的指令重新设定你的网路

# /etc/init.d/network restart

   

 

# route 命令添加的路由,机器重启或者网卡重启后就没掉了,在linux下设置永久路由的方法:

1.在/etc/rc.local里添加

2.在/etc/sysconfig/network里添加到末尾

3./etc/sysconfig/static-router :

any net x.x.x.x/24 gw y.y.y.y

 

===========================================================================================   WINDOWS下的route命令:

简单的的操作如下,

查看路由状态:route print

只查看ipv4(ipv6)路由状态:route print -4(-6)

添加路由:route add 目的网络 mask 子网掩码 网关 ——重启机器或网卡失效

route add 192.168.20.0 mask 255.255.255.0 192.168.10.1

添加永久:route -p add 目的网络 mask 子网掩码网关

route -p add 192.168.20.0 mask 255.255.255.0 192.168.10.1

删除路由:route delete 目的网络 mask 子网掩码

route delete 192.168.20.0 mask 255.255.255.0







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

1.命令格式:

route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]

2.命令功能:

Route命令是用于操作基于内核ip路由表,它的主要作用是创建一个静态路由让指定一个主机或者一个网络通过一个网络接口,如eth0。当使用"add"或者"del"参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。

3.命令参数:

-c 显示更多信息

-n 不解析名字

-v 显示详细的处理信息

-F 显示发送信息

-C 显示路由缓存

-f 清除所有网关入口的路由表。

-p 与 add 命令一起使用时使路由具有永久性。


add:添加一条新路由。

del:删除一条路由。

-net:目标地址是一个网络。

-host:目标地址是一个主机。

netmask:当添加一个网络路由时,需要使用网络掩码。

gw:路由数据包通过网关。注意,你指定的网关必须能够达到。

metric:设置路由跳数。


Command 指定您想运行的命令 (Add/Change/Delete/Print)。

Destination 指定该路由的网络目标。

mask Netmask 指定与网络目标相关的网络掩码(也被称作子网掩码)。

Gateway 指定网络目标定义的地址集和子网掩码可以到达的前进或下一跃点 IP 地址。

metric Metric 为路由指定一个整数成本值标(从 1 至 9999),当在路由表(与转发的数据包目标地址最匹配)的多个路由中进行选择时可以使用。

if Interface 为可以访问目标的接口指定接口索引。若要获得一个接口列表和它们相应的接口索引,使用 route print 命令的显示功能。可以使用十进制或十六进制值进行接口索引。


4.使用实例:

实例1:显示当前路由

命令:

route

route -n

输出:


[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.120.0   *               255.255.255.0   U     0      0        0 eth0
e192.168.0.0     192.168.120.1   255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.120.1   255.0.0.0       UG    0      0        0 eth0
default         192.168.120.240 0.0.0.0         UG    0      0        0 eth0
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.120.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     192.168.120.1   255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.120.1   255.0.0.0       UG    0      0        0 eth0
0.0.0.0         192.168.120.240 0.0.0.0         UG    0      0        0 eth0


说明:

第一行表示主机所在网络的地址为192.168.120.0,若数据传送目标是在本局域网内通信,则可直接通过eth0转发数据包;

行表示数据传送目的是访问Internet,则由接口eth0,将数据包发送到网关192.168.120.240

其中Flags为路由标志,标记当前网络节点的状态。

Flags标志说明

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

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

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

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

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

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

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


备注:

route -n (-n 表示不解析名字,列出速度会比route 快)


实例2:添加网关/设置网关

命令:

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

输出:

[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.120.0   *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     192.168.120.1   255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.120.1   255.0.0.0       UG    0      0        0 eth0
224.0.0.0       *               240.0.0.0       U     0      0        0 eth0
default         192.168.120.240 0.0.0.0         UG    0      0        0 eth0

[root@localhost ~]#

说明:

增加一条 到达244.0.0.0的路由


实例3:屏蔽一条路由

命令:

route add -net 224.0.0.0 netmask 240.0.0.0 reject

输出:


[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.120.0   *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     192.168.120.1   255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.120.1   255.0.0.0       UG    0      0        0 eth0
224.0.0.0       -               240.0.0.0       !     0      -        0 -
224.0.0.0       *               240.0.0.0       U     0      0        0 eth0
default         192.168.120.240 0.0.0.0         UG    0      0        0 eth0


说明:

增加一条屏蔽的路由目的地址为 224.x.x.x 将被拒绝


实例4:删除路由记录

命令:

route del -net 224.0.0.0 netmask 240.0.0.0

route del -net 224.0.0.0 netmask 240.0.0.0 reject

输出:


[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.120.0   *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     192.168.120.1   255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.120.1   255.0.0.0       UG    0      0        0 eth0
224.0.0.0       -               240.0.0.0       !     0      -        0 -
224.0.0.0       *               240.0.0.0       U     0      0        0 eth0
default         192.168.120.240 0.0.0.0         UG    0      0        0 eth0
[root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.120.0   *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     192.168.120.1   255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.120.1   255.0.0.0       UG    0      0        0 eth0
224.0.0.0       -               240.0.0.0       !     0      -        0 -
default         192.168.120.240 0.0.0.0         UG    0      0        0 eth0
[root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0 reject
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.120.0   *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     192.168.120.1   255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.120.1   255.0.0.0       UG    0      0        0 eth0
default         192.168.120.240 0.0.0.0         UG    0      0        0 eth0
[root@localhost ~]#


说明:


实例5:删除和添加设置默认网关

命令:

route del default gw 192.168.120.240

route add default gw 192.168.120.240

输出:


[root@localhost ~]# route del default gw 192.168.120.240
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.120.0   *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     192.168.120.1   255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.120.1   255.0.0.0       UG    0      0        0 eth0
[root@localhost ~]# route add default gw 192.168.120.240
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.120.0   *               255.255.255.0   U     0      0        0 eth0
192.168.0.0     192.168.120.1   255.255.0.0     UG    0      0        0 eth0
10.0.0.0        192.168.120.1   255.0.0.0       UG    0      0        0 eth0
default         192.168.120.240 0.0.0.0         UG    0      0        0 eth0
[root@localhost ~]#











本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1624901,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
95 8
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
256 6
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
80 3
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
72 2
|
14天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
44 14
Linux 10 个“who”命令示例
|
3天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
56 20
|
4天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
26 7
|
23天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
31 9
|
22天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
28天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
112 3
下一篇
DataWorks