利用Amazon的EC2 + SSH自建安全翻牆代理
美博園轉載這篇文章是因為Amazon的EC2服務是一個安全性較好的遠程虛擬主機,可以免費試用,也可以付費使用,原文作者分三部分介紹,本文合併在一起成為一篇文章,供需要的朋友參考。
【作者: 三十畝地】原文介紹如下:
原文鏈接:https://www.qishansun.info/?p=8
一、Amazon AWS 帳戶註冊
Amazon的EC2 服務相當於遠程虛擬主機。新註冊用戶一年內有一定的免費使用額度,本文正是基於此來窮折騰的。
如圖所示:

按照提示一步步操作的即可。
注意事項:
註冊中需要提供信用卡信息。Amazon會從卡上扣一美元,再即時退回,以驗証信用卡。所以你會收到消費提示,但實際賬單上並不會有支出。
註冊中要提供可直接聯繫到你的電話或手機信息,國家代碼+86最好一併寫上。Amazon會即刻電話通知你驗証碼,需要填寫到申請表格中。
二、EC2 instance 建立
回到aws首頁:https://aws.amazon.com/
進入AWS控制台,如下圖:

用註冊好的帳戶登錄,切換到EC2 tab頁:

EC2 instance是有地區之分的。對天朝用戶來說,選擇Asia Pacific(Tokyo)連接速度應該會快一些,僅是猜測。
點擊「Launch Instance」, 來初始化一個該區域的EC2實例。

然後進入到 Request Instances Wizard界面。注意Windows server 不在免費計畫里,所以這裡選擇了大行其道的Ubuntu系統,點選到Community AMIs頁面,在Viewing中選擇Free Tier eligible就會濾出所有包括在免費計畫里的instance,每一行後面的黃色五角星即標記此意。這裡選擇的AMI ID是ami-32d36633,ubuntu 10.4 server。點擊「select」,

然後到了這個頁面,注意,Instance Type一定要選Micro這個,因為只有這個免費。Number of Instance選1個就夠了,Availability Zone默認即可。點擊下面的Continue。

Detial頁面上,使用默認即可。需提一下的是Shutdown Behavior這項,有兩個備選, stop和terminate。區別在於Amazon會自動回收已經terminate的instance。如果你的Instance由於運行錯誤等其他原因shutdown—-相當於關機—-這時,如果這裡選的是terminate,那麼,Amazon會刪除掉該instance,也就是從你的Console就看不到該instance了,雖然不是即刻發生的。如果這裡選stop,那麼instance只是停止運行而已,會繼續保留在你的Console里,你還可以重新啟動運行它。

下一頁, 設置Key value信息,默認已有一個Name項,可輸入Name的value值,作為該Instance的名字。也可以直接跳過,之後還可以再修改。
下一頁,是設置Key pair 信息。首次使用,需要創建新的Key Pair。輸入Key名,可任意選擇,然後點擊「Create & Download your key pair」。這時你會下載到一個 Key名.pem 文件。該文件是你以後登錄該Instance的認證憑據,而且僅此一份,如果你要從多台電腦登錄,請複製到各電腦上。

