Как включить ip forwarding в windows

Обновлено: 28.06.2024

Здравствуйте. Как включить IP-маршрутизацию в Windows для подключения к интернету?

Ip -маршрутизация – это необходимый инструмент для организации доступа к сети Интернет. Изначально маршрутизация пакетов протокола TCP / IP в операционной системе Windows между сетевыми адаптерами отключена. Её необходимо включить.

Для этого нужно нажать кнопку «Пуск», чтобы вызвать главное меню и там перейти к строке «Выполнить». В поле ввода ввести значение regedit 32, для загрузки редактора системного реестра.

Затем необходимо перейти в раздел «HKEY_LOCAL_MACHINE», далее выбрать «SYSTEM», после чего «CurrentControlSet», потом «Services», там «Tcpip» и наконец «Parameters», куда следует внести изменения. Параметр, который должен быть изменен, называется IPEnableRouter, значение необходимо установить «1», тип данных REG _ DWORD . Это необходимо для включения маршрутизации пакетов протокола TCP / IP всех сетевых подключений.

Необходимо выбрать раздел «Общие», а затем правым щелчком мыши на поле «общие» вызвать контекстное меню, где выбрать «Свойства».

Затем можно установить флажок возле «Вести только журнал ошибок», что необходимо для ведения журнала различных ошибок, которые возможны при ip -маршрутизации.

Можно установить переключатель в позицию «Вести журнал ошибок и предупреждений», чтобы расширить параметры фиксации ошибок.

Если остановиться напротив «Вести журнал всех событий», то будет вестись журнал всех событий ip -маршрутизации.

Положение флажка около «Отключить журнал событий» полностью отменит ведение записи происходящего.

Так же можно выбрать желаемые предпочтения по использованию данных из различных маршрутов, воспользовавшись вкладкой «Уровни предпочтений».

Самым надежным считают локальный маршрут.

Использование кнопок «Понизить уровень» и «Повысить уровень» позволят изменить параметры уровней предпочтений для других маршрутов.

Затем можно задать области многоадресных рассылок, которые обслуживаются маршрутизатором, на закладке «Многоадресные области». Для чего используется кнопка «Добавить» и кнопка «Изменить» для настройки этого параметра.

После этого необходимо вернуться в «Общие» и снова вызвать сервисное меню, для чего надо щелкнуть правой кнопкой мыши по полю «Общие» и добавить новый интерфейс.

Для добавления нового интерфейса необходимо выбрать пункт «Новый интерфейс», а затем установить желаемый интерфейс для маршрутизации. После чего нажать на «ОК».

Необходимо выбрать «Новый протокол маршрутизации» в сервисном меню, которое использовали ранее, для того чтобы добавить новый протокол. В предложенном списке выбирается нужный протокол, далее выбор подтверждается нажатием «ОК».

Затем необходимо вернуться в «Общие» и выбрать нужное устройство в списке, который располагается в правой части окна. Снова вызвать интерфейсное меню правым щелчком мыши на поле интерфейса, а далее подменю «Свойства».

Установка флажка напротив позиции «Включить диспетчер IP-маршрутизации» позволит запустить маршрутизацию через данный интерфейс.

Так же можно использовать опции настроек на вкладке «Пульс многоадресной рассылки» и вкладке «Границы многоадресной области» окна «Свойства».

Важно помнить, что изменение значений системного реестра может повлечь за собой полную неработоспособность системы и необходимость переустановки операционной системы.

Рекомендуется пользоваться для изменения настроек протоколов TCP / IP сетевой платы окном «Сеть и удаленный доступ к сети».

date

28.08.2020

directory

Windows 10, Windows Server 2016

comments

комментария 62

В Linux перенаправление портов настраивается довольно просто с помощью iptables. На серверных системах Windows Server для настройки перенаправления портов, как правило используется служба маршрутизации и удаленного доступа (RRAS). Однако есть более простой способ настройки проброса портов, который одинаково хорошо работает в любой версии Windows.

Как включить перенаправления портов в Windows 10 с помощью netsh portproxy?

Настройка перенаправления портов в Windows выполняется из командой строки через режим Portproxy команды Netsh. Синтаксис команды следующий:
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
где,

С помощью опций netsh interface portproxy add v4tov6 / v6tov4 / v6tov6 можно создавать правила порт форвардинга между IPv4 и IPv6 адресами. Примечание. Обратите внимание, что номер локального порта, который вы указали в listenport не должен быть занят (слушаться) другой службой. Проверьте, что номер порта свободен командой:

netstat -na|find "3340"

Либо вы можете проверить что порт не слушается локально с помощью PowerShell командлета Test-NetConnection:

Test-NetConnection -ComputerName localhost -Port 3340

проверка доступности локального порта в windows

netsh interface portproxy - правило перенаправления портов Windows

Чтобы создать правило перенаправления порта, запустите командную строку с правами администратора и выполните команду:
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.10.1.110 connectport=3389 connectaddress=10.10.1.110

Где 10.10.1.110 – текущий IP адрес данного компьютера

netstat ano findstr

Теперь с помощью утилиты netstat проверьте, что в Windows теперь слушается локальный порт 3340:
netstat -ano | findstr :3340

Примечание. Если эта команда ничего не возвращает и перенаправление портов через netsh interface portproxy не работает, убедитесь что у вас в системе включена служба iphlpsvc (IP Helper / Вспомогательная служба IP).

служба iphlpsvc (IP Helper / Вспомогательная служба IP)

А на сетевом интерфейсе, для которого создается правило перенаправления портов должна быть включена поддержка IPv6.

IPv6 включен на сетевом интерфейсе

Это обязательные условия для корректной работы порт-форвардинга. Без службы IP Helper и без включенной поддержки IPv6 механизм перенаправления не работает.

В Windows Server 2003 / XP для работы перенаправления дополнительно нужно включить параметр реестра IPEnableRouter = 1 в ветке HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters.

tasklist findstr pid

Вы можете определить процесс, который слушает указанный локальный порт с помощью его PID (в нашем примере PID – 636):
tasklist | findstr 636

Теперь попробуем подключиться на данный порт с удаленного компьютера при помощи любого RDP клиента. В качестве rdp-порта нужно указать 3340 (номер порта указывается после двоеточия после адреса rdp-сервера), например, 10.10.1.110:3340

RDP подключение на другой порт

RDP подключение должно успешно установиться.

netsh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.1.100

Это правило перенаправит весь входящий RDP трафик (с локального порта TCP 3389) с этого компьютера на удаленный компьютер с IP-адресом 192.168.1.100.

Так же для проброса локального порта на удаленный сервер в Windows можно использовать технику SSH туннелей.

Управление правилами проброса портов в Windows

Важно.Проверьте, что в настройках вашего файервола (брандмауэра Windows или стороннего межсетевого экрана, такие часто включаются в состав антивирусного ПО) разрешены входящие подключения на новый порт. Вы можете добавить новое разрешающее правило в брандмауэр защитника Windows командой:

netsh advfirewall firewall add rule name=”RDP_3340” protocol=TCP dir=in localip=10.10.1.110 localport=3340 action=allow
Или с помощью командлета PowerShell New-NetFirewallRule:
New-NetFirewallRule -DisplayName "RDP_3340" -Direction Inbound -Protocol TCP –LocalPort 3340 -Action Allow

При создании входящего правила файервола через графический интерфейс для порта 3340 не нужно ассоциировать никакую программу, т.к. данный порт слушается исключительно сетевым драйвером.

Можно создать любое количество правил перенаправления локальных портов Windows. Все правила netsh interface portproxy являются постоянными и сохраняются в системе после перезагрузки Windows.

Несколько раз сталкивался со случаями, когда в Windows Server 2012 R2 правила перенаправления портов сбрасывались после перезагрузки сервера. В этом случае рекомендуется проверить нет ли периодических отключений на сетевом интерфейсе, и не меняется ли IP адрес при загрузке ОС (лучше использоваться статический IP, вместо динамического DHCP). В качестве обходного решения пришлось добавить в планировщик Windows скрипт с правилами netsh interface portproxy , который создает правило перенаправления порта при загрузке операционной системы.

Чтобы вывести на экран список всех активных правил перенаправления TCP портов в Windows, выполните команду:

netsh interface portproxy show all
В нашем случае присутствует только одно правило форвардинга с локального порта 3340 на 3389:

Совет. Также настройки перенаправления портов в режиме portproxy можно вывести так:
netsh interface portproxy dump

Конфигурация перенаправления портов Windows

Дамп всех правил portproxy


Чтобы удалить определенное правило перенаправления порта, выполните:
netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.10.1.110

Удалить правило перенаправления портов

Чтобы удалить все имеющиеся правила перенаправления и полностью очистить таблицу с правилами порт-форвардинга:
netsh interface portproxy reset

Для настройки перенаправления UDP трафика можно использовать Windows Server с ролью RRAS и NAT. Вы можете настроить перенаправление портов между интерфейсами компьютера с помощью графической оснастки (rrasmgmt.msc) или командой:

netsh routing ip nat add portmapping Ethernet udp 0.0.0.0 53 192.168.1.54 53

Еще одной неявной возможностью portproxy является возможность создать видимость локальной работы любого удаленного сетевого сервиса.

