您现在的位置是:首页 >技术杂谈 >Linux route命令实战:route 命令实战教程,配置静态路由,删除路由表项网站首页技术杂谈
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地址; |
-e | netstat格式显示路由表; |
-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 命令在日常工作中,应用的比较广泛,一定要认真学习,记熟记牢常用参数。
??? 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
???如果你喜欢的话,就不要吝惜你的一键三连了~