Не работает проброс портов windows 7

Во всех версиях Windows вы можете настроить перенаправление/проброс сетевых портов (порт форвардинг) без использования сторонних инструментов. С помощью правила

Во всех версиях Windows вы можете настроить перенаправление/проброс сетевых портов (порт форвардинг) без использования сторонних инструментов. С помощью правила форвардинга вы можете перенаправить входящее TCP соединение (IPv4 или IPv6) с локального TCP порта на любой другой номер порта или даже на порт удаленного компьютера. Перенаправление портов в Windows чаще всего используется для обхода файерволов или чтобы спрятать сервер или службу от внешней сети (NAT/PAT).

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

Содержание:

  • Включить перенаправления порта в Windows с помощью netsh portproxy
  • Настройка правил файервола для режима перенаправления портов Windows
  • Управление правилами проброса портов netsh в Windows
  • Настройка перенаправления портов с помощью NAT на Hyper-V Server

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

Вы можете включить и настроить перенаправление портов в Windows из командой строки через режим Portproxy команды Netsh.

Синтаксис команды следующий:

netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport

где,

  • listenaddress – локальный IP адрес, на котором ожидается соединение (полезно, если у вас несколько сетевых карт в разных подсетях/VLAN или несколько IP адресов на одном интерфейсе);
  • listenport – номер локального TCP порта, подключение к которому будет перенаправляться (на этом порту ожидается входящее соединение);
  • connectaddress – локальный или удаленный IP-адрес или DNS-имя хоста, на который нужно перенаправить сетевое подключение;
  • connectport – номер TCP порта, на который нужно перенаправить трафик с порта listenport.

С помощью опций
netsh interface portproxy add
v4tov6
/
v6tov4
/
v6tov6
можно создавать правила порт форвардинга между для IPv4 и IPv6 адресов илимежду ними.

Допустим наша задача, заставить службу RDP отвечать на нестандартном порту, например 3340 (этот порт, конечно, можно изменить в настройках самой службы, но мы используем именно RDP для упрощения демонстрации техники перенаправления и проброса портов). Для этого нам нужно перенаправить входящий трафик на TCP порт 3340 на другой локальный порт – 3389 (это номер стандартного порта RDP).

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

netstat -na|find "3340"

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

Test-NetConnection -ComputerName localhost -Port 3340

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

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

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

Где 10.10.1.110 – IP адрес вашего компьютера, на котором настраивается порт-форвардинг.

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

netstat ano findstr

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

Проверьте состояние службу в консоли services.msc или с помощью команды PowerShell:

Get-Service iphlpsvc

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

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

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

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

В Windows Server 2003 / XP для работы перенаправления дополнительно нужно включить параметр реестра IPEnableRouter = 1 в ветке HKEY_LOCAL_MACHINE SystemCurrentControlSetservicesTcpipParameter. Можно включить этот параметр реестра с помощью PowerShell:

Set-ItemProperty -Path HKLM:systemCurrentControlSetservicesTcpipParameters -Name IpEnableRouter -Value 1

Этот параметр также позволяет включить маршрутизацию между разными подсетями в Hyper-V.

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

tasklist findstr pid

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

В этом примере порт 3340 нужно предварительно открыть в Windows Defender Firewall (см. следующий раздел статьи).

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

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

Правила проброса портов portproxy являются постоянными и не удаляются при перезагрузке Windows. Эти правила хранятся в реестре. Можно вывести список правил перенаправления netsh в реестре с помощью PowerShell:

Get-ItemProperty -Path HKLM:SYSTEMCurrentControlSetServicesPortProxyv4tov4tcp

правила portproxy в реестра windows

Если нужно перенаправить входящее TCP соединение на удаленный компьютер, используйте такую команду:

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.

Нужно отметить, что режим portproxy в Windows не поддерживает сохранения IP источника в перенаправленном сетевом пакете. Т.е. если вы пробросите 443 порт Windows компьютера на внутренний веб-сервер, то на целевом сервере все входящие соединения будут идти с одного и того же IP адреса (Windows компьютер с активным режимом netsh portproxy). Если вам нужно использовать переадресацию с сохранением IP источника, нужно использовать NAT на внешнем фаейволе или на Hyper-V (описано ниже).

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

Настройка правил файервола для режима перенаправления портов Windows

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

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  -Enabled True

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

Если вы отключаете правило portproxy, не забудьте удалить оставшиеся правила файервола так:

netsh advfirewall firewall del rule name="RDP_3340"

или с помощью PowerShell:

Remove-NetFirewallRule -Name RDP_3340

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

Можно создать любое количество правил перенаправления локальных портов 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:

Listen on ipv4:             Connect to ipv4:
Address         Port        Address         Port
--------------- ----------  --------------- ----------
10.10.1.110     3340        10.10.1.110     3389

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

#========================
# Port Proxy configuration
#========================
pushd interface portproxy
reset
add v4tov4 listenport=3340 connectaddress=10.10.1.110 connectport=3389
popd
# End of Port Proxy configuration

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

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

netsh interface portproxy set v4tov4 listenport=3340 listenaddress=10.10.1.110  connectport=3300 connectaddress=10.10.1.110

В этом примере мы изменили адрес целевого порта portproxy на 3300.

netsh portproxy: вывести все правила перенаправления портов

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

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

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

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

Важно. Такая схема перенаправления работает только для TCP портов. Трафик по UDP портам нельзя перенаправить с помощью режима portproxy. Также нельзя использовать в качестве connectaddress адрес localhost 127.0.0.1.

Если вы хотите включить перенаправление 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

Список NAT правил перенаправления портов в Windows Server можно вывести так:

