Инструкция как сделать несколько 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
Можно задать дополнительный адрес через графический интерфейс системы.
- Откройте Панель управления –> Все элементы панели управления -> Сетевые подключения (или просто выполните команду ncpa.cpl).
- Откройте свойства вашего сетевого интерфейса.
- В списке протоколов выберите TCP/IP v4 и нажмите кнопку Свойства.
- Нажмите на кнопку Advanced (Дополнительно) и в секции «IP адреса» нажмите кнопку Добавить.
- Укажите дополнительный IP адрес и маску подсети и нажмите Добавить.
- Сохраните изменения, несколько раз щелкнув на 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