CentOS 7 ShadowSocksクライアントのインストール

5212 ワード

背景


何らかの理由で、サーバはソフトウェア、プラグイン、スクリプトなどをインストールし、ネットワークの問題で接続できません.サーバにShadowSock(以下、SS)クライアントをインストールして「はしご」を構築する必要があります.
CentOS 7またはRHEL(Red Hat Enterprise Linux)7でShadowsocksをインストールするクライアントは非常に簡単です.COPR(Cool Other Package Repo)にはすでにパッケージされたs-libevがあるため、いくつかのコマンドだけでインストールが完了します.

ShadowSocksのインストール

rootとしてサーバにログインするか、コマンドsudo su -でパスワードを入力することでrootユーザに切り替えます.一般ユーザを使用する場合は、一般ユーザもrootグループに参加し、各コマンドの前にsudoを追加する必要がある.
s-libevのインストール:
cd /etc/yum.repos.d/
curl -O https://copr.fedorainfracloud.org/coprs/librehat/s/repo/epel-7/librehat-s-epel-7.repo
yum install -y s-libev

インストールが完了すると、ss-localss-managerss-natss-redirss-serverss-tunnelss-localのコマンドが使用できます.
このうち、クライアントとしてはss-localが必要ですが、ss-localコマンドと直接付き合うことなく、サービスファイルを通じてShadowsocksを起動します.
メモ:インストール・レポートが次のようなエラーの場合
Error: Package: s-libev-3.1.3-1.el7.centos.x86_64 (librehat-s)
           Requires: libsodium >= 1.0.4
Error: Package: s-libev-3.1.3-1.el7.centos.x86_64 (librehat-s)
           Requires: mbedtls

システムがEPEL(Extra Packages for Entreprise Linux)を有効にしていないことを示します.では、まずEPELを有効にして、s-libevをインストールする必要があります.
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y s-libev

インストールの確認


後述の構成を続行する前に、コマンドラインでss-localコマンドを1回実行し、sとその依存が正しくインストールされていることを確認します.
正常に動作している場合は、一般的な問題をスキップして、プロファイルの追加を続行します.

よくある質問


実行ss-local: error while loading shared libraries: libmbedcrypto.so.0: cannot open shared object file: No such file or directoryエラー:/etc/s-libev/config.jsonrootアイデンティティを使用して、次のコマンドを実行します.
cd /usr/lib64
ln -s libmbedcrypto.so.1 libmbedcrypto.so.0

プロファイルの追加


COPRのs-libevは"server"にあるプロファイルをデフォルトで読み込み、必要に応じて以下のプロファイルを参照して変更できます.
{
    "server": "10.10.10.10",
    "server_port": 9999,
    "local_port": 1080,
    "password": "ss-password",
    "method": "aes-256-cfb",
    "mode": "tcp_and_udp",
    "timeout": 600
}
  • "server_port":必ず記入し、接続するsサーバドメイン名またはIPを記入します.
  • "local_port":必ず記入し、サーバ上のsが傍受しているポートに記入します.
  • "password":必要に応じて、ローカルsクライアントSOCKS 5エージェントが傍受するポートに入力します.
  • "method":必須、パスワード、sサーバ側の構成と一致する必要があります.
  • "mode":必須、暗号化方法、sサーバ側の構成と一致する必要があります.
  • "tcp_only":選択、デフォルト"tcp_only"."udp_only""tcp_and_udp"、および"timeout"に記入できます.
  • /etc/sysconfig/s-libev:選択、非アクティブ接続の保持時間.デフォルトでは60秒で、設定時間が長くなるとHTTPの長い接続などを維持するのに役立ちます.設定時間が長すぎると、sサーバリソースが不要になります.

  • デフォルトのプロファイルを変更したり、他のコマンドラインパラメータを指定したりする場合は、CONFFILEを変更できます.
    # Configuration file
    CONFFILE="/etc/s-libev/config.json"
    
    # Extra command line arguments
    DAEMON_ARGS="-u"

    このうちDAEMON_ARGSは、s-libevが読み取ったプロファイルを指定する."-u"は、UDPプロトコルの有効化を示す追加のコマンドラインパラメータを指定する.
    なお、コマンドラインパラメータDAEMON_ARGSは、プロファイルCONFFILEで指定されたオプションよりも優先度が高い.

    サービスの開始


    システムを通じてShadowsocksのクライアントサービスを起動する:
    systemctl enable --now s-libev-local

    以上のコマンドは、Shadowsocksクライアントサービスの起動自動起動も設定します.

    サービスステータスの確認


    Shadowsocksのサービス実行ステータスと最新ログを確認するには、次のコマンドを実行します.
    systemctl status s-libev-local

    Shadowsocksサービスのすべてのログを表示するには、次のコマンドを実行します.
    journalctl -u s-libev-local

    テスト:
    curl --socks5 127.0.0.1:1080 http://httpbin.org/ip
    #      ss     ip      
    {
      "origin": "10.10.10.10" # s   IP
    }

    プロキシの設定


    privoxyのインストール

    yum install privoxy

    privoxyプロファイルの変更/etc/privoxy/config
    listen-address 127.0.0.1:8118
    forward-socks5t / 127.0.0.1:1080 .

    privoxyサービスの開始
    systemctl enable privoxy
    systemctl start privoxy
    systemctl status privoxy

    プロキシ環境変数の設定
    echo -e "export http_proxy=http://127.0.0.1:8118" >> /etc/profile
    echo -e "export https_proxy=http://127.0.0.1:8118" >> /etc/profile
    source /etc/profile

    テスト
    curl www.google.com

    多くのHTMLを返すと、sが正常に動作していることを示します.
    備考:エージェントを使用する必要がなければ、/etc/profileの構成を注釈すればよい.

    yumエージェントの構成

    #   yum.conf    
    vim /etc/yum.conf
    
    #          
    proxy=https://127.0.0.1:8118
    
    #      

    wgetエージェントの構成

    #   wget    
    vim /etc/wgetrc
    
    #            ,        ,     
    use_proxy = on
    https_proxy=https://127.0.0.1:8118
    http_proxy=http://127.0.0.1:8118
    ftp_proxy=http://127.0.0.1:8118
    
    #