Linux系统如何添加静态路由?

在Linux系统中,路由表是网络数据包转发的基础,它决定了数据包应该从哪个接口发送到哪个目标网络,正确配置路由对于多网络环境、服务器网关设置或特定网络策略至关重要,本文将详细介绍Linux系统中添加路由的多种方法,包括临时路由和永久路由的配置,并针对常见场景提供示例。

linux 如何添加路由

Linux路由基础与临时路由添加

Linux系统中的路由表可通过ip route命令(推荐)或传统的route命令查看和管理,临时添加的路由在系统重启后会失效,适用于测试或临时网络调整。

使用ip route命令添加临时路由

ip routeiproute2工具包中的命令,功能更强大且是当前主流方案,基本语法为:
ip route add <目标网络> via <网关地址> dev <网络接口> [src <源IP>] [metric <优先级>]

  • 目标网络:要到达的子网,如168.2.0/24;若为默认路由,则用default0.0.0/0
  • 网关地址:下一跳路由器的IP地址,需与本地网络可达。
  • 网络接口:本地网络接口,如eth0ens33等。
  • src:可选,指定数据包的源IP(多网卡场景下用于选择出口)。
  • metric:可选,路由优先级(值越小优先级越高,默认为1024)。

示例

  • 添加默认路由:sudo ip route add default via 192.168.1.1 dev eth0
  • 添加静态路由到目标网络168.3.0/24,网关为168.1.254sudo ip route add 192.168.3.0/24 via 192.168.1.254 dev eth0
  • 添加带源IP和优先级的路由:sudo ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0 src 192.168.1.100 metric 100

使用route命令添加临时路由(传统方法)

route命令逐渐被ip route替代,但在旧系统中仍可用:
sudo route add -net <目标网络> netmask <子网掩码> gw <网关地址> dev <接口>

示例
sudo route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0

临时路由的验证与删除

  • 查看路由表:ip route showroute -n-n表示以数字形式显示,避免DNS解析延迟)。
  • 删除临时路由:sudo ip route del <目标网络> via <网关> dev <接口>,例如sudo ip route del default via 192.168.1.1 dev eth0

永久路由配置

临时路由在重启后失效,若需持久化保存,需根据Linux发行版修改配置文件。

基于Debian/Ubuntu系统的永久路由配置

在Debian/Ubuntu中,可通过修改/etc/network/interfaces文件添加路由,为eth0接口添加静态路由

linux 如何添加路由

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    # 添加静态路由
    up ip route add 192.168.3.0/24 via 192.168.1.254 dev eth0
    # 添加默认路由(若需覆盖默认网关)
    # up ip route add default via 192.168.1.1 dev eth0

配置完成后,重启网络服务或重启系统:sudo systemctl restart networking

基于CentOS/RHEL系统的永久路由配置

在CentOS/RHEL 7及以上版本,可通过nmcli(NetworkManager命令行工具)或配置路由文件实现。

  • 方法1:使用nmcli(推荐,适用于NetworkManager管理的网络):

    # 添加静态路由(关联到eth0连接)
    sudo nmcli connection modify eth0 +ipv4.routes "192.168.3.0/24 192.168.1.254"
    # 添加默认路由(若需修改)
    sudo nmcli connection modify eth0 ipv4.gateway 192.168.1.1
    # 激活配置
    sudo nmcli connection up eth0
  • 方法2:创建路由配置文件(适用于传统网络配置):
    /etc/sysconfig/network-scripts/目录下创建route-<接口名>文件,如route-eth0

    # route-eth0文件内容
    ADDRESS0=192.168.3.0
    NETMASK0=255.255.255.0
    GATEWAY0=192.168.1.254

    重启网络服务:sudo systemctl restart network

多路由表与策略路由(进阶场景)

