在Linux系统中,修改IP地址是网络管理的基础操作之一,不同Linux发行版(如CentOS/RHEL、Ubuntu/Debian等)可能采用不同的配置方式和配置文件,但核心逻辑均为通过修改网络配置参数实现IP地址的设定,本文将详细说明主流Linux发行版中修改IP地址的具体方法,包括静态IP和动态IP(DHCP)的配置,以及配置生效的验证步骤,帮助用户掌握不同场景下的IP配置操作。
Linux网络配置基础概念
在修改IP地址前,需先了解网络配置的核心参数:
- IP地址:设备的唯一标识,如
168.1.100
; - 子网掩码:区分网络位与主机位,如
255.255.0
; - 默认网关:局域网通往其他网络的出口,如
168.1.1
; - DNS服务器:域名解析服务,如
8.8.8
(谷歌DNS)或114.114.114
(国内公共DNS); - 网络接口:设备与网络的物理或逻辑连接,如
eth0
(传统以太网)、ens33
(CentOS/RHEL 7+)、ens33
(Ubuntu 18.04+)等。
静态IP地址配置
静态IP适用于服务器、网络设备等需要固定IP的场景,修改后不会自动变化,需手动调整配置文件,不同发行版的配置文件位置和格式存在差异,以下分别说明CentOS/RHEL和Ubuntu/Debian的配置方法。
(一)CentOS/RHEL系列(基于Red Hat)
CentOS/RHEL系统使用ifcfg
格式的配置文件,位于/etc/sysconfig/network-scripts/
目录下,文件名通常为ifcfg-网卡名
(如ifcfg-ens33
)。
备份原配置文件
修改前建议备份原配置,避免操作失误导致网络中断:
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
编辑配置文件
使用vi
或nano
编辑器打开文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
关键字段说明与修改
配置文件中的核心字段及作用如下(以静态IP为例):
字段名 | 含义 | 示例值 | 说明 |
---|---|---|---|
TYPE |
网络类型 | Ethernet |
固定为以太网类型 |
BOOTPROTO |
IP获取方式 | static |
static (静态IP)、dhcp (动态IP)、none (手动配置) |
NAME |
网络接口名称 | ens33 |
与文件名一致,便于识别 |
DEVICE |
网络设备名称 | ens33 |
与实际网卡名一致(可通过ip a 命令查看) |
ONBOOT |
是否开机启动网络 | yes |
yes (开机自启)、no (禁用) |
IPADDR |
IP地址 | 168.1.100 |
需与同一网段内其他设备不冲突 |
NETMASK |
子网掩码 | 255.255.0 |
或使用PREFIX ,如24 (等同于255.255.0 ) |
GATEWAY |
默认网关 | 168.1.1 |
局域网网关地址,需与IP在同一网段 |
DNS1 |
首选DNS服务器 | 8.8.8 |
可配置多个DNS,如DNS2 为114.114.114 |
PEERDNS |
是否从DHCP服务器获取DNS | no |
静态IP下建议设置为no ,避免覆盖手动配置的DNS |
修改后的示例配置:
TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes 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 PEERDNS=no
重启网络服务使配置生效
保存文件后,执行以下命令重启网络服务(CentOS 7及以上版本使用systemctl
):
systemctl restart network
(二)Ubuntu/Debian系列(基于Debian)
Ubuntu 18.04及以后版本默认使用Netplan
或NetworkManager
管理网络,18.04之前版本使用/etc/network/interfaces
文件,以下以Ubuntu 20.04(Netplan)和Ubuntu 16.04(interfaces)为例说明。
Ubuntu 20.04+(Netplan配置)
Netplan使用YAML格式的配置文件,位于/etc/netplan/
目录下(如01-network-manager-all.yaml
或50-cloud-init.yaml
)。
(1)查看并编辑配置文件
ls /etc/netplan/ vi /etc/netplan/50-cloud-init.yaml
(2)关键字段说明与修改
Netplan配置的核心参数如下(静态IP示例):
network: version: 2 ethernets: ens33: # 网卡名,通过`ip a`查看 dhcp4: no # 禁用DHCPv4 dhcp6: no # 禁用DHCPv6 addresses: - 192.168.1.100/24 # IP地址/子网掩码长度(如24表示255.255.255.0) gateway4: 192.168.1.1 # 默认网关 nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS服务器列表
(3)应用配置
保存文件后,执行以下命令使配置生效:
netplan apply
Ubuntu 16.04及以前版本(interfaces配置)
使用/etc/network/interfaces
文件,编辑方式如下:
(1)编辑配置文件
vi /etc/network/interfaces
(2)关键字段说明与修改
静态IP配置示例:
auto ens33 # 开机自动启用网卡 iface ens33 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)重启网络服务
ifdown ens33 && ifup ens33 # 或使用systemctl systemctl restart networking
动态IP地址(DHCP)配置
动态IP适用于客户端设备(如个人电脑),通过DHCP服务器自动获取IP地址,配置更简单,只需将BOOTPROTO
(CentOS/RHEL)或dhcp4
(Ubuntu Netplan)设置为启用即可。
(一)CentOS/RHEL启用DHCP
修改ifcfg
文件中的BOOTPROTO
为dhcp
,确保ONBOOT=yes
:
BOOTPROTO=dhcp ONBOOT=yes
保存后执行systemctl restart network
,系统将自动从DHCP服务器获取IP。
(二)Ubuntu启用DHCP
Netplan配置
将dhcp4: no
改为dhcp4: yes
,或删除addresses
、gateway4
等静态参数:
network: version: 2 ethernets: ens33: dhcp4: yes
执行netplan apply
生效。
interfaces配置
将iface ens33 inet static
改为iface ens33 inet dhcp
:
auto ens33 iface ens33 inet dhcp
执行ifdown ens33 && ifup ens33
生效。
临时修改IP地址(不重启网络)
若仅需临时修改IP(如测试场景),可使用ip
命令(推荐)或ifconfig
(旧版命令),重启网络或服务器后配置将失效。
(一)使用ip
命令(CentOS 7+/Ubuntu 16.04+)
# 添加IP地址 ip addr add 192.168.1.200/24 dev ens33 # 添加默认网关 ip route add default via 192.168.1.1 # 添加DNS(需修改/etc/resolv.conf) echo "nameserver 8.8.8.8" >> /etc/resolv.conf
(二)使用ifconfig
命令(旧版系统)
# 添加IP地址 ifconfig ens33 192.168.1.200 netmask 255.255.255.0 # 添加默认网关 route add default gw 192.168.1.1
配置验证
修改IP后,需验证配置是否生效:
-
查看IP地址:
ip a show ens33 # 或 ifconfig ens33
检查
inet
字段是否显示配置的IP地址。 -
测试网络连通性:
ping 192.168.1.1 # 测试网关连通性 ping www.baidu.com # 测试DNS解析和网络连通性
-
检查路由表:
ip route show # 或 route -n
确认默认路由(
default via 192.168.1.1 dev ens33
)存在。
不同发行版IP配置对比总结
为方便快速查阅,以下为常见Linux发行版IP配置关键信息对比:
发行版系列 | 配置文件位置 | 静态IP配置关键字段/示例 | 动态IP配置方式 | 重启网络命令 |
---|---|---|---|---|
CentOS/RHEL 7+ | /etc/sysconfig/network-scripts/ifcfg-网卡名 | BOOTPROTO=static; IPADDR=192.168.1.100; NETMASK=255.255.255.0 | BOOTPROTO=dhcp | systemctl restart network |
Ubuntu 18.04+ | /etc/netplan/*.yaml | dhcp4: no; addresses: [192.168.1.100/24] | dhcp4: yes | netplan apply |
Ubuntu 16.04及以前 | /etc/network/interfaces | iface 网卡名 inet static; address 192.168.1.100 | iface 网卡名 inet dhcp | systemctl restart networking |
临时修改(通用) | 无(命令行操作) | ip addr add IP/24 dev 网卡名 | 无(需DHCP服务器) | 无(临时生效) |
相关问答FAQs
问题1:修改IP配置后无法上网,如何排查?
解答:可按以下步骤排查:
- 检查IP地址、子网掩码、网关是否配置正确,确保与同一网段设备一致;
- 执行
ping 网关IP
测试与网通的连通性,若不通,检查网关设备或网线连接; - 执行
ping 8.8.8.8
测试网络连通性,若不通,检查防火墙规则(如firewall-cmd --list-all
或iptables -L
)是否拦截; - 检查DNS配置,执行
nslookup www.baidu.com
验证域名解析,若失败,修改/etc/resolv.conf
中的DNS服务器; - 重启网络服务后仍未解决,检查配置文件语法错误(如CentOS的
ifcfg
文件中字段拼写错误,或Netplan的YAML缩进问题)。
问题2:静态IP和动态IP如何选择?什么场景下使用?
解答:选择需根据使用场景决定:
- 静态IP:适用于服务器、网络打印机、摄像头等需要固定IP的设备,便于远程访问、端口映射和设备管理,优点是IP固定不变,缺点是需要手动配置,且需避免IP冲突;
- 动态IP:适用于个人电脑、手机等客户端设备,通过DHCP服务器自动获取IP,无需手动配置,避免IP冲突,缺点是IP可能变化,不适合需要固定访问的场景。
企业服务器建议使用静态IP,而员工办公电脑可使用动态IP简化管理。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/37739.html