Netsh interface portproxy delete v4tov4 не удается найти указанный файл
Три, другие инструкции
1. Порт прослушивания и порт переадресации могут быть разными. Например, если вы хотите открыть порт общедоступной сети как 19988, а фактический порт сервера как 9988, то вы можете написать netsh interface portproxy add v4tov4 listenport = 19988 connectaddress = 192.168.88.110 connectport = 9988
2. Рекомендуется использовать DMZ, если вы можете использовать DMZ.
3. Используйте netsh interface portproxy, чтобы не забыть настроить Windows и правила брандмауэра выходного маршрутизатора.
Управление правилами проброса портов в 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
Совет. Также настройки перенаправления портов в режиме portproxy можно вывести так:
netsh interface portproxy dump
Чтобы удалить определенное правило перенаправления порта, выполните:
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 с разными портами в блокноте и затем вставить в командную строку для выполнения.
Собственная перенаправление портов Windows netsh interface portproxy
В последнее время появилась потребность в программе для определенного сервера интрасети. Из-за бизнес-требований сервер не может быть развернут в общедоступной сети, а служба может работать только на сервере. (Да, есть такое странное требование.) Сначала я хотел установить маршрут через сервер общедоступной сети, но позже обнаружил, что это слишком хлопотно. Я случайно коснулся команды netsh interface portproxy, которая была подобна богу.
Как использовать команду netsh для переадресации портов в Windows
Начиная с Windows XP, функция переадресации сетевых портов была встроена в Windows. Любое входящее TCP-подключение (IPv4 или IPv6) к локальному порту может быть перенаправлено на другой локальный порт или порт на удаленном компьютере, и системе не требуется служба, предназначенная для прослушивания на этом порту.
В Linux очень легко настроить перенаправление портов с помощью iptables. В системах Windows Server служба маршрутизации и удаленного доступа (RRAS) поддерживает удаленных пользователей или соединения между сайтами с использованием виртуальной частной сети (VPN) или удаленного доступа, но этот метод является относительно громоздким. Фактически, в дополнение к этому, есть более простой способ помочь нам добиться переадресации портов в Windows, то есть мы можем использовать режим Portproxy команды Netsh для настройки переадресации портов в Windows. Синтаксис этой команды следующий:
listenaddress - локальный IP-адрес, ожидающий соединения.
listenport-listen локально на порту TCP.
connectaddress-перенаправление входящих соединений на локальные или удаленные IP-адреса (или DNS-имена).
Мы запускаем командную строку от имени администратора и выполняем следующие команды:
10.10.1.110-Текущий IP-адрес компьютера.
Используйте netstat, чтобы убедиться, что порт 3340 прослушивается:
нота : Если команда ничего не возвращает и переадресация порта через netsh interface portproxy не удалась, убедитесь, что в вашей системе в данный момент работает служба iphlpsvc (IP Helper).
Поддержка IPv6 должна быть включена на сетевом интерфейсе, для которого создаются правила переадресации портов.
Вышеуказанные условия должны быть выполнены. Если служба IP Helper отсутствует и поддержка IPv6 не включена, перенаправление портов не будет работать.
Вы можете использовать его PID, чтобы узнать, какой процесс прослушивает этот порт (в нашем примере это PID 636):
Давайте использовать любой RDP-клиент, чтобы попытаться подключиться к этому компьютеру из удаленной системы. Укажите порт RDP 3340, разделенный двоеточием после адреса сервера RDP, например, 10.10.1.110:3340.
Если проблем нет, соединение должно быть успешно установлено.
важный: Убедитесь, что брандмауэр (брандмауэр Windows или сторонний брандмауэр, обычно включаемый в антивирусное программное обеспечение) разрешает входящие подключения к новому порту. При необходимости новые правила брандмауэра Windows можно добавить с помощью следующей команды:
Вы можете создать любое количество правил переадресации портов Windows. Все правила прокси порта netsh интерфейса являются постоянными и будут сохранены после перезагрузки системы Windows.
Вывести список правил переадресации в системе:
В нашем примере есть только одно правило пересылки, а именно переадресация с портов 3340 на 3389:
Tip: Кроме того, параметры portproxy можно просмотреть с помощью следующей команды:
Удалить указанное правило переадресации портов:
Очистить все текущие правила переадресации портов:
важный: Переадресация порта выше применима только к портам TCP, она не будет работать для портов UDP, и вы не можете использовать 127.0.0.1 в качестве адреса подключения.
Это правило перенаправляет все входящие запросы RDP (на порт 3389) с этого компьютера на удаленный компьютер с IP-адресом 192.168.1.101.
Еще одной особенностью portproxy является то, что он может выглядеть как любая удаленная сетевая служба, работающая локально.
Например, для переадресации соединения с локального порта 5555 на удаленный адрес 157.166.226.25 (веб-сайт CNN):
Переадресация портов также может использоваться для переадресации порта с внешнего адреса сетевой карты на порт виртуальной машины, работающий на том же компьютере.
Кроме того, ситуация может отличаться в Windows Server 2012 R2. В Windows Server 2012 R2 правила переадресации портов действуют только до перезапуска системы и сбрасываются после перезагрузки. В этом случае вам необходимо проверить, регулярно ли отключается сетевой интерфейс и изменяется ли IP-адрес при загрузке операционной системы (предпочтительно статический IP-адрес). В качестве решения я добавлю сценарий, использующий правила portproxy интерфейса netsh, в планировщик Windows для запуска при запуске системы.
В Windows Server 2003 / XP необходимо дополнительно установить для параметра IPEnableRouter значение 1 в разделе реестра HKLM \ SYSTEM \ ControlSet001 \ Services \ Tcpip \ Parameters.
22.01.2020
itpro
Windows 10, Windows Server 2019
комментариев 9
В этой статье мы покажем, как использовать встроенный в Windows OpenSSH сервер для проброса портов через SSH туннель (SSH туннелированние). Перенаправление портов в SSH позволяет туннелировать (пробрасывать) порты приложений с локального компьютера на удаленный сервер и наоборот. Ранее проброс портов через SSH туннель использовался только в среде Linux/Unix , но теперь вы можете воспользоваться этим возможностями и в Windows. Рассмотрим на практическом примере, как на Windows Server через SSH сервер с открытым портом TCP 22 пробросить RDP подключение.
Чаще всего проброс портов через SSH применяется в сценариях, когда нужно подключиться к удаленному компьютеру, который защищен межсетевым экраном. Например, у вас имеется сервер c Windows, на котором открыт только SSH порт (TCP 22). Все остальные порты блокируются аппаратным межсетевым экраном или брандмауэром Windows. Ваша задача подключиться к рабочему столу этого Windows сервера с помощью клиента RDP. Казалось бы, невозможная задача, т.к. порт RDP 3389 блокируется брандмауэром. Однако вы можете воспользоваться технологией проброса портов через ssh-тунель.
Чаще всего используются следующие сценарии проброса SSH:
Переброс удаленного порта на локальную машину (Remote TCP forwarding)
Есть еще один вариант применения SSH туннеля – remote TCP forwarding. Через SSH туннель вы можете открыть доступ удаленному серверу к локальному порту на вашем компьютере или порту на другом компьютере в вашей локальной сети. Например, вы хотите, чтобы внешний сервер (192.168.1.90) получил доступ к вашему Интранет сайту (не опубликованному в Интернете). Для создания обратного туннеля, используйте такую команду:
ssh -R 8080:internalwebsever:80 user@192.168.1.90
Во всех версиях Windows можно создать правила перенаправления портов с помощью команды netsh interface portproxy .
С помощью SSH туннелей вы можете строить целые цепочки для форвардинга портов. Включить или отключить SSH туннелирование можно в конфигурационном файле sshd_config директивами:
28.08.2020
itpro
Windows 10, Windows Server 2016
комментариев 65
В Linux перенаправление портов настраивается довольно просто с помощью iptables. На серверных системах Windows Server для настройки перенаправления портов, как правило используется служба маршрутизации и удаленного доступа (RRAS). Однако есть более простой способ настройки проброса портов, который одинаково хорошо работает в любой версии Windows.
RDP доступ через SSH туннель (local TCP forwarding)
В этом режиме вы создаете на своем компьютере локальный TCP порт, подключения к которому перенаправляются через SSH туннель на указанный порт удаленного сервера. В этом примере мы создадим локальный порт 8888, при подключении к которому выполняется перенаправление с этого порта на RDP порт 3389 удаленного компьютера. Общая схема подключения выглядит так:
Для создания SSH туннеля с помощью встроенного SSH клиента (встроен в Windows 10 1809 и Windows Server 2019), выполните команду:
ssh -L 8888:192.168.1.90:3389 root@192.168.1.90
Теперь, чтобы подключится к удаленному компьютеру через SSH туннель, вам нужно подключится RDP-клиентом mstsc.exe на локальный порт 8888 своего компьютера:
Обратите внимание, что если вы перенаправляете таким образом незашифрованный трафик приложения, то по сети он передается в зашифрованном виде. Трафик в лбом случае шифруется на одном конце SSH соединения и расшифровывается на другом.
В таком режиме другие компьютеры в вашей локальной сети тоже смогут подключиться к удаленному RDP серверу, даже если у них полностью заблокирован прямой доступ к удаленному серверу (как по SSH, так и по RDP). Для этого, они должны подключиться RDP клиентом к порту 8888 на вашем компьютере, на котором создан SSH туннель:
mstsc.exe /v 10.10.1.220:8888
Как включить перенаправления портов в 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
Чтобы создать правило перенаправления порта, запустите командную строку с правами администратора и выполните команду:
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
Примечание. Если эта команда ничего не возвращает и перенаправление портов через netsh interface portproxy не работает, убедитесь что у вас в системе включена служба iphlpsvc (IP Helper / Вспомогательная служба IP).
А на сетевом интерфейсе, для которого создается правило перенаправления портов должна быть включена поддержка IPv6.
Это обязательные условия для корректной работы порт-форвардинга. Без службы IP Helper и без включенной поддержки IPv6 механизм перенаправления не работает.
В Windows Server 2003 / XP для работы перенаправления дополнительно нужно включить параметр реестра IPEnableRouter = 1 в ветке HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters.
Вы можете определить процесс, который слушает указанный локальный порт с помощью его PID (в нашем примере PID – 636):
tasklist | findstr 636
Теперь попробуем подключиться на данный порт с удаленного компьютера при помощи любого RDP клиента. В качестве rdp-порта нужно указать 3340 (номер порта указывается после двоеточия после адреса rdp-сервера), например, 10.10.1.110:3340
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 туннелей.
1. Описание проблемы
- A (Интранет: 192.168.88.100) Сервер подключен к общедоступной сети.
- B (Интранет: 192.168.88.110) Сервер находится во внутренней сети
- На сервере B есть программа TCP, использующая порт 9988, который должен быть доступен из общедоступной сети, но топологию сети изменить нельзя.
Настраиваем проброс портов в Windows при помощи командной строки и Portproxy
Научиться настраивать 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 и т.д.), полный синтаксис будет такой:
- 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 штатным образом.
Первое правило отправит все пакеты пришедшие на порт 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 проходит три промежуточных узла, но при этом мы не настраивали никакой маршрутизации и не устанавливали никакого дополнительного ПО и вообще обошлись минимальным вмешательством в инфраструктуру.
2. Решение проблем
1. Перенаправление нового порта:
Сначала откройте командную строку (cmd)
netsh interface portproxy add v4tov4 listenport = порт прослушивания connectaddress = адрес перенаправлен на connectport = порт перенаправлен на
Пример: netsh interface portproxy add v4tov4 listenport = 9988 connectaddress = 192.168.88.110 connectport = 9988
2. Проверьте, какие порты перенаправляются
netsh interface portproxy show all
3. Удалите правило переадресации.
netsh interface portproxy delete v4tov4 listenaddress=192.168.88.110 listenport=9988
Дополнительные материалы
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Настройка перенаправления портов в 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
Читайте также: