CentOS 自动管理网络配置
NetworkManager与nmcli工具
CentOS默认使用NetworkManager管理网络接口,通过nmcli
命令行工具可实现动态配置。例如,以下命令创建持久化连接:
nmcli con add type ethernet con-name eth0-auto ifname eth0 ip4 192.168.1.100/24 gw4 192.168.1.1
nmcli con mod eth0-auto ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con up eth0-auto
Shell脚本批量配置
通过编写Shell脚本实现多节点批量配置。以下示例脚本自动设置IP地址和DNS:
#!/bin/bash
INTERFACE="eth0"
IP_ADDR="10.0.0.10/24"
GATEWAY="10.0.0.1"
DNS_SERVERS="10.0.0.53 10.0.0.54"
nmcli con add type ethernet ifname $INTERFACE
ipv4.method manual
ipv4.addresses $IP_ADDR
ipv4.gateway $GATEWAY
ipv4.dns "$DNS_SERVERS"
Ansible自动化方案
使用Ansible Playbook可跨服务器统一配置网络参数:
- name: 配置网络接口
hosts: servers
tasks:
- name: 设置静态IP
community.general.nmcli:
type: ethernet
conn_name: "eth0-static"
ifname: eth0
ip4: 172.16.1.10/24
gw4: 172.16.1.1
dns4:
- 172.16.1.53
- 172.16.1.54
state: present
systemd-networkd配置
对于使用systemd-networkd的系统,创建.network
文件实现自动化:
[Match]
Name=eth0
[Network]
Address=192.168.50.20/24
Gateway=192.168.50.1
DNS=192.168.50.100
配置验证与监控
执行ip addr show
检查接口状态,使用journalctl -u NetworkManager
查看服务日志。可通过crontab
设置定时任务检测网络连通性并自动恢复。