2010-09-15 69 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