Linux主機SSH翻牆加密代理伺服器教程
前言:本文是由英國留學生Jonathan用中文寫的教學文章,是一篇很好的文章。Jonathan是英國人,在北京已經待了兩年,然而他運用中文的能力卻已經如此嫻熟。另外,他還是一個鐵杆Linux粉絲,他希望認識更多的中國 Linux粉絲。一起相互學習和交流。下文屬全文轉載,未改動一個字。
現在在國外找一個廉價或者免費的主機十分容易,大家不妨試一下下面的方法。如果這樣的方法多起來了,成千上萬而不止,那麼網路就真正是網民的天下了O(∩_∩)O~。
-----------------------------
原文:在 Linux 下使用你的網站主機作為加密代理伺服器
作者:Jonathan
我 曾經介紹過 如何使用 Amazon EC2 建立自己的代理伺服器來「翻牆「。用這個方法翻牆雖然網速很快,但還是有些缺點。Amazon EC2 是收費的,而且按小時算,所以不能隨時都開著我的代理伺服器。另外,每次想用代理的時候還得先等一兩分鐘,讓伺服器啟動。
然而我今天看到了這個貼子 ,這才發現還可以使用一個普通的網站主機作為我的代理伺服器。與 Amazon EC2 不同,普通的網站主機是 24/7 運行的,而且你本來就要用它做你的網站,不用額外花錢。以上帖子是專門寫給使用 Dreamhost 的 Windows 用戶。不過,凡是有支持 SSH 服務網站主機的 Linux 用戶也可以享受翻牆的自由感。我為 Linux 用戶編了一個小的 BASH 腳本,其主要功能為:
* 與網站主機創建一個 SSH 隧道連接
* SSH 隧道用完之後,安全地關閉 SSH 隧道連接
用這個腳本,我試了一下上平時被 GFW 封殺的 youtube.com… 結果 Firefox 差點讓我暈倒了! 用這個代理,網速快極了… 感覺好像我還在英國上網似的 (那邊一般都用 8M 以上的寬頻) – 你可以看一下視頻:
Linux SSH SOCKS Proxy Script from Jonathan Lumb on Vimeo.
介紹一下腳本的內容
export SSH_HOST=admin@yoursite.com # username@host
這個需要你自己改一下… 就是你的 webhost 給你的 SSH 用戶名和主機地址。 格式為 用戶名@地址 (凡是用過 SSH 的人都應該知道寫什麼)
if [ ! -f /tmp/.tunnel ]
看看是否已經有 SSH 隧道開著。有的話就將其關閉。沒有就創建新的 SSH 隧道。
ssh -f -D 9999 $SSH_HOST "if [ -f ~/.tunnel ]; then rm ~/.tunnel; fi; while [ ! -f ~/.tunnel ]; do echo > /dev/null; done" &
創建新的 SSH 隧道,設定本地 SOCKS 連線埠為 9999。隧道將會開著直到遠程目錄 「~/」 里有人創建 .tunnel 此文件為止。
touch /tmp/.tunnel
在你的電腦上創建 .tunnel 這個文件。這樣腳本就知道正開著一個 SSH 隧道。
ssh $SSH_HOST "touch ~/.tunnel"
在遠程目錄 「~/」 里創建 .tunnel 此文件,這將會斷開你電腦與代理伺服器的連接
rm /tmp/.tunnel
刪除 .tunnel 這個文件。這樣腳本就知道 SSH 隧道已關閉。
下載並執行腳本
可以在此下載腳本
下載後放在你的首目錄,比如在 ~/bin/。用一個文字編輯器修改腳本里的 ssh 變數並用 chmod 改一下文件許可權
chmod u+x tunnel.sh
創建連接
在終端中執行腳本,執行後可以關閉終端。

關閉連接
再次在終端中執行腳本並關閉 Firefox (如果 Firefox 還在用隧道的話,連接暫時無法關閉)

用 SSH 密鑰進行授權
你或許注意到了… 以上腳本里沒有任何地方可以寫下你的 SSH 密碼。這就是因為我在用 SSH 密鑰來進行電腦與伺服器的授權工作,這樣更自動化而且比將密碼直接寫入文本的文件里要安全多了。先打開一個終端,根據一下步驟進行密鑰配置:
[jonolumb@jonoxps .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jonolumb/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jonolumb/.ssh/id_rsa
Your public key has been saved in /home/jonolumb/.ssh/id_rsa.pub
The key fingerprint is:
h7:10:49:46:ab:2t:3b:a3:36:2z:15:56:d4:f2:b7:3d jonolumb@jonoxps
請注意,配置時密碼要留為空白。
將生成的 /home/jonolumb/.ssh/id_rsa.pub 的內容複製到遠程伺服器目錄下,具體位置是:
~/.ssh/authorized_keys
要保證遠程的 authorized_keys 和 本地的 id_rsa 文件的許可權均為 700。
這樣就可以自動登錄到遠程伺服器了。
配置 Firefox 使用代理
創建了 SSH 隧道之後,就進入 Firefox 並打開:
首選項 --> 高級 --> 連接設置
選擇「手動配置代理」並將其設定為:
HTTP 代理: localhost 連線埠: 9999

如果你用這個腳本遇到什麼問題,請跟我取得聯繫。我很想聽你們的意見。謝謝!
本文標題:Linux主機SSH翻牆加密代理伺服器教程 - 真相網
這裡是你留言評論的地方
真相網
