在Linux系统中,配置永久性IP地址是确保服务器、网络设备或关键工作站网络稳定性的基础操作,与临时IP地址(通过ifconfig
或ip
命令设置,重启后失效)不同,永久性IP地址会持久保存在配置文件中,即使系统重启也能保持不变,本文将以主流Linux发行版(CentOS/RHEL和Ubuntu/Debian)为例,详细讲解永久性IP地址的配置方法,涵盖不同版本的差异和常见注意事项。
配置前的准备工作
在开始配置前,需明确以下网络参数(通常由网络管理员提供):
- IP地址:设备的唯一标识,如
168.1.100
。 - 子网掩码:定义网络范围,如
255.255.0
(或CIDR格式/24
)。 - 默认网关:连接其他网络的出口,如
168.1.1
。 - DNS服务器:用于域名解析,如
8.8.8
(Google DNS)或114.114.114
(国内公共DNS)。
需确认当前Linux系统的网络接口名称(通常为eth0
、ens33
等),可通过以下命令查看:
ip a | grep "inet" | awk '{print $2}'
CentOS/RHEL系列永久IP配置(CentOS 7/8/Stream/RHEL 7/8/9)
CentOS/RHEL系列使用NetworkManager
管理网络,但不同版本的配置方式略有差异,以下分两种情况说明。
CentOS 7及之前版本(使用network-scripts
)
CentOS 7默认使用NetworkManager
,但可通过传统network-scripts
方式配置(需确保NetworkManager
未禁用该服务)。
步骤:
(1)备份原配置文件(避免配置错误导致无法联网):
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
(2)编辑配置文件,修改以下参数:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
关键参数说明:
| 参数 | 含义 | 示例值 |
|——|——|——–|
| TYPE
| 网络类型 | Ethernet
|
| BOOTPROTO
| IP获取方式(静态IP为static
) | static
|
| IPADDR
| IP地址 | 168.1.100
|
| NETMASK
| 子网掩码 | 255.255.0
|
| GATEWAY
| 默认网关 | 168.1.1
|
| DNS1
| 主DNS服务器 | 8.8.8
|
| ONBOOT
| 是否开机启动网络 | yes
|
完整配置示例:
TYPE=Ethernet BOOTPROTO=static 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
(3)重启网络服务使配置生效:
systemctl restart network
(4)验证配置:
ip a show ens33 # 查看IP地址是否正确 ping -c 4 192.168.1.1 # 测试网连通性 ping -c 4 www.baidu.com # 测试DNS解析
CentOS 8及以后版本(使用NetworkManager
或nmcli
)
CentOS 8默认使用NetworkManager
,推荐通过nmtui
(文本界面)或nmcli
(命令行)配置,避免直接编辑network-scripts
文件。
使用nmtui
(适合图形化操作)
(1)启动nmtui
工具:
nmtui
(2)选择“Edit a connection”,进入网络接口列表(如ens33
)。
(3)选中目标接口,按“Enter”进入编辑界面,将“IPv4 CONFIGURATION”设置为“Manual”,然后填写:
- Address:
168.1.100/24
(CIDR格式,含子网掩码) - Gateway:
168.1.1
- DNS servers:
8.8.8,114.114.114.114
(多个DNS用逗号分隔)
(4)保存并退出,重启网络接口:nmcli connection up ens33
使用nmcli
(适合命令行操作)
(1)查看当前网络连接名称:
nmcli connection show
(2)修改连接为静态IP并配置参数:
nmcli connection mod 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" connection.autoconnect yes
(3)激活连接使配置生效:
nmcli connection up ens33
CentOS/RHEL版本配置对比
| 版本 | 推荐工具 | 配置文件位置 | 重启命令 |
|——|———-|————–|———-|
| CentOS 7及之前 | network-scripts
| /etc/sysconfig/network-scripts/ifcfg-*
| systemctl restart network
|
| CentOS 8及以后 | nmcli
/nmtui
| /etc/NetworkManager/system-connections/*.nmconnection
| nmcli connection up <接口名>
|
Ubuntu/Debian系列永久IP配置(Ubuntu 18.04/20.04/22.04/Debian 10/11)
Ubuntu/Debian系列从18.04版本开始默认使用netplan
管理网络,16.04及之前版本使用/etc/network/interfaces
文件,需根据系统版本选择方法。
Ubuntu 18.04及以后版本(使用netplan
)
netplan
通过YAML格式的配置文件定义网络,通常位于/etc/netplan/
目录下(如01-network-manager-all.yaml
)。
步骤:
(1)查看并备份原配置文件:
ls /etc/netplan/ cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.bak
(2)编辑配置文件,添加静态IP配置:
vi /etc/netplan/01-network-manager-all.yaml
关键配置示例(以ens33
接口为例):
network: version: 2 renderer: networkd # 或使用NetworkManager(根据实际情况) ethernets: ens33: dhcp4: no # 禁用DHCP,使用静态IP addresses: - 192.168.1.100/24 # IP地址及子网掩码(CIDR格式) gateway4: 192.168.1.1 # 默认网关 nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS服务器 search: [] # 可选,域名后缀(如`example.com`)
(3)应用配置并验证:
netplan apply # 应用配置(无需重启) ip a show ens33 # 查看IP地址 ping -c 4 192.168.1.1 # 测试网关连通性 ping -c 4 www.baidu.com # 测试DNS解析
Ubuntu 16.04及以前版本(使用/etc/network/interfaces
)
04及以前版本通过/etc/network/interfaces
文件配置网络,需手动编辑该文件。
步骤:
(1)备份原配置文件:
cp /etc/network/interfaces /etc/network/interfaces.bak
(2)编辑配置文件,添加静态IP配置:
vi /etc/network/interfaces
关键配置示例(以eth0
接口为例):
auto eth0 # 开机自动启动该接口 iface eth0 inet static # 静态IP配置 address 192.168.1.100 # IP地址 netmask 255.255.255.0 # 子网掩码 gateway 192.168.1.1 # 默认网关 dns-nameservers 8.8.8.8 114.114.114.114 # DNS服务器
(3)重启网络服务使配置生效:
/etc/init.d/networking restart # 或使用 systemctl restart networking
Ubuntu/Debian版本配置对比
| 版本 | 推荐工具 | 配置文件位置 | 重启命令 |
|——|———-|————–|———-|
| Ubuntu 16.04及以前 | /etc/network/interfaces
| /etc/network/interfaces
| /etc/init.d/networking restart
|
| Ubuntu 18.04及以后 | netplan
| /etc/netplan/*.yaml
| netplan apply
|
配置注意事项
- 备份原配置:修改前务必备份原配置文件,避免配置错误导致无法联网,可通过临时IP(如
dhclient
命令获取动态IP)修复。 - 参数准确性:确保IP地址、子网掩码、网关在同一网段,且IP不与其他设备冲突(可通过
arp -a
查看已占用IP)。 - 多网卡配置:若有多块网卡,需为每个接口单独配置文件(如
ifcfg-ens33
、ifcfg-ens37
),并明确主网卡(默认网关所在接口)。 - IPv6配置:若需配置IPv6静态地址,可在CentOS中添加
IPV6ADDR
、IPV6_DEFAULTGW
等参数,或在Ubuntu的netplan
中添加ipv6.addresses
等配置。 - DNS解析问题:若无法解析域名,检查
/etc/resolv.conf
文件是否被正确生成(CentOS 8及以后由NetworkManager
管理,Ubuntu由netplan
管理,不建议手动修改)。
相关问答FAQs
问题1:配置永久性IP后无法上网,如何排查?
解答:
(1)检查IP地址、子网掩码、网关是否正确,确保在同一网段(如168.1.100
的网关应为168.1.1
,子网掩码255.255.0
)。
(2)测试网关连通性:ping -c 4 192.168.1.1
,若不通,检查网关设备(如路由器)是否正常工作。
(3)测试DNS解析:ping -c 4 www.baidu.com
,若不通,检查/etc/resolv.conf
中的DNS服务器配置,或尝试临时更换DNS(如echo "nameserver 8.8.8.8" > /etc/resolv.conf
)。
(4)检查网络服务状态:CentOS执行systemctl status network
,Ubuntu执行systemctl status networking
或netplan --debug apply
查看错误日志。
(5)若使用NetworkManager
,可通过nmcli connection show <接口名>
查看连接详情,确认参数是否正确。
问题2:如何确认当前IP是永久性配置而非临时配置?
解答:
(1)CentOS/RHEL系列:
- 若使用
network-scripts
,检查/etc/sysconfig/network-scripts/ifcfg-<接口名>
文件中ONBOOT=yes
和BOOTPROTO=static
是否存在,且IPADDR
等参数是否正确。 - 若使用
NetworkManager
,执行nmcli connection show <接口名>
,查看ipv4.method
是否为manual
,ipv4.addresses
是否包含配置的IP。
(2)Ubuntu/Debian系列:
- 若使用
netplan
,检查/etc/netplan/*.yaml
文件中dhcp4: no
和addresses
参数是否正确。 - 若使用
/etc/network/interfaces
,检查文件中是否有iface <接口名> inet static
及相关静态IP参数。
(3)通用方法:重启系统后,通过ip a
或ifconfig
查看IP地址是否保持不变,若重启后IP未变化,则说明配置为永久性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/17845.html