Netsh interface portproxy add v4tov4 не работает

Пересылка портов NETSH из локального порта в локальный порт не работает

Я пытаюсь использовать команду NETSH PORTPROXY для пересылки пакетов, отправленных на мой ПК XP (IP 192.168.0.10 ) на порту 8001 до порта 80 (у меня есть сервер XAMPP Apache, слушающий порт 80).

Я выдал следующее:

показать все подтверждает, что все настроено правильно:

однако я не могу получить доступ к веб-сайту apache из http://localhost:8001 . Я могу получить доступ через прямой порт в http://localhost как показано ниже.

кроме того, я также попробовал следующий: 1. Доступ к веб-сайту Apache с удаленного ПК по ссылке: http://192.168.0.10:8001 . Брандмауэр выключен. 2. Изменение listenaddress и connectaddress на 127.0.0.1 .

без дополнительной информации я не могу найти способ решить проблему. Есть ли способ отладки NETSH PORTPROXY?

Примечание: кстати, если вам интересно, почему я это делаю, я действительно хочу сопоставить удаленный MySQL клиентские подключения от пользовательского порта к порту сервера MySQL по умолчанию 3306.

3 ответов

мне удалось заставить его работать путем выдачи:

кроме того, для моей цели не требуется устанавливать listenaddress и лучше установить connectaddress=127.0.0.1, например

У меня проблема с вами. Я только что решил эту проблему. Есть Служба Windows по имени «IP Helper » это поставляет соединения тоннеля funcions. Вы должны убедиться, что он был запущен.

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

вставить netsh команда в команде.exe окно и нажмите Enter.

если сообщение об ошибке не отображается, команда работает.

в вашем веб-браузере перейдите к http://your-up:8001 чтобы увидеть его завод.

журнал событий Windows может содержать информацию, которая поможет найти причину сбоя.

Источник

question

«netsh interface portproxy» doesn’t work

Hi,
I have a server in my local network which hosts multiple ASP.NET Core application on different hosts I would like to be able to connect to those different application with different IP address, apparently it’s possible using netsh.

In my specific case I would like to navigate to https://192.168.50.200/ to connect to https://192.168.50.234:3000/ so I executed this command in an admin command line, but when I try to connect to https://192.168.50.200/ it hangs for a while and then nothing

netsh interface portproxy add v4tov4 listenport=80 listenaddress=192.168.50.200 connectport=3000 connectaddress=192.168.50.234

Also my IPv6 protocol is checked in Network Connections
I reinstalled Windows on my machine a few weeks ago, and I have another computer in my network which has the same issue

4 Answers

To use «https» without receiving lots of security warnings, you need to use a hostname rather than an IP address in the URL. One way of assigning a hostname to your Raspberry Pi would be to add an entry for it to %SystemRoot%\System32\drivers\etc\hosts.

If there are multiple ASP.NET Core services on the Raspberry Pi then only one of them can listen on the standard «https» port (443) — the rest will have to be assigned different port numbers. The URL for these services would be something like: https://myraspberrypi:999/.

I guess that you want to eliminate the port specification (e.g. «:999») in your URLs. One way of doing this would be to install a reverse proxy (e.g. nginx) on your Raspberry Pi. You could then add several entries to your Windows etc\hosts, all with the same IP address (for the Raspberry Pi) but with different names (e.g. service1, service2). The reverse proxy, running on the Raspberry Pi, can then examine the HTTP Host headers and forward the requests to the appropriate local port.

I don’t think that «netsh interface portproxy» is useful in this scenario, if I have understood it correctly.

Источник

NETSH port forwarding from local port to local port not working

I’m trying to use NETSH PORTPROXY command to forward packets sent to my XP PC (IP 192.168.0.10 ) on port 8001 to port 80 (I’ve a XAMPP Apache server listening to port 80).

I issued the following:

Show all confirms that everything is configured correctly:

However, I’m not able to access apache website from http://localhost:8001 . I’m able to access through the direct port at http://localhost as shown below.

Additionally, I’ve also tried the following: 1. Access the Apache website from a remote PC using the link: http://192.168.0.10:8001 . Firewall turned off. 2. Changing listenaddress and connectaddress to 127.0.0.1 .

Without further information, I can’t find a way to resolve the problem. Is there a way to debug NETSH PORTPROXY?