netsh routing ip nat show interface

Если у вас на компьютере развернут WSL (Windows Subsystem for Linux), вы можете создать простой PowerShell скрипт создания правила перенаправления порта внутрь виртуальной машины WSL 2 (у ВМ на WSL 2 есть собственный виртуальный адаптер ethernet с уникальным IP адресом):

wsl --shutdown;
netsh interface portproxy reset;
$wsl_ipaddr = wsl -d Ubuntu-20.04 hostname -I;
netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=$wsl_ipaddr ;
netsh interface portproxy show all;
exit;

Еще одной неявной возможностью portproxy является возможность создать видимость локальной работы любого удаленного сетевого сервиса. Например, вы хотите перенаправить весь трафик с локального порта 9090 на
google.com:443

netsh interface portproxy add v4tov4 listenport=9090 listenaddress=127.0.0.1     connectaddress=142.250.74.46 connectport=443 protocol=tcp

Теперь, если в браузере перейди по адресу https://localhost:9090 (нужно игнорировать ошибки SSL_ERROR_BAD_CERT_DOMAIN), откроется поисковая страница Google. Т.е. несмотря на то, что браузер обращается к локальному компьютеру, в нем открывается страница с внешнего веб-сервера.

пример локального перенаправления портов в windows

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

Windows не умеет пробрасывать диапазон TCP портов. Если вам нужно пробросить несколько портов, придется вручную создавать несколько правил перенаправления.

Настройка перенаправления портов с помощью NAT на Hyper-V Server

При использовании на вашем компьютере роли Hyper-V (может быть установлена как на Windows 10/11, так и на Windows Server или в виде бесплатного Windows Hyper-V Server), вы можете настроит проброс портов DNAT с помощью PowerShell. Допустим, вы хотите перенаправить все https запросы, которые получает ваш хост Hyper-V на IP адрес запущенной на хосте виртуальной машины. Для этого используется команды Hyper-V StaticMapping.

Создайте виртуальный коммутатор Hyper-V:

New-VMSwitch -SwitchName «NAT_Switch» -SwitchType Internal

hyper-v: команда new-vmswitch создать коммутатор

Задайте IP адрес для нового виртуального коммутатора:

New-NetIPAddress  -IPAddress 192.168.10.1  -PrefixLength 24  -InterfaceAlias "vEthernet (NAT_Switch)"

Включите NAT для данной сети:

New-NetNat -Name NATNetwork -InternalIPInterfaceAddressPrefix 192.168.10.0/24

Подключите ВМ в ваш коммутатор NAT_Switch и задайте для нее статический IP адрес (например, 192.168.10.80). В качестве шлюза-по умолчанию нужно указать IP адрес виртуального коммутатора Hyper-V (192.168.10.1).

Теперь можно настроить перенаправление порта с хоста Hyper-V в виртуальную машину:

Add-NetNatStaticMapping -NatName NATNetwork443  -Protocol TCP  -ExternalIPAddress 0.0.0.0/24  -ExternalPort 443  -InternalIPAddress 192.168.10.80  -InternalPort 443

После выполнения этих команд весь HTTPS трафик, который приходит на порт TCP/443 гипервизора будет переправлен на серый IP адрес виртуальной машины.

Если вы хотите перенаправить нестандартный порт, не забудьте открыть его в Windows Firewall:

New-NetFirewallRule -DisplayName "HyperV_Nat_443" -Direction Inbound -LocalPort 443 -Protocol TCP -Action Allow -Enabled True

Полный список правил NAT на хосте Hyper-V можно вывести так:

Get-NetNat

Всем привет! Сегодня я расскажу вам, как проверить и открыть порты на Windows 7. Мы попробуем три способа открытия: командная строка, брандмауэр и дополнительные программы. Возможно вам нужен будет проброс порта, но эта манипуляция делается на роутере, об этом я напишу в самой последней главе статьи. Также в самом начале вы можете посмотреть PDF файлик, где указаны все возможные порты (80, 7777б 1935, 27015) и их предназначение, возможно эта информация вам понадобится.

Содержание

  1. Список всех портов
  2. Через Брандмауэр
  3. Через командную строку
  4. Как посмотреть результат открытия
  5. Как отрыть 80 порт
  6. Дополнительные программы
  7. Проброс портов
  8. Задать вопрос автору статьи

Список всех портов

Через Брандмауэр

  1. Кликаем по кнопке «Пуск» (находится в левом нижнем углу). Далее переходим в «Панель управления». На панели найдите раздел «Брандмауэр Windows». Если по каким-то причинам вы не можете его найти, то в правом верхнем углу найдите «Режим просмотра» и переключите его в параметр «Крупные значки».

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

  1. В левом блоке нажмите по ссылке «Дополнительные параметры».

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

  1. В левом блоке у нас есть два раздела, которые вам должны понадобиться, правила для входящих и исходящих подключений. Дело в том, что иногда для некоторых программ и игр нужно создавать сразу два правила – помните об этом. Нажимаем на входящее правило.

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

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

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

  1. И тут мы теперь видим два протокола TCP и UDP. Вам нужно уточнить, какие именно протоколы используется в той или иной программе. Но по опыту скажу, что обычно создаются два правила для каждого из протоколов. То есть скорее всего вам нужно будет создать 2 правила исходящих для TCP и UDP и два правила входящих для тех же самых протоколов. В итоге их получится 4. Ниже указываем номер порт.

ВНИМАНИЕ! Указывать «Все локальные порты» не рекомендуются по соображениям безопасности.

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

  1. Далее выбираем первые пункт, как на картинке ниже.

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

  1. Теперь указываем тип сетей. Для того, чтобы не возникало никаких конфликтов, лучше указать все.

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

  1. Вписываем наименование и описания, для того чтобы потом не забыть – для чего это правило было создано.

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

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

