Have a Question?

如果您有任务问题都可以在下方输入,以寻找您想要的最佳答案

route命令详解大全,route命令详解 linux

route命令详解大全

题图来自Unsplash,基于CC0协议

导读

  • route命令详解 linux
  • route命令格式与参数
  • route命令添加静态路由
  • route命令删除路由
  • route命令显示路由表
  • route命令与ip route命令比较
  • route命令在Windows中的使用
  • route命令常见错误及解决
  • 在Linux网络管理中,route命令是一个经典且基础的工具,用于查看和操作内核的IP路由表。尽管在现代Linux发行版中,ip route命令正逐渐取代它,但route命令在脚本编写、系统维护以及旧版系统兼容性方面仍具有重要价值。

    route命令的基本格式通常为 route [选项] [操作] [目标] [网关]。其核心功能依赖几个主要参数:-n 表示不解析主机名,直接显示IP地址,这是最常用的选项,可以避免DNS解析带来的延迟和错误;-e 用于显示更详细的路由信息,与netstat -r 结果相同;-A inet-A inet6 分别指定IPv4或IPv6路由表的操作,默认是IPv4。在操作层面,add用于添加路由,del用于删除路由,而-net-host则用于明确指定目标是网络还是单个主机。

    使用route命令显示路由表是最常见的操作。直接输入route -n,系统会输出一个包含几列信息的表格。Destination列显示目标网络或主机的地址;Gateway列显示下一跳路由器的地址,如果是0.0.0.0*,则表示目标在同一局域网,无需网关;Genmask即子网掩码;Flags列包含各种状态标记,如U表示路由处于活动状态,G表示使用网关,H表示目标是主机而非网络;Metric是路由的跳数或优先级;RefUse主要显示路由的引用计数与查找次数,通常在普通查看中意义不大;Iface则是出站网络接口的名称,如eth0wlan0

    添加静态路由是route命令的一项重要管理工作。例如,要添加一条到达192.168.2.0/24网络的路由,并指定通过网关192.168.1.1,接口为eth0,命令为route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0。如果要添加默认网关(默认路由),命令则为route add default gw 192.168.1.1,这相当于向0.0.0.0/0网络添加一条路由。添加主机路由(针对特定IP)则可使用route add -host 10.0.0.5 gw 192.168.1.1。需要注意的是,这些添加操作默认是临时的,系统重启后会消失;持久化路由需要在特定的网络配置文件(如/etc/network/interfaces/etc/sysconfig/network-scripts/route-eth0或使用nmcli)中进行设置。

    删除路由与添加操作对应。要删除一条到达192.168.2.0/24网络的路由,可以使用route del -net 192.168.2.0 netmask 255.255.255.0。如果存在多条到达同一网络但网关不同的路由,则需要精确指定网关以区分,例如route del -net 192.168.2.0/24 gw 192.168.1.1。删除默认路由的命令是route del default。删除操作通常不会产生输出,除非路由不存在,此时会提示SIOCDELRT: No such process

    虽然route命令简单直观,但现代Linux系统强烈推荐使用功能更强大的ip route命令。两者相比,route命令属于传统net-tools工具包,而ip route属于iproute2工具包。ip route支持更丰富的特性,例如更精细的协议管理、策略路由(多路由表)、更复杂的QoS和隧道支持。在显示信息上,ip route showroute -n信息更紧凑和结构化;在执行效能上,iproute2对最新内核特性的支持更好。例如,添加一条路由,route add -net 10.0.0.0/8 gw 192.168.1.1,对应的ip route写法是ip route add 10.0.0.0/8 via 192.168.1.1。虽然ip命令在部分场景中初看略显复杂,但在脚本自动化和复杂网络拓扑管理中更具优势。

    在Windows系统中,route命令也是内置网络排障工具。Windows下route print用于显示路由表,route addroute delete用于添加和删除路由。语法稍有不同,例如在Windows中添加一条永久路由(重启后生效)需加上-p选项:route add 192.168.2.0 mask 255.255.255.0 192.168.1.1 -p。在Windows 10/11中,删除某个接口的所有路由可使用route delete 0.0.0.0配合接口过滤。注意,Windows中操作路由通常需要管理员权限,否则会提示拒绝访问。

    使用route命令时常见的错误及解决方法如下:“SIOCADDRT: Network is unreachable”通常表示添加路由时,指定的网关地址与本地网络不通,检查本地网络连接或网关地址是否正确;“SIOCADDRT: File exists”意味着试图添加一条已经存在的路由,可以先删除旧路由再添加,或者检查重复条目;“SIOCDELRT: No such process”指要删除的路由在内核表中不存在,请核对目标网络、掩码和网关是否完全匹配;在局域网内添加路由后无法访问目标主机,可能原因是路由掩码或网段配置错误,比如误将主机路由写成了网络路由;在Linux中执行route add没有报错但路由未生效,可能是网络接口未启动(ip link set dev eth0 up)或存在更精确的默认路由覆盖。另外,部分旧版系统上route命令显示的网关为0.0.0.0时,需要注意链路层直连的含义,不要误解为没有网关。

    © 版权声明

    本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com