Linux下用網站主機作為加密代理服務器
我曾經介紹過如何使用 Amazon EC2 建立自己的代理服務器來“翻墻“。用這個方法翻墻雖然網速很快,但還是有些缺點。Amazon EC2 是收費的,而且按小時算,所以不能隨時都開著我的代理服務器。另外,每次想用代理的時候還得先等一兩分鐘,讓服務器啟動。
然而我今天看到了這個貼子,這才發現還可以使用一個普 通的網站主機作為我的代理服務器。與 Amazon EC2 不同,普通的網站主機是 24/7 運行的,而且你本來就要用它做你的網站,不用額外花錢。以上帖子是專門寫給使用 Dreamhost 的 Windows 用戶。不過,凡是有支持 SSH 服務網站主機的 Linux 用戶也可以享受翻墻的自由感。我為 Linux 用戶編了一個小的 BASH 腳本,其主要功能為:
與網站主機創建一個 SSH 隧道連接
SSH 隧道用完之后,安全地關閉 SSH 隧道連接
>用這個腳本,我試了一下上平時被 GFW 封殺的 youtube.com… 結果 Firefox 差點讓我暈倒了! 用這個代理,網速快極了… 感覺好像我還在英國上網似的 (那邊一般都用 8M 以上的寬帶) – 你可以看一下視頻:
介紹一下腳本的內容
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
請注意,配置時密碼要留為空白。
將生成的 /home/jonolumb/.ssh/id_rsa.pub 的內容復制到遠程服務器目錄下,具體位置是:
~/.ssh/authorized_keys
要保
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解