在Linux和Unix-like系统中,修改IP地址主要通过命令行工具实现,不同发行版可能使用不同的命令和配置文件,以下是详细步骤和注意事项,涵盖临时修改和永久修改两种方式,同时包含不同网络管理工具(如ifconfig、ip、nmcli、netplan等)的使用方法。

使用ifconfig命令修改IP(适用于较老系统)
ifconfig是传统的网络配置工具,在CentOS 7之前或Ubuntu 18.04之前的版本中较为常用,若系统中未安装,可通过sudo apt install net-tools(Ubuntu/Debian)或sudo yum install net-tools(CentOS/RHEL)安装。
临时修改IP地址
假设要将eth0网卡的IP设置为192.168.1.100,子网掩码为255.255.255.0,网关为192.168.1.1,执行以下命令:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 sudo route add default gw 192.168.1.1
若需配置DNS,需编辑/etc/resolv.conf文件:
sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf
注意:临时修改重启网络服务或系统后失效。

永久修改(需编辑配置文件)
以CentOS 6/7为例,编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件:
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
添加或修改以下内容:
DEVICE=eth0 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
使用ip命令修改IP(现代Linux系统推荐)
ip命令是iproute2包的一部分,功能更强大且逐渐取代ifconfig,几乎所有现代Linux发行版默认已安装。

临时修改IP
# 设置IP和子网掩码 sudo ip addr add 192.168.1.100/24 dev eth0 # 添加网关 sudo ip route add default via 192.168.1.1 # 配置DNS(同ifconfig方式)
验证配置:
ip addr show eth0 ip route show
永久修改(基于发行版)
-
Ubuntu/Debian(使用netplan)
编辑/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
-
CentOS/RHEL 7+(使用NetworkManager)
编辑/etc/sysconfig/network-scripts/ifcfg-eth0与ifconfig部分相同),或使用nmcli命令: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" sudo nmcli con up "eth0"
使用nmcli命令(NetworkManager图形化工具的CLI接口)
nmcli适用于NetworkManager管理的系统,如Ubuntu 18.04+、CentOS 7+。
添加新连接
sudo nmcli con add type ethernet ifname eth0 con-name eth0-static
配置IP参数
sudo nmcli con mod eth0-static ipv4.method manual \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "8.8.8.8" \ ipv4.ignore-auto-dns yes
启用连接
sudo nmcli con up eth0-static
使用systemd-networkd(适用于无NetworkManager的系统)
如Arch Linux或 minimal CentOS安装,可通过/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
重启网络服务:
sudo systemctl restart systemd-networkd
常见问题与注意事项
- 配置文件格式错误:确保YAML或INI文件缩进正确,避免空格和混用。
- 网卡名称变化:新系统可能使用
ens33等命名规则,可通过ip addr查看实际网卡名。 - 网络服务冲突:若同时使用NetworkManager和networkd,需禁用一个(如
sudo systemctl stop NetworkManager)。 - IP冲突:修改前确保IP未被其他设备使用,可通过
ping 192.168.1.100测试。
相关问答FAQs
Q1: 修改IP后无法上网,如何排查?
A1: 首先检查IP配置是否正确(ip addr show),确认网关和DNS设置(cat /etc/resolv.conf),若使用静态IP,确保ONBOOT=yes(ifcfg文件)或ipv4.method manual(nmcli),若问题仍存在,尝试重启网络服务或检查防火墙规则(sudo iptables -L)。
Q2: 如何在Windows命令行中修改IP?
A2: 在Windows中,可通过netsh命令修改IP,将本地连接的IP设为192.168.1.100,子网掩码255.255.255.0,网关192.168.1.1:
netsh interface ip set address name="本地连接" static 192.168.1.100 255.255.255.0 192.168.1.1 netsh interface ip set dns name="本地连接" static 8.8.8.8
修改后可通过ipconfig /all验证配置,永久修改需在“网络设置”中手动配置或使用组策略。
