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

創建連接
在終端中執行腳本,執行後可以關閉終端。
Linux主機SSH翻牆加密代理伺服器教程
關閉連接
再次在終端中執行腳本並關閉 Firefox (如果 Firefox 還在用隧道的話,連接暫時無法關閉)
Linux主機SSH翻牆加密代理伺服器教程
用 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翻牆加密代理伺服器教程
如果你用這個腳本遇到什麼問題,請跟我取得聯繫。我很想聽你們的意見。謝謝!

本文鏈接:https://dafahao.com/zh-tw/linux-ssh-proxy.html
本文標題:Linux主機SSH翻牆加密代理伺服器教程 - 真相網

這裡是你留言評論的地方


請留言


5 + 5 =
【您可以使用 Ctrl+Enter 快速發送】
Copyright © 2007 - 2026 , Design by 真相網. 本站原創首發均可免費自由轉載. 轉載資料若有著作權問題請留言通知管理員及時處理. 【回到頂部】