You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rocky Linux无物理NIC环境下永久添加默认路由的方法求助

Rocky Linux无物理NIC环境下永久添加默认路由的方法求助

看起来你遇到的核心问题是临时路由重启后丢失,且常规的网络配置方法因为没有物理NIC而无法使用,之前尝试的motd和init.d脚本要么时机不对,要么执行逻辑有问题,导致路由没成功添加。下面给你几个针对性的解决方案,按推荐程度排序:

方案一:用Systemd Service(最可靠,推荐)

Rocky Linux默认用systemd管理服务,我们可以创建一个专门的服务来确保路由在网络就绪后添加,并且开机自动执行。

  1. 创建服务配置文件:
    编辑/etc/systemd/system/permanent-default-route.service,内容如下:

    [Unit]
    Description=添加永久默认路由
    After=network.target  # 确保在网络服务启动后再执行
    
    [Service]
    Type=oneshot  # 一次性执行任务
    ExecStart=/usr/sbin/ip route add default via 10.10.0.1
    RemainAfterExit=yes  # 执行完成后保持服务活跃状态
    ExecStop=/usr/sbin/ip route del default via 10.10.0.1  # 停止服务时删除路由(可选)
    Restart=on-failure  # 执行失败时重试
    
    [Install]
    WantedBy=multi-user.target  # 绑定到多用户运行级别
    
  2. 启用并测试服务:

    # 重新加载systemd配置
    sudo systemctl daemon-reload
    # 设置开机自启
    sudo systemctl enable permanent-default-route.service
    # 立即执行一次,验证效果
    sudo systemctl start permanent-default-route.service
    # 检查路由是否生效
    ip route show
    

    这样重启系统后,服务会自动在网络就绪后添加路由,不会再丢失。

方案二:利用rc.local(简单快捷)

如果你的系统启用了rc.local(Rocky Linux默认可能需要手动开启执行权限),可以把路由命令加到这里,它会在系统启动的最后阶段执行,此时网络环境已经稳定。

  1. 确保rc.local有执行权限:

    sudo chmod +x /etc/rc.d/rc.local
    
  2. 编辑/etc/rc.d/rc.local,在末尾添加:

    /usr/sbin/ip route add default via 10.10.0.1
    

    保存后重启系统,路由应该会自动生效。

为什么之前的方法没用?

  • motd文件:它只是用户登录时显示的信息,并不会自动执行里面的命令,你看到的打印只是内容输出,并不是命令执行的结果。
  • init.d脚本:init.d脚本的执行时机可能早于网络服务启动,此时网络接口还未就绪,导致路由添加失败;而且在systemd系统中,init.d脚本的优先级和依赖管理不如systemd service可靠。

如果尝试了以上方法还是有问题,可以检查系统日志(journalctl -u permanent-default-route.service)看看服务执行时的错误信息,方便进一步排查。

备注:内容来源于stack exchange,提问作者Arnold Zahrneinder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 08:14:33