AnyTLS サーバは、パスワードとTLS 設定で表されます。AnyTLS は TLS の中で動作し、通信にパディングを加えるため、接続は通常の HTTPS アクセスのように見え、TLS の中にプロキシがあることを示す通常の兆候が現れません。Potatso は、サーバの TLS 設定に対応していれば、そのサーバに接続します。プロバイダが示す設定、またはサーバの anytls:// リンクを見ながら、以下の表でサーバの設定を確認してください。
AnyTLS サーバは、手動、anytls:// リンク、または次のものからの読み込みで追加できます。
- Clash または Mihomo のサブスクリプション、
- Surge の構成。
Potatso は、sing-box の構成からの AnyTLS サーバの読み込みにはまだ対応していません。代わりに、サーバの anytls:// リンクを使ってください。
TLS
| 設定 | Clash のキー | リンクのパラメータ | 対応 |
|---|---|---|---|
| サーバ名(SNI) | sni |
sni |
✅ 指定がない場合、Potatso はサーバのアドレスを使います。 |
| ALPN | alpn |
alpn |
✅ 指定がない場合、Clash と同様に Potatso は何も送りません。 |
| 証明書の検証をスキップ | skip-cert-verify |
insecure |
✅ |
| 証明書のピン留め(SHA-256) | fingerprint |
hpkp |
✅ |
| ブラウザフィンガープリント | client-fingerprint |
fp |
✅ chrome、firefox、safari、ios、android、edge、random。それ以外の名前は、デフォルトのハンドシェイクで接続します。 |
| REALITY | reality-opts |
✅ | |
| Encrypted Client Hello(ECH) | ech-opts |
✅ サブスクリプション内の ECH 構成を使うか、DNS で取得します | |
| カスタム CA 証明書 | ❌ | ||
| TLS クライアント証明書 | certificate、private-key |
❌ |
証明書の検証をオフにすると、あなたとサーバの間にいる誰でも、通信内容を読めてしまいます。サーバが自己署名証明書を使っている場合は、代わりにサーバの証明書をピン留めしてください。証明書のピンに、その証明書の SHA-256 を設定します。
ブラウザフィンガープリントを指定すると、接続の TLS ハンドシェイクがそのブラウザのものに見えます。サーバが対応していなければならない内容は変わりません。
Potatso は、TLS クライアント証明書が必要なサーバを読み込みません。サーバが接続を拒否するためです。
REALITY
REALITY サーバは、別の Web サイトの TLS 証明書を借りるため、自前の証明書が不要です。sing-box のサーバでは、REALITY を使った AnyTLS を提供できます。サーバの Reality 公開鍵と Reality ショート ID をプロバイダの指定どおりに設定し、サーバ名にはサーバが借りている Web サイトを設定します。REALITY にはブラウザフィンガープリント(chrome など)が必要です。
接続
AnyTLS は TLS 接続を再利用します。Web サイトへの接続が終わると、次の接続は新しく開くのではなく、同じ TLS 接続を使います。1 つの TLS 接続が同時に運ぶ接続は 1 つなので、複数を同時に使うと複数の TLS 接続が開かれ、あとで再利用されます。
| 設定 | Clash のキー | 対応 |
|---|---|---|
| アイドル状態の接続を確認する頻度 | idle-session-check-interval |
✅ 秒単位。デフォルトは 30 |
| アイドル状態の接続を開いたままにする時間 | idle-session-timeout |
✅ 秒単位。デフォルトは 60 |
| 開いたままにするアイドル状態の接続の数 | min-idle-session |
✅ デフォルトは 1 |
5 秒以下の値は、Clash と同様に 30 として扱われます。これらの設定は Clash のサブスクリプションから取得されます。手動またはリンクで追加したサーバには、Potatso はデフォルト値を使います。
Surge 構成の reuse=false は適用されません。AnyTLS の仕様と同様に、Potatso は常に接続を再利用します。Potatso はサーバを読み込み、警告を表示します。
パディング
AnyTLS は、プロキシの存在を示してしまう通信サイズを隠すため、すべての接続の先頭にパディングを加えます。サーバは独自のパディング方式を送ってくることがあり、Potatso は AnyTLS の定義どおり、次の TLS 接続からそれを使います。デバイス側で設定する項目はありません。
UDP
AnyTLS は、TLS 接続の中で UDP を運びます(UDP over TCP)。Clash と同様に、UDP はデフォルトでオフです。サーバが UDP を中継する場合は、サーバの設定で UDP リレーをオンにしてください。Clash のサブスクリプションでは udp: true でオンになり、Surge の構成では常にオンになります。
機能の対応状況
| 機能 | 対応 |
|---|---|
| AnyTLS プロトコル v2:パスワード、パディング、接続の再利用 | ✅ |
| サーバから送られるパディング方式 | ✅ |
| UDP over TCP | ✅ |
| アイドル状態の接続の設定 | ✅ |
| REALITY、ECH | ✅ |
| 証明書のピン留め、ブラウザフィンガープリント | ✅ |
| カスタム CA、TLS クライアント証明書 | ❌ |
anytls:// リンク |
✅ |
対応しているすべての機能は、実際の AnyTLS サーバ(anytls-go、sing-box、mihomo)のうち、少なくとも 1 つに対してテスト済みです。
パスワードが間違っていると、サーバは接続を閉じます。AnyTLS サーバにまったく接続できない場合は、まずパスワードを確認してください。
anytls:// リンク
anytls:// リンクは、1 行にサーバ全体の情報をまとめたものです。
anytls://password@host:port/?parameters#name| 部分 | 説明 |
|---|---|
password |
パスワード(パーセントエンコード)。 |
host |
サーバのアドレス。IPv6 アドレスは [2001:db8::1] のように角括弧で囲みます。 |
port |
サーバのポート。省略した場合、Potatso は 443 を使います。 |
name |
任意。Potatso でのサーバ名。 |
パラメータは anytls-go の形式に従い、一部のアプリが追加するものも加わります。
| パラメータ | 説明 |
|---|---|
sni |
TLS のサーバ名。 |
insecure |
1 で証明書の検証をオフにします。 |
alpn |
ALPN のリスト。カンマ区切りで、パーセントエンコードします。 |
fp |
ブラウザフィンガープリント。 |
hpkp |
サーバの証明書の SHA-256。 |
Potatso が AnyTLS サーバを共有するときは、同じパラメータを持つ anytls:// リンクを提供します。
例
各例は、読み込むリンクを示しています。パスワードは secret です。
基本的なサーバ:
anytls://secret@anytls.example.com:443/?sni=anytls.example.com#Basic自己署名証明書で、検証なし:
anytls://secret@203.0.113.7/?insecure=1#Self-signedChrome フィンガープリント、ALPN のリスト、ピン留めした証明書:
anytls://secret@anytls.example.com:443/?sni=anytls.example.com&alpn=h2%2Chttp%2F1.1&fp=chrome&hpkp=abababababababababababababababababababababababababababababababab#Shaped