在Linux系统中修改本机IP地址是网络管理中的常见操作,根据使用场景(如临时测试、永久配置)和发行版差异(如CentOS/RHEL、Ubuntu/Debian),可采用命令行工具或配置文件修改两种方式,以下是详细操作步骤及注意事项。

临时修改IP地址(重启后失效)
临时修改适用于快速测试或临时网络需求,重启系统或网络服务后配置会恢复默认,常用命令包括ifconfig(传统工具)和ip(现代Linux推荐)。
使用ifconfig命令(需安装net-tools包)
- 查看当前网络接口:
ifconfig -a # 列出所有网络接口,通常以太网接口为eth0、ens33等
- 修改IP地址、子网掩码:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
其中
168.1.100为目标IP,255.255.0为子网掩码(24位可简写为/24)。 - 添加网关(可选):
sudo route add default gw 192.168.1.1
使用ip命令(现代Linux默认内置)
- 查看接口信息:
ip addr show # 显示接口IP、MAC等信息
- 添加/修改IP地址:
sudo ip addr add 192.168.1.100/24 dev eth0 # /24表示子网掩码255.255.255.0 sudo ip link set eth0 up # 启用接口
- 设置默认网关:
sudo ip route add default via 192.168.1.1
永久修改IP地址(重启后生效)
永久修改需通过配置文件或网络管理工具实现,不同发行版操作略有差异。
基于NetworkManager(适用于Ubuntu、CentOS 7+等桌面版/服务器版)
NetworkManager是现代Linux发行版的默认网络管理服务,可通过nmcli命令行工具配置。

- 查看当前网络连接:
nmcli con show # 列出所有连接,通常名为"ens33"、"eth0"等
- 修改静态IP配置:
sudo nmcli con mod "ens33" ipv4.addresses 192.168.1.100/24 # 设置IP和子网掩码 ipv4.gateway 192.168.1.1 # 设置网关 ipv4.dns 8.8.8.8 # 设置DNS(可选,多个DNS用逗号分隔) ipv4.method manual # 设置为静态IP(默认为auto,即DHCP)
- 重启连接使配置生效:
sudo nmcli con up "ens33"
手动编辑配置文件(适用于无GUI的服务器或定制化场景)
-
CentOS/RHEL(使用ifcfg配置文件):
编辑/etc/sysconfig/network-scripts/ifcfg-eth0(接口名可能不同),添加/修改以下参数:TYPE=Ethernet BOOTPROTO=static # 静态IP,DHCP则改为dhcp IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ONBOOT=yes # 开机启用网络
保存后重启网络服务:
sudo systemctl restart network
-
Ubuntu/Debian(使用Netplan配置文件):
编辑/etc/netplan/01-netcfg.yaml(文件名可能因版本不同),配置如下:network: version: 2 ethernets: eth0: addresses: [192.168.1.100/24] # IP和子网掩码 gateway4: 192.168.1.1 # 网关 nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS dhcp4: no # 关闭DHCP,静态IP设为no保存后应用配置:

sudo netplan apply
常用命令对比表
| 命令/工具 | 适用场景 | 示例命令 | 注意事项 |
|---|---|---|---|
ifconfig |
临时修改,传统系统 | sudo ifconfig eth0 192.168.1.100/24 up |
需安装net-tools,重启失效 |
ip |
临时修改,现代Linux | sudo ip addr add 192.168.1.100/24 dev eth0 |
推荐使用,功能更全面 |
nmcli |
永久修改,NetworkManager | sudo nmcli con mod "ens33" ipv4.method manual |
适用于支持NetworkManager的发行版 |
| 配置文件 | 永久修改,服务器定制 | 编辑ifcfg-eth0或netplan.yaml |
需注意文件语法,不同发行版路径不同 |
注意事项
- 权限要求:所有修改命令需使用
sudo或root权限执行。 - 避免IP冲突:修改前确保目标IP未被网络中其他设备使用(可通过
ping 192.168.1.100测试)。 - 备份配置:修改前备份原始配置文件(如
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak),避免配置错误导致无法联网。 - 防火墙与SELinux:CentOS系统需检查防火墙(
firewall-cmd)和SELinux(getenforce/setenforce)是否阻止网络访问。
相关问答FAQs
Q1:修改IP地址后无法访问外网,可能是什么原因?
A:常见原因包括:网关配置错误(可通过ip route show检查默认网关)、DNS未设置(cat /etc/resolv.conf查看DNS)、网络服务未重启(systemctl restart network或nmcli con up)、防火墙拦截(sudo firewall-cmd --list-ports检查端口规则)。
Q2:如何将IP地址改回DHCP自动获取?
A:
- 使用
nmcli(NetworkManager):sudo nmcli con mod "ens33" ipv4.method auto # 设置为DHCP sudo nmcli con up "ens33" # 重启连接
- 手动修改配置文件:
- CentOS:将
ifcfg-eth0中的BOOTPROTO=static改为BOOTPROTO=dhcp,删除IPADDR、NETMASK等参数,重启网络服务。 - Ubuntu:将Netplan配置中的
dhcp4: no改为dhcp4: yes,删除addresses、gateway4等,执行sudo netplan apply。
- CentOS:将
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/24243.html