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

求Ubuntu Server 16.04 LTS开机自动切换网络配置的启动脚本

解决方案:Ubuntu Server 16.04 LTS 开机自动切换静态IP/DHCP脚本

针对你的异地数据中心Ubuntu Server 16.04 LTS场景——有时在可访问公网的私有网络,有时需要直接接入公网,我整理了一套开机启动脚本方案,能自动完成静态IP配置、公网连通性检测,失败后自动切换到DHCP模式。

实现步骤

1. 创建网络配置脚本

首先创建一个可执行脚本,路径选/usr/local/bin/network-auto-config.sh(这个位置不会被系统更新覆盖),内容如下:

#!/bin/bash

# -------------------------- 请根据你的实际环境修改以下参数 --------------------------
STATIC_IP="192.168.1.100"       # 预定义的静态IP
NETMASK="255.255.255.0"         # 子网掩码
GATEWAY="192.168.1.1"           # 网关地址
INTERFACE="eth0"                # 网卡名称(可用`ip addr`命令查看)
# ----------------------------------------------------------------------------------

# 第一步:配置静态IP
echo "[Network Auto-Config] 正在配置静态IP: $STATIC_IP..."
ip addr flush dev $INTERFACE  # 清空网卡现有配置
ip addr add $STATIC_IP/$NETMASK dev $INTERFACE  # 设置静态IP和子网掩码
ip route add default via $GATEWAY dev $INTERFACE  # 设置默认网关

# 第二步:检测公网连通性(用Google DNS做测试)
echo "[Network Auto-Config] 正在检测公网连通性..."
ping -c 3 -W 2 8.8.8.8 > /dev/null 2>&1  # 发送3个测试包,超时2秒

if [ $? -eq 0 ]; then
    echo "[Network Auto-Config] 公网连通正常,保持静态IP配置"
else
    echo "[Network Auto-Config] 无法连接公网,切换为DHCP模式..."
    ip addr flush dev $INTERFACE  # 清空静态配置
    dhclient $INTERFACE  # 启动DHCP客户端获取地址
fi

echo "[Network Auto-Config] 网络配置完成,继续启动系统服务"

2. 给脚本添加执行权限

运行以下命令赋予脚本可执行权限:

chmod +x /usr/local/bin/network-auto-config.sh

3. 配置开机启动(Systemd服务)

Ubuntu 16.04支持Systemd,我们用它来实现开机自动运行脚本:

创建Systemd服务文件/etc/systemd/system/network-auto-config.service,内容如下:

[Unit]
Description=Automatic Network Configuration (Static IP with DHCP fallback)
After=network-pre.target
Before=network.target network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/network-auto-config.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

然后重新加载Systemd配置并启用服务:

systemctl daemon-reload
systemctl enable network-auto-config.service

关键说明

  • 脚本使用ip命令直接配置网络,不会修改/etc/network/interfaces等系统配置文件,避免后续手动配置冲突
  • ping命令的参数-c 3和-W 2是为了快速完成检测,不会让系统启动过程等待太久
  • Systemd服务的时序设置确保脚本在系统网络服务启动前执行,保证网络配置优先完成
  • 测试脚本可以直接运行/usr/local/bin/network-auto-config.sh,验证静态IP和DHCP切换是否正常

内容的提问来源于stack exchange,提问作者KoreanGuy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:34:02