「Shadowsocks」の版間の差分
(ページの作成:「Category:プロキシサーバー en:Shadowsocks zh-cn:Shadowsocks [http://shadowsocks.org Shadowsocks] は軽量な socks5 プロキシです。Python で書...」) |
Kusanaginoturugi (トーク | 投稿記録) (関連記事へのリンクを削除) |
||
(3人の利用者による、間の19版が非表示) | |||
1行目: | 1行目: | ||
[[Category:プロキシサーバー]] |
[[Category:プロキシサーバー]] |
||
[[en:Shadowsocks]] |
[[en:Shadowsocks]] |
||
− | [[zh- |
+ | [[zh-hans:Shadowsocks]] |
+ | {{Related articles start}} |
||
− | [http://shadowsocks.org Shadowsocks] は軽量な socks5 プロキシです。Python で書かれています。 |
||
+ | {{Related|Trojan}} |
||
+ | {{Related articles end}} |
||
+ | [https://shadowsocks.org/ Shadowsocks] は軽量なプロキシです。これは [[wikipedia:SOCKS5|SOCKS5]] プロトコルに基づいていますが、追加で暗号化を使用しており、セキュリティを向上させ、ファイアウォールの回避を支援します。 |
||
== インストール == |
== インストール == |
||
− | + | いくつかの実装が Arch Linux 用にパッケージされています。以下のいずれかを[[インストール]]できます。 |
|
+ | |||
+ | * {{Pkg|shadowsocks}} — Python で書かれた初期の実装。 |
||
+ | * {{Pkg|shadowsocks-rust}} — Rust で書かれた最新の積極的に開発されている実装。 |
||
+ | * {{AUR|go-shadowsocks2}}, {{AUR|shadowsocks-go}} — Go で書かれた実装。 |
||
+ | * {{AUR|shadowsocks-libev-static}} — C で書かれた実装。現在は開発されておらず、''shadowsocks-rust'' に取って代わられています。 |
||
== 設定 == |
== 設定 == |
||
− | Shadowsocks の設定は JSON |
+ | Shadowsocks の設定は JSON 形式のファイルで行います。詳細は [https://github.com/shadowsocks/shadowsocks/wiki/Configuration-via-Config-File Configuration via Config File] を参照してください。 |
+ | {{Tip| |
||
− | {{hc|/etc/shadowsocks/example.json|{ |
||
+ | * 複数のサーバー IP を指定するには、以下の構文を使用できます {{ic|"server":["1.1.1.1","2.2.2.2"],}}。 |
||
− | "server":"my_server_ip", |
||
+ | * マシン上で最速の方法を見つけるには、スクリプト [https://raw.githubusercontent.com/shadowsocks/shadowsocks-libev/0437e05aa8ec7f36f1eeb8c366dfd2b2b3b0288b/scripts/iperf.sh iperf.sh] を使用してベンチマークできます。}} |
||
− | "server_port":8388, |
||
− | "local_address": "127.0.0.1", |
||
− | "local_port":1080, |
||
− | "password":"mypassword", |
||
− | "timeout":300, |
||
− | "method":"aes-256-cfb", |
||
− | "fast_open": false, |
||
− | "workers": 1 |
||
− | } |
||
− | }} |
||
+ | == 使用方法 == |
||
− | {{Tip|複数のサーバー IP を指定するときは、{{ic|"server":["1.1.1.1","2.2.2.2"],}} と指定してください。}} |
||
+ | === クライアント === |
||
− | {| class="wikitable" |
||
− | ! 名前 !! 説明 |
||
− | |- |
||
− | | server || サーバーが listen するアドレス |
||
− | |- |
||
− | | server_port || サーバーのポート |
||
− | |- |
||
− | | local_address || ローカルマシンが listen するアドレス |
||
− | |- |
||
− | | local_port || ローカルマシンのポート |
||
− | |- |
||
− | | password || 暗号化に使用するパスワード |
||
− | |- |
||
− | | timeout || 秒数 |
||
− | |- |
||
− | | method || デフォルト: "aes-256-cfb"。[https://github.com/shadowsocks/shadowsocks/wiki/Encryption Encryption] を参照。 |
||
− | |- |
||
− | | fast_open || [https://github.com/clowwindy/shadowsocks/wiki/TCP-Fast-Open TCP-Fast-Open] を使用するかどうか (true / false) |
||
− | |- |
||
− | | workers || ワーカーの数 |
||
− | |} |
||
+ | {{Warning|{{Pkg|udns}} パッケージは DNS のスタブリゾルバとして使用されます。クライアントアプリケーション(ブラウザなど)の DNS リクエスト漏れを防ぐために、さらにアプリケーションを使用する必要があります。例えば、[[privoxy]] やクライアント上の完全な DNS リゾルバなどです。[https://github.com/shadowsocks/shadowsocks-libev/issues/1542] [https://github.com/shadowsocks/shadowsocks-libev/issues/1641]}} |
||
− | ログ出力レベルを調整したい場合、{{ic|"verbose": ''value''}} オプションを追加します。以下の値のどれかを使ってください: |
||
− | * 2: 全てをログ出力 |
||
− | * 1: デバッグ |
||
− | * 0: デフォルト |
||
− | * -1: 警告 |
||
− | * -2: エラー |
||
− | |||
− | === クライアント === |
||
==== コマンドラインから使う ==== |
==== コマンドラインから使う ==== |
||
+ | クライアントは {{ic|ss-local}}(''shadowsocks-libev'') または {{ic|sslocal}}(''shadowsocks'') コマンドで起動します。{{man|1|ss-local}}{{Dead link|2023|04|22}} と {{man|1|sslocal}} を参照してください。 |
||
− | {{ic|sslocal}} コマンドを使うことでクライアントを起動できます。設定ファイル {{ic|/etc/shadowsocks/config.json}} を使って起動するには: |
||
− | $ sslocal -c /etc/shadowsocks/config.json |
||
+ | sslocal -b 127.0.0.1:1080 --server-url ss:// |
||
− | または、コマンドで設定を直接指定することも可能です: |
||
− | $ sslocal -s ''server_address'' -p ''server_port'' -l ''local_port'' -k ''password'' -m ''encryption_method'' |
||
+ | または設定ファイルを介して: |
||
− | ==== systemd を使う ==== |
||
+ | sslocal -c config.json |
||
− | Shadowsocks クライアントは {{ic|shadowsocks@.service}} のインスタンスを使って制御することができます。 |
||
+ | {{hc|config.json|<nowiki> |
||
− | 例えば、設定ファイル {{ic|/etc/shadowsocks/config.json}} を使ってサービスを[[起動]]・[[有効化]]する場合、{{ic|shadowsocks@config.service}} サービスを使ってください。 |
||
+ | { |
||
+ | "remarks": "Server name", |
||
+ | "server": "111.111.111.111", |
||
+ | "server_port": 804, |
||
+ | "local_port": 1080, |
||
+ | "method": "chacha20-ietf-poly1305", |
||
+ | "password": "server_password" |
||
+ | } |
||
+ | </nowiki>}} |
||
− | ==== |
+ | ==== デーモン管理 ==== |
+ | Shadowsocks クライアントは、{{ic|shadowsocks@.service}}(''shadowsocks'')または {{ic|shadowsocks-libev@.service}}(''shadowsocks-libev'')のインスタンスを使って [[systemctl]] で制御できます。設定ファイル {{ic|/etc/shadowsocks/''config''.json}} を使用するには、{{ic|shadowsocks-libev-server@''config''.service}} または {{ic|shadowsocks-server@''config''.service}} を[[起動]]し、[[有効化]]します。 |
||
− | {{AUR|shadowsocks-qt5}} をインストールしてください。 |
||
+ | |||
+ | また、ネットワークが立ち上がった後に {{ic|shadowsocks@}} または {{ic|shadowsocks-libev@}} のインスタンスを実行することにも興味があるかもしれません。[[systemd#ネットワークが稼働した後にサービスを実行する|ネットワークが稼働した後にサービスを実行する]]を参照してください。 |
||
=== サーバー === |
=== サーバー === |
||
− | ==== コマンドラインから |
+ | ==== コマンドラインから ==== |
− | サーバーは {{ic|ssserver}} コマンドで起動します。 |
+ | サーバーは {{ic|ss-server}}(''shadowsocks-libev'') または {{ic|ssserver}}(''shadowsocks'') コマンドで起動します。{{man|1|ss-server}} と {{man|1|ssserver}} を参照してください。 |
+ | ==== デーモン管理 ==== |
||
− | 設定ファイル {{ic|/etc/shadowsocks/config.json}} を使ってフォアグラウンドでサーバーを起動するには: |
||
− | $ ssserver -c /etc/shadowsocks/config.json |
||
+ | Shadowsocks サーバーは、{{ic|shadowsocks-rust-server@.service}}(''shadowsocks-rust'') または {{ic|shadowsocks-server@.service}}(''shadowsocks'')のインスタンスを使って制御できます。設定ファイル {{ic|/etc/shadowsocks/''config''.json}} を使用するには、{{ic|shadowsocks-rust-server@''config''.service}} または {{ic|shadowsocks-server@''config''.service}} を[[起動]]し、[[有効化]]します。 |
||
− | バックグラウンドで実行するには: |
||
− | {{bc| |
||
− | $ ssserver -c /etc/shadowsocks/config.json -d start |
||
− | $ ssserver -c /etc/shadowsocks/config.json -d stop}} |
||
+ | Shadowsocks を特権ポート({{ic|1024}} 未満)にバインドするには、サーバーを root ユーザーとして起動する必要があります: |
||
− | ==== systemd を使う ==== |
||
− | |||
− | Shadowsocks サーバーは {{ic|shadowsocks-server@.service}} のインスタンスを使って制御することができます。 |
||
− | |||
− | 例えば、設定ファイル {{ic|/etc/shadowsocks/config.json}} を使ってサービスを[[起動]]・[[有効化]]する場合、{{ic|shadowsocks-server@config.service}} サービスを使ってください。 |
||
− | |||
− | Shadowsocks で特権ポート (1024 以下) を使うには、root でサーバーを起動する必要があります: |
||
{{hc|/etc/systemd/system/shadowsocks-server@.service.d/start-as-root.conf|<nowiki> |
{{hc|/etc/systemd/system/shadowsocks-server@.service.d/start-as-root.conf|<nowiki> |
||
102行目: | 73行目: | ||
User=root |
User=root |
||
</nowiki>}} |
</nowiki>}} |
||
+ | |||
+ | == ヒントとコツ == |
||
+ | |||
+ | === パフォーマンスの最適化 === |
||
+ | |||
+ | * {{ic|443}} などの一般的なポートを使用します。[[wikipedia:Great Firewall|グレート・ファイアウォール]] は、負荷を減らすために比較的少ない一般的なポートをチェックします。 |
||
+ | * [[sysctl#TCP Fast Open を有効にする|TCP Fast Open を有効にする]]。 |
||
+ | * [[sysctl#BBR を有効にする|BBR を有効にする]]。 |
||
+ | * ''shadowsocks'' の速度を上げるために {{Pkg|python-gevent}} をインストールします。 |
||
+ | * カーネルパラメータを最適化します。詳細は [https://github.com/shadowsocks/shadowsocks/wiki/Optimizing-Shadowsocks Optimizing Shadowsocks] を参照してください。 |
||
=== 暗号化 === |
=== 暗号化 === |
||
+ | [https://shadowsocks.org/guide/aead.html AEAD Ciphers]{{Dead link|2023|05|20|status=404}} を参照してください。 |
||
− | {{Pkg|python2-m2crypto}} パッケージをインストールすると暗号化が少しだけ高速になります。 |
||
− | + | {{Pkg|python-m2crypto}} パッケージをインストールすると、暗号化が少し速くなります。 |
|
+ | |||
+ | [[wikipedia:Salsa20|Salsa20]] または [[wikipedia:ChaCha20|ChaCha20]] 暗号を使用するには、{{Pkg|libsodium}} パッケージをインストールします。 |
||
== 参照 == |
== 参照 == |
||
114行目: | 97行目: | ||
* [https://pypi.python.org/pypi/shadowsocks Python パッケージ] |
* [https://pypi.python.org/pypi/shadowsocks Python パッケージ] |
||
* [https://github.com/shadowsocks/shadowsocks/wiki GitHub wiki] |
* [https://github.com/shadowsocks/shadowsocks/wiki GitHub wiki] |
||
− | * [https://github.com/shadowsocks-backup/shadowsocks Backup GitHub project] ( |
+ | * [https://github.com/shadowsocks-backup/shadowsocks Backup GitHub project] (元のプロジェクトは 2015 年 8 月に「規制に従って削除」されました) |
+ | |||
+ | {{TranslationStatus|Shadowsocks|2024-07-05|808135}} |
2024年7月5日 (金) 20:40時点における最新版
関連記事
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
(shadowsocks-libev) または ssserver
(shadowsocks) コマンドで起動します。ss-server(1) と ssserver(1) を参照してください。
デーモン管理
Shadowsocks サーバーは、shadowsocks-rust-server@.service
(shadowsocks-rust) または shadowsocks-server@.service
(shadowsocks)のインスタンスを使って制御できます。設定ファイル /etc/shadowsocks/config.json
を使用するには、shadowsocks-rust-server@config.service
または shadowsocks-server@config.service
を起動し、有効化します。
Shadowsocks を特権ポート(1024
未満)にバインドするには、サーバーを root ユーザーとして起動する必要があります:
/etc/systemd/system/shadowsocks-server@.service.d/start-as-root.conf
[Service] User=root
ヒントとコツ
パフォーマンスの最適化
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 月に「規制に従って削除」されました)