Через командную строку

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

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

Теперь вводим команду:

netsh advfirewall firewall add rule name=”Наименование правила” protocol=”TCP или UDP” localport=Номер порта action=allow dir=IN

Как посмотреть результат открытия

Итак, порты мы открыли, но теперь давайте проверим, чтобы он был открыт в самой семерке.

После этого вводим команду:

netstat –aon | more

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

Вы можете увидеть несколько параметров:

  • Listening – все норм, порт открыт.
  • Established – информация по порту передается, тоже все хорошо.
  • Closewait – порт закрыт и информация не передается.
  • Timewait – от порта нет ответа.

Если вы запутались или не можете найти нужный вход, то можно воспользоваться специальным онлайн сервисом –  переходим по ссылке, вводим номер входа, нажимаем по кнопке проверки.

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

Как отрыть 80 порт

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

  1. Открываем консольку с админ правами и внимательно вписываем

netsh http add iplisten ipaddress=::

  1. Теперь открываем проводник или «Мой компьютер» и проходим по пути:

C:WindowsSystem32driversetc

  1. Открываем файл «Hosts» с помощью блокнота и добавляем в самый конец запись:

127.0.0.1 local

  1. Не забываем сохранить файлик.
  2. Перезагружаем комп.
  3. Если проблема осталась, а вход все равно закрыт, то в «Панели управления» перейдите в «Программы и компоненты».
  4. Слева в блоке перейдите в раздел компонентов Windows.

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

  1. Отключаем IIS.

Как отрыть порт на Windows 7 через Брандмауэр, командную строку и программу

  1. Опять перезагружаемся.

Дополнительные программы

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

  • CurrPorts – удобная и бесплатная программа, которая быстро покажет всю информацию по выделенному выходу.
  • UPnP Wizard – еще одна удобная и полезная утилита. Проблема только в том, что она имеет только английский интерфейс.

Проброс портов

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

Все эти настройки делаются в Web-интерфейсе интернет-центра. Сначала вам нужно зайти в Web-конфигуратор – нужно ввести IP или DNS адрес роутера в адресную строку любого браузера. Если вы не знаете, как туда зайти, то об этом подробно написано тут.

Так как интерфейсы у всех аппаратов разные, то нужно смотреть отдельные инструкции по своим моделям:

  • D-Link
  • ASUS
  • TP-Link
  • Tenda
  • Upvel
  • Netis

Если у вас еще остались вопросы, или я что-то не написал, то пишите свои вопросы в комментариях.

winsrv-portproxy-000.jpgНеобходимость проброса портов весьма часто встающая перед системным администратором задача. Обычно для этой цели используют службы маршрутизации и удаленного доступа (RRAS), но в ряде случаев использование данного инструмента избыточно. В тоже время немногие знают о такой службе как Portproxy, которая управляется из командной строки при помощи команд Netsh. Тем не менее данная служба позволяет справиться с поставленной задачей проще, быстрее и удобнее, чем инструменты графического интерфейса.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Часто можно услышать совершенно неверное утверждение, что в части сетевых настроек операционные системы Windows значительно уступают своим конкурентам (Linux и BSD). Отчасти такие суждения опираются на опыт администрирования стандартных ролей полностью игнорируя возможности командной строки.

Начиная с Windows Server 2003 в состав системы был в введена команда Netsh, которая позволяет гибко управлять сетевыми настройками компьютера. Обзор всех возможностей этой утилиты займет не одну статью, поэтому мы остановимся на командах Netsh для интерфейса Portproxy, позволяющих непосредственно решить нашу задачу.

Данный набор команд позволяет перенаправлять приходящие пакеты с IPv4 и IPv6 портов на любые IPv4 и IPv6 порты компьютера назначения в любых комбинациях. Единственное ограничение — portproxy может работать только с протоколом TCP, но в большинстве случаев этого достаточно.

Для добавления перенаправления используется команда add v4tov4 (если требуется перенаправление с IPv4 в IPv6 используйте v4tov6 и т.д.), полный синтаксис будет такой:

netsh interface portproxy add v4tov4 listenaddress=xxx.xxx.xxx.xxx listenport=nnn connectaddress=xxx.xxx.xxx.xxx connectport=nnn 

где:

  • listenaddress — локальный адрес на котором принимаются соединения
  • listenport — локальный порт на котором принимаются соединения
  • connectaddress — удаленный или локальный адрес на который перенаправляются соединения
  • connectport — удаленный или локальный порт на который перенаправляются соединения

Для изменения уже существующего правила используется команда set v4tov4, которая имеет идентичный синтаксис, listenaddress и listenport — являются обязательными параметрами. Из необязательных параметров можно указывать только тот, который нужно изменить.

Для удаления правил используйте delete v4tov6 с указанием входящих адреса и порта:

netsh interface portproxy delete v4tov4 listenaddress=xxx.xxx.xxx.xxx listenport=nnn

Для просмотра существующих правил введите:

netsh interface portproxy show all

Вместо all допустимо указывать v4tov4 или v6tov4 и т.п. для просмотра только соответствующих правил.

winsrv-portproxy-001.jpgДля сброса всех существующих правил используйте:

netsh interface portproxy reset

Чтобы не быть голословными рассмотрим практический случай использования portproxy в одной довольно непростой ситуации.

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

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

