在命令行环境中修改IP地址是系统管理员和高级用户经常需要进行的操作,尤其在没有图形界面的服务器或远程管理场景中,命令行操作显得尤为重要,不同操作系统(如Windows、Linux、macOS)以及不同的网络配置方式(静态IP、动态IP、DHCP)会导致命令行指令的差异,本文将详细讲解在主流操作系统中通过命令行修改IP地址的方法、注意事项及常见问题。

Windows系统下通过命令行改IP
Windows系统提供了netsh
(Network Shell)工具,这是强大的网络配置命令行实用程序,支持查看、配置和管理网络适配器,修改IP地址前,需先确认目标网络适配器的名称,可通过netsh interface show interface
命令列出所有网络接口,找到当前正在使用的有线或无线适配器名称(如“以太网”或“WLAN”)。
设置静态IP地址
假设要将适配器“以太网”的IP地址设置为192.168.1.100,子网掩码为255.255.255.0,默认网关为192.168.1.1,DNS服务器为8.8.8.8,可执行以下命令:
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 primary
第一条命令设置IP、子网掩码和网关,第二条命令设置DNS服务器,若需添加备用DNS,可继续执行netsh interface ip add dns name="以太网" 8.8.4.4 index=2
。
启用DHCP自动获取IP
若需从DHCP服务器自动获取IP地址,执行以下命令:

netsh interface ip set address name="以太网" dhcp netsh interface ip set dns name="以太网" dhcp
第一条命令启用DHCP获取IP,第二条命令启用DHCP获取DNS配置,命令执行后,可通过ipconfig /renew
强制刷新IP配置。
注意事项:
- 命令中的“以太网”需替换为实际适配器名称,名称中包含空格时需用英文引号包裹。
- 修改DNS时,
primary
参数表示设为主DNS,index=2
表示备用DNS的优先级。 - 部分系统(如Windows Server)可能需要管理员权限才能执行
netsh
命令,建议以管理员身份运行命令提示符。
Linux系统下通过命令行改IP
Linux系统修改IP地址的方式因发行版和网络管理工具(如ifconfig
、ip
、NetworkManager
、netplan
等)不同而有所差异,传统上,ifconfig
和ip
命令用于临时配置,重启后失效;而通过配置文件修改可实现永久生效。
使用ip
命令临时修改IP(立即生效,重启失效)
以eth0
网卡为例,设置静态IP:
sudo ip addr add 192.168.1.100/24 dev eth0 # /24表示子网掩码255.255.255.0 sudo ip link set eth0 up # 启动网卡 sudo ip route add default via 192.168.1.1 # 设置默认网关
若需使用DHCP,可安装dhclient
并执行sudo dhclient eth0
。

通过配置文件永久修改IP(不同发行版差异较大)
-
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(使用NetworkManager):
编辑/etc/sysconfig/network-scripts/ifcfg-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
重启网络服务。 -
Arch Linux(使用systemd-networkd):
创建/etc/systemd/network/eth0-static.network
:[Match] Name=eth0 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=8.8.8.8 8.8.4.4
执行
sudo systemctl restart systemd-networkd
。
注意事项:
- 修改配置文件前建议备份原文件,避免配置错误导致网络中断。
- 不同Linux发行版的网络管理工具不同,需确认系统使用的工具(可通过
ps aux | grep network
查看)。 - 临时配置和永久配置冲突时,优先级取决于服务启动顺序,建议统一使用配置文件方式。
macOS系统下通过命令行改IP
macOS系统可通过networksetup
命令修改网络配置,适用于命令行环境(如Terminal或SSH远程连接)。
设置静态IP地址
假设网络服务为“Ethernet”,IP为192.168.1.100,子网掩码255.255.255.0,网关192.168.1.1,DNS 8.8.8.8:
sudo networksetup -setmanual "Ethernet" 192.168.1.100 255.255.255.0 192.168.1.1 sudo networksetup -setdnsservers "Ethernet" 8.8.8.8 8.8.4.4
启用DHCP自动获取IP
sudo networksetup -setdhcp "Ethernet"
注意事项:
- “Ethernet”需替换为实际网络服务名称,可通过
networksetup -listallnetworkservices
查看所有服务。 - macOS的
networksetup
命令需要管理员权限(sudo)。 - 修改后可通过
networksetup -getinfo "Ethernet"
验证配置。
命令行改IP的通用步骤与最佳实践
- 确认网络适配器名称:无论何种系统,第一步都是准确识别目标网络接口的名称,避免误操作其他接口。
- 备份当前配置:修改前记录当前IP、网关、DNS等信息,以便出错时快速恢复。
- 选择合适的方式:临时修改适合测试场景,永久修改需通过配置文件或系统工具,确保重启后配置不丢失。
- 验证配置:修改后使用
ping
测试网关连通性(如ping 192.168.1.1
),并通过nslookup
或dig
测试DNS解析。 - 处理异常情况:若修改后网络中断,可通过物理访问或带外管理(如IPMI)恢复,避免远程断连。
相关问答FAQs
Q1:修改IP地址后无法上网,如何快速排查?
A:首先检查IP、子网掩码、网关配置是否正确,可通过ping
网关地址测试本地网络连通性;其次检查DNS配置,尝试使用nslookup www.baidu.com
验证DNS解析是否正常;若仍无法上网,可能是防火墙或路由器策略限制,需检查防火墙规则(如Windows的wf.msc
、Linux的iptables
或firewalld
)。
Q2:如何在命令行中查看当前IP配置信息?
A:不同系统查看命令不同:Windows下使用ipconfig
(详细信息)或ipconfig /all
;Linux下使用ip addr show
或ifconfig
(需安装net-tools
);macOS下使用networksetup -getinfo "Ethernet"
或ifconfig en0
(en0为网卡名称),Linux和macOS还可通过cat /etc/resolv.conf
查看DNS配置。