在Linux系统中修改本机IP地址是日常运维和开发中的常见操作,根据网络环境的不同(如临时修改或永久生效),以及Linux发行版之间的差异(如RedHat系、Debian系等),操作方法略有不同,本文将详细介绍通过命令行和配置文件修改IP地址的步骤,涵盖主流发行版的使用场景。

前提:确认网络接口名称
在修改IP前,需先确定本机的网络接口名称(如eth0、ens33、enp0s3等),可通过以下命令查看:
ip addr show # 或 ifconfig
命令输出中,“inet”字段对应IPv4地址,“link/ether”字段对应MAC地址,第一行的“2: eth0”或“3: ens33”即为网络接口名称。
临时修改IP地址(重启后失效)
临时修改IP适用于测试场景,重启网络服务或系统后配置会恢复,主流方法有两种:
使用ifconfig命令(传统工具)
若系统安装了net-tools包(默认部分系统未安装,可通过yum install net-tools或apt install net-tools安装),操作如下:  
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 # 设置IP和子网掩码 sudo ifconfig eth0 up # 确保接口启动(若未启动)
若需添加网关,需通过route命令:  
sudo route add default gw 192.168.1.1 # 添加默认网关
使用ip命令(推荐,现代Linux默认支持)
ip命令是iproute2包的工具,功能更全面,推荐使用:  
sudo ip addr add 192.168.1.100/24 dev eth0 # 设置IP(/24表示255.255.255.0) sudo ip link set eth0 up # 启用接口 sudo ip route add default via 192.168.1.1 # 添加默认网关
临时配置无需保存,重启后自动失效。

永久修改IP地址(重启后生效)
永久修改需编辑对应系统的网络配置文件,不同发行版文件位置和格式不同,以下是主流发行版的操作方法:
RedHat/CentOS(7及以上版本)
使用NetworkManager或ifcfg文件配置,若通过ifcfg文件(适用于禁用NetworkManager的场景):  
- 编辑配置文件:
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0 - 添加/修改以下内容:
TYPE=Ethernet BOOTPROTO=static # 静态IP,dhcp为动态 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=114.114.114.114
 - 重启网络服务:
sudo systemctl restart network 
Debian/Ubuntu
传统版本使用/etc/network/interfaces文件,Ubuntu 18.04+推荐使用Netplan(YAML格式)。  
编辑interfaces文件
sudo vim /etc/network/interfaces
```  根据接口名称调整):  
```ini
auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 114.114.114.114
重启网络:sudo systemctl restart networking或sudo /etc/init.d/networking restart。  
Netplan配置(Ubuntu 18.04+)
编辑配置文件(路径可能为/etc/netplan/01-netcfg.yaml或/etc/netplan/50-cloud-init.yaml):  
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no  # 禁用动态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  

Arch Linux
使用systemd-networkd或netctl,通过systemd-networkd配置:  
- 
创建配置文件:
sudo vim /etc/systemd/network/eth0.network如下:[Match] Name=eth0 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=8.8.8.8 114.114.114.114
 - 
启动并启用服务:
sudo systemctl enable --now systemd-networkd 
不同发行版配置对比
为方便查阅,以下表格总结主流发行版的永久配置关键信息:
| 发行版 | 配置文件路径 | 核心配置参数 | 重启命令 | 
|---|---|---|---|
| RedHat/CentOS | /etc/sysconfig/network-scripts/ifcfg-eth0 | BOOTPROTO=static, IPADDR, NETMASK, GATEWAY | systemctl restart network | 
| Debian/Ubuntu | /etc/network/interfaces | iface eth0 inet static, address, gateway | systemctl restart networking | 
| Ubuntu 18.04+ | /etc/netplan/*.yaml | dhcp4: no, addresses, gateway4 | netplan apply | 
| Arch Linux | /etc/systemd/network/*.network | Address, Gateway, DNS | systemctl enable –now systemd-networkd | 
相关问答FAQs
Q1:修改IP后无法联网,如何排查?
A:首先检查IP、子网掩码、网关配置是否正确(确保IP与同一网段,网关为路由器地址);然后使用ping 8.8.8.8测试外网连通性,若不通则检查网关是否可达(ping 网关地址);最后确认DNS配置(cat /etc/resolv.conf查看),可临时修改为公共DNS(如8.8.8.8)测试。  
Q2:如何查看当前IP配置是否生效?
A:使用以下命令查看:  
ip addr show eth0:查看接口IP、子网掩码状态;ip route show:查看路由表(确认默认网关是否正确);cat /etc/resolv.conf:查看DNS服务器配置;ping 域名(如ping www.baidu.com):测试DNS解析和网络连通性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/24381.html