Кроме того, выяснилось, что обе сети имеют одинаковый диапазон IP-адресов, что делало маршрутизацию между ними в принципе крайне затруднительной. По условиям задачи требовалось обеспечить доступ к RDP (порт 3389) сервера SRV-2-1 и SSH (порт 22) сервера SRV-2-2 второй организации, для этого выделялся сервер SRV-1-1 первой компании, при этом, как можно увидеть из схемы ниже, сервера обоих компаний также имеют одинаковые внутренние адреса.

winsrv-portproxy-002.jpgМежду серверами был поднят VPN-туннель, и они видят друг друга по адресам VPN-сети (10.8.0.0), а дальше на выручку приходит portproxy. Так как порты 3389 и 22 соответствующие нужным службам уже использовались для целей администрирования первой компании, то мы выбрали для служб второй компании внешние порты 3390 и 22222, которые были проброшены с внешнего интерфейса роутера первой компании на сервер SRV-1-1 штатным образом.

Теперь нам надо перенаправить все соединения на эти порты в сеть второй компании, но там нам доступен только SRV-2-1 по VPN-адресу, поэтому направим пакеты туда, для чего создадим два правила:

netsh interface portproxy add v4tov4 listenport=3390 listenaddress=192.168.0.200 connectport=3389 connectaddress=10.8.0.2
netsh interface portproxy add v4tov4 listenport=22222 listenaddress=192.168.0.200 connectport=22222 connectaddress=10.8.0.2

Первое правило отправит все пакеты пришедшие на порт 3390 с адресом 192.168.0.200 (внутренний адрес SRV-1-1) в VPN-туннель серверу SRV-2-1, а так как он уже является целевым для службы RDP, то сразу меняем порт назначения на 3389. Первая часть задачи выполнена.

Второе правило отправит к SRV-2-1 все пакеты с порта 22222 (SSH), теперь нам надо научить этот сервер как правильно доставить их адресату. Для этого добавим уже этому серверу следующее правило:

netsh interface portproxy add v4tov4 listenport=22222 listenaddress=10.8.0.2 connectport=22 connectaddress=192.168.0.201

Согласно которому сервер SRV-2-1 в сети второй компании будет слушать порт 22222 на интерфейсе VPN-сети и передавать все полученные пакеты на порт 22 (SSH) сервера SRV-2-2.

Как видим мы весьма просто реализовали довольно сложную схему, так пакет к серверу SRV-2-2 проходит три промежуточных узла, но при этом мы не настраивали никакой маршрутизации и не устанавливали никакого дополнительного ПО и вообще обошлись минимальным вмешательством в инфраструктуру.

Дополнительные материалы

  1. Команды Netsh для интерфейса Portproxy

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Содержание

  1. Записки IT специалиста
  2. Настраиваем проброс портов в Windows при помощи командной строки и Portproxy
  3. Дополнительные материалы
  4. Настройка проброса сетевых портов (порт форвардинга) в Windows
  5. Как включить перенаправления портов в Windows 10 с помощью netsh portproxy?
  6. Управление правилами проброса портов в Windows
  7. Настройка перенаправления портов в Hyper-V Server

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Настраиваем проброс портов в Windows при помощи командной строки и Portproxy

Настраиваем проброс портов в Windows при помощи командной строки и Portproxy

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

Часто можно услышать совершенно неверное утверждение, что в части сетевых настроек операционные системы Windows значительно уступают своим конкурентам (Linux и BSD). Отчасти такие суждения опираются на опыт администрирования стандартных ролей полностью игнорируя возможности командной строки.

Начиная с Windows Server 2003 в состав системы был в введена команда Netsh, которая позволяет гибко управлять сетевыми настройками компьютера. Обзор всех возможностей этой утилиты займет не одну статью, поэтому мы остановимся на командах Netsh для интерфейса Portproxy, позволяющих непосредственно решить нашу задачу.

Данный набор команд позволяет перенаправлять приходящие пакеты с IPv4 и IPv6 портов на любые IPv4 и IPv6 порты компьютера назначения в любых комбинациях. Единственное ограничение — portproxy может работать только с протоколом TCP, но в большинстве случаев этого достаточно.

Для добавления перенаправления используется команда add v4tov4 (если требуется перенаправление с IPv4 в IPv6 используйте v4tov6 и т.д.), полный синтаксис будет такой:

  • listenaddress — локальный адрес на котором принимаются соединения
  • listenport — локальный порт на котором принимаются соединения
  • connectaddress — удаленный или локальный адрес на который перенаправляются соединения
  • connectport — удаленный или локальный порт на который перенаправляются соединения

Для изменения уже существующего правила используется команда set v4tov4, которая имеет идентичный синтаксис, listenaddress и listenport — являются обязательными параметрами. Из необязательных параметров можно указывать только тот, который нужно изменить.

Для удаления правил используйте delete v4tov6 с указанием входящих адреса и порта:

Для просмотра существующих правил введите:

Вместо all допустимо указывать v4tov4 или v6tov4 и т.п. для просмотра только соответствующих правил.

Для сброса всех существующих правил используйте:

Чтобы не быть голословными рассмотрим практический случай использования portproxy в одной довольно непростой ситуации.

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

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

Кроме того, выяснилось, что обе сети имеют одинаковый диапазон IP-адресов, что делало маршрутизацию между ними в принципе крайне затруднительной. По условиям задачи требовалось обеспечить доступ к RDP (порт 3389) сервера SRV-2-1 и SSH (порт 22) сервера SRV-2-2 второй организации, для этого выделялся сервер SRV-1-1 первой компании, при этом, как можно увидеть из схемы ниже, сервера обоих компаний также имеют одинаковые внутренние адреса.

