這項的門檻比較高一點,需要會架設Linux,需要有一組可以使用SSH登入伺服器的帳號才可以,概念上就是利用架設proxy的觀念去轉傳封包,簡單講,1.是先用SSH連到外面的伺服器,這個動作很像替網路挖出一道Tunnel,挖出一條密道一樣。2.所有要出去的網路連線都經過這個密道(設proxy)連出去。
第一關你要想辦法可以用 putty 連到外面的伺服器,putty 是什麼? putty 是在Windows上用ssh遠端管理Server的軟體,原本我以為 putty 的功能僅只於此,原來這個小工具還蠻好用的,它還可以來架設socks proxy,當然啦,有時候公司直接就把ssh 22 port 給擋掉了,這也不意外,那就想辦法查出到底公司可以連出去還有哪些port嘛,至少http 80 跟 https 443 不會擋吧,如果外面的伺服器是自己的那就直接把SSH Server的 port 改成可以出去的 port,比如說 443,在 Red Hat 上設定在 /etc/ssh/sshd_config。
假設目前我在防火牆裡面,連線之前,如下圖,先在 Tunnels 選項中設定Source port 1080(這個自訂),在 Destination 選擇 Dynamic ,再接”Add”


回到Session選項按儲存”Save”,以便下次不需要再設定一次

接著正常連線到伺服器裡面,IP跟Port是什麼都無關,只要可以連得出來到伺服器裡面就可以了,這一步就要自己想辦法了,剛剛已經講了 port 443 基本上很少擋。

可以連線進來之後,目前的電腦其實已經local端架好了socks proxy,接著我們設定一下msn的proxy就可以了,如下圖,在msn的[選項]→[連線]→[進階設定﹞裡面設定proxy位址: localhost,port: 1080,按一下”測試”,確認一下是否真能連線成功。


這樣就完成了!
咦,那你可能會有疑問?既然我已經在本機端架好了proxy了,那我可以也分享給其他在防火牆內的人使用嗎?
目前這個socks proxy只能在自己的電腦連自己的電腦使用,如果要想要分享給其他電腦也能使用,成為一台名符其實的proxy的話,如下圖,在”Local ports accept connections form other hosts”打勾就行了^^
