2010-09-15 73 views
7

如何在Windows 7上将端口xxx上的传入请求重定向到localhost:yyy?Windows 7上的端口转发

开发服务器(vs 2008)只允许从本地主机访问,这不够好。我需要从各种电脑测试我的应用程序。

回答

6

感谢您的建议家伙,虽然我自己找到了答案。

我下载了微软SOAP工具包版本3并启动了MSSoapT,创建了一个监听端口8080的格式化跟踪,转发给主机:127.0.0.1端口:3804.我的问题是我使用“localhost”而不是“127.0.0.1” 。

现在通过端口8080从其他计算机向我的开发计算机发出的每个请求都将被重定向到端口3804,其中ASP.NET Development Server静态设置为在调试VS.NET webapps时侦听。

+0

@:非常感谢。真的很好,它解决了我的问题... :) – 2011-05-17 09:26:54

0

不确定你在找什么。但是,如果有适当的路由器,端口转发将是相关的,并且您需要明确地将特定路由器端口上的请求转发到LAN计算机上的特定IP和端口。如果您想从同一网络上的其他LAN计算机访问Web服务器,则http://ip-address应该正常工作。还要确保您的Web服务器正在侦听局域网IP,并且不仅限于本地主机。

+0

说我有在VS.NET开发在调试模式下运行的Web应用程序。这将在名为ASP.NET Development Server的窗口上启动一个应用程序,并将监听端口3804。现在我需要一个代理/端口转发工具来接受不同端口上的输入请求,比如说8080 - 针对“localhost:3804”的请求。这将迫使开发服务器'认为'请求来自本地主机而不是远程机器。问题在于ASP.NET开发服务器只允许来自运行同一台机器的请求。 – user448787 2010-09-15 19:34:44

+1

你不能使用在IIS上运行你的web应用程序吗? – 2010-09-15 19:48:09

+0

如果你不能在Windows 7上安装IIS,那么安装Apache并以代理模式运行它可能会更容易。 Apache将从http:// localhost:3804提供内容。您可以在窗口上轻松设置Apache,然后查看mod_proxy模块。 – 2010-09-15 20:04:01

1

如果这确实是用于某些测试,那么可以创建一个侦听端口的服务器,并且在它接收到传入连接时生成一个线程,该线程打开与实际本地服务器的连接,之后等待数据来到任何一端,并将其拖到另一端。如果任一套接字关闭,工作线程将终止。这显然不是一个可扩展的解决方案,但为了测试它应该很容易做到这一点。

+0

是的,但作为一个开发人员,我很懒。所以我想知道谁写了这个工具,我在哪里可以找到它;-) – user448787 2010-09-15 19:37:55

0

我使用的是Windows 7 64位,无法获得微软SOAP工具包在我的机器上工作的端口转发,并不喜欢我在那里发现的免费端口转发软件,所以我只是改变了我的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 2013-05-06 14:49:44

+0

这工作完美,不需要安装额外的软件!但是,我假设系统重新启动时会重置。你可以在一行中做到这一点(对于登录脚本),就像这个'netsh interface portproxy add v4tov4 ...'一样,但是我没有足够的Windows知道在登录之前如何使它成为系统默认值(并且运行StartUp脚本)。 – 2014-10-03 14:34:09

+0

这不适用于我的Win7系统与本地主机;它可以工作,如果我不指定connectaddress,或使用公共ip作为connectaddress。但是,指定127.0.0.1时不会返回错误,但comp不会监听指定的端口。 – 2015-10-02 16:23:45