Между серверами был поднят VPN-туннель, и они видят друг друга по адресам VPN-сети (10.8.0.0), а дальше на выручку приходит portproxy. Так как порты 3389 и 22 соответствующие нужным службам уже использовались для целей администрирования первой компании, то мы выбрали для служб второй компании внешние порты 3390 и 22222, которые были проброшены с внешнего интерфейса роутера первой компании на сервер SRV-1-1 штатным образом.

Теперь нам надо перенаправить все соединения на эти порты в сеть второй компании, но там нам доступен только SRV-2-1 по VPN-адресу, поэтому направим пакеты туда, для чего создадим два правила:

Первое правило отправит все пакеты пришедшие на порт 3390 с адресом 192.168.0.200 (внутренний адрес SRV-1-1) в VPN-туннель серверу SRV-2-1, а так как он уже является целевым для службы RDP, то сразу меняем порт назначения на 3389. Первая часть задачи выполнена.

Второе правило отправит к SRV-2-1 все пакеты с порта 22222 (SSH), теперь нам надо научить этот сервер как правильно доставить их адресату. Для этого добавим уже этому серверу следующее правило:

Согласно которому сервер SRV-2-1 в сети второй компании будет слушать порт 22222 на интерфейсе VPN-сети и передавать все полученные пакеты на порт 22 (SSH) сервера SRV-2-2.

Как видим мы весьма просто реализовали довольно сложную схему, так пакет к серверу SRV-2-2 проходит три промежуточных узла, но при этом мы не настраивали никакой маршрутизации и не устанавливали никакого дополнительного ПО и вообще обошлись минимальным вмешательством в инфраструктуру.

Дополнительные материалы

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Или подпишись на наш Телеграм-канал:

Настройка проброса сетевых портов (порт форвардинга) в Windows

Во всех версиях Windows вы можете настроить перенаправление/проброс сетевых портов (порт форвардинг) без использования сторонних инструментов. С помощью правила форвардинга вы можете перенаправить входящее TCP соединение (IPv4 или IPv6) с локального TCP порта на любой другой номер порта или даже на порт удаленного компьютера. Причем не обязательно, чтобы в Windows был сервис, слушающий данный TCP порт. Перенаправление портов в Windows чаще всего используется для обхода файерволов или чтобы спрятать внутренний сервер или службу от внешней сети (NAT/PAT).

В 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
где,

  • listenaddress – локальный IP адрес, на котором ожидается соединение (полезно, если у вас несколько сетевых карт или несколько IP адресов на одном интерфейсе);
  • listenport – номер локального TCP порта, подключение к которому будет перенаправляться (на этом порту ожидается входящее соединение);
  • connectaddress – локальный или удаленный IP-адрес или DNS-имя, на который нужно перенаправить сетевое подключение;
  • connectport – номер TCP порта, на который нужно перенаправить трафик с порта listenport.

Допустим наша задача, заставить службу RDP отвечать на нестандартном порту, например 3340 (этот порт, конечно, можно изменить в настройках самой службы, но мы используем именно RDP для упрощения демонстрации техники перенаправления и проброса портов). Для этого нам нужно перенаправить входящий трафик на TCP порт 3340 на другой локальный порт – 3389 (это номер стандартного порта RDP).

netstat -na|find «3340»

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

Test-NetConnection -ComputerName localhost -Port 3340

Чтобы создать правило перенаправления порта, запустите командную строку с правами администратора и выполните команду:
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 проверьте, что в Windows теперь слушается локальный порт 3340:
netstat -ano | findstr :3340

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

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

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

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

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

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

Если нужно перенаправить входящее TCP соединение на удаленный компьютер, используете такую команду:

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

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.

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

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

Чтобы удалить все имеющиеся правила перенаправления и полностью очистить таблицу с правилами порт-форвардинга:
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:

netsh interface portproxy add v4tov4 listenport=8888 connectport=80 connectaddress= 213.180.204.3 protocol=tcp
Теперь, если в браузере перейди по адресу http://localhost:8888/ , откроется стартовая страница Yandex. Т.е. несмотря на то, что браузер обращается к локальному компьютеру, в нем открывается страница с внешнего веб-сервера.

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

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

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

При использовании на вашем компьютере роли Hyper-V (может быть установлена как на Windows 10, так и на Windows Server или в виде бесплатного Windows Hyper-V Server), вы можете настроит проброс портов DNAT с помощью PowerShell. Допустим, вы хотите перенаправить все https запросы, которые получает ваш хост Hyper-V на IP адрес запущенной на хосте виртуальной машины. Для этого используется команды Hyper-V StaticMapping.

Сначала нужно создать виртуальный коммутатор с 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

После выполнения этих команд весь HTTPS трафик, который приходит на 443 порт гипервизора будет переправлен на серый IP адрес виртуальной машины.

Почему на моём роутере не работает перенаправление (проброс) портов?

Требования к использованию

Дата последнего обновления: 11-21-2016 15:30:33 PM

571099

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

Шаг 1: Убедитесь, что сервер доступен из внутренней сети

Дважды проверьте IP адрес и номер порта сервера,  для которого вы открываете порт. Вы можете выполнить эту проверку из локальной сети. Если вам не удаётся получить доступ к серверу из внутренней сети, проверьте настройки сервера.

Шаг 2: Проверьте настройки страницы проброса портов

Если в шаге 1 проблемы не выявлены, проверьте, были ли корректно отредактированы правила в разделе Переадресация > Виртуальные серверы.

Далее представлены инструкции по пробросу портов на беспроводных устройствах TP-LINK, пожалуйста, обратитесь к данным руководствам для проверки корректности настроек: случай 1, случай 2.

