Windows Server 网络配置

概述

本文介绍如何使用 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 明确配置 是稳定运行的关键。
建议在系统部署初期即实现脚本化配置,以提升网络管理的效率与一致性。