在Linux系统中设置IP地址是网络配置的基础操作,无论是服务器部署、开发环境搭建还是网络故障排查,都需要掌握这一技能,IP地址的设置分为临时配置和永久配置两种方式,前者重启后失效,适合临时测试;后者写入系统配置文件,重启后依然生效,不同Linux发行版(如Debian/Ubuntu、CentOS/RHEL等)的配置方法存在差异,需根据系统类型选择对应方案。
临时设置IP地址(重启后失效)
临时配置通过命令行直接修改内核网络参数,无需编辑配置文件,适合快速测试或临时调整网络,常用工具为ifconfig
(传统工具)和ip
(新一代推荐工具,功能更强大)。
使用ip
命令设置IP地址
ip
命令是Linux网络配置的核心工具,隶属于iproute2
包,现代Linux系统默认安装。
步骤如下:
(1)查看当前网络接口
首先确认网络接口名称(如eth0
、ens33
等),命令如下:
ip addr show
输出会列出所有接口,例如2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
,其中eth0
即为接口名。
(2)为接口分配IP地址和子网掩码
使用ip addr add
命令,格式为ip addr add <IP地址>/<子网掩码位数> dev <接口名>
,为eth0
设置IP地址168.1.100
,子网掩码255.255.0
(对应CIDR表示/24
):
ip addr add 192.168.1.100/24 dev eth0
(3)激活网络接口
若接口处于关闭状态(state DOWN
),需先激活:
ip link set eth0 up
(4)配置默认网关
IP地址仅用于本地网络通信,访问外网需配置网关,命令格式为ip route add default via <网关IP>
,
ip route add default via 192.168.1.1
(5)验证配置
通过ip addr show
查看IP是否分配成功,ip route show
查看网关是否添加,并用ping
测试连通性:
ping 192.168.1.1 # 测试网关 ping www.baidu.com # 测试外网(需DNS配合)
(6)删除临时IP地址
若需撤销配置,使用ip addr del
命令:
ip addr del 192.168.1.100/24 dev eth0
使用ifconfig
命令设置IP地址
ifconfig
是传统网络工具,部分旧系统仍支持,但新版本Linux已逐渐弃用(需安装net-tools
包)。
步骤如下:
(1)查看网络接口:ifconfig
(2)设置IP地址和子网掩码:ifconfig <接口名> <IP地址> netmask <子网掩码>
,
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
(3)激活接口:ifconfig eth0 up
(4)配置网关:route add default gw <网关IP>
,
route add default gw 192.168.1.1
(5)验证配置:ifconfig
查看IP,route -n
查看网关,ping
测试连通性。
永久设置IP地址(重启后生效)
永久配置需修改网络配置文件,不同发行版的文件路径和格式差异较大,需分类说明。
Debian/Ubuntu系统
Debian/Ubuntu早期版本使用/etc/network/interfaces
文件,新版(Ubuntu 18.04+)推荐Netplan
(基于YAML格式的配置工具)。
(1)传统方法(/etc/network/interfaces
,适用于Ubuntu 16.04及以下、Debian旧版)
步骤如下:
- 编辑配置文件:
sudo nano /etc/network/interfaces
- 修改或添加以下内容(以静态IP为例):
auto eth0 # 开机自动激活接口 iface eth0 inet static # static表示静态IP,dhcp表示动态获取 address 192.168.1.100 # IP地址 netmask 255.255.255.0 # 子网掩码 gateway 192.168.1.1 # 网关 dns-nameservers 8.8.8.8 8.8.4.4 # DNS服务器(多个用空格分隔)
- 保存后重启网络服务:
sudo systemctl restart networking
- 验证配置:
ip addr show eth0
、ping www.baidu.com
(2)Netplan方法(Ubuntu 18.04+、Debian 10+)
Netplan配置文件位于/etc/netplan/
目录,文件名通常为01-netcfg.yaml
或50-cloud-init.yaml
(需以实际文件名为准)。
步骤如下:
- 编辑配置文件:
sudo nano /etc/netplan/01-netcfg.yaml
- 添加以下内容(注意YAML格式的缩进,必须用空格,不能用Tab):
network: version: 2 renderer: networkd # 渲染器,可选networkd(服务器)或NetworkManager(桌面版) ethernets: eth0: # 接口名 dhcp4: no # 关闭DHCP addresses: - 192.168.1.100/24 # IP地址及子网掩码(CIDR格式) gateway4: 192.168.1.1 # 网关(IPv4) nameservers: addresses: [8.8.8.8, 8.8.4.4] # DNS服务器
- 保存后应用配置:
sudo netplan apply
- 验证配置:
ip addr show eth0
、systemctl status systemd-networkd
CentOS/RHEL系统
CentOS/RHEL 7及以下版本使用/etc/sysconfig/network-scripts/ifcfg-<接口名>
文件,CentOS 8+推荐nmcli
(NetworkManager命令行工具)或nmtui
(图形化工具)。
(1)传统方法(/etc/sysconfig/network-scripts/ifcfg-<接口名>
,适用于CentOS 7及以下)
步骤如下:
- 编辑配置文件:
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
- 修改或添加以下内容(静态IP示例):
TYPE=Ethernet # 网络类型为以太网 BOOTPROTO=static # 静态IP(dhcp为动态) DEFROUTE=yes # 默认路由 NAME=eth0 # 接口名称 DEVICE=eth0 # 设备名称 ONBOOT=yes # 开机自动激活 IPADDR=192.168.1.100 # IP地址 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关 DNS1=8.8.8.8 # 主DNS DNS2=8.8.4.4 # 辅DNS
- 保存后重启网络服务:
sudo systemctl restart network
- 验证配置:
ip addr show eth0
、ping www.baidu.com
(2)nmcli
工具(CentOS 8+、RHEL 8+)
nmcli
是NetworkManager的命令行工具,可快速修改网络配置并自动保存。
步骤如下:
- 查看当前连接:
nmcli connection show
- 修改连接配置(以连接名
eth0
为例):sudo nmcli connection mod eth0 ipv4.method manual # 手动配置(static) sudo nmcli connection mod eth0 ipv4.addresses 192.168.1.100/24 # IP及子网掩码 sudo nmcli connection mod eth0 ipv4.gateway 192.168.1.1 # 网关 sudo nmcli connection mod eth0 ipv4.dns "8.8.8.8 8.8.4.4" # DNS(多个用引号包裹) sudo nmcli connection mod eth0 ipv4.ignore-auto-dns yes # 忽略DHCP自动分配的DNS
- 激活配置:
sudo nmcli connection up eth0
- 验证配置:
nmcli connection show eth0
、ip addr show eth0
图形界面设置(桌面版Linux)
对于使用GNOME、KDE等桌面环境的Linux系统(如Ubuntu Desktop、CentOS Desktop),可通过图形界面设置IP地址,步骤更直观:
- 打开“设置”→“网络”→“有线连接”→点击齿轮图标→“IPv4”选项卡;
- 选择“手动”,输入IP地址、子网掩码、网关、DNS服务器;
- 点击“应用”保存,重启网络或断开重连后生效。
不同发行版永久配置方法对比
为方便快速查阅,以下是主流发行版永久配置静态IP的对比:
发行版家族 | 配置文件路径/工具 | 关键配置项示例 | 应用配置命令 |
---|---|---|---|
Debian/Ubuntu(旧版) | /etc/network/interfaces |
iface eth0 inet static address 192.168.1.100 |
systemctl restart networking |
Debian/Ubuntu(新版) | /etc/netplan/*.yaml |
addresses: [192.168.1.100/24] gateway4: 192.168.1.1 |
netplan apply |
CentOS/RHEL(旧版) | /etc/sysconfig/network-scripts/ifcfg-eth0 |
IPADDR=192.168.1.100 GATEWAY=192.168.1.1 |
systemctl restart network |
CentOS/RHEL(新版) | nmcli 命令行工具 |
ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 |
nmcli connection up eth0 |
注意事项
- 接口名称确认:现代Linux系统(如CentOS 7+、Ubuntu 18.04+)的网卡名称可能为
ens33
、enp0s3
等(基于BIOS/UEFI命名规则),需通过ip addr
确认,避免误修改lo
(回环接口)。 - 子网掩码格式:配置文件中既可使用
255.255.0
传统格式,也可使用/24
CIDR格式(Netplan和nmcli
推荐后者)。 - DNS设置重要性:若仅配置IP和网关但未设置DNS,会导致
ping www.baidu.com
失败(无法解析域名),需确保/etc/resolv.conf
包含正确的DNS服务器(永久配置时,Debian/Ubuntu通过dns-nameservers
或Netplan的nameservers
设置,CentOS通过DNS1/DNS2
或nmcli
的ipv4.dns
设置)。 - 配置备份:修改配置文件前,建议先备份(如
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
),避免错误配置导致网络中断。
相关问答FAQs
问题1:临时设置的IP地址重启后为什么会失效?
答:临时设置(如ip addr add
、ifconfig
命令)直接修改的是内核中当前运行的网络参数,并未写入系统的持久化配置文件,Linux系统重启时,会从配置文件(如/etc/network/interfaces
、/etc/netplan/*.yaml
等)读取网络设置并应用,因此临时配置会被覆盖,恢复为重启前的状态,若需永久生效,必须修改对应的配置文件并应用。
问题2:如何验证IP地址是否设置成功?
答:验证IP地址设置需分三步:
(1)确认接口IP分配:使用ip addr show <接口名>
(如ip addr show eth0
),查看输出中是否有inet <IP地址>/<子网掩码>
的记录,且接口状态为UP
;
(2)测试网关连通性:执行ping <网关IP>
(如ping 192.168.1.1
),若能收到reply
回复,说明本地网络与网关通信正常;
(3)测试外网连通性:执行ping www.baidu.com
,若能解析域名并收到回复,说明IP、网关、DNS均配置正确,若ping
域名失败但ping
公网IP(如ping 8.8.8.8
)成功,需检查DNS配置。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/14087.html