最近經常需要到國外網站查詢相關資料,但是有 GFW 的阻礙,不得不採用點非常措施,VPN 之前一直都在用,只是最近不知為何無法使用了,想到自己在 Digitalocean 上還有點 Credit,於是自己搭建 SSH 代理,使用 SSH 加密隧道翻牆。搭建過程很簡單,以後再發文。
SSH 命令解析 ssh -qTfnN 參考文末的參數說明 -D 8080 指定端口,用
SSH 代理的基本用法
ssh -qTfnN -D 8080 user@XXX.XXX.XXX.XXX
輸入密碼之後就是設定瀏覽器的代理伺服器了,在瀏覽器的代理設定中的 Socket5 代理設定 IP:localhost 端口:8080 (根據 ssh 命令內容設定) 即可放心穿透 GFW,瀏覽你想要的內容了。
需要管理代理的話,直接 kill 掉 SSH 的進程即可
ps aux | grep ssh
kill XXXX #PID
火狐的話推薦使用 AutoProxy插件。
Chrome 的話推薦使用 Proxy Switchy插件。 或者使用命令行打開 Chrome
#Windows
Chrome.exe --args --proxy-server="socks5://host##"
#MAC OS
open -a /Applications/Google Chrome.app --args --proxy-server="socks5://host##"
附帶 SSH 的參數列表的說明 ssh [-1246AaCfghkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec] [-D port] [-e escape_char] [-F configfile] [-i identity_file] [-L port:host] [-l login_name] [-m mac_spec] [-o option] [-p port] [-R port:host] [-S ctl] [user@]hostname [command]
主要參數: -a:利用這個參數,可以使轉發的認證代理無效。其結果是使已裝入內存的口令無效。如果願意,你也可以針對每台主機指定這個參數,而不是使其成為全程的設定。 -c cipher:可以通過這個參數為你的網傳輸指定一個用來加密資料的密鑰對。 -C:該參數將使 ssh 壓縮所有通過 Secure Shell 客戶端傳送的資料,包括輸入、輸出、錯誤訊息及轉發資料。它使用 gzip 演算法,壓縮級別可通過設定配制文件中的參數 Compressicn Level 來指定。這對於緩慢的傳輸線路特別有用的。但對於傳輸速度已經很快的網路則顯得沒有必要。同樣,你可以利用配制文件針對每台主機配置這個參數。 -f:該參數將 ssh 連接送入後台執行。這在驗證已經完成且 TCP/IP 轉發已經建立的情況下會生效。這對在遠程主機上啟動 X 程式顯得十分重要。其後使用者將被提示要求輸入口令 (提供的認證代理不運行),然後將連接送往後台。 -g:該參數允許遠程主機通過端口轉發與主機端口相連,通常情況下僅允許本地主機這樣做。 -k:這個參數使 Kerberos 轉發功能無效。 -l login_name:這個參數指定你在遠程主機上的登入使用者名稱。預設情況下該使用者名稱與你在本地機上的使用者名稱相同。它可以通過配置文件為不同的主機量體裁衣。這個參數是一個很實用的參數,因為許多人在不同的主機上有著不同的使用者名稱。 -L port:host這個參數轉發在本地主機上的指定端口與遠程主機上的指定端口連接完成的資訊。 -n :這個參數與 - f 參數類似。然而,在需要敲入口令時它將不會工作。標準輸入由 /dev/null 重定向而得到,當 SecureShell 客戶端被送往後台時必須使用它。這個參數在用來傳送 X 流量至遠程主機時被普遍地使用。最好在使用該參數時啟用認證代理。 -o option:在命令行參數未被定義時,該參數用來從配置文件中傳遞參數。這包括 StrictHostke yChecking 和 Use Rsh,它們沒有自己的命令行參數。 -p port:可以指定哪個端口用作 SecureShell 客戶端與伺服器的連接。預設值為 22,它為 SecureShell 而保留。記住,除非特殊指定,用於伺服器的端口號在 /etc/services 文件中定義。可以通過配置文件針對不同的主機而分別設定。 -P:使用大於 1023 的端口號 (非特權的端口)。不能使用這些端口進行 rhost 認證。(無論是它自身還是與 RSA 的組合)。 -q:這個參數選用啞模式。這意味著任何資訊,包括警告與診斷資訊都不會被顯示出來。在你碰到認證或連接問題時,最好關閉該模式。 -R port:host該參數轉發遠程主機指定端口到本地主機指定端口上的連接。它和 - L 參數的工作過程剛好相反。套接字監聽遠程主機上的端口,只要針對該端口有一個連接,它將被轉發到本地主機和主機端口。該轉發端口可以在不同的主機上通過配置文件來進行不同的配置。特權端口只能在以超級帳號登入到遠程主機時轉發。 -t:該參數通過指定一個偽終端迫使 SecureShell 客戶端以交互模式工作,即使在給定命令的情況下也是如此。它被用於執行在遠地主機上的基於螢幕的程式。 -V:該參數打印出客戶端的版本號後退出。 -v :詳盡模式。該參數使 ssh 打印出調試資訊,在調試連接、認證及配置問題時該參數特別有用。 -x:該參數用於 X 流量轉發,X 被公認為在啟動時是不安全的,對安全敏感的站點最好設定這個參數。該參數可以通過配置文件為每一台主機分別設定。