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

Linux route命令详解,如何查看、添加及删除静态路由?

Linux路由详解

Linux系统的路由功能是网络通信的核心,它决定了数据包从源地址到目标地址的传输路径,理解Linux路由机制对于网络管理、系统调试和服务部署至关重要,本文将详细解析Linux路由的基本概念、命令工具、配置方法及常见应用场景。

Linux route命令详解,如何查看、添加及删除静态路由?

路由表的基本结构

Linux路由表是内核维护的数据结构,用于存储路由规则,每条路由记录包含目标网络、子网掩码、网关、输出接口等关键信息,通过ip route show命令可以查看当前系统的路由表:

default via 192.168.1.1 dev eth0  
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100  
  • 目标网络(Destination):表示数据包的目的地地址范围,如168.1.0/24default(默认路由)。
  • 网关(Gateway):下一跳设备的IP地址,用于跨网段通信。
  • 输出接口(Dev):数据包发出的网络接口,如eth0wlan0
  • 路由类型(Proto):标识路由来源,如kernel(内核动态生成)、static(静态配置)或dhcp(DHCP分配)。

常用路由管理命令

Linux提供了iproute两套工具管理路由,其中ip命令是现代Linux系统的推荐工具。

查看路由表

ip route show          # 显示所有路由规则  
ip route get 8.8.8.8   # 查询访问特定IP的路由路径  

添加静态路由

# 添加目标网络192.168.2.0/24,通过网关192.168.1.254转发  
sudo ip route add 192.168.2.0/24 via 192.168.1.254 dev eth0  
# 添加默认路由  
sudo ip route add default via 192.168.1.1  

删除路由

sudo ip route del 192.168.2.0/24  

临时修改路由

sudo ip route replace default via 10.0.0.1  # 替换默认路由  

路由优先级与策略路由

Linux系统中,路由的优先级由管理距离(Metric)决定,Metric值越小,路由优先级越高。

# 添加两条默认路由,优先级不同  
ip route add default via 192.168.1.1 metric 100  
ip route add default via 10.0.0.1 metric 50  

系统会优先选择Metric为50的路由。

策略路由(Policy Routing)允许基于数据包的源地址、协议等条件选择不同的路由表,通过ip rule命令可以实现:

# 创建自定义路由表  
echo "200 custom_table" >> /etc/iproute2/rt_tables  
# 添加策略规则:源IP为192.168.1.100的数据包使用custom_table  
ip rule add from 192.168.1.100 table custom_table  
# 为custom_table添加路由  
ip route add default via 10.0.0.1 table custom_table  

路由配置的持久化

临时路由配置在系统重启后会丢失,需通过配置文件实现持久化。

Debian/Ubuntu系统

编辑/etc/network/interfaces文件:

Linux route命令详解,如何查看、添加及删除静态路由?

up ip route add 192.168.2.0/24 via 192.168.1.254 dev eth0  

RHEL/CentOS系统

编辑/etc/sysconfig/network-scripts/route-eth0文件:

168.2.0/24 via 192.168.1.254 dev eth0  

使用Netplan(Ubuntu 18.04+)

/etc/netplan/01-netcfg.yaml中配置:

network:  
  version: 2  
  ethernets:  
    eth0:  
      routes:  
        - to: 192.168.2.0/24  
          via: 192.168.1.254  
      dhcp4: no  
      addresses: [192.168.1.100/24]  

路由故障排查

当网络通信异常时,可通过以下步骤排查路由问题:

  1. 检查路由表:确认目标网络是否存在有效路由。

    ip route get <目标IP>  
  2. 测试网关连通性

    ping 192.168.1.1  # 测试默认网关是否可达  
  3. 查看接口状态:确保网络接口已启用且IP配置正确。

    ip addr show eth0  
  4. 检查防火墙规则iptablesfirewalld可能拦截数据包。

    Linux route命令详解,如何查看、添加及删除静态路由?

    sudo iptables -L -n  
  5. 启用IP转发(如需充当路由器):

    sudo sysctl -w net.ipv4.ip_forward=1  

高级路由应用

  1. 多线路负载均衡:通过多网卡绑定实现冗余和负载均衡。

    ip route add default scope global nexthop dev eth0 weight 1 nexthop dev eth1 weight 1  
  2. 隧道路由:配置GRE或IPsec隧道,实现跨网络通信。

    ip tunnel add gre0 mode gre remote 203.0.113.2 local 192.168.1.100  
    ip link set gre0 up  
    ip addr add 10.0.0.1/24 dev gre0  

Linux路由功能是网络运维的基础,掌握路由表管理、策略路由和故障排查方法,能够有效提升网络服务的稳定性和性能,无论是简单的静态路由配置,还是复杂的策略路由实现,理解其底层原理都是解决实际问题的关键,通过合理规划和持续优化,Linux系统可以灵活应对各种网络场景需求。

赞(0)
未经允许不得转载:好主机测评网 » Linux route命令详解,如何查看、添加及删除静态路由?