「Trojan」の版間の差分
(→サーバー) |
(Update Related) |
||
| (同じ利用者による、間の20版が非表示) | |||
| 1行目: | 1行目: | ||
[[Category:プロキシサーバー]] |
[[Category:プロキシサーバー]] |
||
[[en:Trojan]] |
[[en:Trojan]] |
||
| + | {{Related articles start}} |
||
| + | {{Related|Shadowsocks}} |
||
| + | {{Related|乱数生成}} |
||
| + | {{Related articles end}} |
||
[https://trojan-gfw.github.io/trojan/ Trojan] は金盾の突破を補助する特定不可能なシステムです。プロキシクライアントと[[プロキシ設定|プロキシサーバー]]から構成されます。 |
[https://trojan-gfw.github.io/trojan/ Trojan] は金盾の突破を補助する特定不可能なシステムです。プロキシクライアントと[[プロキシ設定|プロキシサーバー]]から構成されます。 |
||
| 22行目: | 26行目: | ||
"remote_port": 443, |
"remote_port": 443, |
||
"password": ["password1"], |
"password": ["password1"], |
||
| − | "append_payload": true, |
||
"log_level": 1, |
"log_level": 1, |
||
"ssl": { |
"ssl": { |
||
"verify": true, |
"verify": true, |
||
"verify_hostname": true, |
"verify_hostname": true, |
||
| + | "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA", |
||
| + | "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384", |
||
"cert": "", |
"cert": "", |
||
| − | "sni": " |
+ | "sni": "", |
"alpn": [ |
"alpn": [ |
||
"h2", |
"h2", |
||
| 35行目: | 40行目: | ||
"reuse_session": true, |
"reuse_session": true, |
||
"curves": "", |
"curves": "", |
||
| − | "sigalgs": "" |
||
}, |
}, |
||
"tcp": { |
"tcp": { |
||
"keep_alive": true, |
"keep_alive": true, |
||
"no_delay": true, |
"no_delay": true, |
||
| − | "fast_open": |
+ | "fast_open": false, |
| − | "fast_open_qlen": |
+ | "fast_open_qlen": 20 |
} |
} |
||
} |
} |
||
| 65行目: | 69行目: | ||
"key": "/path/to/private.key", |
"key": "/path/to/private.key", |
||
"key_password": "", |
"key_password": "", |
||
| − | "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA- |
+ | "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA", |
| + | "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384", |
||
"prefer_server_cipher": true, |
"prefer_server_cipher": true, |
||
"alpn": [ |
"alpn": [ |
||
| 71行目: | 76行目: | ||
], |
], |
||
"reuse_session": true, |
"reuse_session": true, |
||
| − | " |
+ | "curves": "P-256", |
| − | "curves": "", |
||
| − | "sigalgs": "", |
||
"dhparam": "" |
"dhparam": "" |
||
}, |
}, |
||
| 79行目: | 82行目: | ||
"keep_alive": true, |
"keep_alive": true, |
||
"no_delay": true, |
"no_delay": true, |
||
| − | "fast_open": |
+ | "fast_open": false, |
| − | "fast_open_qlen": |
+ | "fast_open_qlen": 20 |
} |
} |
||
} |
} |
||
2020年9月15日 (火) 23:37時点における最新版
関連記事
Trojan は金盾の突破を補助する特定不可能なシステムです。プロキシクライアントとプロキシサーバーから構成されます。
目次
インストール
Trojan は trojan パッケージでインストールすることができます。
設定
Trojan は適切に設定を行わないと動作しません。設定フォーマットとしては JSON が使われます。設定は全て /etc/trojan/ で行います。設定ファイルの各フィールドの詳しい説明は こちら を参照。また、便利な設定ジェネレータが こちら に存在します。
クライアント
クライアントの設定例:
/etc/trojan/config.json
{
"run_type": "client",
"local_addr": "127.0.0.1",
"local_port": 1080,
"remote_addr": "example.com",
"remote_port": 443,
"password": ["password1"],
"log_level": 1,
"ssl": {
"verify": true,
"verify_hostname": true,
"cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA",
"cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
"cert": "",
"sni": "",
"alpn": [
"h2",
"http/1.1"
],
"reuse_session": true,
"curves": "",
},
"tcp": {
"keep_alive": true,
"no_delay": true,
"fast_open": false,
"fast_open_qlen": 20
}
}
サーバー
サーバーの設定例:
/etc/trojan/config.json
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"password1",
"password2"
],
"log_level": 1,
"ssl": {
"cert": "/path/to/certificate.crt",
"key": "/path/to/private.key",
"key_password": "",
"cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA",
"cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
"prefer_server_cipher": true,
"alpn": [
"http/1.1"
],
"reuse_session": true,
"curves": "P-256",
"dhparam": ""
},
"tcp": {
"keep_alive": true,
"no_delay": true,
"fast_open": false,
"fast_open_qlen": 20
}
}
TLS 証明書
Trojan を使うには TLS 証明書と秘密鍵が必要です。Let's Encrypt のフリー証明書を使うか こちら に書かれているように自己署名証明書を使うことができます (非推奨)。用意できたら cert, key, key_password フィールドを適用に設定してください。
TCP Fast Open
サーバー側で TCP Fast Open を使うには、以下のようにオンにする必要があります:
# echo 3 > /proc/sys/net/ipv4/tcp_fastopen
偽装
Trojan サーバーは TLS 上で他のサービスに偽装することができ、アクティブ測定を回避できます。例えば、nginx でウェブサーバーを立ち上げて remote_addr と remote_port フィールドをサーバーのアドレスとポートに設定してください。
実行
Systemd サービス
Trojan は trojan.service と trojan@.service で制御できます。例えば、設定ファイル /etc/trojan/xxx.json を使って Trojan を起動・有効化したい場合:
# systemctl start trojan@xxx # systemctl enable trojan@xxx
/etc/trojan/config.json を使用する場合:
# systemctl start trojan # systemctl enable trojan
手動
Trojan は以下のコマンドを使ってシェルで起動することもできます:
$ trojan /etc/trojan/config.json
/etc/trojan/config.json は他の設定ファイルに置き換えることができます。Trojan はログを標準エラーに出力するため、ログを記録したい場合はリダイレクトしてください