Примечание: если после проброса портов у вас пропал доступ на сервер, убедитесь, что он доступен из локальной сети с использованием того же порта.

Шаг 3: Обратите внимание на WAN IP адрес на странице «Состояние»

Если шаги 1 и шаг 2 не выявили проблемы, но удалённый доступ на сервер всё равно не работает, проверьте WAN IP-адрес на странице «Состояние» в интерфейсе вашего роутера и убедитесь, что это общедоступный IP-адрес. Если IP-адрес серый, что означает наличие дополнительного роутера/NAT со стороны вашего провайдера, вам потребуется открыть такой же порт на данному роутере также, как и на устройстве TP-LINK.

(Примечание: диапазоны частных IP адресов: 10.0.0.0—10.255.255.255; 172.16.0.0—172.31.255.255; 192.168.0.0—192.168.255.255)

Похожие статьи

  • Как открыть порты на беспроводном маршрутизаторе TP-Link для работы с Xbox Live?
  • Как открыть порты Wi-Fi роутера TP-Link стандарта 11N (новый интерфейс)?
  • Как открыть порты на маршрутизаторе TL-MR6400 (новый логотип)?
  • Как настроить переадресацию портов с помощью Deco?

Был ли этот FAQ полезен?

Ваш отзыв поможет нам улучшить работу сайта.

Что вам не понравилось в этой статье?

  • Недоволен продуктом
  • Слишком сложно
  • Неверный заголовок
  • Не относится к моей проблеме
  • Слишком туманное объяснение
  • Другое

Как мы можем это улучшить?

Спасибо

Спасибо за обращение
Нажмите здесь, чтобы связаться с технической поддержкой TP-Link.

  • Remove From My Forums
  • Question

  • Hi Team,

    I have one Windows7 Professional Service Pack 1 Virtual Machine.

    Operating System : 32 bit

    ipconfig /all command shows that it has one interface and both IPv4 and IPv6 address is bind.

    IPv4 address : 198.18.225.86

    IPv6 address : Global IPv6 address so not writing here

    I have install cygwin so I can access through ssh.

    I have already stopped firewall in the machine.

    In the same machine, one of my application is listening on 127.0.0.1 (localhost) and port 41000.

    executed netstat -nao | grep ‘Address|41000’ and found that its listening.

      Proto  Local Address          Foreign Address        State           PID
      TCP    127.0.0.1:41000        0.0.0.0:0              LISTENING       3460

    Now, I want that if any request comes on 40000 port for an ip address 198.18.225.86, then it should forward it to localhost (127.0.0.1):41000 port.

    For this, I executed command:

    netsh interface port add v4tov4 listenport=40000 connectport=41000 connectaddress=127.0.0.1

    OR

    netsh interface port add v4tov4 listenport=40000 listenaddress=0.0.0.0 connectport=41000 connectaddress=127.0.0.1

    OR

    netsh interface port add v4tov4 listenport=40000 listenaddress=198.18.225.86 connectport=41000 connectaddress=127.0.0.1

    After that,

    I executed ‘netsh interface portproxy show all’

    Listen on ipv4:             Connect to ipv4:

    Address         Port        Address         Port
    ————— ———-  ————— ———-
    0.0.0.0         40000       127.0.0.1       41000

    its shows correct entry but when I am executing ‘netstat -nao | grep «Address|40000″‘ it doesn’t show any entry.

    I tried to do telnet from one of the linux machine, 198.18.225.86 40000 and 41000 but getting connection refused error.

    Any idea, how I can solve the issue ?

    Thanks & Regards,

    Parth Shah.

Answers

  • Hi
    contactparthshah,

    Netsh need some IPv6 libraries to configure the port proxy feature. You could do cleanup using netsh interface portproxy reset or netsh interface portproxy delete

    Also please check the link below to get more information.

    http://www.sevenforums.com/network-sharing/221054-port-forwarding-redirecting-not-port-opening.html

    Please Note: Since the website is not hosted by Microsoft, the link may change without notice. Microsoft does not guarantee the accuracy of this information.

    Hope it will be helpful to you


    Please remember to mark the replies as an answers if they help and
    unmark
    them if they provide no help.
    If you have feedback for TechNet Subscriber Support, contact
    tnmff@microsoft.com.

    • Proposed as answer by

      Wednesday, August 10, 2016 3:30 AM

    • Marked as answer by
      Kate LiMicrosoft employee
      Friday, August 12, 2016 8:10 AM

  • Remove From My Forums
  • Question

  • Hi Team,

    I have one Windows7 Professional Service Pack 1 Virtual Machine.

    Operating System : 32 bit

    ipconfig /all command shows that it has one interface and both IPv4 and IPv6 address is bind.

    IPv4 address : 198.18.225.86

    IPv6 address : Global IPv6 address so not writing here

    I have install cygwin so I can access through ssh.

    I have already stopped firewall in the machine.

    In the same machine, one of my application is listening on 127.0.0.1 (localhost) and port 41000.

    executed netstat -nao | grep ‘Address|41000’ and found that its listening.

      Proto  Local Address          Foreign Address        State           PID
      TCP    127.0.0.1:41000        0.0.0.0:0              LISTENING       3460

    Now, I want that if any request comes on 40000 port for an ip address 198.18.225.86, then it should forward it to localhost (127.0.0.1):41000 port.

    For this, I executed command:

    netsh interface port add v4tov4 listenport=40000 connectport=41000 connectaddress=127.0.0.1

    OR

    netsh interface port add v4tov4 listenport=40000 listenaddress=0.0.0.0 connectport=41000 connectaddress=127.0.0.1

    OR

    netsh interface port add v4tov4 listenport=40000 listenaddress=198.18.225.86 connectport=41000 connectaddress=127.0.0.1

    After that,

    I executed ‘netsh interface portproxy show all’

    Listen on ipv4:             Connect to ipv4:

    Address         Port        Address         Port
    ————— ———-  ————— ———-
    0.0.0.0         40000       127.0.0.1       41000

    its shows correct entry but when I am executing ‘netstat -nao | grep «Address|40000″‘ it doesn’t show any entry.

    I tried to do telnet from one of the linux machine, 198.18.225.86 40000 and 41000 but getting connection refused error.

    Any idea, how I can solve the issue ?

    Thanks & Regards,

    Parth Shah.

