В некоторых ситуациях администратору необходимо настроить несколько 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
Можно задать дополнительный адрес через графический интерфейс системы.
- Откройте Панель управления –> Все элементы панели управления -> Сетевые подключения (или просто выполните команду 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
Сайт вроде для системных администраторов, а не для детского сада. И контент и подача материала будто для тех, кто вчера открыл для себя cmd.exe
Сделайте свой сайт, «правильный» )
О, божество снизошло. Его высочество гуру, всеведущий во всех возможностях ОС!
Я к примеру вообще забыл о данной фишке, так как последний раз пользовался ею лет 5 назад.
И про флаг не знал. Но Всеведущий и Всезнающий гуру конечно должен отписаться, назвав всех детсадовцами.
Одно непонятно, зачем ты зашёл на этот сайт? Ты же выше этого.
Дима, все очень ждали этот коммент!
Автору спасибо.
Присылайте свои статьи на правильные админские темы — кто же мешает :). С удовольствием опубликую.
На какую почту?
Контактный email есть на страице https://winitpro.ru/index.php/o-bloge/
Спасибо, про флаг SkipAsSource не знал
Я сделаю свой сайт с блекджеком и люхами. Да и зачем не сайт. )
Автору спасибо. Вот про флаг не знал.
netsh int ipv4 show ipaddresses level=verbose
Для Powershell 2 нет решений по добавлению IP?
Не знаю. Пользуйтесь netsh , либо обновите версию PoSh — это будет правильнее.
Довольный интересный малоизвестный момент с флагом, спасибо!
При этом адреса могут быть из разных подсетей.
Есть два сервера в одном vlan’е
Если воспользоваться данным методом и назначить 2й Ip для обоих серверов будет ли конфликт IP адресов?
Если IP будут уникальными, то конфликта не будет.
Добре.
Не пойму как решить вопрос:
есть основной ip на интерфейсе: 192.168.1.1/24
добавил второй с skipassource=true: 192.168.1.2/24
имеем роуты:
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.254
192.168.1.0 255.255.255.0 On-link 192.168.1.1
192.168.1.1 255.255.255.255 On-link 192.168.1.1
192.168.1.2 255.255.255.255 On-link 192.168.1.1
Как добавить маршрут, что бы в сеть 192.168.2.0/24 пакеты отправлялись с src ip 192.168.1.2, в то время как все остальные шли от 192.168.1.1?
при добавлении маршрута параметр if предлагает задать id интерфейса, а на интерфейсе все так же висит .1.1.
Можно как то добавить в систему виртуальный свитч и к нему подключать вники, только без добавления роли hyper-v?)
Не представляю, как на одном интерфейсе настроить такую маршрутизацию. Скорее всего вам придется создавать отдельный сетевой интерфейс через VLAN (https://winitpro.ru/index.php/2020/03/17/nastrojka-vlan-interfejsov-v-windows/) или hyper-v switch.