服务器测评网
我们一直在努力

Linux路由表命令有哪些?如何查看和修改路由条目?

Linux 路由表是操作系统网络层的核心组件,它决定了数据包的转发路径,直接影响网络通信的效率与稳定性,掌握 Linux 路由表相关命令,是系统管理员和网络工程师必备的技能,本文将详细介绍 Linux 路由表的查看、管理及调试方法,帮助读者全面理解其工作原理与应用场景。

查看路由表:routeip route 命令

查看路由表是网络排错的基础操作,Linux 提供了 routeip route 两种命令,ip route 是新一代工具(来自 iproute2 包),功能更强大且推荐使用。

传统 route 命令

route 命令通过 -n 参数(禁止域名解析)可快速显示路由表:

route -n  

输出结果包括目标网络(Destination)、子网掩码(Genmask)、网关(Gateway)、出口接口(Iface)等关键字段。0.0.0 对应的是默认路由,所有未知目标网段的数据包将通过此路由转发。

现代 ip route 命令

ip route 命令以更直观的格式展示路由信息,支持过滤与详细输出:

ip route show  # 显示所有路由  
ip route show default  # 仅显示默认路由  
ip route show dev eth0  # 查看指定接口的路由  

相比 routeip route 能显示路由协议(如 kernelstatic)、跃点数(metric)等额外信息,便于分析路由优先级。

添加与删除静态路由:ip route add/del

静态路由适用于网络拓扑简单、固定路径的场景,如企业内网特定网段的访问控制。

添加静态路由

  • 添加网段路由:若需访问 168.2.0/24 网段,通过网关 0.0.1 转发,命令为:
    sudo ip route add 192.168.2.0/24 via 10.0.0.1 dev eth0

    via 指定网关,dev 指定出口接口。

  • 添加默认路由:若需修改默认网关为 16.0.1
    sudo ip route add default via 172.16.0.1

删除静态路由

删除路由需与添加命令保持参数一致,只需将 add 替换为 del

sudo ip route del 192.168.2.0/24 via 10.0.0.1 dev eth0  

注意:删除路由前需确认路由存在,避免误删导致网络中断。

临时与永久路由:配置文件与 netplan

通过 ip route 添加的路由在重启后会失效,若需永久保存,需修改网络配置文件。

基于 ifcfg 的传统配置(CentOS/RHEL 7)

/etc/sysconfig/network-scripts/route-eth0 中添加:

168.2.0/24 via 10.0.0.1 dev eth0  
default via 172.16.0.1  

重启网络服务后生效:systemctl restart network

基于 netplan 的新配置(Ubuntu 18.04+/CentOS 8)

/etc/netplan/01-netcfg.yaml 中添加路由:

ethernets:  
  eth0:  
    addresses: [10.0.0.100/24]  
    routes:  
      - to: 192.168.2.0/24  
        via: 10.0.0.1  
      - to: default  
        via: 172.16.0.1  
    gateway4: 172.16.0.1  

执行 netplan apply 使配置生效。

路由表调试:tracerouteping

当网络通信异常时,路由表可能是问题根源,结合 tracerouteping 可快速定位故障点。

traceroute:追踪数据包路径

traceroute 8.8.8.8  

命令会显示数据包经过的每个路由节点(IP 地址及主机名),若某节点显示 ,可能是中间路由器禁用 ICMP 或防火墙拦截;若路径异常,需检查本地路由表或网关配置。

ping 测试网关连通性

先确认默认网关是否可达:

ping $(ip route show default | awk '{print $3}')  

若网关不可达,需检查物理链路、网卡配置及网关设备状态。

高级应用:策略路由与多路径路由

复杂网络环境中,可通过策略路由(Policy Routing)实现基于源地址、协议的灵活转发,或通过多路径路由(ECMP)实现负载均衡。

策略路由:ip rule

ip rule 用于定义路由策略,优先级高于路由表,让 168.1.0/24 网段的数据包通过 eth1 转发:

sudo ip rule add from 192.168.1.0/24 table 100  
sudo ip route add default via 10.1.0.1 dev eth1 table 100  

多路径路由:nexthop

配置等价多路径,实现流量负载均衡:

sudo ip route add default nexthop dev eth0 weight 1 nexthop dev eth1 weight 1  

weight 参数可设置链路负载比例,weight 1 表示均等负载。

Linux 路由表命令是网络管理的核心工具,从基础的 route/ip route 查看,到静态路由配置、永久保存,再到高级的策略路由与多路径应用,合理使用这些命令可显著提升网络运维效率,在实际操作中,需注意路由优先级、配置持久性及网络拓扑的匹配性,确保通信路径的稳定与可控。

赞(0)
未经允许不得转载:好主机测评网 » Linux路由表命令有哪些?如何查看和修改路由条目?