Note: By the way, if you’re wondering why I am doing this, I actually want to map remote MySQL client connections from a custom port to the default MySQL Server port 3306.

4 Answers 4

I managed to get it to work by issuing:

Also, for my purpose, it is not required to set listenaddress and better to set connectaddress=127.0.0.1, e.g.

If netsh ‘s port proxying is not working as expected, then you should verify the followings, preferably in that order:

  1. Make sure the port proxy is properly configured
  2. Start or restart the related Windows service
  3. Ensure support for IPv6 is installed
  4. Make sure the port is not blocked by a firewall

Make sure the port proxy is properly configured

This might seems to be trivial, but just in case, take the time to review your configuration before you go any further.

From either a command prompt or PowerShell prompt, run the following command:

The result should look something like this:

Carefully review those settings. Make sure that you can indeed connect to the addresses on the right side of that list, from the local computer. For example, can you locally open a web browser and reach 192.168.0.100:80 ? If the protocol is not HTTP, then use telnet: telnet 192.168.0.100 3306 (see here for how to install the Telnet client on Windows).

Then, are the values on the left side correct? Is the IP address valid for your machine? Is that the port number you are trying to connect to, from the external machine?

On latest versions of Windows, netsh ‘s port proxying is handled by a Windows service named «IP Helper» or «iphlpsvc». Proxying will obviously not work if that service is stopped. I have also faced situations that turned out to be resolved by restarting that service.

To do that in latest versions of Windows:

  1. Open the Task manager, then go to the Services tab.
  2. In the «Name» column, find the service named either «iphlpsvc» or «IP Helper».
  3. Right click on that service, then select Restart. If restart is not available, then the service is probably stopped, and actually has to be started, so select Start.

On previous versions of Windows, look for Services in Administrative Tools, inside the Control Panel.

Ensure support for IPv6 is installed (older releases of Windows only)

On earlier versions of Windows (that is Windows XP, for sure, upto some early releases of Windows 10, apparently, though this is not clear), netsh ‘s port proxying feature (including for IPv4-to-IPv4 proxys) was actually handled by a DLL ( IPV6MON.DLL ) that was only loaded if IPV6 protocol support was enabled. Therefore, on these versions, support for the IPv6 protocol is required in order to enable netsh ‘s port proxying (see Microsoft’s support article here).

From either a command prompt or PowerShell prompt, run the following command:

If you get an error indicating that command interface ipv6 install was not found, then it means that you are using a recent release of Windows, in which netsh ‘s IPv6 support is implicit and cannot be disabled.

Make sure the port is not blocked by a firewall

A local firewall may potentially block the port even before they reach the IP Helper service. To make validate this hypothesis, temporarily disable any local firewall (including Windows’ native firewall), then retest. If that works, then simply add a port exclusion to your firewall configuration.

Источник

Настройка port mapping в windows с помощью netsh

О чём речь и зачем это нужно

В windows, начиная с версии Windows XP существует возможность настроить проброс портов (port forwarding или port mapping) без каких-либо внешних программ (и даже не используя встроенный брандмауэр!).

Зачем это может быть нужно? Например, для настройки еще одного (дополнительного) порта, на котором будет «висеть» служба. К примеру, вдобавок к порту 80 (на котором находится apache) можно вдобавок «открыть» порт 1580 или 65123, который будет фактически выполнять ту же роль, что и 80-й порт, но при этом он будет «секретным» портом.
Или же можно таким образом «прятать» фактические серверы: разрешать подключения на какой-либо локальный порт (на localhost, 127.0.0.1), а затем «пробрасывать» это подключение на другой сервер (и на другой порт).

Ограничение: данные перенаправления действуют только на TCP порты, UDP трафик таким образом перенаправить не удастся.

Как сделать port mapping (port forwarding) через netsh

Для этого в netsh есть контекст portproxy, который находится в контексте interface. Для создания port mapping выполните из командной строки (в windows Vista и выше — от имени администратора):

