GNU/Linux >> Linux の 問題 >  >> Ubuntu

Shadowsocksをセットアップする方法-Ubuntuでlibevプロキシサーバー

このチュートリアルでは、UbuntuでShadowsocksプロキシサーバーを設定する方法を説明します。 Shadowsocksは、インターネット検閲を回避するための軽量で高速かつ安全なSocks5プロキシです。サーバー側をセットアップする方法と、Ubuntuでデスクトップクライアントを構成する方法を学習します。 Shadowsocksには多くの実装があります。このチュートリアルでは、Shadowsocks-libevの使用方法を示します。

  • Cで記述されており、ローエンドのマシンでも非常に高速です。
  • 手入れが行き届いています。
  • これは最も機能が豊富な実装です。 TCPファストオープン、マルチユーザー、管理API、リダイレクトモード、トンネルモード、UDPリレー、AEAD暗号、およびプラグインがすべてサポートされています。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • VPS(仮想プライベートサーバー)。 Vultrをお勧めします。月額わずか2.5ドルで512Mメモリの高性能VPSを提供します。これは、プライベートプロキシサーバーに最適です。
  • 次に、VPSにUbuntuをインストールします。

ステップ1:UbuntuにShadowsocks-libevサーバーをインストールする

リモートUbuntuサーバーにSSHで接続します。 Shadowsocks-libev 17.04以降Ubuntuリポジトリに含まれているため、次のコマンドでインストールできます:

sudo apt update

sudo apt install shadowsocks-libev

Ubuntu 16.04ユーザーは、次のコマンドを実行してPPAからインストールできます。 software-properties-common PPAからソフトウェアをインストールする場合に必要です。 Ubuntuサーバーにない可能性があります。

sudo apt install software-properties-common -y

sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y

sudo apt update

sudo apt install shadowsocks-libev

ナトリウム暗号ライブラリ(libsodium)は、shadowsocks-libevと一緒にインストールされます。安全で高速なChaCha20-Poly1305暗号化方式を使用する場合は必須です。インストールしたら、構成ファイルを編集します。

sudo nano /etc/shadowsocks-libev/config.json

ファイルのデフォルトの内容は次のとおりです。

{
    "server":["::1", "127.0.0.1"],
    "mode":"tcp_and_udp",
    "server_port":8388,
    "local_port":1080,
    "password":"ACRrobo9ymXb",
    "timeout":60,
    "method":"chacha20-ietf-poly1305"
}

127.0.0.1を変更する必要があります 0.0.0.0へ 、したがって、Shadowsocks-libevサーバーはパブリックIPアドレスをリッスンします。次に、 server_portを変更します 8888などの他のポート番号に。パスワードはランダムに生成されたため、そのままにしておくことができます。

ファイルを保存して閉じます。次に、shadowsocks-libevサービスを再起動して、変更を有効にします。

sudo systemctl restart shadowsocks-libev.service

起動時に自動起動を有効にします。

sudo systemctl enable shadowsocks-libev.service

ステータスを確認してください。実行されていることを確認してください。

systemctl status shadowsocks-libev.service

次のエラーが表示された場合。

This system doesn't provide enough entropy to quickly generate high-quality random numbers. The service will not start until enough entropy has been collected.

このエラーは、 rng-toolsをインストールすることで修正できます。 。

sudo apt-get install rng-tools

次に実行します

sudo rngd -r /dev/urandom

これで、Shadowsocks-libevサービスを開始できます。

ステップ2:ファイアウォールを構成する

サーバーでiptablesファイアウォールを使用している場合は、ShadowsocksがリッスンしているTCPおよびUDPポートへのトラフィックを許可する必要があります。たとえば、ポート8888がShadowsocksで使用されている場合は、次のコマンドを実行します。

sudo iptables -I INPUT -p tcp --dport 8888 -j ACCEPT

sudo iptables -I INPUT -p udp --dport 8888 -j ACCEPT

UFWファイアウォールを使用している場合は、次のコマンドを実行します。

sudo ufw allow 8888

AWSまたはGoogleCloudを使用している場合は、ウェブベースのコントロールパネルでファイアウォールを設定する必要があります。

ステップ3:Shadowsocks-libevクライアントをインストールして構成する

Ubuntuデスクトップ

shadowsocks-libev パッケージには、サーバーソフトウェアとクライアントソフトウェアの両方が含まれています。 Ubuntu 20.04、18.04デスクトップで、次のコマンドを実行してShadowsocks-libevをインストールします。

sudo apt update

sudo apt install shadowsocks-libev

Ubuntu 16.04デスクトップで、次のコマンドを実行してShadowsocks-libevをインストールします。

sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y

sudo apt update

sudo apt install shadowsocks-libev

Shadowsocks-libev(サーバー)はインストール後に自動的に起動します。 UbuntuデスクトップでShadowsocksサーバーを停止する必要があります。

sudo systemctl stop shadowsocks-libev

また、起動時に自動起動を無効にします。

sudo systemctl disable shadowsocks-libev

