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 命令仍然是网络管理的基本功。

相关推荐
GG_Bond198 分钟前
【项目设计】Facial-Hunter
服务器·人工智能
Tak1Na26 分钟前
2024.9.18
linux·运维·服务器
A^mber30 分钟前
828华为云征文|云服务器Flexus X实例|Ubunt部署Vue项目
运维·服务器·华为云
安得权35 分钟前
Ubuntu 20.04 部署 NET8 Web - Systemd 的方式 达到外网访问的目的
linux·前端·ubuntu
chnyi6_ya36 分钟前
深度学习的笔记
服务器·人工智能·pytorch
让学习成为一种生活方式41 分钟前
解析药用植物重楼甾体皂苷生物合成中的连续糖基化及其抗真菌作用-文献精读49
linux·数据库·算法·天然产物化学
凯哥是个大帅比1 小时前
ubuntu20.04 GLIBC从2.35降级到2.31
linux
iHero1 小时前
【Ubuntu】在 Ubuntu 22.04.3 LTS 安装 davfs2 通过 Nextcloud WebDAV 挂载到 Ubuntu 的目录上
linux·ubuntu·nextcloud
心勤则明1 小时前
Netty配置SSL证书加密
服务器·https·ssl
清园暖歌1 小时前
Ubuntu 不重装系统增加交换空间大小
linux·运维·ubuntu·交换空间