最近、関連する情報を外国のウェブサイトで頻繁に検索する必要がありますが、GFW の妨害があり、非常に特別な手段を取らなければなりません。以前は VPN を使用していましたが、最近はなぜか使用できなくなりました。Digitalocean にまだ少しのクレジットがあることを思い出し、SSH プロキシを構築して、SSH 暗号化トンネルを使用して壁を越えてインターネットにアクセスしました。構築プロセスは非常に簡単で、後で記事を投稿します。
SSH コマンドの解析 ssh -qTfnN 参考文末のパラメーターの説明 -D 8080 ポートを指定します
SSH プロキシの基本的な使用方法
ssh -qTfnN -D 8080 user@XXX.XXX.XXX.XXX
パスワードを入力した後、ブラウザのプロキシサーバーを設定します。ブラウザのプロキシ設定の Socket5 プロキシ設定に IP:localhost ポート:8080(ssh コマンドの内容に基づいて設定)を入力するだけで、GFW を突破して必要なコンテンツを閲覧できます。
プロキシを管理する場合は、SSH プロセスを直接終了させるだけで済みます
ps aux | grep ssh
kill XXXX #PID
Firefox の場合、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:このパラメーターにより、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:特権のないポート(特権のないポート)を使用します。これらのポートでは rhost 認証を使用できません(RSA との組み合わせの場合でも)。 -q:このパラメーターは、ダンプモードを選択します。これにより、警告や診断メッセージを含むすべての情報が表示されません。認証や接続の問題に遭遇した場合は、このモードをオフにすることが最善です。 -R port:host:このパラメーターは、リモートホストの指定されたポートをローカルホストの指定されたポートに転送します。これは、-L パラメーターの動作とは逆です。ソケットはリモートホスト上のポートをリッスンし、そのポートに接続がある限り、それをローカルホストとホストポートに転送します。この転送ポートは、異なるホストで異なる設定を行うために設定ファイルで設定できます。特権ポートは、リモートホストにスーパーユーザーとしてログインする場合にのみ転送できます。 -t:このパラメーターにより、疑似端末を指定して SecureShell クライアントを対話モードで動作させることができます。これは、リモートホスト上でスクリーンベースのプログラムを実行するために使用されます。 -V:このパラメーターは、クライアントのバージョン番号を印刷して終了します。 -v :詳細モード。このパラメーターにより、ssh はデバッグ情報を印刷し、接続、認証、および設定の問題をデバッグする際に特に役立ちます。 -x:このパラメーターは、X トラフィックの転送に使用されます。X は起動時に安全ではないと公認されており、セキュリティに敏感なサイトでは、このパラメーターを設定することをお勧めします。このパラメーターは、各ホストごとに設定ファイルで設定できます。