您现在的位置是:首页 >技术杂谈 >Linux route命令实战:route 命令实战教程,配置静态路由,删除路由表项网站首页技术杂谈

Linux route命令实战:route 命令实战教程,配置静态路由,删除路由表项

我是沐风晓月 2024-09-24 12:01:03
简介Linux route命令实战:route 命令实战教程,配置静态路由,删除路由表项

前言

大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第61篇文章。

专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴??。

如果文章有什么需要改进的地方还请大佬不吝赐教??。

?个人主页:我是沐风晓月
?个人简介:大家好,我是沐风晓月,双一流院校计算机专业??
? 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步???
?欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信?

我新建了一个英语学习社区,欢迎关注,一起学习:https://bbs.csdn.net/forums/mufengEnotes

一. route命令介绍

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

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

要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;

可以在/etc/rc.local中添加route命令来保证该路由设置永久有效

二. 语法格式及常用选项

依据惯例,我们还是先查看帮助,使用 route --help

常用的参数:

参数描述
-A设置地址类型;
-C打印将Linux核心的路由缓存;
-v详细信息模式;
-n不执行DNS反向查找,直接显示数字形式的IP地址;
-enetstat格式显示路由表;
-net到一个网络的路由表;
-host到一个主机的路由表。

常用的命令参数:

参数描述
add增加指定的路由记录;
del删除指定的路由记录;
target目的网络或目的主机;
gw设置默认网关;
mss设置TCP的最大区块长度(MSS),单位MB;
window指定通过路由表的TCP连接的TCP窗口大小;
dev路由记录所表示的网络接口
-host设置目标主机地址
-net设置目标主机或者子网的网络地址

三. 参考案例

3.1 显示当前的路由表

[root@mufenggrow ~]# route 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         cmcc.wifi       0.0.0.0         UG    100    0        0 ens32
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens32
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@mufenggrow ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 ens32
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens32
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@mufenggrow ~]# 

注释:

route 命令显示了主机的路由表。第一行显示默认路由表项,网络目的地址为 0.0.0.0,这意味着这是默认路由表项默认网关为 cmcc.wifi。

第二行指向本地网络 192.168.1.0,其掩码为 255.255.255.0,使用接口 ens32。

第三行指向虚拟机网络 192.168.122.0,其掩码为 255.255.255.0,使用接口 virbr0。

使用 -n 选项可以以数字形式显示 IP 地址,而不是使用主机名称。

各个参数的介绍:

参数描述
Destination目的地址;
Gateway指定的网关;
Genmask掩码;
Flags网络节点的状态;U(used):使用中,G(gateway):网关 ,H(host):是一个主机而非网络。
Metric下一跳;
Ref被引用的次数;
Iface网卡。

这里面有一列是flags,我们来看看他的含义

参数含义
U路由是活动的
H目标是个主机
G需要经过网关
R恢复动态路由产生的表项
D由路由的后台程序动态地安装
M由路由的后台程序修改
!拒绝路由

3.2 添加一个网络

[root@mufenggrow ~]# route add -net 10.0.0.0/24 dev ens32
[root@mufenggrow ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 ens32
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 ens32
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens32
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

这条命令的作用是向内核的路由表中添加一个规则,指示所有地址为 10.0.0.0/24 的数据包通过指定的网络设备 ens32 进行传输。

具体解释如下:

route: 命令名称,用于查看和设置内核的 IP 路由表。

add:添加一条新的路由规则

-net 10.0.0.0/24: 设置了匹配的网络目的地址,即 10.0.0.0 这个子网,其掩码为 255.255.255.0。

dev ens32:指定数据包从哪个网络接口发送,这里是 ens32。

因此,在执行该命令后,所有目标 IP 地址属于 10.0.0.0/24 子网的数据包将通过 ens32 接口进行传输。这通常用于将流量路由到特定的网络或接口上,例如将某些流量从一个子网路由到另一个子网,或将流量从一个网络设备路由到另一个网络设备。

3.3 指定网关添加网络

[root@mufenggrow ~]# route add -net 10.1.0.0/24 dev ens32 gw 192.168.1.2
[root@mufenggrow ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 ens32
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 ens32
10.1.0.0        192.168.1.2     255.255.255.0   UG    0      0        0 ens32
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens32
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

3.4 添加一个主机IP

[root@mufenggrow ~]# route add -host 10.1.1.3 dev ens32
[root@mufenggrow ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 ens32
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 ens32
10.1.0.0        192.168.1.2     255.255.255.0   UG    0      0        0 ens32
10.1.1.3        0.0.0.0         255.255.255.255 UH    0      0        0 ens32
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens32
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

3.5 删除网络

route del -net 10.0.0.0/24

3.6 删除主机

route del -host 10.1.1.1

总结

route 命令在日常工作中,应用的比较广泛,一定要认真学习,记熟记牢常用参数。

??? 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
???如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。