該使用 SSH 還是該使用 VPN?

SSH 和 VPN 都是加密的、可靠的技術,都跨平臺,所以很多人就產生了到底應該使用 SSH 還是應該使用 VPN 作為自己上網的輔助工具的疑問。

最近,我體驗了 VPN 和 SSH 兩種方式,對他們的共性和差異有了一些認識。

他們從原理上是不一樣的。VPN 是虛擬專用網絡,它虛擬了一個網卡,類似於一個數據隧道,使用 VPN 後,你連接到了一個新的網絡連接,這個網絡連接和你所使用的寬帶連接、局域網連接等是平級的,(但實際上數據是先加密,再通過你其它的網卡發送的),如果你使用這種方式連接了網絡,你的所有網絡數據包都將通過 VPN 加密隧道發送。

SSH 則不同。他不是一個單獨的網絡連接,只是在現有網絡連接內的一個協議。你使用一個客戶端程序。該程序和遠程服務器通過 SFTP 協議交互,在本地作為一個代理服務器,你將瀏覽器連接時所使用的代理服務器設置為本機,端口設置為本地代理服務器所在的端口,這樣,你訪問網絡時的速度都通過了 SSH 服務器端的中轉,而這中間的數據又是加密的,所以你就獲得了一個加密、安全的網絡環境。

由於這種原理上的差異,VPN 更接近底層,相當於一個新的虛擬網卡,更有「專用」的性質,而 SSH 更像加密的代理服務器,是在你現有的網絡上的一個普通的連接。因此,如果你使用了 VPN 連接,你訪問所有網站都將通過該 VPN 連接(除非你啟用多個網絡連接,並且手動編輯網關規則。這很麻煩,而且只能做到 IP 級別的過濾,不實用),在不需要使用 VPN 時,你必須斷開 VPN 連接。對於企業網絡,「所有數據通過 VPN」這樣的模式是很有意義的。但是,很多情況下,我們只需要對部分網站使用加密連接,這時候,VPN 連接就顯得有些浪費。

然而 SSH 則不存在這個問題。只要在你需要使用 SSH 時使用該 SSH 的客戶端作為代理服務器,不需要使用時,直接訪問網絡,就可以輕鬆實現自動切換 SSH 和普通網絡,在這期間 SSH 和你原來的網絡連接都不需要斷開或重連。

這樣我們就可以清晰地看出該選擇 VPN 還是 SSH 了:

  1. 如果你使用的軟件沒有設置代理的功能,你必須使用 VPN(除了瀏覽器,很多程序都是沒有設置代理的功能的)。VPN 的全局性在這裡發揮了很好的作用
  2. 如果你只是偶爾需要使用加密連接,最好使用 SSH
  3. 如果你在一個企業中,企業內使用 VPN,企業外使用普通網絡,或全部使用 VPN 網絡,請使用 VPN
  4. 如果需要通過網址快速切換加密和普通網絡,請使用 SSH。(使用VPN則必須通過斷線和重連來實現,速度很慢很麻煩)

有些人說 SSH 沒有 VPN 速度快。經過我個人的測試,SSH 速度也很快,如果你的速度不夠快,很可能的原因是你使用了 Windows 操作系統,使用 MyEntunnel 連接 SSH。MyEntunnel 內部使用的 plink.exe 有 30KB/s 的速度限制,推薦替換為無限制版。可以用迅雷點此下載該版本:http://tartarus.org/~simon/putty-snapshots/x86/plink.exe

目前我就是使用 SSH + Firefox 插件 AutoProxy 實現 SSH 上網的,效果很好。

(作者 Ceeji(http://ceeji.net),訂閱。)

当前页阅读量为: