00. 目录

文章目录

  • 00. 目录
  • 01. 命令概述
  • 02. 命令格式
  • 03. 常用选项
  • 04. 参考示例
  • 05. 附录

01. 命令概述

route命令用来显示并设置linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。

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

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

02. 命令格式

route [-nNvee] [-FC] [<AF>]           List kernel routing tables
route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.
route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.
route {-V|--version}                  Display version/author and exit.

03. 常用选项

-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)无关紧要。

04. 参考示例

4.1 显示当前路由表

[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]#

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

  • U Up表示此路由当前为启动状态。
  • H Host,表示此网关为一主机。
  • G Gateway,表示此网关为一路由器。
  • R Reinstate Route,使用动态路由重新初始化的路由。
  • D Dynamically,此路由是动态性地写入。
  • M Modified,此路由是由路由守护程序或导向器动态修改。
  • ! 表示此路由当前为关闭状态。

4.2 以数字形式代替解释主机名形式来显示地址

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]#

4.3 添加一条路由

[root@localhost ~]# route add -net 192.168.1.0 netmask 255.255.255.0 dev ens33
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]#

4.4 删除路由记录

[root@localhost ~]# route del -net 192.168.1.0 netmask 255.255.255.0 dev ens33
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]#

4.5 添加默认网关

[root@localhost ~]# route add default gw 172.16.0.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.2      0.0.0.0         UG    0      0        0 ens33
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]#

4.6 删除默认网关

[root@localhost ~]# route del default gw 172.16.0.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]#

4.7 屏蔽一条路由

[root@localhost ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
224.0.0.0       -               240.0.0.0       !     0      -        0 -
[root@localhost ~]#

4.8 清除屏幕路由

[root@localhost ~]# route del -net 224.0.0.0 netmask 240.0.0.0 reject
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]#

4.9 所有去往172.16.0.8主机的数据包发往网关地址172.16.0.2

[root@localhost ~]# route add -host 172.16.0.8 gw 172.16.0.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
172.16.0.8      172.16.0.2      255.255.255.255 UGH   0      0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]#

4.10 删除指定主机的数据包发往默认网关

[root@localhost ~]# route del -host 172.16.0.8 gw 172.16.0.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    100    0        0 ens33
172.16.0.0      0.0.0.0         255.255.254.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]#

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总

【Linux】一步一步学Linux——route命令(169)相关推荐

  1. 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么

    Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到win ...

  2. LINUX学习之路(学LINUX必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...

  3. linux学习需要什么基础,学linux需要什么基础?

    近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...

  4. 分享--linux 学习之路(学linux必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

  5. Linux路由转发+多网卡配置(route命令)

    文章目录 route命令 一.路由表 1. 查看路由表信息 2. 读懂路由信息 示例 3. 添加和删除网关 永久增加网关 4. 多网卡配置(仅主机+NET模式) 添加一张NET模式下网卡 创建一个配置 ...

  6. 英语不好学linux运维难吗,学Linux系统难吗?学好Linux运维需要多久

    随着近年来经济的快速发展,企业对Linux人才的需求也越来越高.许多人认为,Linux是一个非常简单的行业,然而,Linux行业是一个综合了云计算.Linux运维.Linux开发.Linux编程等多方 ...

  7. 不会linux的php难找工作,学linux系统难吗

    这是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟 ...

  8. linux lamp实验报告,新手学Linux--构建lamp

    本人前不久开始学习Linux,俗话说得好,好记性不如烂笔头,于是决定将平日所学所做实验,记录下来,以备回顾.由于本人是个初学者,所以借鉴了很多网上的资料,但在此处写出来的都是经过本人思考和多次实验的记 ...

  9. Linux 命令(120)—— route 命令

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

最新文章

  1. linux mysql忘记root密码
  2. python一点基础都没有的怎么办-为什么我会建议每个大学生都学一点python编程?...
  3. linux-常用指令3
  4. (提示)ubuntu16.04通过sealos安装k8s,需要重新部署apply一下calico组件
  5. 第9课 - 函数重载分析(下)
  6. 日常问题———Attempting to operate on hdfs namenode as root
  7. scrapy 基本操作
  8. .net webapi导出html,C#(.Net Core WebAPI)之API文档的生成(Swagger)
  9. vbs表白代码制作教程
  10. python直方图规定化_OpenCV 直方图处理:直方图均衡和规定化(匹配)
  11. 方正字体库大全(129款) 官方免费版​
  12. 深度学习——day8 读论文(2022 硕士毕业论文)大规模车辆路径问题的深度强化学习算法研究
  13. 关于百度的若干问题和百度员工的回答
  14. azw3怎么在iphone上打开?
  15. 网络核心交换机和普通交换机有什么区别?
  16. 电源设计中最常见的四种滤波电路原理及特点解析
  17. 阿里P9架构师简述从单机至亿级流量大型网站系统架构的演进过程
  18. 巧妇能为少米之炊(1)——Android下小内存下的生存之道
  19. pythoneducoder苹果梨子煮水的功效_喝梨苹果熬的茶有什么功效与作用
  20. MUR860D-ASEMI快恢复二极管MUR860D参数

热门文章

  1. 科学计算机乱码,谁知道我的科学计算器这是怎么了?屏幕一堆乱码,什么都按不了...
  2. 怎么用cmd关闭系统弹窗_C盘空间越来越小怎么办?5招帮你解决问题!
  3. Java黑皮书课后题第3章:**3.15(游戏:彩票)修改程序清单3-8,产生三位整数的彩票。程序提示用户输入一个三位整数,然后依照规则判定用户是否赢得奖金
  4. anaconda的简单使用教程(虚拟环境安装)
  5. javascript基础:函数参数与闭包问题
  6. 【BZOJ 2432】 [Noi2011]兔农 矩乘+数论
  7. 切换网络配置之脚本法
  8. Apache 创建虚拟主机目录和设置默认访问页面
  9. 操作系统实验报告12:线程2
  10. 64位虚拟机下asm()语法_一步步学写Windows下的Shellcode