有時您希望私下瀏覽Internet,訪問受地理限制的內容或繞過網路可能強制執行的任何中間防火牆。
一種選擇是使用VPN,但這需要在您的計算機上安裝客戶端軟體並設置您自己的VPN伺服器或訂閱VPN服務。
更簡單的替代方法是使用加密的SOCKS代理隧道路由本地網路流量。這樣,使用代理的所有應用程序都將連接到SSH伺服器,伺服器會將所有流量轉發到其實際目標。您的ISP(互聯網服務提供商)和其他第三方將無法檢查您的流量並阻止您訪問網站。
本教程將引導您完成創建加密SSH隧道和配置Firefox和Google Chrome Web瀏覽器以使用SOCKS代理的過程。
先決條件
- 運行任何Linux版本的伺服器,具有SSH訪問許可權以通過它路由您的流量。
- 網頁瀏覽器。
- SSH客戶端。
設置SSH隧道
我們將創建一個SSH隧道,該隧道將安全地將來自本地計算機的埠9090
上的流量轉發到埠上的SSH伺服器22
。您可以使用大於的任何埠號1024
。
Linux和macOS
如果在本地計算機上運行Linux,macOS或任何其他基於Unix的操作系統,則可以使用以下命令輕鬆啟動SSH隧道:
ssh -N -D 9090 [USER]@[SERVER_IP]
使用的選項如下:
-N
– 告訴SSH不要執行遠程命令。-D 9090
– 在指定的埠號上打開SOCKS隧道。[USER]@[SERVER_IP]
– 您的遠程SSH用戶和伺服器IP地址。- 要在後台運行該命令,請使用該
-f
選項。 - 如果您的SSH伺服器正在偵聽埠22以外的埠(默認埠),請使用該
-p [PORT_NUMBER]
選項。
運行該命令後,系統將提示您輸入用戶密碼。輸入後,您將登錄到伺服器並建立SSH隧道。
您可以設置基於SSH密鑰的身份驗證,並在不輸入密碼的情況下連接到伺服器。
視窗
Windows用戶可以使用PuTTY SSH客戶端創建SSH隧道。你可以在這裡下載PuTTY 。
- 啟動Putty並在
Host name (or IP address)
欄位中輸入您的伺服器IP地址。
- 在
Connection
菜單下,展開SSH
並選擇Tunnels
。9090
在Source Port
欄位中輸入埠,然後選中Dynamic
單選按鈕。
- 單擊
Add
按鈕,如下圖所示。
- 返回
Session
頁面以保存設置,這樣您每次都不需要輸入它們。在Saved Session
欄位中輸入會話名稱,然後單擊Save
按鈕。
- 選擇已保存的會話,然後單擊
Open
按鈕登錄遠程伺服器。
將顯示一個詢問您的用戶名和密碼的新窗口。輸入用戶名和密碼後,您將登錄到伺服器並啟動SSH隧道。
設置公鑰認證將允許您連接玩具伺服器而無需輸入密碼。
配置瀏覽器以使用代理
現在您已打開SSH SOCKS隧道,最後一步是配置首選瀏覽器以使用它。
火狐
對於Windows,macOS和Linux,以下步驟相同。
- 在右上角,點擊漢堡包圖標
☰
打開Firefox的菜單: - 單擊
⚙ Preferences
鏈接。 - 向下滾動到該
Network Settings
部分,然後單擊Settings...
按鈕。 - 將打開一個新窗口。
- 選擇
Manual proxy configuration
單選按鈕。 - 輸入
127.0.0.1
的SOCKS Host
欄位和9090
在Port
外地。 - 選中
Proxy DNS when using SOCKS v5
複選框。 - 單擊
OK
按鈕以保存設置。
- 選擇
此時,您的Firefox已配置,您可以通過SSH隧道瀏覽Internet。要驗證它,您可以打開google.com
,鍵入「我的IP是什麼」,您應該看到您的伺服器IP地址。
要恢復默認設置,請轉到Network Settings
,選擇Use system proxy settings
單選按鈕並保存設置。
還有幾個插件可以幫助您配置Firefox的代理設置,如FoxyProxy。
谷歌瀏覽器
Google Chrome使用默認的系統代理設置。您可以使用插件(如SwitchyOmega)或從命令行啟動Chrome網路瀏覽器,而不是更改操作系統代理設置。
要使用新配置文件和SSH隧道啟動Chrome,請使用以下命令:
Linux:
/usr/bin/google-chrome \
--user-data-dir="$HOME/proxy-profile" \
--proxy-server="socks5://localhost:9090"
蘋果系統 :
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--user-data-dir="$HOME/proxy-profile" \
--proxy-server="socks5://localhost:9090"
Windows:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
--user-data-dir="%USERPROFILE%\proxy-profile" ^
--proxy-server="socks5://localhost:9090"
如果配置文件不存在,將自動創建配置文件。這樣,您可以同時運行多個Chrome實例。
要確認SSH隧道是否正常工作,請打開google.com
,然後鍵入「what is my ip」。瀏覽器中顯示的IP應該是伺服器的IP地址。
結論
您已學習如何設置SSH SOCKS 5隧道並將瀏覽器配置為私下匿名訪問Internet。為了便於使用,您可以在SSH配置文件中定義SSH隧道,或創建將設置SSH隧道並啟動瀏覽器的Bash別名。