在Linux系统中配置永久IP地址是网络管理的基础操作,不同发行版采用不同工具实现,本文将详细介绍主流发行版的配置方法及注意事项。
基于Netplan的Ubuntu/Debian系统配置
Ubuntu 18.04及以上版本默认使用Netplan进行网络配置,其配置文件通常位于/etc/netplan/
目录下,如01-network-manager-all.yaml
,配置步骤如下:
-
编辑配置文件
使用sudo nano /etc/netplan/01-network-manager-all.yaml
打开文件,添加以下内容(示例为静态IP配置):network: version: 2 ethernets: enp0s3: # 替换为实际网卡名称 dhcp4: no addresses: [192.168.1.100/24] # IP地址及子网掩码 gateway4: 192.168.1.1 # 网关地址 nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS服务器
-
应用配置
执行sudo netplan apply
使配置生效,并通过ip a
或hostname -I
验证IP地址是否生效。
基于NetworkManager的RHEL/CentOS系统配置
RHEL 7/CentOS 7及以上版本推荐使用nmcli
命令行工具或图形界面配置,以下是nmcli
操作步骤:
-
查看连接信息
运行nmcli connection show
列出所有网络连接,记录目标连接名称(如ens33
)。 -
修改连接属性
执行以下命令设置静态IP:sudo nmcli connection modify ens33 \ ipv4.method manual \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "8.8.8.8 114.114.114.114"
-
重启连接
运行sudo nmcli connection down ens33 && sudo nmcli connection up ens33
激活配置,使用ip addr show ens33
确认结果。
传统/etc/sysconfig/network-scripts/配置(适用于旧版RHEL/CentOS)
对于CentOS 6或7中未启用NetworkManager的系统,可通过编辑网卡配置文件实现:
-
定位配置文件
文件路径为/etc/sysconfig/network-scripts/ifcfg-网卡名
,如ifcfg-ens33
。 -
修改关键参数
TYPE=Ethernet BOOTPROTO=none # 禁用DHCP IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=114.114.114.114 ONBOOT=yes # 开机自启
-
重启网络服务
执行sudo systemctl restart network
(CentOS 7)或service network restart
(CentOS 6)。
常见问题与解决方案
-
配置不生效
- 检查配置文件语法是否正确(如YAML缩进、INI格式)。
- 确认网卡名称无误,可通过
ip link
查看。 - 检查防火墙或SELinux是否阻止网络访问。
-
IP冲突
使用arping -I ens33 -c 2 192.168.1.100
检测IP是否被占用,冲突时更换IP地址。 -
DNS配置失效
部分系统需在/etc/resolv.conf
中手动添加DNS,或确保NetworkManager已管理DNS(nmcli connection show ens33 | grep dns
)。
配置参数对比表
参数 | Netplan (YAML) | NetworkManager (nmcli) | 传统配置文件 (INI) |
---|---|---|---|
IP设置 | addresses: [IP/CIDR] | ipv4.addresses IP/CIDR | IPADDR=IP |
子网掩码 | CIDR表示法(如/24) | CIDR表示法 | NETMASK=255.255… |
网关 | gateway4: IP | ipv4.gateway IP | GATEWAY=IP |
DNS | nameservers: {addresses: […] | ipv4.dns “IP1 IP2” | DNS1=IP, DNS2=IP |
禁用DHCP | dhcp4: no | ipv4.method manual | BOOTPROTO=none |
通过以上方法,可针对不同Linux发行版实现永久IP地址的稳定配置,建议在修改前备份原始配置文件,并在测试环境中验证无误后再部署至生产环境。