2013-02-06 110 views
2

所以我能夠創建一個本地SOCKS代理與sudo ssh -D 8080 [email protected] ,我只能從我的機器訪問:公共socks代理

nmap -p 8080 127.0.0.1 
8080/tcp open http-proxy 

然而此代理是不是從我的本地網絡訪問:

nmap -p 8080 192.168.1.10 
8080/tcp closed http-proxy 

我試過端口轉發,但似乎並沒有解決這個問題(除非我做錯了) 我在Mac上,BTW。

解決方案?

回答

4

如果要從網絡訪問SO​​CKS代理,則需要使用SSH將其SOCKS代理綁定到可訪問的外部地址,而不是本地主機,該主機爲「本地」,並且不允許任何其他外部連接。使用這個命令:

ssh -ND "*:8080" [email protected] 

注意,我從你的命令刪除sudo,我已經添加了-N標誌的命令。 sudo肯定不需要;你只需要它,如果你打開1024以下的端口(除非你有很好的理由,否則你不應該這麼做)。 -N標誌使SSH會話N oninteractive,以便您沒有啓動shell會話,只是一個代理。 -D ":8080"將SOCKS代理綁定到系統上的所有地址,包括網絡地址。至於防火牆設置,如果您有最新版本的Mac OS X(10.6+),您可能還想將防火牆打開到您的8080端口。您可以使用此命令可以這樣做:

sudo ipfw add 9999 allow tcp from any to any dst-port 8080 

9999就是,你可以用它來識別防火牆規則防火牆ID號。

你應該決定停止打開你的代理,這個命令會關閉它備份:

sudo ipfw delete 9999 

所有配置後,如果你希望你的代理服務器是整個互聯網可用,那麼你就需要按照說明設置端口轉發。您可以使用this guide在路由器上配置端口轉發。

然而 ......通過互聯網公開代理可能會導致麻煩。您的ISP可能會對此表示擔憂,特別是如果有人不太喜歡通過Internet訪問您的SOCKS代理。更好的解決方案?安裝一個OpenSSH服務器,保護它,只需從Internet登錄並在本地設置SOCKS代理。 This guide可以幫助。

快樂代理!