Shadowsocksクライアントバイナリの名前はss-local 。そのためのテンプレートsystemdサービスユニットがあります: / lib / systemd / system / [email protected] 。クライアントを起動する前に、クライアント側の構成ファイルを作成する必要があります。 Shadowsocks-libevサーバー構成をクライアント構成ファイルにコピーできます。

sudo cp /etc/shadowsocks-libev/config.json /etc/shadowsocks-libev/location-of-your-server.json

location-of-your-serverを置き換えることができます SFO、LAXのようなもので。次に、クライアント構成ファイルを編集します。

sudo nano /etc/shadowsocks-libev/location-of-your-server.json

サーバーアドレスをサーバーのパブリックIPアドレスに変更し、次の行を追加して、クライアントに127.0.0.1でリッスンするように指示します。

"local_address":"127.0.0.1",

したがって、クライアント構成ファイルは次のようになります。

{
 "server":"your-server-ip-address",
 "mode":"tcp_and_udp",
 "server_port":8888,
 "local_address":"127.0.0.1",
 "local_port":1080,
 "password":"ACRrobo9ymXb",
 "timeout":60,
 "method":"chacha20-ietf-poly1305"
}

ファイルを保存して閉じます。次に、次のコマンドでクライアントを起動できます:

sudo systemctl start [email protected]location-of-your-server.service

また、起動時に自動起動を有効にします。

sudo systemctl enable [email protected]location-of-your-server.service

ステータスを確認してください。実行されていることを確認してください。

systemctl status [email protected]location-of-your-server.service

これで、ss-localプロセスはUbuntuデスクトップの127.0.0.1:1080でリッスンし、Shadowsocksサーバーに接続されます。

Windowsデスクトップ

Windowsユーザーは、このShadowsocksクライアントをダウンロードできます。インストールしたら、クライアントソフトウェアに新しいサーバーを追加できます。サーバーのIPアドレス、ポート、およびパスワードを指定します。 適用をクリックします ボタン

複数のプロキシサーバーがある場合は、[追加]をクリックできます ボタンをクリックして、プロキシサーバーを追加します。一度に使用するプロキシサーバーは1つだけであることに注意してください。

ステップ4:Socksプロキシを使用するようにWebブラウザを設定する

プログラムでsocksプロキシを使用するには、プログラムがsocksプロキシをサポートしている必要があります。 Firefox、Google Chrome、Dropboxなどのプログラムを使用すると、ユーザーはプロキシを使用できます。 FirefoxとGoogleChromeの設定方法を紹介します。

Firefox

Firefoxで、編集に移動します>設定>一般 (またはツール ->オプション ->一般 )。次に、一番下までスクロールして、[設定]をクリックします ネットワークプロキシ接続設定 ウィンドウで、手動プロキシ設定を選択します 。次に、 SOCKS v5を選択します ShadowsocksはSocks5プロキシであるためです。 127.0.0.1と入力します SOCKSHostフィールドと1080 ポートフィールドで。 SOCKSv5を使用する場合はプロキシDNSを確認してください 有効になっています。 OKをクリックします これらの変更を適用します。

Google Chrome

コマンドラインからGoogleChromeおよびChromiumブラウザーのプロキシを構成できますが、プロキシを管理するためにProxySwitchyOmega拡張機能をインストールすることをお勧めします。

拡張機能がGoogleChromeにインストールされたら、次のようにプロキシサーバーを構成します。

  • SOCKS5を選択します プロトコル。
  • 127.0.0.1を設定します サーバーアドレスとして。
  • 1080を設定します ポート番号として。

変更を適用します。次に、右上隅にある拡張機能アイコンをクリックし、 Proxy SwithyOmegaをクリックします。 。

デフォルトでは、SwithyOmegaはオペレーティングシステムのプロキシ設定を使用します。 システムプロキシから変更する必要があります プロキシへ 。

これで、プロキシが機能するはずです。

ステップ5:DNSリークテスト

dnsleaktest.comにアクセスします。 ShadowsocksサーバーのIPアドレスが表示されます。これは、プロキシが機能していることを示しています。

標準テストをクリックします。ローカルISPがテスト結果に含まれていないことを確認してください。

コマンドラインのプロキシ

コマンドラインプログラムでプロキシを使用できるようにするには、 tsocksをインストールします。 。

sudo apt install tsocks

次に、構成ファイルを編集します。

sudo nano /etc/tsocks.conf

次の行を見つけます:

server = 192.168.0.1

に変更

server = 127.0.0.1

ファイルを保存して閉じます。これで、コマンドラインプログラムで次のようにShadowsocksプロキシを使用できるようになります。

sudo tsocks apt update

プロキシチェーンと呼ばれる同様のプログラムもあります。

TCPファストオープンを有効にする

TCP Fast Openを有効にすることで、Shadowsocksを高速化できます。 TCPはコネクション型プロトコルです。つまり、データは接続が確立された後にのみ交換できます。これは、3ウェイハンドシェイクを介して行われます。言い換えると、従来、データは3ウェイハンドシェイクが完了した後にのみ交換できます。 TCPファストオープン(TFO)は、3ウェイハンドシェイクが完了する前にデータを交換できるメカニズムであり、最大1ラウンドトリップ時間(RTT)を節約します。

