Shadowsocks
Shadowsocks は軽量なプロキシです。これは SOCKS5 プロトコルに基づいていますが、追加で暗号化を使用しており、セキュリティを向上させ、ファイアウォールの回避を支援します。
目次
インストール
いくつかの実装が Arch Linux 用にパッケージされています。以下のいずれかをインストールできます。
- shadowsocks — Python で書かれた初期の実装。
- shadowsocks-rust — Rust で書かれた最新の積極的に開発されている実装。
- go-shadowsocks2AUR, shadowsocks-goAUR — Go で書かれた実装。
- shadowsocks-libev-staticAUR — C で書かれた実装。現在は開発されておらず、shadowsocks-rust に取って代わられています。
設定
Shadowsocks の設定は JSON 形式のファイルで行います。詳細は Configuration via Config File を参照してください。
使用方法
クライアント
コマンドラインから使う
クライアントは ss-local
(shadowsocks-libev) または sslocal
(shadowsocks) コマンドで起動します。ss-local(1)[リンク切れ 2023-04-22] と sslocal(1) を参照してください。
sslocal -b 127.0.0.1:1080 --server-url ss://
または設定ファイルを介して:
sslocal -c config.json
config.json
{ "remarks": "Server name", "server": "111.111.111.111", "server_port": 804, "local_port": 1080, "method": "chacha20-ietf-poly1305", "password": "server_password" }
デーモン管理
Shadowsocks クライアントは、shadowsocks@.service
(shadowsocks)または shadowsocks-libev@.service
(shadowsocks-libev)のインスタンスを使って systemctl で制御できます。設定ファイル /etc/shadowsocks/config.json
を使用するには、shadowsocks-libev-server@config.service
または shadowsocks-server@config.service
を起動し、有効化します。
また、ネットワークが立ち上がった後に shadowsocks@
または shadowsocks-libev@
のインスタンスを実行することにも興味があるかもしれません。ネットワークが稼働した後にサービスを実行するを参照してください。
サーバー
コマンドラインから使う
サーバーは ss-server
コマンドで起動します。
設定ファイル /etc/shadowsocks/config.json
を使ってフォアグラウンドでサーバーを起動するには:
$ ss-server -c /etc/shadowsocks/config.json
バックグラウンドで実行するには:
$ ss-server -c /etc/shadowsocks/config.json -d start $ ss-server -c /etc/shadowsocks/config.json -d stop
systemd を使う
Shadowsocks サーバーは shadowsocks-libev-server@.service
のインスタンスを使って制御することができます。
例えば、設定ファイル /etc/shadowsocks/config.json
を使ってサービスを起動・有効化する場合、shadowsocks-libev-server@config.service
サービスを使ってください。
Shadowsocks で特権ポート (1024 以下) を使うには、root でサーバーを起動する必要があります:
/etc/systemd/system/shadowsocks-libev-server@.service.d/start-as-root.conf
[Service] User=root
暗号化
python2-m2crypto パッケージをインストールすると暗号化が少しだけ高速になります。
Salsa20 や ChaCha20 暗号を使いたい場合は libsodium パッケージをインストールしてください。
ヒントとコツ
パフォーマンスの最適化
443
などの一般的なポートを使用します。グレート・ファイアウォール は、負荷を減らすために比較的少ない一般的なポートをチェックします。- TCP Fast Open を有効にする。
- BBR を有効にする。
- shadowsocks の速度を上げるために python-gevent をインストールします。
- カーネルパラメータを最適化します。詳細は Optimizing Shadowsocks を参照してください。
暗号化
AEAD Ciphers[リンク切れ 2023-05-20] を参照してください。
python-m2crypto パッケージをインストールすると、暗号化が少し速くなります。
Salsa20 または ChaCha20 暗号を使用するには、libsodium パッケージをインストールします。
参照
- Shadowsocks ウェブサイト
- Python パッケージ
- GitHub wiki
- Backup GitHub project (元のプロジェクトは 2015 年 8 月に「規制に従って削除」されました)