route 命令详解

本贴最后更新于 2456 天前,其中的信息可能已经时过境迁

Route

功能简述:linux 系统中的 route 命令能够用于 IP 路由表的显示和操作。它的主要作用是创建一个静态路由让指定一个主机或者一个网络通过一个网络接口,如 eth0。当使用"add"或者"del"参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。在一个网络中,需要一个路由器来转发不同广播域之间的数据,或是转发 lan 和 internet 之间的数据。有时我们需要设定这个路由器作为 linux 系统的默认路由,那么就可以通过 route 命令来操作。甚至我们也可以用我们的 linux 系统来充当路由器。

要注意的是,直接在命令行下执行 route 命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local 中添加 route 命令来保证该路由设置永久有效。当然如果加上了-p 参数的话那就会永久的生效了。

命令格式:route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway][metric Metric]] [if Interface]]

命令参数:

-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 命令的显示功能。可以使用十进制或十六进

(1)显示路由信息

[root@LiWenTong ~]# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.40.0 * 255.255.252.0 U 0 0 0 eth0

169.254.0.0 * 255.255.0.0 U 0 0 0 eth0

default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0

Flags 标志说明:

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

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

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

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

D Dynamically,此路由是动态性地写入–》什么时候才会有动态的路由信息呢?

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

(2)添加一条指向某个网络的路由

[root@LiWenTong ~]# route add -net 10.0.0.0 netmask 255.255.255.0 dev eth0—》这里是指定这条路由的出口在哪里。绿色部分:为指定目标网络的参数,需要 ip 地址或地址范围、子网掩码用于确定网络范围。

[root@LiWenTong ~]# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

10.0.0.0 * 255.255.255.0 U 0 0 0 eth0

192.168.40.0 * 255.255.252.0 U 0 0 0 eth0

169.254.0.0 * 255.255.0.0 U 0 0 0 eth0

default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0

自我小结:route 添加路由都是需要指定目标网络,及路由出口这两个参数。记住加上-p 选项能永久添加。

(3)再来一条添加到某一个 ip 的路由

[root@LiWenTong ~]# route add -host 192.168.40.1dev eth0

[root@LiWenTong ~]# route ----》可以发现添加的是主机的话,默认是会帮我们添加一个全 255 的子网掩码,表示子网范围就只有一个而已,那就是这台主机啦。

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.40.1 * 255.255.255.255 UH 0 0 0 eth0

(4)屏蔽某一路由

当我们不让系统到达某个子网范围或者某个主机是就可以手动的来进行屏蔽。

[root@LiWenTong ~]# route add -net 10.10.10.128 netmask 255.255.255.128 reject—》前面部分是一样的,因为我们都是手动来添加一个路由嘛。只是在命令的最后不一样,我们指定的出口去而是 reject(拒绝),也就是拒绝出口。达到屏蔽的效果。还有看下 flags 会显示一个!

[root@LiWenTong ~]# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.40.1 * 255.255.255.255 UH 0 0 0 eth0

10.10.10.128 - 255.255.255.128 ! 0 - 0 -

10.0.0.0 * 255.255.255.0 U 0 0 0 eth0

192.168.40.0 * 255.255.252.0 U 0 0 0 eth0

169.254.0.0 * 255.255.0.0 U 0 0 0 eth0

default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0

(5)删除路由

[root@LiWenTong ~]# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.40.1 * 255.255.255.255UH 0 0 0 eth0

10.10.10.128 - 255.255.255.128 ! 0 - 0 -

10.0.0.0 * 255.255.255.0 U 0 0 0 eth0

192.168.40.0 * 255.255.252.0 U 0 0 0 eth0

169.254.0.0 * 255.255.0.0 U 0 0 0 eth0

default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0

[root@LiWenTong ~]# route del -net 10.10.10.128netmask 255.255.255.128 reject

[root@LiWenTong ~]# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.40.1 * 255.255.255.255UH 0 0 0 eth0

10.0.0.0 * 255.255.255.0 U 0 0 0 eth0

192.168.40.0 * 255.255.252.0 U 0 0 0 eth0

169.254.0.0 * 255.255.0.0 U 0 0 0 eth0

default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0

说明:看到没有,路由已经被我删除掉了,哈哈哈哈。删除路由时,最好是看着路由表上的照样打进去,这样比较不会删错的。

(6)添加删除默认网关

[root@LiWenTong ~]# route add default gw 192.168.40.2

[root@LiWenTong ~]# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.40.1 * 255.255.255.255UH 0 0 0 eth0

10.0.0.0 * 255.255.255.0 U 0 0 0 eth0

192.168.40.0 * 255.255.252.0 U 0 0 0 eth0

169.254.0.0 * 255.255.0.0 U 0 0 0 eth0

default 192.168.40.2 0.0.0.0 UG 0 0 0 eth0

default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0

--》可以看到此处有两个默认网关,那到底路由会走哪个呢?

[root@LiWenTong ~]# route del default gw192.168.40.2--- 》在这里我们还是先删除掉吧。

[root@LiWenTong ~]# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.40.1 * 255.255.255.255UH 0 0 0 eth0

10.0.0.0 * 255.255.255.0 U 0 0 0 eth0

192.168.40.0 * 255.255.252.0 U 0 0 0 eth0

169.254.0.0 * 255.255.0.0 U 0 0 0 eth0

default 192.168.40.1 0.0.0.0 UG 0 0 0 eth0

---------------------------后续自我小结-------------------------

很好,这个 route 命令好像跟 windows 的 route 命令差不多。主要就是查看 route 表,添加一条路由啦。添加默认路由啦,删除路由啦。这边还多了个屏蔽路由 reject。

route add -net 192.168.40.0 netmask 255.255.255.0 dev eth0:1

route add -host 192.168.40.111 dev eth0 reject

route del -net 192.168.40.0 netmask 255.255.255.0 dev eth0:1

route add default gw 192.169.1.1

后续我还会在网络查看是否别人有一些其他比较常用的环境。大家有知道也帮我留下哦!

来自 [http://www.centoscn.com/CentOS/help/2014/0113/2351.html](http://www.centoscn.com/CentOS/help/2014/0113/2351.html)

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    169 引用 • 1148 回帖 • 1 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 786 关注
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 657 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖 • 5 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖 • 1 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 3 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 48 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 639 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    118 引用 • 54 回帖 • 5 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 2 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 591 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 647 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 289 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 451 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    173 引用 • 414 回帖 • 364 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖 • 1 关注
  • 印象笔记
    3 引用 • 16 回帖 • 1 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    125 引用 • 74 回帖
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    412 引用 • 3588 回帖
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    174 引用 • 538 回帖
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖 • 1 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 34 关注
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    290 引用 • 4494 回帖 • 651 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    7 引用 • 27 回帖 • 1 关注