---
title: "Trojan"
description: "Potatso が対応する Trojan のトランスポート、TLS オプション、リンク、機能。"
---

> Documentation Index
> Fetch the complete documentation index at: https://potatso.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Trojan

Trojan サーバは、**パスワード**と **TLS 設定**で表され、任意で WebSocket や gRPC など、接続を運ぶ**トランスポート**も使えます。Trojan は常に TLS（または REALITY）の中で動作するため、傍受している第三者には通常の HTTPS アクセスのように見えます。Potatso は、サーバのトランスポートと TLS 設定に対応していれば、そのサーバに接続します。プロバイダが示す設定、またはサーバの `trojan://` リンクを見ながら、以下の表でサーバの設定を確認してください。

Trojan サーバは、手動、[`trojan://` リンク](#links)、または次のものからの読み込みで追加できます。

- Clash または Mihomo のサブスクリプション、
- Xray または V2Ray の構成、
- Surge の構成。

Potatso は、sing-box の構成からの Trojan サーバの読み込みにはまだ対応していません。代わりに、サーバの `trojan://` リンクを使ってください。

## トランスポート {#transports}

| トランスポート | リンクの `type` | 対応 | テストに使用したもの |
| --- | --- | --- | --- |
| TLS のみ（トランスポートなし） | `tcp`、または指定なし | ✅ | Xray、sing-box、trojan-go |
| WebSocket | `ws` | ✅ Early Data の有無は問いません | Xray、sing-box、trojan-go |
| gRPC | `grpc` | ✅ | Xray、sing-box |
| HTTP/2 | `http` または `h2` | ✅ | sing-box |
| HTTP Upgrade | `httpupgrade` | ✅ | Xray、sing-box |
| XHTTP | `xhttp` | ❌ | |
| mKCP、QUIC | `kcp`、`quic` | ❌ | |

どのトランスポートも UDP で動作します。Potatso は、対応していないトランスポートを使うサーバを読み込みません。

Xray は HTTP/2 を提供しなくなりました。HTTP/2 を使っていた Xray サーバは現在 XHTTP を使っていますが、Potatso はまだ XHTTP に対応していません。

## TLS {#tls}

| 設定 | Clash のキー | リンクのパラメータ | 対応 |
| --- | --- | --- | --- |
| サーバ名（SNI） | `sni` | `sni`、`peer` | ✅ 指定がない場合、Potatso はサーバのアドレスを使います。 |
| ALPN | `alpn` | `alpn` | ✅ 指定がない場合、Potatso は `h2, http/1.1` を送ります。WebSocket と HTTP Upgrade では `http/1.1`、gRPC と HTTP/2 では `h2` です。 |
| 証明書の検証をスキップ | `skip-cert-verify` | `allowInsecure`、`insecure` | ✅ |
| 証明書のピン留め（SHA-256） | `fingerprint` | | ✅ |
| ブラウザフィンガープリント | `client-fingerprint` | `fp` | ✅ `chrome`、`firefox`、`safari`、`ios`、`android`、`edge`、`random`。それ以外の名前は、デフォルトのハンドシェイクで接続します。 |
| [REALITY](#reality) | `reality-opts` | `security=reality`、`pbk`、`sid` | ✅ トランスポートなし、または gRPC の場合 |
| Encrypted Client Hello（ECH） | `ech-opts` | `ech` | ✅ リンクまたはサブスクリプションに ECH 構成がある場合 |
| カスタム CA 証明書 | | | ❌ |
| TLS クライアント証明書 | `certificate`、`private-key` | | ❌ |

証明書の検証をオフにすると、あなたとサーバの間にいる誰でも、通信内容を読めてしまいます。サーバが自己署名証明書を使っている場合は、代わりにサーバの証明書をピン留めしてください。証明書のピンに、その証明書の SHA-256 を設定します。

ブラウザフィンガープリントを指定すると、接続の TLS ハンドシェイクがそのブラウザのものに見えます。サーバが対応しなければならない内容は変わりません。

### REALITY {#reality}

REALITY サーバは、別の Web サイトの TLS 証明書を借りるため、自前の証明書が不要です。サーバの **Reality 公開鍵**と **Reality ショート ID** をプロバイダの指定どおりに設定し、サーバ名にはサーバが借りている Web サイトを設定します。REALITY にはブラウザフィンガープリントが必要です。リンクや設定にない場合、Potatso は `chrome` を使います。

REALITY は、トランスポートなしと gRPC で動作します。Potatso は、それ以外のトランスポートを使う REALITY サーバを読み込みません。

## 多重化 {#mux}

Potatso は、sing-box の多重化（`smux`、`yamux`、`h2mux`）で、1 つの Trojan 接続の上に複数の接続を通せます。Clash のサブスクリプションでは `smux` で設定します。サーバ側で多重化がオンになっている必要があります。TCP も UDP も動作します。

trojan-go 独自の多重化（trojan-go サーバの `mux`）は別のプロトコルで、Potatso は対応していません。trojan-go サーバは、多重化なしでの Potatso からの接続も受け付けます。

## UDP {#udp}

Trojan は、TCP と同じ TLS 接続の上で UDP を運びます。Clash と同様に、UDP はデフォルトでオフです。サーバが UDP を中継する場合は、サーバの設定で UDP リレーをオンにしてください。Xray、sing-box、trojan-go はいずれも中継します。Clash のサブスクリプションでは `udp: true` でオンになります。

## 機能の対応状況 {#features}

| 機能 | 対応 |
| --- | --- |
| [Trojan プロトコル](https://trojan-gfw.github.io/trojan/protocol)：パスワードのハッシュ、`CONNECT` | ✅ |
| Trojan の `UDP ASSOCIATE` | ✅ |
| TLS なしの Trojan（`security=none`） | ❌ |
| 1 つのサーバでの複数ユーザ | ✅ それぞれ自分のパスワードを使用 |
| WebSocket、gRPC、HTTP/2、HTTP Upgrade トランスポート | ✅ [トランスポート](#transports)を参照してください |
| XHTTP、mKCP、QUIC トランスポート | ❌ |
| [REALITY](#reality) | ✅ トランスポートなし、または gRPC の場合 |
| ECH | ✅ |
| sing-box の多重化（smux、yamux、h2mux） | ✅ |
| trojan-go の多重化 | ❌ |
| trojan-go の Shadowsocks 暗号化（`ss-opts`、`encryption=ss;…`） | ❌ |
| Trojan を包む ShadowTLS、Restls、JLS | ❌ |
| `trojan://` と `trojan-go://` のリンク | ✅ |

対応しているすべての機能は、実際の Trojan サーバ（[Xray](https://xtls.github.io/)、[sing-box](https://sing-box.sagernet.org/)、[trojan-go](https://p4gefau1t.github.io/trojan-go/)）のうち、少なくとも 1 つに対してテスト済みです。

パスワードが間違っていると、Trojan サーバは、通常の Web サイトとして応答します（フォールバック）。そのため Potatso は接続できず、パスワードのエラーも表示しません。Trojan サーバにまったく接続できない場合は、まずパスワードを確認してください。

Potatso は、trojan-go の Shadowsocks 暗号化、または Trojan を包む ShadowTLS、Restls、JLS を使うサーバを読み込みません。それらなしで接続しても、サーバが応答しないためです。

trojan-go の機能の一部は、そのクライアントプログラム自体の設定で、Potatso は同じ役割を独自の方法で果たしています。

- ルーティング：プロファイルのルールを使ってください。
- ローカルの SOCKS5 / HTTP サーバ、フォワーディング：Potatso がデバイスの通信を自分で取り込みます。

## `trojan://` リンク {#links}

`trojan://` リンクは、1 行にサーバ全体の情報をまとめたものです。

```text
trojan://password@host:port?parameters#name
```

| 部分 | 説明 |
| --- | --- |
| `password` | パスワード（パーセントエンコード）。`@` より前のすべてがパスワードで、`:` も含まれます。 |
| `host` | サーバのアドレス。IPv6 アドレスは `[2001:db8::1]` のように角括弧で囲みます。 |
| `port` | サーバのポート。省略した場合、Potatso は 443 を使います。 |
| `name` | 任意。Potatso でのサーバ名。 |

パラメータは、Xray と v2rayN が使う形式に従います。

| パラメータ | 説明 |
| --- | --- |
| `security` | `tls`（デフォルト）または `reality`。 |
| `type` | [トランスポート](#transports)：`tcp`、`ws`、`grpc`、`http`（HTTP/2）、`httpupgrade`。 |
| `sni`、`peer` | TLS のサーバ名。 |
| `alpn` | ALPN のリスト。カンマ区切りで、パーセントエンコードします。 |
| `fp` | ブラウザフィンガープリント。 |
| `allowInsecure` | `1` で証明書の検証をオフにします。 |
| `host` | WebSocket、HTTP/2、HTTP Upgrade の HTTP `Host`。 |
| `path` | WebSocket、HTTP/2、HTTP Upgrade のパス。`/ws?ed=2048` のような WebSocket のパスは、Early Data をオンにします。 |
| `serviceName` | gRPC のサービス名。 |
| `pbk`、`sid` | REALITY の公開鍵とショート ID。 |
| `ech` | ECH 構成（Base64 エンコードしたうえでパーセントエンコード）。 |

Potatso は、`type=original`（トランスポートなし）または `type=ws` の `trojan-go://` リンクも読み込みます。trojan-go の Shadowsocks 暗号化が必要になる `encryption` パラメータを持つリンクは読み込みません。

Potatso が Trojan サーバを共有するときは、同じパラメータを持つ `trojan://` リンクを提供します。

### 例 {#link-examples}

各例は、読み込むリンクを示しています。パスワードは `secret` です。

基本的なサーバ：

```text
trojan://secret@trojan.example.com:443?sni=trojan.example.com#Basic
```

`cdn.example.com` 経由の WebSocket：

```text
trojan://secret@trojan.example.com:443?security=tls&type=ws&host=cdn.example.com&path=%2Fws#WebSocket
```

サービス名 `TrojanGun` の gRPC：

```text
trojan://secret@trojan.example.com:443?security=tls&type=grpc&serviceName=TrojanGun#gRPC
```

HTTP/2：

```text
trojan://secret@trojan.example.com:443?security=tls&type=http&host=cdn.example.com&path=%2Fh2#HTTP2
```

HTTP Upgrade：

```text
trojan://secret@trojan.example.com:443?security=tls&type=httpupgrade&host=cdn.example.com&path=%2Fup#Upgrade
```

`www.example.com` を借りる REALITY：

```text
trojan://secret@trojan.example.com:443?security=reality&sni=www.example.com&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&fp=chrome#REALITY
```

Source: https://potatso.com/docs/ja/protocols/trojan/index.mdx