当需要根据源IP选择不同路由时,可配置策略路由(Policy Routing),为168.1.100的流量单独设置路由表:

  1. 创建自定义路由表(编辑/etc/iproute2/rt_tables):
    echo "custom_table 100" >> /etc/iproute2/rt_tables

    linux 如何添加路由

  2. 添加路由到自定义表:
    sudo ip route add 192.168.3.0/24 via 192.168.1.254 dev eth0 table custom_table

  3. 添加策略规则(匹配源IP并使用自定义表):
    sudo ip rule add from 192.168.1.100 lookup custom_table

配置完成后,可通过ip rule showip route show table custom_table验证。

常用ip route命令参数与示例

以下为ip route命令的核心参数及示例总结:

参数/选项 说明 示例
add 添加路由 ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0
del 删除路由 ip route del 10.0.0.0/24 dev eth0
default 默认路由(0.0.0.0/0) ip route add default via 192.168.1.1
via <网关> 指定下一跳地址 ip route add 192.168.2.0/24 via 192.168.1.254
dev <接口> 指定出口网络接口 ip route add 192.168.3.0/24 dev eth0(直连路由)
src <源IP> 指定数据包源IP ip route add 10.0.0.0/24 via 192.168.1.1 src 192.168.1.100
metric <数值> 设置路由优先级(默认1024) ip route add 192.168.4.0/24 via 192.168.1.1 metric 50
table <表名> 指定路由表(策略路由) ip route add 192.168.5.0/24 via 192.168.1.1 table custom

相关问答FAQs

问题1:添加的路由不生效,如何排查?
解答

  1. 检查路由是否正确添加:ip route show | grep <目标网络>
  2. 确认网关可达性:ping <网关地址>,若不通,检查网关配置或网络连通性。
  3. 检查接口状态:ip link show <接口>,确保接口为UP状态。
  4. 检查防火墙规则:sudo iptables -Lsudo firewall-cmd --list-all,防止防火墙拦截。
  5. 若为多网卡,确认源IP是否匹配路由配置(可通过src参数指定)。

问题2:如何永久删除已添加的静态路由?
解答

  • Debian/Ubuntu:编辑/etc/network/interfaces文件,删除up ip route add...行,然后重启网络服务:sudo systemctl restart networking
  • CentOS/RHEL(nmcli):使用nmcli connection modify <接口名> -ipv4.routes "<目标网络>/<掩码> <网关>"移除路由,并重启连接:sudo nmcli connection up <接口名>
  • 传统CentOS/RHEL:删除/etc/sysconfig/network-scripts/route-<接口名>文件中的路由条目,重启网络服务:sudo systemctl restart network
  • 临时路由直接使用ip route del删除即可。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/17239.html

(0)
酷番叔酷番叔
上一篇 2小时前
下一篇 2小时前

相关推荐

  • U盘装Linux系统教程

    准备U盘,下载目标Linux发行版ISO镜像文件,使用专用工具(如Rufus、BalenaEtcher)将ISO写入U盘,制作完成后,重启电脑并设置从该U盘启动即可安装或体验Linux系统。

    2025年8月4日
    1000
  • Linux如何自动识别硬件?

    硬件识别的核心机制内核驱动框架Linux内核包含设备驱动(内核模块),直接与硬件交互,当检测到新硬件时,内核自动加载对应驱动模块(如usb_storage.ko用于U盘),驱动目录:/lib/modules/$(uname -r)/kernel/drivers/,硬件抽象层sysfs虚拟文件系统(挂载于/sys……

    2025年7月9日
    2000
  • 如何高效配置Linux服务器?

    配置Linux服务器需完成系统安装、安全加固(防火墙、SSH密钥认证、用户权限)、软件包更新、必要服务(如Web、数据库)安装与优化,以及设置监控和备份策略,确保稳定安全运行。

    2025年7月21日
    1800
  • 如何在linux运行程序

    Linux 中,将程序编译后,通过命令行输入可执行

    2025年8月13日
    500
  • 如何实现linux计划任务

    Linux 中,通过 crontab 命令设置计划任务,编辑任务列表,指定

    2025年8月16日
    600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信