在Linux和Windows操作系统中,通过命令行修改IP地址是一项基础且重要的操作,适用于服务器管理、网络调试或自动化脚本等场景,不同系统使用的命令和语法存在差异,下面将分别详细介绍两种系统下通过命令修改IP地址的方法,包括静态IP和动态IP(DHCP)的配置,以及相关参数的说明和注意事项。

Linux系统下修改IP地址
Linux系统主要通过网络配置文件或命令行工具(如ifconfig、ip命令)来修改IP地址,不同发行版的配置文件位置可能略有不同,但核心逻辑一致。
使用ifconfig命令(临时生效)
ifconfig是传统的网络配置工具,适用于大多数Linux发行版,但修改后重启网络服务或系统会失效。
基本语法:
sudo ifconfig [网卡名称] [新IP地址] netmask [子网掩码] [up|down]
示例:
将eth0网卡的IP地址修改为192.168.1.100,子网掩码为255.255.255.0:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
参数说明:

eth0:网卡名称,可通过ifconfig或ip addr命令查看。up/down:启用或禁用网卡,通常省略up(默认启用)。
使用ip命令(推荐,临时生效)
ip命令是iproute2工具包的一部分,功能更强大,逐渐取代ifconfig。
基本语法:
sudo ip addr add [新IP地址]/[子网前缀] dev [网卡名称]
示例:
将eth0网卡的IP地址修改为192.168.1.100,子网掩码转换为前缀长度24(即255.255.255.0):
sudo ip addr add 192.168.1.100/24 dev eth0
补充操作:
- 启用/禁用网卡:
sudo ip link set eth0 up或sudo ip link set eth0 down - 删除IP地址:
sudo ip addr del 192.168.1.100/24 dev eth0
永久修改IP地址(通过配置文件)
永久修改需编辑网络配置文件,常见发行版的文件路径如下:
- CentOS/RHEL 7+:
/etc/sysconfig/network-scripts/ifcfg-eth0 - Ubuntu 18.04+:
/etc/netplan/01-netcfg.yaml(Netplan)或/etc/network/interfaces(传统方案)
CentOS/RHEL 示例:
编辑ifcfg-eth0文件,修改或添加以下参数:
TYPE=Ethernet BOOTPROTO=static # 静态IP,dhcp为动态IP 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 Netplan 示例:
编辑/etc/netplan/01-netcfg.yaml,配置如下:
network:
version: 2
ethernets:
eth0:
dhcp4: no # 禁用DHCP
addresses: [192.168.1.100/24] # IP地址和前缀长度
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
保存后执行sudo netplan apply应用配置。
Windows系统下修改IP地址
Windows系统主要通过netsh命令或PowerShell修改IP地址,临时和永久配置均可实现。
使用netsh命令(推荐)
基本语法:
netsh interface ip set address [网卡名称] static [IP地址] [子网掩码] [默认网关] [DNS服务器]
示例:
将本地连接的IP地址修改为192.168.1.100,子网掩码255.255.255.0,网关192.168.1.1,DNS为8.8.8.8:
netsh interface ip set address "本地连接" static 192.168.1.100 255.255.255.0 192.168.1.1 8.8.8.8
查看网卡名称:
在命令提示符中运行ipconfig /all,查找“适配器描述”对应的名称(如“以太网适配器”)。
使用PowerShell命令(Windows 10/11)
基本语法:
New-NetIPAddress -InterfaceAlias [网卡名称] -IPAddress [IP地址] -PrefixLength [子网前缀] -DefaultGateway [默认网关] Set-DnsClientServerAddress -InterfaceAlias [网卡名称] -ServerAddresses [DNS服务器]
示例:
New-NetIPAddress -InterfaceAlias "以太网" -IPAddress 192.168.1.100 -PrefixLength 24 -DefaultGateway 192.168.1.1 Set-DnsClientServerAddress -InterfaceAlias "以太网" -ServerAddresses "8.8.8.8","114.114.114.114"
永久修改IP地址(通过注册表或组策略)
对于需要批量管理的场景,可通过修改注册表或组策略实现永久配置。
- 注册表路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{网卡GUID}
在该路径下添加IPAddress(字符串值,IP地址)、SubnetMask(子网掩码)、DefaultGateway(默认网关)等项。 - 组策略:
通过gpedit.msc进入“计算机配置→管理模板→网络→网络连接→Windows防火墙”,配置IP策略。
修改IP地址的注意事项
- 权限要求:所有命令均需管理员权限(Linux下使用
sudo,Windows下以管理员身份运行命令提示符或PowerShell)。 - 网卡名称确认:错误网卡名称可能导致网络中断,修改前务必通过
ifconfig(Linux)或ipconfig(Windows)确认。 - 网络服务重启:Linux下修改配置文件后需重启网络服务(
systemctl restart network或service network restart),Windows下netsh命令会自动生效。 - DHCP与静态IP冲突:若从DHCP切换为静态IP,需确保IP地址未被网络中其他设备占用,否则会导致IP冲突。
常见问题对比
| 操作场景 | Linux命令示例 | Windows命令示例 |
|---|---|---|
| 临时修改静态IP | sudo ip addr add 192.168.1.100/24 dev eth0 |
netsh interface ip set address "本地连接" static 192.168.1.100 255.255.255.0 192.168.1.1 |
| 切换为DHCP | sudo dhclient eth0(CentOS)或修改BOOTPROTO=dhcp |
netsh interface ip set address "本地连接" dhcp |
| 查看当前IP配置 | ip addr show eth0 |
ipconfig /all |
相关问答FAQs
Q1:修改IP地址后无法上网,如何排查?
A1:首先检查IP地址、子网掩码、默认网关和DNS配置是否正确,可通过ping [网关IP]测试本地网络连通性,ping 8.8.8.8测试外网连通性,若配置无误,可能是网卡驱动问题或防火墙拦截,尝试重启网卡或关闭防火墙后重试。
Q2:如何通过命令批量修改多台服务器的IP地址?
A2:可通过编写Shell脚本(Linux)或PowerShell脚本(Windows),结合SSH远程执行或WinRM协议实现批量操作,Linux下使用ssh user@server "sudo ip addr add 192.168.1.100/24 dev eth0",或使用Ansible、SaltStack等自动化工具批量下发配置文件。
