概述
本文介绍如何使用 PowerShell 在 Windows Server 中统一管理网络配置。
包括静态 IP 设置、DNS 配置、路由优先级调整以及多网卡(NIC)环境的注意事项。
变量说明
| 变量名 | 示例值 | 说明 |
|---|---|---|
<<INTERFACE_ALIAS>> |
Ethernet0 |
网络适配器名称 |
<<IP_ADDRESS>> |
192.168.10.100 |
固定 IP 地址 |
<<PREFIX_LENGTH>> |
24 |
子网前缀长度(如 255.255.255.0 → 24) |
<<GATEWAY>> |
192.168.10.1 |
默认网关 |
<<DNS1>> |
192.168.10.10 |
主 DNS 服务器 |
<<DNS2>> |
8.8.8.8 |
备用 DNS 服务器(可选) |
第一步:查看当前网络配置
列出所有网络适配器并检查 IP 配置。
# 查看适配器列表
Get-NetAdapter | Select-Object Name, Status, MacAddress, LinkSpeed
# 查看 IP 配置
Get-NetIPAddress | Select-Object InterfaceAlias, IPAddress, PrefixLength, DefaultGateway, PrefixOrigin
| OriginType | 含义 | 说明 |
|---|---|---|
| Manual | 手动设置的静态地址 | 通过 PowerShell 或 GUI 明确配置 |
| DHCP | 由 DHCP 服务器自动分配 | 使用 Set-NetIPInterface -Dhcp Enabled 启用自动获取 |
| WellKnown | 系统保留的本地或 APIPA 地址 | 当 DHCP 无响应时使用(如 169.254.x.x) |
第二步:从 DHCP 切换为静态 IP
禁用 DHCP 并设置固定 IP。
# 禁用 DHCP
Set-NetIPInterface -InterfaceAlias "<<INTERFACE_ALIAS>>" -Dhcp Disabled
# 删除现有 DHCP 地址(如有)
Get-NetIPAddress -InterfaceAlias "<<INTERFACE_ALIAS>>" -AddressFamily IPv4 |
Where-Object { $_.PrefixOrigin -eq "Dhcp" } |
Remove-NetIPAddress -Confirm:$false
# 设置静态 IP
New-NetIPAddress `
-InterfaceAlias "<<INTERFACE_ALIAS>>" `
-IPAddress "<<IP_ADDRESS>>" `
-PrefixLength <<PREFIX_LENGTH>> `
-DefaultGateway "<<GATEWAY>>"
注意:
Remove-NetIPAddress仅用于删除 DHCP 分配的地址。
不要在远程连接使用的适配器上执行此命令,否则会导致连接中断。
第三步:配置 DNS 服务器
指定 DNS 并验证设置。
# 配置 DNS
Set-DnsClientServerAddress `
-InterfaceAlias "<<INTERFACE_ALIAS>>" `
-ServerAddresses ("<<DNS1>>","<<DNS2>>")
# 验证配置
Get-DnsClientServerAddress -InterfaceAlias "<<INTERFACE_ALIAS>>"
清除 DNS 缓存并测试解析:
Clear-DnsClientCache
Resolve-DnsName "www.microsoft.com"
第四步:配置多网卡环境下的优先级
在具有多个网络接口的服务器中,手动控制路由优先级(InterfaceMetric)。
数值越小,优先级越高。
# 查看当前优先级
Get-NetIPInterface | Sort-Object -Property InterfaceMetric |
Select-Object InterfaceAlias, AddressFamily, InterfaceMetric
# 修改优先级(管理网络优先)
Set-NetIPInterface -InterfaceAlias "<<INTERFACE_ALIAS>>" -InterfaceMetric 10
推荐值示例:
- 管理网络:
10- 备份网络:
20–50- 集群或 iSCSI 网络:
100以上
第五步:验证网络连通性
# 测试网关可达性
Test-Connection "<<GATEWAY>>" -Count 4
# 测试 DNS 解析
Resolve-DnsName "www.microsoft.com"
提示:
若 DNS 配置未生效,可重启 DNS 客户端服务:net stop dnscache && net start dnscache
第六步:根据需求禁用 IPv6
默认情况下,IPv4 与 IPv6 共存。若不使用 IPv6,可将其禁用以避免路由或解析冲突。
# 查看 IPv6 绑定状态
Get-NetAdapterBinding `
-InterfaceAlias "<<INTERFACE_ALIAS>>" `
-ComponentID "ms_tcpip6"
# 禁用 IPv6
Disable-NetAdapterBinding `
-InterfaceAlias "<<INTERFACE_ALIAS>>" `
-ComponentID "ms_tcpip6" `
-PassThru
# 再次确认
Get-NetAdapterBinding `
-InterfaceAlias "<<INTERFACE_ALIAS>>" `
-ComponentID "ms_tcpip6"
重新启用 IPv6:
Enable-NetAdapterBinding `
-InterfaceAlias "<<INTERFACE_ALIAS>>" `
-ComponentID "ms_tcpip6"
第七步:最佳实践
- 固定 NIC 名称
为防止设备识别或更新后名称变化,可使用以下命令:Rename-NetAdapter -Name "<<INTERFACE_ALIAS>>" -NewName "LAN-Primary" - 删除多余路由
明确清理无效或重复的默认路由:Get-NetRoute -AddressFamily IPv4 Remove-NetRoute -DestinationPrefix "0.0.0.0/0" -InterfaceAlias "BackupNIC" -Confirm:$false
启用或禁用网络适配器
# 禁用适配器
Disable-NetAdapter -Name "<<INTERFACE_ALIAS>>" -Confirm:$false
# 启用适配器
Enable-NetAdapter -Name "<<INTERFACE_ALIAS>>"
删除固定 IP 并切换回 DHCP
Remove-NetIPAddress -InterfaceAlias "<<INTERFACE_ALIAS>>" -IPAddress "<<IP_ADDRESS>>" -Confirm:$false
Set-NetIPInterface -InterfaceAlias "<<INTERFACE_ALIAS>>" -Dhcp Enabled
总结
通过 PowerShell,可精确且可重复地管理 Windows Server 的网络配置。
在多网卡环境中,路由优先级控制 与 DNS 明确配置 是稳定运行的关键。
建议在系统部署初期即实现脚本化配置,以提升网络管理的效率与一致性。
