使用 ip route show 查看当前路由表,通过 ip route add/del 命令修改路由策略,例如 ip route add 目标网络 via 网关,永久生效需配置网络文件或使用 nmcli。
如何通过命令行在 Rocky Linux 中检查并更改路由策略?
在Rocky Linux中检查并管理路由策略,可通过以下步骤实现:
-
检查当前路由表
ip route show # 或使用传统命令 route -n -
添加静态路由(临时生效)
sudo ip route add <目标网络>/<掩码> via <网关IP> dev <接口名> # 示例:sudo ip route add 192.168.2.0/24 via 10.0.0.1 dev eth0 -
删除路由
sudo ip route del <目标网络>/<掩码> # 示例:sudo ip route del 192.168.2.0/24 -
持久化路由配置
- 传统方式:编辑接口配置文件
sudo vi /etc/sysconfig/network-scripts/route-<接口名> # 如 route-eth0 # 格式:192.168.3.0/24 via 10.0.0.1 dev eth0 - NetworkManager方式(推荐):
sudo nmcli connection modify <连接名> +ipv4.routes "<目标网络>/<掩码> <网关>" sudo nmcli connection down <连接名> && sudo nmcli connection up <连接名>
- 传统方式:编辑接口配置文件
-
高级策略路由(基于规则表):
# 创建自定义路由表 echo "200 custom_table" | sudo tee -a /etc/iproute2/rt_tables # 添加路由规则 sudo ip rule add from <源IP> table custom_table sudo ip route add default via <网关IP> dev <接口名> table custom_table
验证:执行后重启网络服务(systemctl restart NetworkManager)并再次检查路由表。
在Rocky Linux中,通过ip route命令可查看路由表(ip route show),添加路由(ip route add 目标网段 via 网关 dev 接口),删除路由(ip route del 目标网段)。
延伸知识点:策略路由(Policy-Based Routing) 策略路由允许基于源IP、端口等条件选择不同路由表。实现步骤:
- 创建自定义路由表:在
/etc/iproute2/rt_tables中添加如200 custom_table - 添加路由规则:
ip route add default via 网关 dev 接口 table custom_table - 定义策略规则:
ip rule add from 源IP段 lookup custom_table priority 100 - 持久化:将命令写入
/etc/rc.local或NetworkManager脚本。此功能常用于多出口网络分流,例如让特定IP走VPN隧道。
查路由策略的话,用ip rule list看当前规则。改的话比如加新规则,可以sudo ip rule add from 你的IP优先级动作这种格式,比如sudo ip rule add from 192.168.1.100 lookup 100。改默认路由用ip route,比如改网关就sudo ip route replace default via 新网关IP。记得测试完保存配置,不然重启会丢!
在Rocky Linux中检查并管理路由策略时,我通常通过以下流程操作,并结合实战中积累的注意事项:
1. 路由检查阶段
ip route show # 查看主路由表
ip rule list # 显示策略规则优先级(含local/main/default表)
route -n # 传统net-tools方式查看
特别注意隐藏的32766优先级规则,该规则控制默认路由选择。当多网卡存在时,我曾遇到因metric值未正确设置导致路由漂移的情况。
2. 策略路由配置 创建自定义路由表(如vpn_tab):
echo '200 vpn_tab' >> /etc/iproute2/rt_tables
ip route add 10.8.0.0/24 dev tun0 table vpn_tab
ip rule add from 192.168.1.100 lookup vpn_tab
在SD-WAN部署中,曾因规则优先级顺序错误导致VPN流量未按预期转发。建议使用ip rule add priority 100显式指定顺序。
3. 持久化挑战
通过nmcli connection modify集成策略路由更可靠,例如:
nmcli con mod eth0 +ipv4.routing-rules "priority 100 from 192.168.1.100 table vpn_tab"
nmcli con up eth0
在KVM虚拟化场景中,遇到NetworkManager与自定义systemd-networkd配置冲突,最终采用network-scripts下创建route-ethX文件实现多路径负载均衡。
4. 故障排查要点
- 使用
tcpdump -nn -i any host <target_ip>验证流量路径 - 检查rp_filter设置:
sysctl net.ipv4.conf.all.rp_filter - 通过
curl --interface eth1 ifconfig.co强制指定出口网卡测试
实践中发现,当策略路由与firewalld共存时,需特别注意MASQUERADE规则与策略路由的匹配顺序,否则会导致NAT失效。建议在复杂网络拓扑中使用NetworkManager的keyfile格式配置,避免服务重启时配置回滚。
-
检查当前路由表
ip route show # 或使用缩写 ip r- 输出示例:
default via 10.0.0.1 dev eth0表示默认路由通过网关10.0.0.1
- 输出示例:
-
添加静态路由
sudo ip route add 192.168.1.0/24 via 10.0.0.1 dev eth0- 将目标网络
192.168.1.0/24通过网关10.0.0.1和接口eth0路由
- 将目标网络
-
删除指定路由
sudo ip route del 192.168.1.0/24 via 10.0.0.1- 需与添加时的参数完全一致
-
修改默认网关
sudo ip route replace default via 10.0.0.2 dev eth0- 将默认网关从原地址替换为
10.0.0.2
- 将默认网关从原地址替换为
-
持久化配置
- 编辑接口配置文件(如eth0):
sudo vi /etc/sysconfig/network-scripts/route-eth0 - 添加格式:
192.168.1.0/24 via 10.0.0.1 dev eth0 - 重启网络服务:
sudo systemctl restart network
- 编辑接口配置文件(如eth0):
注意:
- 使用
ip route命令的变更仅临时生效,重启后失效 - 确认网卡名称(如eth0)与实际环境一致
- 操作前建议备份网络配置文件
-
检查当前路由表:
ip route show # 或 route -n -
添加临时路由(重启失效):
sudo ip route add <目标网络>/<子网掩码> via <网关IP> dev <接口名> # 示例:sudo ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0 -
永久添加路由:
sudo nmcli connection modify <连接名称> +ipv4.routes "<目标网络>/<子网掩码> <网关IP>" sudo nmcli connection down <连接名称> && sudo nmcli connection up <连接名称> -
删除路由:
sudo ip route del <目标网络>/<子网掩码> via <网关IP> -
策略路由检查:
ip rule list ip route show table <表ID或名称> -
添加策略路由(如基于源IP):
sudo ip rule add from <源IP/网段> table <自定义表ID> sudo ip route add default via <网关IP> dev <接口名> table <自定义表ID>
注:永久策略路由需编辑 /etc/iproute2/rt_tables 并配置 systemd-networkd 或 NetworkManager 脚本。
在Rocky Linux中检查及调整路由策略,建议通过ip命令结合策略路由(Policy Routing)实现。步骤如下:
- 检查当前路由表:
ip route show或ip route list查看主路由表,ip rule list查看策略规则优先级。 - 查看策略路由表:若使用多路由表(如自定义表100),执行
ip route show table 100。 - 添加策略路由:通过
ip rule add from <源IP> lookup <表名>定义策略(如ip rule add from 192.168.1.10 lookup 100),再在对应表中添加路由(如ip route add default via 10.0.0.1 dev eth0 table 100)。 - 持久化配置:将命令写入
/etc/sysconfig/network-scripts/route-<接口>或使用nmcli配置NetworkManager(Rocky 8+推荐)。 注意:临时调试可直接操作,但生产环境需验证规则优先级(ip rule输出的顺序)并测试回滚方案,避免因路由冲突导致断网。