Answers

  • Hi
    contactparthshah,

    Netsh need some IPv6 libraries to configure the port proxy feature. You could do cleanup using netsh interface portproxy reset or netsh interface portproxy delete

    Also please check the link below to get more information.

    http://www.sevenforums.com/network-sharing/221054-port-forwarding-redirecting-not-port-opening.html

    Please Note: Since the website is not hosted by Microsoft, the link may change without notice. Microsoft does not guarantee the accuracy of this information.

    Hope it will be helpful to you


    Please remember to mark the replies as an answers if they help and
    unmark
    them if they provide no help.
    If you have feedback for TechNet Subscriber Support, contact
    tnmff@microsoft.com.

    • Proposed as answer by

      Wednesday, August 10, 2016 3:30 AM

    • Marked as answer by
      Kate LiMicrosoft employee
      Friday, August 12, 2016 8:10 AM

Довольно часто люди сталкиваются с непонятными, на первый взгляд, проблемами в работе программ или игр, связанными с невозможностью их подключения к серверу. Многие начинают искать причину не там, где нужно, пеняя на плохое интернет-соединение, несовместимость ПО или его высокие системные требования. Ответ может крыться в заблокированном канале передачи данных. Для этого нужно открыть порты в операционной системе Windows.

В нашей новой статье мы кратко расскажем вам об общем назначении портов и как их разблокировать в ОС Windows, приведя несколько примеров.

Содержание

  • 1 Что такое «Порт» и зачем он нужен
  • 2 Проверка статуса портов
  • 3 Открываем порт через Брандмауэр Windows
  • 4 Открываем порт 80
  • 5 Применение стороннего софта CurrPorts
    • 5.1 Преимущества
    • 5.2 Недостатки
  • 6 Работаем с UPnP Wizard
    • 6.1 Преимущества
    • 6.2 Недостатки
  • 7 Онлайн-сервис 2ip.ru
  • 8 Подводим итоги вышесказанному

Что такое «Порт» и зачем он нужен

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

При установке новой игры или другого софта по умолчанию происходит автоматическая проверка туннеля и подключение к серверу. Брандмауэр Windows выводит окно на экран с предложением о разрешении или запрете активности данной программы в сети. Если такового не наблюдается и ПО не хочет подключаться – нужно открыть его порт на компьютере.

Проверка статуса портов

Перед открытием туннеля сначала нужно проверить открытые порты в Windows. Для этого отлично подойдет обычная командная строка.

Делаем следующее:

  1. Открываем меню «Пуск/Программы/Стандартные» и выбираем программу «Командная строка».

Другой способ – введите «cmd» (без кавычек) в поисковую строку Пуска и нажмите «Enter».

  1. В открывшейся командной строке задаем команду «netstat –aon | more» без кавычек. Система отобразит состояние всех активных туннелей.

Смотрим на два последних столбца и находим нужный номер. Напротив номера выведен его статус:

  • Listening – идет опрос свободного порта системой. Он является открытым.
  • Established – идет передача данных, порт занят.
  • Close wait – процесс прекращения передачи данных.
  • Time wait – порт не отвечает.
  1. Открыв «Диспетчер задач» комбинацией клавиш Ctrl+Alt+Delete, вы сможете узнать, чем занят нужный порт, сопоставив его номер из консоли с идентификатором процесса.

Если требуемый порт отсутствует или занят – переходим к следующему пункту.

Открываем порт через Брандмауэр Windows

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

Процесс деблокирования выглядит так:

  1. Заходим в «Пуск/Панель управления/Система и безопасность» и находим «Брандмауэр Защитника Windows» (либо «Брандмауэр Windows»).
  2. Выбираем пункт «Дополнительные параметры».

  1. В этом меню содержится список процессов, использующих каналы для подключения к серверам. Для того чтобы открыть порты в брандмауэре, нажимаем на «Правила для входящих подключений» и «Создать правило».
  2. Если вам известно, какой именно канал вам нужен, то указываем пункт «Для порта».

Ради примера попробуем открыть порт 27015 для сетевого шутера Counter-Strike 1.6.

Выбираем «Разрешить подключение» и жмем «Далее».

Выделяем галочками все варианты.

Вписываем имя программы, например, «CS 1.6» и нажимаем кнопку «Готово».

Созданное нами правило появится в общем списке. Теперь порт для игры открыт. Этот способ является стандартным и он идентичен для последних версий Windows, начиная с «семерки». 

Важно: если порт так и не заработал, то нужно включить его «проброс» в меню роутера. Но это отдельная тема для статьи.

По тому же принципу вы можете открыть порт 8080 и 443, которые отвечают за передачу данных через http-сервер и https-сервер повышенной безопасности для онлайн-игр, сервисов, кассовых аппаратов и прочих услуг.

Открываем порт 80

Данный канал является главным для передачи данных между ПК и Всемирной сетью по протоколу http. Порт 80 не освободить вышеописанным способом, так как он контролируется специальным системным драйвером http.sys.

