「Trojan」の版間の差分
(→クライアント) |
(Update Related) |
||
(同じ利用者による、間の11版が非表示) | |||
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] は金盾の突破を補助する特定不可能なシステムです。プロキシクライアントと[[プロキシ設定|プロキシサーバー]]から構成されます。 |
||
23行目: | 27行目: | ||
"password": ["password1"], |
"password": ["password1"], |
||
"log_level": 1, |
"log_level": 1, |
||
− | "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305:SHA256", |
||
− | "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA", |
||
"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": "", |
||
41行目: | 45行目: | ||
"no_delay": true, |
"no_delay": true, |
||
"fast_open": false, |
"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 |
+ | "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384", |
− | "prefer_server_cipher": |
+ | "prefer_server_cipher": true, |
"alpn": [ |
"alpn": [ |
||
"http/1.1" |
"http/1.1" |
||
], |
], |
||
"reuse_session": true, |
"reuse_session": true, |
||
− | " |
+ | "curves": "P-256", |
− | "curves": "", |
||
− | "sigalgs": "", |
||
"dhparam": "" |
"dhparam": "" |
||
}, |
}, |
||
80行目: | 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 はログを標準エラーに出力するため、ログを記録したい場合はリダイレクトしてください