netsh interface portproxy add v4tov4 listenport= <целое_число или имя_службы>listenaddress= connectport= <целое_число или имя_службы>connectaddress=

  • listenport — обязательный параметр. Задает порт IPv4, который должен прослушиваться, по номеру порта или имени службы;
  • listenaddress — задает IPv4-адрес, который должен прослушиваться. Может быть введен IP-адрес, NetBIOS-имя или DNS-имя компьютера. Если адрес не задан, по умолчанию используется локальный компьютер;
  • connectaddress — задает IPv4-адрес, к которому следует подключаться. Может быть введен IP-адрес, NetBIOS-имя или DNS-имя компьютера. Если адрес не задан, по умолчанию используется локальный компьютер;
  • connectport — задает порт IPv4, к которому следует подключаться, по номеру порта или имени службы. Если параметр connectport не задан, по умолчанию используется значение listenport на локальном компьютере.

например:
netsh interface portproxy add v4tov4 listenport=5556 listenaddress=192.168.1.1 connectport=3389 connectaddress=192.168.1.10
В этом примере на компьютере с IP адресом 192.168.1.1 был открыт порт № 5556. При подключении к этому порту все пакеты, приходящие на порт, автоматически будут пересылаться на IP адрес 192.168.1.10, на порт 3389 (RDP).

Проверка правильности настройки port mapping

В первую очередь проверяем, появилось ли наше правило в списке правил netsh:
netsh interface portproxy show all

Если правило появилось, убеждаемся, что настроенный нами порт прослушивается. Для этого выполним команду:
netstat -ano | findstr :
например:
netstat -ano | findstr :5556

Если порт не прослушивается (т.е. port mapping не выполняется), то эта команда не отобразит ничего. Если же наша затея увенчалась успехом, то мы увидим что-то типа такого сообщения:
TCP . 5556 0.0.0.0:0 LISTENING .

В случае возникновения проблем с подключением проверьте, что у Вас правильно настроен (или отключен) брандмауэр (который может блокировать подключения на открытый Вами порт).

Удаление port mapping

Для того, чтобы удалить все правила перенаправления (простейший случай) достаточно выполнить команду (напоминаю, командная строка должна быть запущена от имени администратора!):
netsh interface portproxy reset

После этого убедитесь, что все правила удалены: по команде
netsh interface portproxy show all
не должно ничего отображаться.

Если же Вы хотите удалить только одно правило перенаправления портов, команда будет немного сложнее:
netsh interface portproxy delete v4tov4 listenport= <целое_число или имя_службы>listenaddress=

  • listenport — обязательный параметр. Задает удаляемый порт IPv4;
  • listenaddress — задает удаляемый адрес IPv4. Если адрес не задан, по умолчанию используется локальный компьютер.

например:
netsh interface portproxy delete v4tov4 listenport=5556
В этом примере мы удаляем port mapping, который был настроен на локальном компьютере, на порту 5556.

Изменение настроек port mapping через netsh

Если Вы хотите изменить значения параметров существующей на portproxy-сервере (т.е. на компьютере, где Вы запускали команду netsh interface portproxy add . ) записи, созданной командой add v4tov4, или добавить новую запись port mapping / port forwarding, выполните следующую команду:
netsh interface portproxy set v4tov4 listenport= <целое_число или имя_службы>listenaddress= connectport= <целое_число или имя_службы>connectaddress=

  • listenport — обязательный параметр. Задает порт IPv4, который должен прослушиваться, по номеру порта или имени службы;
  • listenaddress — задает IPv4-адрес, который должен прослушиваться. Может быть введен IP-адрес, NetBIOS-имя или DNS-имя компьютера. Если адрес не задан, по умолчанию используется локальный компьютер;
  • connectaddress — задает IPv4-адрес, к которому следует подключаться. Может быть введен IP-адрес, NetBIOS-имя или DNS-имя компьютера. Если адрес не задан, по умолчанию используется локальный компьютер;
  • connectport — задает порт IPv4, к которому следует подключаться, по номеру порта или имени службы. Если параметр connectport не задан, по умолчанию используется значение listenport на локальном компьютере.

например:
netsh interface portproxy set v4tov4 listenport=5556 listenaddress=192.168.1.1 connectport=3300 connectaddress=192.168.1.10
В этом примере на компьютере с IP адресом 192.168.1.1 была изменена настройка порта № 5556: теперь при подключении к этому порту все пакеты, приходящие на порт, автоматически будут пересылаться на IP адрес 192.168.1.10, на порт 3300.

Примечание: Можно изменять любые значения параметров для существующей записи сервера portproxy. Если значения не заданы, изменения не производятся.

Источник

Читайте также:  Не работает вентилятор печки ниссан ноут 2007
Оцените статью