在Linux系统中,IP地址的配置是网络管理的基础操作,无论是临时调试还是长期部署,都可能需要根据实际需求调整IP地址,Linux下更改IP地址的方法主要分为临时更改和永久更改两种,且不同发行版(如Ubuntu/Debian和CentOS/RHEL)的配置工具和文件路径可能存在差异,本文将详细讲解各类场景下的操作步骤和注意事项。
临时更改IP地址(重启后失效)
临时更改IP地址适用于快速测试或临时网络调试,配置不会写入系统配置文件,重启网络服务或系统后会恢复原设置,主要通过命令行工具实现,常用命令有ip
和ifconfig
(ifconfig
逐渐被ip
取代,但部分旧系统仍支持)。
使用ip
命令(推荐)
ip
是Linux下更现代的网络配置工具,功能更全面,适用于当前大多数发行版(如Ubuntu 18.04+、CentOS 7+)。
-
查看当前网络接口:
首先通过ip addr show
或ip a
查看系统中的网络接口名称(如eth0
、ens33
、wlan0
等),ip addr show
输出中会显示
inet
字段对应IPv4地址,inet6
对应IPv6地址,link/ether
是MAC地址。 -
添加/删除IP地址:
假设需为接口eth0
配置静态IP168.1.100
,子网掩码255.255.0
(即/24
),执行:sudo ip addr add 192.168.1.100/24 dev eth0 # 添加IP
若需删除已配置的IP,用
del
替换add
:sudo ip addr del 192.168.1.100/24 dev eth0 # 删除IP
-
启用/禁用接口:
配置IP后,需确保接口处于启用状态(UP
):sudo ip link set eth0 up # 启用接口 sudo ip link set eth0 down # 禁用接口(临时断开网络)
-
查看路由和网关:
配置IP后,可通过ip route show
查看路由表,确认默认网关是否正确:ip route show
若需临时添加默认网关(如
168.1.1
),执行:sudo ip route add default via 192.168.1.1 # 添加默认网关
使用ifconfig
命令(旧版系统)
ifconfig
是传统的网络配置工具,在Ubuntu 16.04及更早版本、CentOS 6等系统中默认安装,新系统需手动安装net-tools
包(sudo apt install net-tools
或sudo yum install net-tools
)。
-
配置IP地址:
为eth0
配置IP168.1.100
,子网掩码255.255.0
:sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0
-
启用/禁用接口:
sudo ifconfig eth0 up sudo ifconfig eth0 down
-
添加别名IP(多IP配置):
若需为一个接口配置多个IP,可使用别名(如eth0:0
):sudo ifconfig eth0:0 192.168.1.101 netmask 255.255.255.0
临时配置对比表格
操作 | ip 命令(推荐) |
ifconfig 命令(旧版) |
---|---|---|
查看接口信息 | ip addr show 或ip a |
ifconfig 或ifconfig eth0 |
添加IP | sudo ip addr add 192.168.1.100/24 dev eth0 |
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 |
删除IP | sudo ip addr del 192.168.1.100/24 dev eth0 |
sudo ifconfig eth0 192.168.1.100 |
启用接口 | sudo ip link set eth0 up |
sudo ifconfig eth0 up |
添加默认网关 | sudo ip route add default via 192.168.1.1 |
sudo route add default gw 192.168.1.1 |
永久更改IP地址(重启后生效)
永久更改IP地址需修改系统的网络配置文件,不同发行版的配置方式和文件路径差异较大,需根据具体系统选择方法。
Ubuntu/Debian系统(Netplan或NetworkManager)
Ubuntu 18.04及更新版本默认使用netplan
进行网络配置,而Ubuntu 16.04及部分版本使用NetworkManager
(图形化工具nmtui
或nmcli
)。
(1)Netplan配置(Ubuntu 18.04+)
Netplan通过YAML格式的配置文件管理网络,文件通常位于/etc/netplan/
目录下(如01-netcfg.yaml
、50-cloud-init.yaml
)。
-
编辑配置文件:
使用sudo vim /etc/netplan/01-netcfg.yaml
打开文件,示例配置如下(以eth0
接口为例):network: version: 2 ethernets: eth0: dhcp4: no # 禁用DHCP,使用静态IP addresses: [192.168.1.100/24] # 静态IP地址及子网掩码 gateway4: 192.168.1.1 # 默认网关 nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS服务器
-
应用配置:
保存文件后,执行以下命令使配置生效:sudo netplan apply
若提示配置错误,可通过
sudo netplan --debug apply
查看详细日志排查问题。
(2)NetworkManager配置(Ubuntu 16.04及图形化环境)
Ubuntu默认使用NetworkManager
管理网络,可通过命令行工具nmcli
或图形化工具“网络”配置。
-
使用
nmcli
命令:
查看现有连接:nmcli connection show
修改连接(如“System eth0”为连接名称):sudo nmcli connection modify "System eth0" 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"
重启连接使配置生效:
sudo nmcli connection down "System eth0" && sudo nmcli connection up "System eth0"
-
图形化配置:
打开“设置”→“网络”,点击当前连接的齿轮图标,选择“编辑IPv4”,选择“手动”,输入IP、子网掩码、网关和DNS,保存即可。
CentOS/RHEL系统(NetworkManager或NetworkScripts)
CentOS 7+默认使用NetworkManager
,CentOS 6及更早版本使用NetworkScripts
(ifcfg
文件)。
(1)NetworkManager配置(CentOS 7+)
-
使用
nmcli
命令:
查看连接:nmcli connection show
修改连接(如“ens33”为接口名):sudo nmcli connection modify "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"
重启连接:
sudo nmcli connection down "ens33" && sudo nmcli connection up "ens33"
-
编辑
ifcfg
文件(不推荐,兼容旧方式):
虽然CentOS 7+推荐nmcli
,但也可手动编辑/etc/sysconfig/network-scripts/ifcfg-ens33
:sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33 ``` 如下: ```ini TYPE=Ethernet BOOTPROTO=static # 静态IP,dhcp为动态IP NAME=ens33 DEVICE=ens33 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=114.114.114.114
保存后执行
sudo systemctl restart network
重启网络服务。
(2)NetworkScripts配置(CentOS 6及更早版本)
CentOS 6及更早版本主要依赖ifcfg
文件,配置方法与上述CentOS 7的ifcfg
文件类似,但需注意:
- 网络服务命令为
service network restart
(非systemctl
)。 - 若需禁用DHCP,确保
BOOTPROTO=static
,并手动配置IPADDR
、NETMASK
、GATEWAY
、DNS
。
验证IP配置是否生效
无论采用哪种方式更改IP,配置后均需验证是否生效:
-
查看IP地址:
ip addr show eth0 # 或 ifconfig eth0
确认输出中包含配置的IP地址(如
168.1.100
)。 -
测试网络连通性:
- ping网关:
ping 192.168.1.1
(确认与本地网络通信) - ping公网IP:
ping 8.8.8.8
(确认与外网通信) - ping域名:
ping www.baidu.com
(确认DNS解析正常)
- ping网关:
相关问答FAQs
问题1:临时更改IP和永久更改IP有什么区别?
解答:临时更改IP是通过命令行工具(如ip
、ifconfig
)直接修改网络接口的运行时配置,不会写入系统配置文件,因此重启网络服务或系统后IP地址会恢复为原配置,适用于快速测试或临时调试;永久更改IP是通过修改系统配置文件(如Netplan的YAML文件、NetworkManager的ifcfg
文件)实现的,配置会持久保存,重启后仍生效,适合长期使用的网络环境。
问题2:更改IP地址后无法上网,如何排查?
解答:可按以下步骤排查:
- 检查IP配置:确认IP地址、子网掩码、默认网关是否正确,例如IP是否与同一网段其他设备冲突,子网掩码是否为
255.255.0
(/24),网关是否为本地网络的出口地址。 - 检查DNS配置:若能ping通IP但无法ping通域名,可能是DNS配置错误,可通过
cat /etc/resolv.conf
查看DNS服务器,确保配置了有效的DNS(如8.8.8
)。 - 检查网络服务状态:使用
systemctl status network
(CentOS 7+)或service network status
(CentOS 6)查看网络服务是否正常运行,若未运行则重启服务。 - 检查防火墙:部分防火墙(如iptables、firewalld)可能阻止网络访问,可临时关闭防火墙测试(
sudo systemctl stop firewalld
或sudo iptables -F
),若恢复则需调整防火墙规则。 - 检查网关连通性:执行
ping 192.168.1.1
(网关地址),若无法ping通,可能是网关设备故障或物理线路问题。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/30599.html