如何配置Linux系统的永久性IP地址?

在Linux系统中,配置永久性IP地址是确保服务器、网络设备或关键工作站网络稳定性的基础操作,与临时IP地址(通过ifconfigip命令设置,重启后失效)不同,永久性IP地址会持久保存在配置文件中,即使系统重启也能保持不变,本文将以主流Linux发行版(CentOS/RHEL和Ubuntu/Debian)为例,详细讲解永久性IP地址的配置方法,涵盖不同版本的差异和常见注意事项。

如何配置linux永久性ip地址

配置前的准备工作

在开始配置前,需明确以下网络参数(通常由网络管理员提供):

  • IP地址:设备的唯一标识,如168.1.100
  • 子网掩码:定义网络范围,如255.255.0(或CIDR格式/24)。
  • 默认网关:连接其他网络的出口,如168.1.1
  • DNS服务器:用于域名解析,如8.8.8(Google DNS)或114.114.114(国内公共DNS)。

需确认当前Linux系统的网络接口名称(通常为eth0ens33等),可通过以下命令查看:

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获取方式(静态IPstatic) | 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及以后版本(使用NetworkManagernmcli

CentOS 8默认使用NetworkManager,推荐通过nmtui(文本界面)或nmcli(命令行)配置,避免直接编辑network-scripts文件。

使用nmtui(适合图形化操作)

(1)启动nmtui工具:

如何配置linux永久性ip地址

nmtui

(2)选择“Edit a connection”,进入网络接口列表(如ens33)。
(3)选中目标接口,按“Enter”进入编辑界面,将“IPv4 CONFIGURATION”设置为“Manual”,然后填写:

  • Address168.1.100/24(CIDR格式,含子网掩码)
  • Gateway168.1.1
  • DNS servers8.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)应用配置并验证:

如何配置linux永久性ip地址

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 |

配置注意事项

  1. 备份原配置:修改前务必备份原配置文件,避免配置错误导致无法联网,可通过临时IP(如dhclient命令获取动态IP)修复。
  2. 参数准确性:确保IP地址、子网掩码、网关在同一网段,且IP不与其他设备冲突(可通过arp -a查看已占用IP)。
  3. 多网卡配置:若有多块网卡,需为每个接口单独配置文件(如ifcfg-ens33ifcfg-ens37),并明确主网卡(默认网关所在接口)。
  4. IPv6配置:若需配置IPv6静态地址,可在CentOS中添加IPV6ADDRIPV6_DEFAULTGW等参数,或在Ubuntu的netplan中添加ipv6.addresses等配置。
  5. 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 networkingnetplan --debug apply查看错误日志。
(5)若使用NetworkManager,可通过nmcli connection show <接口名>查看连接详情,确认参数是否正确。

问题2:如何确认当前IP是永久性配置而非临时配置?

解答
(1)CentOS/RHEL系列

  • 若使用network-scripts,检查/etc/sysconfig/network-scripts/ifcfg-<接口名>文件中ONBOOT=yesBOOTPROTO=static是否存在,且IPADDR等参数是否正确。
  • 若使用NetworkManager,执行nmcli connection show <接口名>,查看ipv4.method是否为manualipv4.addresses是否包含配置的IP。

(2)Ubuntu/Debian系列

  • 若使用netplan,检查/etc/netplan/*.yaml文件中dhcp4: noaddresses参数是否正确。
  • 若使用/etc/network/interfaces,检查文件中是否有iface <接口名> inet static及相关静态IP参数。

(3)通用方法:重启系统后,通过ip aifconfig查看IP地址是否保持不变,若重启后IP未变化,则说明配置为永久性。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/17845.html

(0)
酷番叔酷番叔
上一篇 2025年8月27日 02:21
下一篇 2025年8月27日 02:34

相关推荐

  • Linux如何全面监控CPU性能?

    基础CPU信息查询lscpu 命令(推荐)功能:汇总CPU架构的核心信息,包括型号、核心数、线程数等,命令: lscpu输出关键字段:Architecture:CPU架构(如x86_64)CPU(s):逻辑CPU总数(总线程数)Core(s) per socket:每个物理CPU的核心数Model name:C……

    2025年7月6日
    5500
  • linux 如何进入sqlplus

    在Linux系统中进入SQLPlus是Oracle数据库管理和操作的常见需求,但具体操作需结合环境配置、用户权限及数据库状态等因素,以下是详细步骤和注意事项,帮助用户顺利进入SQLPlus环境,环境准备与基础检查在尝试进入SQLPlus前,需确保以下条件满足,否则可能导致连接失败或命令无法识别:Oracle数据……

    2025年9月29日
    1400
  • Linux如何查看用户UID?命令方法与操作步骤详解?

    在Linux系统中,用户UID(User Identifier)是用于唯一标识用户的数字标识符,系统通过UID来区分不同用户,并控制其文件访问权限和系统资源使用权限,查看用户UID是Linux日常管理和故障排查中的常见操作,本文将详细介绍多种查看UID的方法,包括原理、命令示例及注意事项,通过 /etc/pas……

    2025年10月7日
    900
  • linux如何测试io

    Linux 中,可使用 dd、fio、hdparm 等命令或工具来测试磁盘 I/O 性能,

    2025年8月19日
    3100
  • Linux分区如何轻松挂载?

    挂载前的准备工作识别分区使用 lsblk 或 fdisk 命令查看磁盘分区:lsblk -f # 显示分区文件系统类型(如 ext4、NTFS)sudo fdisk -l # 列出所有磁盘及分区(需 root 权限)记录目标分区的设备名(如 /dev/sda1)和文件系统类型,创建挂载点挂载点是一个空目录,用于……

    2025年7月17日
    5300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信