簡単そうに見えますが、何度も検索してもうまくいきませんでした。私はUbuntu14.04を持っています。
これは、shadowsocksを実行している友人のサーバーの構成を含むconfig.json
ファイルです。
{
"server":"ip address",
"server_port":23,
"local_port":1234,
"password":"password",
"timeout":600,
"method":"aes-256-cfb"
}
sslocal -c config.json
を実行し、サーバーに正常に接続します。
たとえば、次のコマンドを使用して、google-chrome
で動作させることができます。google-chrome --proxy-server="socks5://127.0.0.1:1234" --Host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"
問題は、インターネット接続全体を最初にそのサーバーを経由させるにはどうすればよいかということです。すべてのアプリケーションがデフォルトでそれを使用できるようにします。簡単にアクティブ化および非アクティブ化できるもの。
私が試したものと失敗したもの:
tsocks
-> https://askubuntu.com/questions/532375/launch-program-through-shadowsocks を使用する
iptables
をSudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:1234
-> http://adminsgoodies.com/configuring-ubuntu-for-global-socks5-proxy/ として使用
[システム設定]-> [ネットワーク]-> [ネットワークプロキシ]とdconf-tools
を使用して、ホストを除外します-> https://askubuntu.com/questions/70245/how-do-i-make-the-system- wide-proxy-settings-bypass-the-proxy-for-local-addresse
SOCKSプロキシを介してすべてのインターネットトラフィックをトンネリングする一般的な方法はありません。ただし、かなりの数のプロトコルには特定の方法がありますが、すべてではありません。 SOCKS5はTCPおよびUDPトラフィックをサポートしますが、私が知る限りICMPはサポートしません。したがって、たとえば、このようなプロキシを介して従来のping
を使用することはできません。
プロキシクライアントのリストは次のとおりです(それらのほとんどはSOCKS5をサポートしています): リンク
私はLinuxでDanteのクライアント部分とプロキシチェーン(-ngの後継ではなくオリジナル)を個人的に試しましたが、どちらも私のために機能しました(プロキシチェーンはもう少し安定していることがわかりました)。どちらも、アプリケーションからのソケットAPIリクエストをリダイレクトすることで機能します(したがって、アプリケーションのLD_PRELOAD環境変数を設定する必要があります)。これは、アプリケーションがsetuidバイナリをLD_PRELOADとして使用し、setuid機能にセキュリティ上の互換性がない場合に問題を引き起こす可能性があります。また、すべてのネットワーク関連API関数がリダイレクトされるわけではないため、一部の奇妙なアプリケーションで問題が発生する可能性があります(たとえば、アプリケーションがネットワークインターフェイスとIPアドレスのリストを取得する場合)。
これらのLD_PRELOADタイプのプロキシクライアントは、通常、システムレベルで動作するようには設計されていません。代わりに、アプリケーションの起動方法を変更する必要があります(アプリケーションの前にプロキシクライアントを付けることにより)。理論的には、システム全体またはログインセッションにLD_PRELOAD環境変数を設定でき、場合によっては機能することもありますが、微妙な問題が発生する可能性があります。また、アプリケーションを再起動せずにリダイレクトのオンとオフを簡単に切り替えることはできません。
openvpnはすべてをルーティングするのが最も簡単で、socksプロキシ経由でopenvpnサーバーに接続できます
次の2行を追加して、openvpnスクリプトを変更してsocksポート1234経由で接続します。
socks-proxy localhost 1234
socks-proxy-retry
これは、いくつかのより抑圧的な国のように、openvpnプロトコルがブロックされている場合に役立ちます。通常、socksプロキシはアプリケーションごとに設定されます。上記のソリューションには、openvpnサーバーとshadowsocksサーバーの両方が必要です。