2010-09-15 7 views
7

Как перенаправить входящий запрос на порт xxx на localhost: yyy на windows 7?Перенаправление портов в Windows 7

Сервер разработки (vs 2008) разрешает доступ только с localhost, что не достаточно хорошо. Мне нужно протестировать мое приложение с разных компьютеров.

ответ

6

Спасибо за предложения, ребята, хотя я сам нашел ответ.

Я загрузил Microsoft SOAP Toolkit версии 3 и начал MSSoapT, создал отформатированную трассировку на порту 8080, пересылку на хост: 127.0.0.1 порт: 3804. Моя проблема заключалась в том, что я использовал «localhost», а не «127.0.0.1», ,

Теперь каждый запрос, сделанный моей машиной разработки с других компьютеров через порт 8080, будет перенаправлен на порт 3804, где ASP.NET Development Server статически настроен на прослушивание при отладке веб-приложений VS.NET.

+0

@: большое спасибо. действительно хорошо, он также решил мою проблему ... :) –

0

Не уверен, что вы ищете. Однако перенаправление портов будет актуальным, если у вас есть маршрутизатор, и вам необходимо явно перенаправить запрос на конкретный порт маршрутизатора на определенный IP-адрес и порт на компьютере локальной сети. Если вы хотите получить доступ к веб-серверу с других компьютеров локальной сети в той же сети, тогда http://ip-address должен работать нормально. Также убедитесь, что ваш веб-сервер прослушивает IP-адрес локальной сети и не только привязан к локальному хосту.

+0

Скажем, у меня есть веб-приложение, разработанный в VS.NET работает в режиме отладки. Это запустит приложение на Windows под названием ASP.NET Development Server и будет прослушивать, скажем, порт 3804. Теперь мне нужен какой-то прокси-сервер или переадресация портов, чтобы принимать входящие запросы на другой порт, скажем, 8080, - и огонь запрос против «localhost: 3804». Это заставит Development Server «думать», что запрос поступает с localhost, а не с удаленной машины. Проблема заключается в том, что ASP.NET Development Server разрешает только запросы, созданные с того же компьютера, на котором он запущен. – user448787

+1

Не можете ли вы использовать только свое веб-приложение в IIS? –

+0

Если вы не можете установить IIS на Windows 7, то, вероятно, было бы проще установить Apache и запустить его в режиме прокси. Где Apache будет обслуживать контент с http: // localhost: 3804. Вы можете легко настроить Apache на окне, а затем заглянуть в модуль mod_proxy. –

1

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

+0

Да, но как разработчик я ленив.Поэтому мне было интересно, кто написал этот инструмент и где я могу его найти ;-) – user448787

0

Я использую Windows 7 64 бит и не мог заставить Microsoft SOAP Toolkit работать на моей машине для переадресации портов и мне не понравилось бесплатное программное обеспечение для переадресации портов, которое я обнаружил там, поэтому я просто изменил свой VS 2010 веб-приложение для использования локальных iis, я знаю, что это не помогает людям, работающим в 2008 году, но работает, если у вас есть 2010 ... Вот скриншот моего изменения: я делаю это для тестирования на iPad ...

enter image description here

6

В командной строке.

$> netsh 
$> interface portproxy 
$> add v4tov4 listenport=xxx connectaddress=127.0.0.1 connectport=yyy protocol=tcp 

См: http://technet.microsoft.com/en-us/library/cc776297%28WS.10%29.aspx#BKMK_1

+0

небольшая орфографическая ошибка. должен читать 'interface portproxy' – nicholas

+0

Это прекрасно работает и не требует дополнительного программного обеспечения для установки! Однако я предполагаю, что он перезагружается при перезапуске системы. Вы можете сделать это в одной строке (для сценария входа), как этот «netsh interface portproxy add v4tov4 ...», но я недостаточно хорошо разбираюсь в Windows, чтобы знать, как сделать его системным по умолчанию перед входом в систему (и запуском StartUp скрипты). –

+0

Это не работает на моей системе Win7 с localhost; он работает, если я не укажу connectaddress или не использую общедоступный ip как connectaddress. Но указание 127.0.0.1 не возвращает ошибки, но comp не прослушивает указанный порт. –

Смежные вопросы