Linux 中的 route 命令介绍以及使用

文章目录


在 Linux 系统中,route 命令用于查看和操作路由表。路由表决定了数据包如何在网络中转发和发送。本文将介绍 route 命令的基本概念、使用方法,并提供一些示例,以帮助更好地理解和使用该命令。

路由的基本概念

在网络通信中,路由表用于决定网络数据包的转发路径。每个数据包通过路由表来决定是发往本地网络还是发往其他网络。route 命令提供了一种查看和修改路由表的方式。

Linux 内核使用路由表来决定发送到网络的 IP 数据包应如何转发,这个表包含多个路由规则。每条规则包括目标网络、网关(下一跳)、子网掩码和网络接口等信息。

route 命令基础用法

route 命令提供了对路由表的访问和修改,可以用来查看、添加、删除和修改路由。

查看路由表

要查看当前的路由表,可以使用以下命令:

bash 复制代码
route -n

-n 选项表示显示 IP 地址而不是主机名。这可以加快显示速度,因为系统不会尝试解析主机名。

输出示例:

复制代码
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 enp3s0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 enp3s0

解释:

  • Destination:目标网络。
  • Gateway:数据包的下一跳路由地址。
  • Genmask:子网掩码。
  • Flags:路由的标志,常见的有 U(启用)、G(使用网关)。
  • Iface:使用的网络接口。

添加路由

可以使用 route 命令来添加一条静态路由。例如,如果要添加一条到网络 10.0.0.0/24 的静态路由,下一跳网关为 192.168.1.1,可以使用以下命令:

bash 复制代码
sudo route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.1

在这个例子中:

  • -net:表示目标是一个网络。
  • netmask:指定网络的子网掩码。
  • gw:指定网关。

删除路由

要删除一条路由,可以使用以下命令:

bash 复制代码
sudo route del -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.1

这个命令会删除到 10.0.0.0/24 网络的路由。

添加默认路由

默认路由用于当目的地网络不在路由表中时,将数据包发送到默认的网关。可以使用以下命令添加默认路由:

bash 复制代码
sudo route add default gw 192.168.1.1

这个命令表示将所有未明确路由的网络流量发送到网关 192.168.1.1

删除默认路由

删除默认路由可以使用以下命令:

bash 复制代码
sudo route del default

route 命令示例

  1. 查看当前路由表

    bash 复制代码
    route -n

    这将显示系统中的当前路由表。

  2. 添加到特定网络的静态路由

    bash 复制代码
    sudo route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.254

    这将添加一条到网络 192.168.10.0/24 的路由,使用网关 192.168.1.254

  3. 删除到特定网络的静态路由

    bash 复制代码
    sudo route del -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.254

    删除之前添加的路由。

  4. 添加默认路由

    bash 复制代码
    sudo route add default gw 192.168.1.1

    这会将所有流量发送到网关 192.168.1.1

  5. 删除默认路由

    bash 复制代码
    sudo route del default

    删除默认路由。

route 命令的替代工具:ip route

在现代 Linux 系统中,ip 命令(由 iproute2 包提供)逐渐替代了 route 命令。ip 命令功能更强大,并提供了更丰富的功能来管理路由表。例如:

  • 查看路由表:

    bash 复制代码
    ip route show
  • 添加路由:

    bash 复制代码
    sudo ip route add 10.0.0.0/24 via 192.168.1.1
  • 删除路由:

    bash 复制代码
    sudo ip route del 10.0.0.0/24 via 192.168.1.1

ip 命令的语法更简洁,同时支持更多功能,是未来 Linux 网络管理的首选工具。

总结

Linux 中的 route 命令是管理路由表的基础工具。通过它,我们可以查看、添加、删除和修改路由规则。然而,随着网络管理工具的进化,ip 命令逐渐取代了 route,并提供了更多功能和更灵活的使用方法。在现代系统中,建议优先使用 ip 命令,但了解 route 命令仍然是网络管理的基本功。

相关推荐
图图图图爱睡觉5 小时前
主机跟虚拟机ip一直Ping不通,并且虚拟机使用ifconfig命令时,ens33没有ipv4地址,只有ipv6地址
服务器·网络·tcp/ip
deephub6 小时前
FastMCP 入门:用 Python 快速搭建 MCP 服务器接入 LLM
服务器·人工智能·python·大语言模型·mcp
lhxcc_fly6 小时前
Linux网络--8、NAT,代理,网络穿透
linux·服务器·网络·nat
摇滚侠6 小时前
Spring Boot3零基础教程,Spring Boot 应用打包成 exe 可执行文件,笔记91 笔记92 笔记93
linux·spring boot·笔记
wow_DG6 小时前
【运维✨】云服务器公网 IP 迷雾:为什么本机看不到那个地址?
运维·服务器·tcp/ip
yuanManGan7 小时前
走进Linux的世界:初识操作系统(Operator System)
android·linux·运维
i_am_a_div_日积月累_7 小时前
jenkins打包报错
运维·rust·jenkins·jenkins打包报错
一个处女座的暖男程序猿7 小时前
2G2核服务器安装ES
服务器·elasticsearch·jenkins
GIOTTO情7 小时前
舆情处置的自动化实践:基于Infoseek舆情系统的技术解析与落地指南
运维·自动化·linq
Thexhy7 小时前
在 CentOS 7 的 Linux 系统中配置 NFS
linux·运维·学习·centos