昨年、私は数か月間中国で働いていました。実際の VPN を設定することはせず、SSH トンネルを作成し、それを介して接続するようにブラウザのプロキシ設定を変更しました。
すべてがうまく機能しました(もちろんフラッシュを除く)が、それは問題ありませんでした。
しかし、今私は中国に戻ってきましたが、このアプローチには問題があります。前回と同じことをしているのですが、参考:私のIPアドレスは確かに米国にある私の(プライベート)サーバーのIPであり、中国に行くずっと前に作成した指紋を使用してサーバーにログインしているので、MITMは不可能であるはずです。さらに、ipcheckit.comの証明書はGeoTrustのものであるので、すべて問題ないはずです。
しかし、中国でブロックされているサイトにはまだアクセスできません。なぜこのようなことが起こるのか、何か考えはありますか?
答え1
Linux または OSX を使用している場合は、sshuttle を使用して SSH トンネルを作成してみてください。これにより、すべてのパケットがトンネル化されることが保証されます。
https://github.com/apenwarr/sshuttle
./sshuttle -r ユーザー名@sshserver 0/0 -vv
さらに、GoogleやOpenDNSなどのパブリックDNSサーバーを使用する
また、DNS リクエストをプロキシする場合、コマンドは次のようになります。
./sshuttle --dns -vvr ユーザー名@sshserver 0/0
Sshuttle は過去 2 年間、私にとって素晴らしい働きをしてくれており、ベトナムの ISP によってブロックされているすべてのものにアクセスできます。
唯一の欠点は、パスワードベースの認証のみをサポートしていることです (AFAIK)。
答え2
SSHプロキシを使用してDNSフィルタリングによってブロックされているWebサイトをバイパスする場合、DNSリクエストがプロキシを通過できず、DNSリークが発生し、DNSリクエストが検閲DNSサーバーに送信される可能性があります。リークがあるかどうかを確認するには、出典:http://www.ipleak.net/。
Firefox のプロキシ設定を使用するときに問題を解決するには、「SOCKS v5 使用時にプロキシ DNS」を必ずチェックしてください。
あなたが望むなら全てWindows 上でプロキシ DNS を使用するプログラムの場合、少し難しくなるかもしれません。このSOの回答DNS 要求をプロキシ経由で転送する独自の DNS サーバーを実行することをお勧めします。もっと簡単な方法をご存知の方がいらっしゃいましたら、お知らせください。この回答を更新します。
macOS のシステム プロキシ設定を使用しましたが、DNS リークは発生していないようです。
答え3
使ってみるトルSSHトンネル経由でTORのプロキシ設定でSSHトンネルを使用する
答え4
公開鍵認証を使用して、DNS を含むすべてのものを sshuttle 経由でトンネリングする方法を次に示します。
sshuttle --dns -vr <remote username>@<remote IP address> 0/0 --ssh-cmd 'ssh -i <path to private key>'