На этот раз мы обратимся к командной строке.

  1. Открываем командную строку известным способом и вводим команду «netsh http «add iplisten ipaddress=::» (без кавычек) и жмем «Enter».
  2. Второй шаг – это внесение изменения в файл блокнота hosts, находящийся по пути «C:WindowsSystem32driversetchosts». В нем необходимо добавить запись «127.0.0.1 local» (без кавычек). После этого перезагрузить свой ПК и проверить статус порта 80.
  1. Если это не помогло, то открываем меню «Пуск/Панель управления/Программы/Программы и компоненты» и нажимаем на «Включение или отключение компонентов Windows».
  2. Отключаем службы IIS, снимая все галочки с пунктов.

Перезагружаем компьютер и опять проверяем доступность 80 порта.

Применение стороннего софта CurrPorts

В рассмотренных выше способах использовались лишь стандартные ресурсы Windows, однако, в Сети есть несколько программ для открытия портов на Windows. Первой на обзоре мы выбрали «CurrPorts» версии 2.51 от разработчика Nir Sofer. Она помогает узнать все свои активные порты на Windows и пригодится для их быстрого освобождения, удаляя ненужный или опасный процесс. Программа бесплатна и легка в освоении.

Для ее использования:

  1. Переходим на сайт разработчика https://www.nirsoft.net/utils/cports.html и скачиваем программу и русификатор на ПК. Русификатор распаковываем в папку с файлами ПО.
  1. Программа предлагает массу информации о процессе, включая занимаемый им порт.

На скриншоте мы видим, что антивирус Avast занимает два порта: 80 и 443. При желании мы можем закрыть данное соединение из контекстного меню или панели инструментов программы (но делать этого не советуем по понятным причинам). Закрывайте только те ненужные процессы, назначение которых вам известно.

Преимущества

  • Бесплатная программа на русском языке.
  • Не требует установки.
  • Отображает все запущенные процессы и занимаемые ими порты в реальном времени.
  • Предоставляет самую подробную информацию.
  • Можно освобождать порты от одного или всех процессов.
  • Классический понятный интерфейс.

Недостатки

  • Не выявлено.

Работаем с UPnP Wizard

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

Начинаем работу с UPnP Wizard так:

  1. По ссылке https://www.xldevelopment.net/upnpwiz.php переходим на ресурс разработчиков и скачиваем ПО бесплатно.
  2. Устанавливаем и запускаем UPnP Wizard. Перед пользователем появятся все активные порты и занимаемые их процессы.

Для примера попробуем открыть порт 7777, который нужен для обмена данными с сервером игры SAMP (San Andreas Multiplayer Mod). Нажимаем на зеленый плюс панели инструментов.

Важно: если программа не может найти процессы – проверьте, подключена ли функция UPnP на вашем роутере, зайдя в его настройки. 

  1. В окне создания порта вводим произвольное название (например, SAMP), номер порта (7777) и тип протокола (TCP). После этого подтверждаем данные кнопкой «ОК».

В таблице появится новый пункт с открытым портом для игры SAMP.

Преимущества

  • Бесплатная лицензия.
  • Красивый интерфейс без нагромождений.
  • Работает со многими моделями роутеров, поддерживающих технологию UPnP.
  • Можно быстро открывать и освобождать порты.

Недостатки

  • Нет перевода на русский язык.
  • Малоинформативная сводка о запущенных процессах.

Онлайн-сервис 2ip.ru

Ну и напоследок мы воспользуемся простым онлайн-сервисом «2ip.ru», предназначенным для отображения разной полезной информации на компьютере, включая сетевые порты.

Для посещения сервиса:

  1. Открываем интернет-браузер и переходим по ссылке https://2ip.ru/check-port.
  2. В свободную строку вводим номер порта, например, 25565 и нажимаем «Проверить».

  1. Как видно на скрине выше, туннель 25565 уже занят. Таким образом вы сможете проверить любой канал на занятость.

Преимуществами такого способа выступают его доступность и отсутствие необходимости в установке отдельного ПО. Но он лишь служит как дополнение предыдущим двум вариантам.

Подводим итоги вышесказанному

В этой статье мы постарались дать вам ответ на вопрос: «как открыть порты на Windows 7 и 10?». Для этого нами было выбрано и описано самые востребованные способы решения данной проблемы с примерами.

Подводя итоги, мы составили краткую характеристику каждого способа отдельно.

Стандартные инструменты Windows оказались не самыми удобными в управлении, однако, предоставляют достаточный объем информации о процессах и занятых ими портах. Работа с Брандмауэром и консолью довольно проста и после нашего примера вы сможете самостоятельно повторить все это на своем компьютере.

CurrPorts выводит максимум данных о портах и процессах, позволяет удалять (освобождать) их, но не дает возможности открыть новые. На наш взгляд, софт отлично подойдет для отслеживания потенциальных угроз из Сети и их устранения.

Несмотря на отсутствие русскоязычного интерфейса, UPnP Wizard очень практична и может как создавать, так и освобождать порты. Единственным ограничением является требование к поддержке роутером UPnP интерфейса. Мы считаем, что этот вариант самый удобный для повсеместного использования.

Ресурс 2ip.ru очень полезен, так как практически моментально отображает статус указанного пользователем порта. Не имеет других функций и потому его следует использовать как дополнение к штатной программе или брандмауэру.

Понравилась статья? Поделить с друзьями:
  • Не работает пробел на клавиатуре ноутбука что делать windows 10
  • Не работает принтскрин на windows что делать
  • Не работает принтер по сети под windows 10 после обновления
  • Не работает принтер на windows 7 не видит устройство
  • Не работает принтер kyocera после обновления windows 10