Кілька IP адрес (алиасов) на одному мережевому інтерфейсі в Windows

У деяких ситуаціях адміністраторові необхідно налаштувати декілька IP адрес на одному мережевому інтерфейсі (мережевої карти) в Windows. Прикладом таких ситуацій може бути необхідність запуску декількох сайтів з унікальними IP адресами та SSL СЕРТФІКАТА (тих же SSL СЕРТФІКАТА від Let's Encrypt) на одному сервері IIS або Apache, підготовка до зміни IP адресації в підмережі, прив'язка додатків до різних IP адресами і т.д.

Розглянемо, як додати додатковий статичний IP адреса на мережевий інтерфейс в Windows 10 (аналогічним чином можна додати додатковий IP адреса в Windows Server). В першу чергу переконайтеся, що вашому мережного адаптера Ethernet призначений тільки одну адресу. Для цього виконайте команду:

ipconfig

Як ви бачите підключенню по локальній мережі (у мене воно називається Ethernet0) присвоєно один IP адреса (192.168.1.90).

Додати другий статичний IP адреса можна кількома способами.

зміст:

  • Додаємо додатковий IP адреса через GUI
  • прапор SkipAsSource
  • Призначаємо другий IP адреса інтерфейсу за допомогою команди Netsh
  • Додаємо додатковий IP адреса за допомогою PowerShell

Додаємо додатковий IP адреса через GUI

Можна задати додатковий адресу через графічний інтерфейс системи.

  1. Відкрийте Панель управління -> Всі елементи панелі управління -> Мережеві підключення (або просто виконайте команду ncpa.cpl).
  2. Відкрийте властивості вашого мережевого інтерфейсу.
  3. У списку протоколів виберіть TCP / IP v4 і натисніть кнопку властивості.
  4. Натисніть на кнопку Advanced (Додатково) і в секції "IP адреси" натисніть кнопку Додати.
  5. Вкажіть додатковий IP адреса і маску підмережі і натисніть Додати.
  6. Збережіть зміни, кілька разів клацнувши на OK.

За допомогою ipconfig переконайтеся, що у цього інтерфейсу з'явився другий ip адреса.

Перевірте доступність другого IP адреси по мережі з інших комп'ютерів командою ping. Він повинен відповідати.

прапор SkipAsSource

Основний недолік додавання другого ip адреси таким способом - для нього не включається прапор SkipAsSource (SkipAsSource = False). Якщо прапор SkipAsSource включений (True), то цей IP адреса не буде використовуватися системою для вихідних з'єднань, крім явного його задіяння певним додатком. Так само при включеному прапорі другий IP адреса не реєструється в DNS (при включеній динамічної реєстрації). По суті за допомогою параметра SkipAsSource ви можете встановити оснвних IP адреса.

Призначаємо другий IP адреса інтерфейсу за допомогою команди Netsh

Ви можете прив'язати додатковий ip адресу з командного рядка за допомогою утиліти Netsh. Також дана команда дозволяє виставляти прапор SkipAsSource для IP адреси.

Відкрийте командний рядок з правами адміністратора і виконайте команду

Netsh int ipv4 add address name = "Local Area Connection" 192.168.1.92 255.255.255.0 SkipAsSource = True

Додаємо додатковий IP адреса за допомогою PowerShell

Також ви можете додати другий IP алиас мережевої карти за допомогою PowerShell командлет New-NetIPAddress (командлет з'явився в модулі PowerShell NetTCPIP в версії PowerShell для Windows 2012 / Windows 8 і).

Виїдемо список доступних інтерфейсів:

Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource

IPAddress InterfaceAlias ​​SkipAsSource
--------- -------------- ------------
172.23.53.241 vEthernet (Комутатор по у) False
192.168.1.90 Ethernet0 False
127.0.0.1 Loopback Pseudo-Interface 1 False

Щоб додати додатковий IP для мережевого інтерфейсу Ethernet0 виконайте команду:

New-NetIPAddress -IPAddress 192.168.1.92 -PrefixLength 24 -InterfaceAlias ​​"Ethernet0" -SkipAsSource $ True

IPAddress: 192.168.1.92
InterfaceIndex: 11
InterfaceAlias: Ethernet0
AddressFamily: IPv4
Type: Unicast
PrefixLength: 24
PrefixOrigin: Manual
SuffixOrigin: Manual
AddressState: Tentative
ValidLifetime: Infinite ([TimeSpan] :: MaxValue)
PreferredLifetime: Infinite ([TimeSpan] :: MaxValue)
SkipAsSource: True
PolicyStore: ActiveStore

Щоб змінити параметр SkipAsSource і дозволити вихідний трафік з даного IP адреси мережевого інтерфейсу скористайтеся командою:

Get-NetIPAddress 192.168.1.92 | Set-NetIPAddress -SkipAsSource $ False