Например, создадим такое перенаправление с локального порта 8888 на удаленный адрес 213.180.204.3:

Перенаправление портов также можно использовать, чтобы пробросить порт с внешнего IP адреса сетевой карты на порт виртуальной машины, запущенной на этом же компьютере. В Hyper-V такой проброс порта можно настроить на виртуальном коммутатор (см. ниже).

Windows не умеет пробрасывать диапазон TCP портов. Если вам нужно пробросить несколько портов, придется вручную создавать несколько правил перенаправления. Проще всего сформировать список команд netsh interface portproxy add с разными портами в блокноте и затем вставить в командную строку для выполнения.

Настройка перенаправления портов в Hyper-V Server

Сначала нужно создать виртуальный коммутатор с NAT:

New-VMSwitch -Name "NAT" -SwitchType NAT -NATSubnetAddress 192.168.0.0/24

Затем нужно подключить нужную ВМ в указанный коммутатор и включить правило трансляции адресов для всех виртуальных машин, подключенных через данный виртуальный коммутатор Hyper-V:

New-NetNat -Name Web_NAT -InternalIPInterfaceAddressPrefix 192.168.0.0/24
Add-NetNatStaticMapping -ExternalIPAddress "0.0.0.0/24" -ExternalPort 443 -Protocol TCP -InternalIPAddress "192.168.0.2" -InternalPort 443 -NatName Web_NAT

date

20.12.2019

directory

Windows 10, Windows Server 2012 R2

comments

комментариев 18

В некоторых ситуациях администратору необходимо настроить несколько IP адресов на одном сетевом интерфейсе (сетевой карте) в Windows. Примером таких ситуаций может быть необходимость запуска нескольких сайтов с уникальными IP адресами и SSL сертфикатами (тех же SSL сертфикатов от Let’s Encrypt ) на одном сервере IIS или Apache, подготовка к смене IP адресации в подсети, привязка приложений к разным IP адресам и т.д.

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

ipconfig один ip адрес на интерфейсе

Как вы видите подключению по локальной сети (у меня оно называется Ethernet0) присвоен один IP адрес (192.168.1.90).

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

Добавляем дополнительный IP адрес через GUI

Можно задать дополнительный адрес через графический интерфейс системы.

настройка сетевого адаптера

  1. Откройте Панель управления –> Все элементы панели управления -> Сетевые подключения (или просто выполните команду ncpa.cpl).
  2. Откройте свойства вашего сетевого интерфейса.
  3. В списке протоколов выберите TCP/IP v4 и нажмите кнопку Свойства.
  4. Нажмите на кнопку Advanced (Дополнительно) и в секции «IP адреса» нажмите кнопку Добавить.
  5. Укажите дополнительный IP адрес и маску подсети и нажмите Добавить.

С помощью ipconfig убедитесь, что у этого интерфейса появился второй ip адрес.

появился дополнительный ip интерфейса

Проверьте доступность второго IP адреса по сети с других компьютеров командой ping. Он должен отвечать.

ping нового ip адреса

Флаг 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

Get-NetIPAddress

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

присваиваем интерфейсу второй ip адрес с помощью комнадлета New-NetIPAddress

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 адреса сетевого интерфейса воспользуйтесь командой:

Берем типичную ситуацию. У нас есть сервер с двумя сетевыми интерфейсами. Один подключен к интернету, а другой подключен к локальной сети. Нам бы конечно хотелось что бы локальная сеть тоже была в интернете, например для удаленного доступа на локальную машину или просто нужен интернет (Пикабусики там). Получается сервер у нас выступает шлюзом между двумя сетями которые мы хотим объединить. Для этого настроим NAT.


NAT (от англ. Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Также имеет названия IP Masquerading, Network Masquerading и Native Address Translation. Преобразование адреса методом NAT может производиться почти любым маршрутизирующим устройством — маршрутизатором, сервером доступа, межсетевым экраном. Наиболее популярным является SNAT, суть механизма которого состоит в замене адреса источника (англ. source) при прохождении пакета в одну сторону и обратной замене адреса назначения (англ. destination) в ответном пакете.

Википедия.

Поехали.

Первым делом нам настроить сетевые интерфейсы. Интерфейс который смотрит в интернет (назовем его INT) может получать настройки и по DHCP. А вот локальный ( LOC ) надо настраивать ручками, мы будем шлюзом для всей локальной сети.

Теперь переходим к настройке маршрутизации :

Теперь выбираем на сервере маршрутизации протокол IPv4, заходим в папочку преобразование сетевых адресов. И выбираем интерфейс для которого требуется включить NAT.

Вот и все. Теперь нам доступен интернет из локальной сети.


Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: