本文目录导读:

- Linux(使用
ifup/ifdown或nmcli) - Windows(PowerShell或Batch)
- macOS(脚本)
- 嵌入式设备(Busybox / OpenWrt)
- 常见问题排查
- 通用自动化建议
写DHCP自动获取脚本通常是指让网卡通过DHCP协议自动获取IP地址,方法取决于你使用的操作系统,以下是常见系统的脚本编写方式。
Linux(使用 ifup/ifdown 或 nmcli)
直接修改配置文件(适合Debian/Ubuntu)(enable-dhcp.sh)**
#!/bin/bash
# 设置网卡名称(常见:eth0, enp3s0, ens33)
INTERFACE="eth0"
# 备份原配置文件(可选)
cp /etc/network/interfaces /etc/network/interfaces.bak
# 修改配置文件为DHCP
cat > /etc/network/interfaces.d/${INTERFACE} << EOF
auto ${INTERFACE}
iface ${INTERFACE} inet dhcp
EOF
# 重启网络服务或重载接口
ifdown ${INTERFACE} && ifup ${INTERFACE}
# 验证是否获取到IP
ip addr show ${INTERFACE} | grep "inet "
使用说明:
- 将
INTERFACE="eth0"改为你的网卡名(可通过ip link show查看)。 - 给脚本执行权限:
chmod +x enable-dhcp.sh - 以root运行:
sudo ./enable-dhcp.sh
使用NetworkManager(通用)(nm-dhcp.sh)**
#!/bin/bash # 设置连接名称,通常是网卡名,也可以是其他标识 CONNECTION="eth0" # 将IPv4方法改为auto(DHCP) nmcli con mod "$CONNECTION" ipv4.method auto # 重新激活连接 nmcli con up "$CONNECTION" # 验证 nmcli con show "$CONNECTION" | grep ipv4.method ip addr show "$CONNECTION" | grep inet
纯命令行重置(无配置文件修改)
#!/bin/bash # 仅重置接口,不修改配置文件(临时生效,重启后恢复) INTERFACE="eth0" dhclient -r $INTERFACE # 释放旧IP dhclient $INTERFACE # 重新获取IP
Windows(PowerShell或Batch)
PowerShell脚本 (enable-dhcp.ps1)
# 获取网络适配器(将 "以太网" 改为你的实际网卡名称) $interfaceName = "以太网" # 设置DHCP Set-NetIPInterface -InterfaceAlias $interfaceName -Dhcp Enabled # 覆盖DNS为自动获取(可选) Set-DnsClientServerAddress -InterfaceAlias $interfaceName -ResetServerAddresses # 释放并续约IP ipconfig /release "$interfaceName" cmd /c "ipconfig /renew" # PS内直接运行/renw可能无输出,用cmd执行 # 验证 Ipconfig /all | Select-String "DHCP 已启用" -Context 0,2
执行方法:
- 以管理员身份运行PowerShell。
- 执行:
Set-ExecutionPolicy RemoteSigned -Scope Process(允许脚本运行)。 - 运行脚本:
.\enable-dhcp.ps1
Batch脚本 (enable-dhcp.bat)
@echo off set INTERFACE="以太网" echo 正在释放IP... ipconfig /release %INTERFACE% echo 设置DHCP... netsh interface ip set address %INTERFACE% dhcp netsh interface ip set dns %INTERFACE% dhcp echo 正在续约... ipconfig /renew %INTERFACE% echo 当前状态: ipconfig /all | findstr /i "DHCP 已启用 IPv4" pause
执行方法: 右键“以管理员身份运行”。
macOS(脚本)
#!/bin/bash # 获取网络服务名称(通常是 "Wi-Fi" 或 "以太网") SERVICE="Wi-Fi" # 设置为DHCP sudo networksetup -setdhcp "$SERVICE" # 刷新(等价于释放+续约) sudo networksetup -renew "$SERVICE" # 验证 networksetup -getinfo "$SERVICE"
嵌入式设备(Busybox / OpenWrt)
#!/bin/sh INTERFACE="eth0" # 停止之前的udhcpc进程 killall udhcpc 2>/dev/null # 启动DHCP客户端 udhcpc -i $INTERFACE -b -q # 或使用简单方式 # ifconfig $INTERFACE 0.0.0.0 # dhclient $INTERFACE
常见问题排查
| 问题 | 解决方案 |
|---|---|
| 找不到网卡名 | ip link show (Linux), ipconfig (Windows), ifconfig (Mac) |
| 权限不足 | 使用 sudo (Linux/Mac), 右键管理员运行 (Windows) |
| 配置文件锁定 | 检查是否有NetworkManager和networking服务冲突 |
| Windows执行报错 | 务必以管理员身份运行PowerShell或cmd |
| 获取到169.254.x.x | DHCP服务器无响应,检查网络连接或DHCP服务器是否正常 |
通用自动化建议
检测DHCP状态后再执行脚本:
#!/bin/bash
INTERFACE="eth0"
# 如果当前是静态IP,再改为DHCP
if ip addr show $INTERFACE | grep -q "inet 192.168" ; then
echo "已使用静态IP,正在切换为DHCP..."
# 这里放入上面的改动脚本
else
echo "当前已是DHCP或在非192.168网段,不做操作"
fi
选择适合你的系统的脚本,修改网卡名称后执行即可,强烈建议先在测试环境运行。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播