ブラウザはShadowsocksサーバーを介して直接インターネットにアクセスできますが、アクセスすることはできません。

ブラウザはShadowsocksサーバーを介して直接インターネットにアクセスできますが、アクセスすることはできません。

さて、これは簡単に見えますが、多くの検索の後にはうまくいきません。 Ubuntu 14.04があります。

このconfig.jsonファイルには、Shadowsocksを実行する私の友達サーバーの構成が含まれています。

{
    "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:1234http://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

答え1

普遍的なトンネリング方法はありませんすべてSOCKSを介してプロキシされるインターネットトラフィック。しかし、特定の方法を使用するプロトコルはかなり多くありますが、すべてではありません。私が知る限り、SOCKS5はTCPおよびUDPトラフィックをサポートしますが、ICMPはサポートしません。したがって、たとえば、pingこれらのプロキシを介して既存のサービスを使用することはできません。

以下はプロキシクライアントのリストです(ほとんどのSOCKS5をサポート)。協会

私は個人的にLinuxでDanteとプロキシチェーンのクライアント部分(-ng以降のバージョンではなく元のバージョン)を試してみました。どちらもアプリケーションのソケットAPIリクエストを独自のライブラリにリダイレクトすることで機能します(したがって、アプリケーションにLD_PRELOAD環境変数を設定する必要があります)。これにより、アプリケーションが setuid バイナリを LD_PRELOAD として使用し、setuid 機能がセキュリティと互換性がない場合に問題が発生する可能性があります。また、すべてのネットワーク関連API機能がリダイレクトされるわけではないため、いくつかの奇妙なアプリケーションで問題が発生する可能性があります(たとえば、アプリケーションがネットワークインターフェイスとIPアドレスのリストを取得したい場合など)。

これらのLD_PRELOADタイプのプロキシクライアントは通常、システムレベルで動作するように設計されていないため、アプリケーションの起動方法を変更する必要があります(アプリケーションの前にプロキシクライアントを追加することによって)。理論的には、システム全体またはログインセッションに対してLD_PRELOAD環境変数を設定することができ、場合によっては機能することがありますが、微妙な問題が発生する可能性があります。また、アプリケーションを再起動しないと、リダイレクトを簡単にオンまたはオフにすることはできません。

答え2

openvpnはすべてをルーティングする最も簡単な方法です。 sockプロキシを介してopenvpnサーバーに接続できます

次の2行を追加して、ocksポート1234を介して接続するようにopenvpnスクリプトを変更します。

 socks-proxy localhost 1234
 socks-proxy-retry

これは、より抑圧的な国のようにopenvpnプロトコルがブロックされている場合に便利です。通常、ソックスプロキシはアプリケーションごとに設定されます。上記のソリューションには、openvpnサーバーとShadowsocksサーバーが必要です。

関連情報