CentOS 7 静态IP配置记录,执行sh脚本实现
CentOS 7 静态IP配置记录
一、配置目的
记录CentOS 7系统的静态IP地址配置过程,便于后续维护和复用。
二、网络配置详情
网络接口配置文件路径:/etc/sysconfig/network-scripts/ifcfg-ens33
完整配置内容
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=e15775ac-5cea-4d2c-b5bb-61f9b2bc692a
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.6.193
GATEWAY=192.168.6.2
NETMASK=255.255.255.0
DNS1=119.29.29.29
DNS2=8.8.8.8
三、关键参数说明
参数 | 说明 | 取值 |
---|---|---|
TYPE |
网络类型 | Ethernet(以太网) |
BOOTPROTO |
启动协议 | static(静态IP) |
NAME |
接口名称 | ens33 |
DEVICE |
设备名称 | ens33(需与NAME一致) |
ONBOOT |
开机启动 | yes(启用) |
IPADDR |
IP地址 | 192.168.6.193 |
NETMASK |
子网掩码 | 255.255.255.0 |
GATEWAY |
网关地址 | 192.168.6.2 |
DNS1 |
首选DNS | 119.29.29.29(腾讯公共DNS) |
DNS2 |
备用DNS | 8.8.8.8(谷歌公共DNS) |
四、配置脚本
用于自动配置上述IP信息的Shell脚本(change_ip.sh
):
#!/bin/bash
# 检查是否以root用户运行
if [ "$(id -u)" -ne 0 ]; then
echo "错误:此脚本需要以root用户权限运行。请使用sudo或切换到root用户。" >&2
exit 1
fi
# 网络接口名称
INTERFACE="ens33"
# 配置文件路径
CONFIG_FILE="/etc/sysconfig/network-scripts/ifcfg-$INTERFACE"
# 备份原始配置文件
if [ -f "$CONFIG_FILE" ]; then
cp "$CONFIG_FILE" "$CONFIG_FILE.bak"
echo "已备份原始配置到 $CONFIG_FILE.bak"
else
echo "错误:网络接口配置文件 $CONFIG_FILE 不存在。" >&2
exit 1
fi
# 写入指定的网络配置
cat << EOF > "$CONFIG_FILE"
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=e15775ac-5cea-4d2c-b5bb-61f9b2bc692a
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.6.193
GATEWAY=192.168.6.2
NETMASK=255.255.255.0
DNS1=119.29.29.29
DNS2=8.8.8.8
EOF
echo "已更新网络配置文件"
# 重启网络服务
if systemctl restart network; then
echo "网络服务已重启,新的IP地址配置已生效。"
echo "新的IP地址信息:"
ip addr show $INTERFACE | grep "inet "
else
echo "错误:重启网络服务失败,请检查配置并手动重启。" >&2
exit 1
fi
exit 0
五、操作步骤
- 将上述脚本保存为
change_ip.sh
- 赋予执行权限:
chmod +x change_ip.sh
- 以root权限执行:
sudo ./change_ip.sh
六、验证方法
配置完成后,可通过以下命令验证IP是否生效:
# 查看指定接口的IP信息
ip addr show ens33 | grep "inet "
# 测试网络连通性(ping网关)
ping 192.168.6.2
# 测试DNS解析
nslookup baidu.com
七、备份与恢复
- 脚本执行时会自动备份原始配置文件,备份文件路径为:
/etc/sysconfig/network-scripts/ifcfg-ens33.bak
- 若配置出错,可通过以下命令恢复:
sudo cp /etc/sysconfig/network-scripts/ifcfg-ens33.bak /etc/sysconfig/network-scripts/ifcfg-ens33 sudo systemctl restart network
八、注意事项
- 执行脚本前请确认网络接口名称(
ens33
)与实际系统一致(可通过ip addr
命令查看) - 配置的IP地址需与网络环境中的网段匹配,避免IP冲突
- 若重启网络服务失败,可尝试重启系统:
sudo reboot