TCPファストオープンのサポートは、バージョン3.7以降Linuxカーネルに統合され、バージョン3.13以降はデフォルトで有効になっています。次のコマンドを実行して、カーネルのバージョンを確認できます。

uname -r

UbuntuサーバーでTCPファストオープン構成を確認するには、

を実行します。
cat /proc/sys/net/ipv4/tcp_fastopen

4つの値を返すことができます。

  • 0は無効を意味します。
  • 1は、(クライアントとして)発信接続が有効になっていることを意味します。
  • 2は、(サーバーとしての)着信接続が有効になっていることを意味します。
  • 3は、発信接続と着信接続の両方で有効になっていることを意味します。

すべてのUbuntuVPS(仮想プライベートサーバー)が 1を返しました 上記のコマンドを実行した後。サーバーでtcp_fastopenを3に設定する必要があります。これを実現するために、sysctl構成ファイルを編集できます。

sudo nano /etc/sysctl.conf

次に、ファイルの最後に次の行を貼り付けます。

net.ipv4.tcp_fastopen=3

変更を有効にするためにsysctl設定を再ロードします。

sudo sysctl -p

次に、Shadowsocks構成ファイルでTCPファストオープンを有効にする必要もあります。

sudo nano /etc/shadowsocks-libev/config.json

次の行を追加します。

"fast_open": true

したがって、Shadowsocksサーバー構成ファイルは次のようになります。

{
 "server":"your-server-ip-address",
 "server_port":8388,
 "local_port":1080,
 "password":"focobguph",
 "timeout":60,
 "method":"chacha20-ietf-poly1305",
 "fast_open": true
}

最後の構成行にはコンマがないことに注意してください。ファイルを保存して閉じます。次に、Shadowsocksサーバーを再起動します。

sudo systemctl restart shadowsocks-libev

実行されているかどうかを確認します。 (構成ファイルにエラーがあると、再起動できなくなる可能性があります。)

systemctl status shadowsocks-libev

また、Shadowsocksクライアント構成ファイルを編集して再起動し、UbuntuデスクトップでTCPファストオープンを有効にする必要があります。

TCPBBRを有効にする

TCP BBRは、接続速度を大幅に向上させることができるTCP輻輳制御アルゴリズムです。次のチュートリアルを確認してください。

  • TCPBBRを有効にしてUbuntuネットワークのパフォーマンスを簡単に向上させる方法

Shadowsocksのその他の使用法については、マニュアルを確認してください。

man shadowsocks-libev

トラブルシューティング

時々、Shadowsocks-libevプロキシが機能しなくなり、 systemctl でステータスを確認すると、サーバー側に次のエラーが表示されます。 。

ERROR: server recv: Connection reset by peer

クライアント側では、 systemctlによって返されるエラー は:

ERROR: remote_recv_cb_recv: Connection reset by peer

なぜ発生するのかわかりませんが、 shadowsocks-libevを再起動します サーバー上のサービスでこの問題を修正できます。

sudo systemctl restart shadowsocks-libev

毎回手動でサービスを再起動したくないので、cronジョブを追加して定期的に再起動します。

sudo crontab -e

ファイルの最後に次の行を入力します。

0 */3 * * * /bin/systemctl restart shadowsocks-libev

これにより、3時間ごとにサービスが再開されます。つまり、再起動は午前12時、午前3時、午前6時、午前9時などに発生します。時間はcronによって決定されることに注意してください。サービスの実行時間を計算しても決定されません。

Shadowsocks-libevログに次のエラーが表示された場合。

ERROR: unable to resolve www.youtube.com

これは、Shadowsocks-libevサーバーがDNSを正常に解決できないことを意味します。 /etc/shadowsocks-libev/config.jsonでDNSサーバーを指定すると便利です ファイル。ファイルに次の行を追加して、shadowsocks-libevサービスを再起動するだけです。

"name_server":"1.1.1.1",

Shadowsocksサーバーで独自のDNSリゾルバーを実行している場合は、ネームサーバーとして127.0.0.1を指定できます。

"name_server":"127.0.0.1",

JSONファイルでは、最後の行がカンマで終わっていないことに注意してください。

それでおしまい!このチュートリアルが、UbuntuにShadowsocks-libevプロキシをインストールするのに役立つことを願っています。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、より多くのヒントやコツを入手してください🙂


Ubuntu
  1. Ubuntu20.04でリバースプロキシとしてNginxを設定する方法

  2. Ubuntu22.04でWireGuardを設定する方法

  3. UbuntuServer21.04にAnsibleをインストールする方法

  1. NGINXをリバースプロキシとして設定および使用する方法

  2. Ubuntu /DebianLAMPサーバーをセットアップする方法

  3. Ubuntu16.04でTeamSpeakサーバーをセットアップする方法

  1. Ubuntu18.04にSquidプロキシサーバーをセットアップしてインストールする方法

  2. Ubuntu18.04にNginxWebサーバーをインストールする方法

  3. Ubuntu18.04でOpenVPNサーバーをセットアップする方法