下一個頁面,是選防火牆設置,保持默認選項即可。
最後一頁,選擇Launch,則該Instance就最終正式運行起來了。
這時,從Dashboard上,選到相應地區,就可以看到已經在運行的Instance。
幾點提示:
從Dashboard上選中Instance,可進一步看到該Instance的具體信息。其中Public DNS就是該instance的網路標識,可以通過 SSH yourUserName@yourPublicDNS 的方式連接到該Instance。
Pulbic DNS 太長很難記。一個好辦法是使用Elastic IP,它就相當於一個靜態IP。
在Dashboard 的 Elastic IP 頁面上,可以創建一個Elastic IP, 然後馬上「Associate Address」到上面創建的Instance上。注意馬上。從此,該Instance就有了一個從公網可以直接連接的IP地址。
Amazon 提供的 Elastic IP 可以免費申請,也可以免費使用僅當該IP沒有被空置的時候。也就是說,IP申請到後,如果馬上被附加到一個Instance上,那麼一切都是免費的。相反,如果申請到的IP一直空放在那兒沒用,那麼每一個IP, Amazon每小時收你$0.01,直到這個IP被釋放掉,或者被附加到Instance上面去。
上面所有用到的Amazon的資源,對於新註冊用戶一年內都是免費的。另外,如果想繼續免費使用,還需遵守每個月的免費額度,具體可參考 https://aws.amazon.com/free . 這些額度,對普通流量的用戶來說是足夠的。當然你也可以即時查詢Account Activity (AWS Management Console -> Account -> Account Activity)來監控你的使用量。
三、SSH 翻牆設置
Amazon EC2上的Instance已經運行起來,就相當於你已經有了一台在牆外的電腦。接下來要做的,就是讓你的本地電腦與這個遠程的Instance通信,來幫你連通牆外的世界。主要通過兩步來實現,SSH配置,瀏覽器配置。
對於SSH配置,要區分Windows用戶和Linux用戶。
Wondows用戶SSH配置
先下載 putty.exe 和 puttygen.exe兩個文件:
下載地址及教程請參考:PuTTY/plink免費的Telnet/SSH客戶端v0.62 - 美博園
將之前建立Instance時下載下來的pem文件用 puttygen.exe 轉成ppk文件。具體如下:打開 puttygen.exe,選擇load, 導入之前的pem文件 (可能需要把文件過濾選成ALL才能看到)。正常情況下,會提示導入成功。然後點擊「Save private key」,輸入文件名,即可保存為ppk文件。
打開putty.exe,
在Session頁面,Host Name處輸入 ubuntu@yourPublicNDS-or-yourElasticIP,Port用22, Protocl 選擇SSH。
到Connection -> SSH -> Auth 頁面, 在「Private key file for authentication」處讀取之前的 ppk 文件的路徑。
到Connection -> SSH -> Tunnels 頁面,Source port處輸入3128,選擇Dynamic類型,點擊Add。
回到Session頁面,Saved Sessions處輸入一個任意標識名,點擊Save,將所有配置保存下來。下次再用時,直接Load這個標識名即可。最後,點擊Open,即可看到從遠程EC2 Instance返回的登錄成功信息。
Linux用戶SSH配置
將相應的pem保存到 .ssh 資料夾。在該文件內建立config文件,輸入以下配置內容:
Host aws
HostName xxx.xxx.xxx.xxx
User ubuntu
IdentityFile ~/.ssh/your-key.pem
CompressionLevel 6
DynamicForward localhost:3128
Host 為設定一個名字給該連接,可任意選,此處用aws;
HostName 這裡輸入附加到該Instance的Elastic IP, 或者 public DNS 的連接,這些都可從Dashboard instance 信息裡面看到;
User 因為之前EC2上建立的是ubuntu AMI,其默認的登錄用戶名為 ubuntu;
IdentityFile 需輸入你的 pem 文件的路徑;
DynamicForward 默認用localhost:3128,在後面的瀏覽器設置中要用到。
到此ssh配置完成。從temnial輸入:
ssh aws
即可看到從遠程EC2 Instance返回的登錄成功信息。
通用的瀏覽器配置
前面是 Windows 用戶和 Linux用戶各自的SSH配置。接下來是通用的瀏覽器配置。
這裡以Firefox為例。Preference -> Advanced -> Network -> Settings, 選擇手動代理設置,SOCKS Host 中輸入 localhost, 連線埠號3128 , SOCKS vs。OK 確認。瀏覽器配置完畢。

這裡針對 Firefox 再附加一點內容:
發現用同樣的代理配置,其他瀏覽器正常工作,偏偏就 Firefox 不能登錄 Facebook 和 Twitter,而除這兩個外,其他牆外網站卻都可以正常瀏覽。
Google了一圈,現總結如下:
在Firefox網址列輸入 about:config
有安全提示,點擊繼續;
找到「network.proxy.socks_remote_dns」,雙擊改為True(默認False);
可能需要重啟Firefox。
已驗証可行。
看看牆外世界
輸入一個撞牆網址試試看行還是不行。不管你行不行,反正我是行了。
幾點提示:
如果你想用password+userName 而不是pem的方式登錄EC2 instance, 那麼你需要修改 /etc/ssh/sshd_config 文件,將其中的 PasswordAuthentication 由默認的 no 改為 yes。使用passwd 設置該用戶名下的密碼。然後重啟ssh server。
你可以在系統中添加多位用戶,使他們能用password方式登錄,從而共享你的EC2 instance。
原文標題:利用Amazon的EC2 + SSH自建安全翻牆代理 - 美博園
美博園文章均為「原創 - 首發」,請尊重辛勞撰寫,轉載請以上面完整鏈接註明來源!
軟體著作權歸原作者!個別轉載文,本站會註明為轉載。
這裡是你留言評論的地方