在Linux系统中,通过命令行修改IP地址是系统管理员和开发人员常见的操作,尤其适用于服务器环境或没有图形界面的系统,Linux系统下修改IP地址的方法因网络管理工具的不同而有所差异,主流的工具有ifconfig、ip命令以及基于Netplan、NetworkManager的配置文件修改,以下将详细介绍不同场景下的IP修改方法,包括临时修改和永久修改,并针对不同发行版(如CentOS/RHEL、Ubuntu/Debian)提供具体操作步骤。

使用ifconfig和route命令临时修改IP(适用于传统网络工具)
ifconfig是传统的网络配置工具,虽然在较新的Linux发行版中逐渐被ip命令替代,但仍广泛使用,临时修改IP地址时,配置在系统重启后会失效。
- 
查看当前网络接口 
 执行ifconfig -a或ip addr show,列出所有网络接口,通常以太网接口名为eth0或enpXsY,无线接口为wlan0。
- 
临时修改IP地址 
 以eth0接口为例,设置静态IP地址为168.1.100,子网掩码为255.255.0:sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 若需启用接口,可添加 up参数:sudo ifconfig eth0 up。 (图片来源网络,侵删) (图片来源网络,侵删)
- 
配置默认网关 
 使用route命令添加默认网关,例如网关地址为168.1.1:sudo route add default gw 192.168.1.1 
- 
配置DNS服务器 
 临时DNS修改可通过编辑/etc/resolv.conf文件实现:sudo echo "nameserver 8.8.8.8" > /etc/resolv.conf 
使用ip命令临时修改IP(推荐,适用于现代Linux系统)
ip是iproute2包中的工具,功能更强大且逐渐替代ifconfig,临时修改的命令与ifconfig类似,但语法不同。
- 
修改IP地址和子网掩码  (图片来源网络,侵删) (图片来源网络,侵删)sudo ip addr add 192.168.1.100/24 dev eth0 其中 /24表示子网掩码255.255.0。
- 
启用/禁用接口 sudo ip link set eth0 up # 启用 sudo ip link set eth0 down # 禁用 
- 
添加默认网关 sudo ip route add default via 192.168.1.1 
永久修改IP地址的方法
永久修改需要根据网络管理工具的不同调整配置文件,常见工具包括NetworkManager(用于桌面版如Ubuntu、CentOS 7+)、Netplan(Ubuntu 18.04+)以及传统的ifcfg文件(CentOS/RHEL 6-7)。
基于NetworkManager的配置(适用于CentOS/RHEL 7+、Ubuntu Desktop)
- 
使用 nmtui文本界面工具sudo nmtui 进入“Edit a connection”选择对应接口,修改IP配置为“Manual”,输入IP、子网掩码、网关和DNS,保存后重启网络服务。 
- 
使用 nmcli命令行工具
 示例(为eth0设置静态IP):sudo nmcli con mod "eth0" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4" sudo nmcli con up "eth0" 
基于Netplan的配置(Ubuntu 18.04+、Debian 10+)
Netplan使用YAML格式的配置文件,通常位于/etc/netplan/目录下(如01-netcfg.yaml)。
- 编辑配置文件  sudo nano /etc/netplan/01-netcfg.yaml 示例配置内容: network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]保存后应用配置: sudo netplan apply 
传统ifcfg文件配置(CentOS/RHEL 6-7、旧版Ubuntu)
编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件:  
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 ```示例: ```ini TYPE=Ethernet BOOTPROTO=static 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 # CentOS/RHEL 7+ sudo service network restart # CentOS/RHEL 6
验证网络配置
修改完成后,可通过以下命令验证IP配置是否生效:
ip addr show eth0 # 查看接口IP ping 192.168.1.1 # 测试网关连通性 nslookup www.baidu.com # 测试DNS解析
相关操作对比表
| 操作场景 | 命令/工具 | 适用系统 | 特点 | 
|---|---|---|---|
| 临时修改IP | ifconfig/ip命令 | 所有Linux发行版 | 重启后失效,无需配置文件 | 
| 永久修改(NetworkManager) | nmtui/nmcli | CentOS 7+, Ubuntu Desktop | 图形化/命令行交互式 | 
| 永久修改(Netplan) | 编辑YAML配置文件 | Ubuntu 18.04+, Debian 10+ | 声明式配置,简洁 | 
| 永久修改(ifcfg) | 编辑 ifcfg文件 | CentOS 6-7, RHEL 6-7 | 传统方式,需重启网络服务 | 
FAQs
Q1: 修改IP后无法上网,如何排查?
A: 首先检查IP地址、子网掩码、网关配置是否正确,使用ping命令测试网关连通性;其次检查DNS配置,尝试ping 8.8.8.8验证网络层是否可达;最后确认防火墙或安全组规则是否阻止了网络访问,若使用NetworkManager,可通过nmcli con show查看连接状态。
Q2: 如何在Linux中动态获取IP(DHCP)与静态IP切换?
A: 对于NetworkManager,可通过nmcli修改:  
- 切换为DHCP:sudo nmcli con mod "eth0" ipv4.method auto
- 切换为静态IP:sudo nmcli con mod "eth0" ipv4.method manual ipv4.addresses 192.168.1.100/24
 对于Netplan,将dhcp4: yes或dhcp4: no对应修改并运行netplan apply,对于ifcfg文件,修改BOOTPROTO=dhcp或BOOTPROTO=static并重启网络服务。

 
                             
         
         
         
         
         
         
         
         
         
        