Linux-显示与设置路由表(route)

Linux系统的route命令用于显示和操作IP路由表.要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器或者同时位于两个网络的网关来实现.

Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由.

注意的是: 直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效.

命令格式 :

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

命令功能 :

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

命令参数 :

-c ==>显示更多信息

-n ==>不解析名字

-v ==>显示详细的处理信息

-F ==>显示发送信息

-C ==>显示路由缓存

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

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

 

add ==>添加一条新路由

del ==>删除一条路由

-net==>目标地址是一个网络

-host==>目标地址是一个主机

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

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

metric==>设置路由跳数

Command==>指定你想运行的命令

Destination==>指定该路由的网络目标

mask Netmask==>指定与网络目标相关的网关掩码

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

metric Metric==>为路由指定一个整数成功值标(1~9999),当在路由表(与转发的数据包目标地

址最匹配)的多个路由中进行选择时可以使用;

if Interface==>为可以访问目标的接口指定接口索引.若要获得一个接口列表和它们相应的接

口索引,使用route print命令显示功能.可以使用十进制或十六进制进行接口索引.

 

实用案例 :

<1>显示当前路由

命令 :

route

route -n

输出 :

图片1

说明 :

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

第三行表示数据传送目的是访问Internet,则有接口eth0,将数据包发送到网关137.175.46.254.

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

Flags标志说明 :

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

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

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

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

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

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

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

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

 

<2>添加网关/设置网关

命令 :

route add -net 240.0.0.0 netmask 240.0.0.0 dev eth0

输出 :

图片2

 

<3>屏蔽一条路由

命令 :

route add -net 240.0.0.0 netmask 240.0.0.0 reject

输出 :

图片3

 

<4>删除路由记录

命令 :

route del -net 240.0.0.0 netmask 240.0.0.0

route del -net 240.0.0.0 netmask 240.0.0.0 reject

输出 :

图片4

 

<5>删除和添加默认网关

命令 :

route del default gw 137.175.46.254

route add default gw 137.175.46.254

备注 :

远程主机,就不要随便乱测试了,容易连接不了.