Настройка сети в Windows Server

Обзор

В этой статье рассматривается, как управлять настройками сети в Windows Server с помощью PowerShell.
Описаны статическая конфигурация 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-сервер (необязательно)

Шаг 1: Проверить текущую сетевую конфигурацию

Выведите список адаптеров и их IP-настройки.

# Список адаптеров
Get-NetAdapter | Select-Object Name, Status, MacAddress, LinkSpeed

# Проверить IP-конфигурацию
Get-NetIPAddress | Select-Object InterfaceAlias, IPAddress, PrefixLength, DefaultGateway, PrefixOrigin
OriginType Значение Примечание
Manual Статический адрес, заданный вручную Настроен через PowerShell или графический интерфейс
DHCP Адрес, выданный сервером DHCP Активируется командой Set-NetIPInterface -Dhcp Enabled
WellKnown Системный (link-local / APIPA) адрес Присваивается автоматически, если DHCP недоступен (169.254.x.x)

Шаг 2: Переключение с 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.
Если выполнить её на активном адаптере удалённого подключения, соединение будет потеряно.


Шаг 3: Настроить DNS-серверы

Задайте DNS и убедитесь, что изменения применились.

# Настроить DNS
Set-DnsClientServerAddress `
  -InterfaceAlias "<<INTERFACE_ALIAS>>" `
  -ServerAddresses ("<<DNS1>>","<<DNS2>>")

# Проверить конфигурацию
Get-DnsClientServerAddress -InterfaceAlias "<<INTERFACE_ALIAS>>"

Очистите кэш DNS и протестируйте разрешение имён.

Clear-DnsClientCache
Resolve-DnsName "www.microsoft.com"

Шаг 4: Настройка приоритета для нескольких сетевых интерфейсов

Если на сервере несколько сетевых карт, приоритет маршрутизации (InterfaceMetric) следует задать вручную.
Чем меньше значение, тем выше приоритет.

# Проверить текущие приоритеты
Get-NetIPInterface | Sort-Object -Property InterfaceMetric |
  Select-Object InterfaceAlias, AddressFamily, InterfaceMetric

# Изменить приоритет (например, для административной сети)
Set-NetIPInterface -InterfaceAlias "<<INTERFACE_ALIAS>>" -InterfaceMetric 10

Рекомендуемые значения:

  • Административная сеть: 10
  • Сеть резервного копирования: 20–50
  • Кластер / iSCSI: 100 и выше

Шаг 5: Проверить подключение

Проверьте доступность шлюза и работу DNS.

# Проверить доступ к шлюзу
Test-Connection "<<GATEWAY>>" -Count 4

# Проверить разрешение DNS
Resolve-DnsName "www.microsoft.com"

Примечание:
Если DNS не работает, перезапустите клиентский сервис:

net stop dnscache && net start dnscache

Шаг 6: Отключение 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"

Шаг 7: Рекомендации

  • Закрепите имена адаптеров
    Чтобы избежать путаницы после обновлений, задайте постоянные имена:

    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.
В системах с несколькими NIC критически важно контролировать приоритет маршрутизации и настройку DNS.
Автоматизация этих действий на этапе развёртывания обеспечивает стабильную и предсказуемую сетевую инфраструктуру.