VLESS サーバは、ユーザ ID(UUID)、セキュリティ(なし、TLS、REALITY)、および WebSocket や gRPC など、接続を運ぶトランスポートで表されます。さらに、プロキシ経由の HTTPS 通信に現れる「TLS の中の TLS」というパターンを隠す Vision フローや、Xray のポスト量子暗号化レイヤーである VLESS Encryption も使えます。Potatso は、これらすべての設定に対応していれば、サーバに接続します。プロバイダが示す設定、またはサーバの vless:// リンクを見ながら、以下の表でサーバの設定を確認してください。
VLESS サーバは、手動、vless:// リンク、または次のものからの読み込みで追加できます。
- Clash または Mihomo のサブスクリプション、
- Xray または V2Ray の構成。
Potatso は、sing-box の構成からの VLESS サーバの読み込みにはまだ対応していません。代わりに、サーバの vless:// リンクを使ってください。
以下に挙げる対応済みの設定は、すべて実際の Xray と sing-box のサーバに対してテスト済みです。
ユーザ ID
ユーザ ID は通常、3971e1b2-18a3-4f83-8fa6-bf9b142ee258 のような UUID です。Xray サーバは、30 文字以内のそれ以外のテキストも ID として受け付け、どのクライアントでも同じ方法で UUID に変換します。Potatso も同じなので、プロバイダが示すとおりの ID をそのまま使ってください。
トランスポート
| トランスポート | リンクの type |
対応 | テストに使用したもの |
|---|---|---|---|
| トランスポートなし(raw TCP) | tcp、raw、または指定なし |
✅ | Xray、sing-box |
| WebSocket | ws |
✅ Early Data の有無は問いません | Xray、sing-box |
| gRPC | grpc |
✅ | Xray、sing-box |
| HTTP Upgrade | httpupgrade |
✅ | Xray、sing-box |
| XHTTP | xhttp、splithttp |
✅ stream-one と auto モードで |
Xray |
| HTTP/2 | http または h2 |
✅ | sing-box |
| mKCP | kcp |
❌ | |
| QUIC | quic |
❌ | |
| HTTP ヘッダー難読化付きの TCP | headerType=http を指定した tcp |
❌ |
どのトランスポートも、TLS の有無にかかわらず、UDP でも動作します。Potatso は、対応していないトランスポートを使うサーバを読み込みません。
Xray は HTTP/2 と QUIC を提供しなくなりました。これらを使っていた Xray サーバは、現在 XHTTP を使っています。
XHTTP
XHTTP(旧 SplitHTTP)には複数のモードがあります。Potatso は、接続全体を 1 つの HTTP リクエストとして送ります(stream-one)。Xray サーバは、デフォルトの auto モードと、stream-one、stream-up モードでこれを受け付けるので、mode=auto またはモード指定なしのリンクで動作します。
Potatso は、クライアントの packet-up と stream-up モードには対応しておらず、それを要求するリンクは読み込みません。XHTTP リンクの extra パラメータには対応しておらず、Potatso は無視します。Potatso は TLS または REALITY を使う XHTTP サーバを編集できます。TLS なしで読み込んだ XHTTP サーバも動作します。
セキュリティ
| セキュリティ | リンクの security |
対応 |
|---|---|---|
| なし | none、または指定なし |
✅ サーバが VLESS Encryption を使わない限り、通信は暗号化されません。 |
| TLS | tls |
✅ |
| REALITY | reality |
✅ トランスポートなし、gRPC、XHTTP の場合 |
TLS 設定
| 設定 | Clash のキー | リンクのパラメータ | 対応 |
|---|---|---|---|
| サーバ名(SNI) | servername |
sni |
✅ 指定がない場合、Potatso はサーバのアドレスを使います。 |
| ALPN | alpn |
alpn |
✅ 指定がない場合、Potatso は WebSocket では http/1.1、gRPC、HTTP/2、XHTTP では h2 を送り、それ以外では何も送りません。 |
| 証明書の検証をスキップ | skip-cert-verify |
allowInsecure、insecure |
✅ |
| 証明書のピン留め(SHA-256) | fingerprint |
pcs |
✅ 証明書 1 つ |
| 別の名前で証明書を検証 | vcn |
❌ Potatso は証明書をサーバ名に対して検証します。 | |
| ブラウザフィンガープリント | client-fingerprint |
fp |
✅ chrome、firefox、safari、ios、android、edge、random。それ以外の名前は、デフォルトのハンドシェイクで接続します。 |
| Encrypted Client Hello(ECH) | ech-opts |
ech |
✅ リンクまたはサブスクリプションに ECH 構成がある場合 |
| カスタム CA 証明書 | ❌ | ||
| TLS クライアント証明書 | certificate、private-key |
❌ |
証明書の検証をオフにすると、あなたとサーバの間にいる誰でも、通信内容を読めてしまいます。サーバが自己署名証明書を使っている場合は、代わりにサーバの証明書をピン留めしてください。証明書のピンに、その証明書の SHA-256 を設定します。Potatso がピン留めできる証明書は 1 つです。pcs に複数を列挙したリンクは読み込みません。
ブラウザフィンガープリントを指定すると、接続の TLS ハンドシェイクがそのブラウザのものに見えます。サーバが対応しなければならない内容は変わりません。
REALITY
REALITY サーバは、別の Web サイトの TLS 証明書を借りるため、自前の証明書が不要です。サーバの Reality 公開鍵と Reality ショート ID をプロバイダの指定どおりに設定し、サーバ名にはサーバが借りている Web サイトを設定します。リンクの spx(スパイダーパス)は接続に必要ないため、Potatso は無視します。
REALITY にはブラウザフィンガープリントが必要です。リンクや設定にない場合、Potatso は chrome を使います。REALITY では、android や Potatso が知らない名前も chrome として接続します。
REALITY は、トランスポートなし、gRPC、XHTTP で動作します。
Vision フロー
| フロー | リンクの flow |
対応 |
|---|---|---|
| なし | なし | ✅ |
| Vision | xtls-rprx-vision |
✅ |
| Vision、UDP 443 を許可 | xtls-rprx-vision-udp443 |
✅ |
xtls-rprx-direct、xtls-rprx-splice、その他の古い XTLS フロー |
❌ Xray が削除しました |
Vision が動作するのは、トランスポートなしで、TLS または REALITY を使う場合だけです。Potatso は、別のトランスポートや TLS なしの Vision サーバを、保存も読み込みもしません。TLS の上に VLESS Encryption を重ねた場合にも動作します。
Vision では、UDP は Xray と同じ方式、つまり Xray と sing-box のサーバがどちらも受け付ける Mux.Cool で運ばれます。Xray 自身のクライアントは、ブラウザが TCP にフォールバックするよう、xtls-rprx-vision での UDP ポート 443(QUIC)への通信を拒否しますが、Potatso はどちらのフローでも運びます。
VLESS Encryption
VLESS Encryption(mlkem768x25519plus)は、Xray のポスト量子暗号化レイヤーで、VLESS 接続の下で ML-KEM-768 と X25519 の鍵交換を行います。サーバの decryption 設定に対応するクライアント用の encryption 値は、次のような形です。
mlkem768x25519plus.native.0rtt.<key>| 設定 | 対応 |
|---|---|
モード native、xorpub、random |
✅ |
1rtt と 0rtt(再開した接続) |
✅ |
| X25519 または ML-KEM-768 の鍵で認証されるサーバ | ✅ |
| トランスポートなし、TLS なし | ✅ |
| TLS の上で | ✅ Vision との併用も可 |
| TLS なしの Vision | ❌ |
Potatso は、リンク、Clash のサブスクリプション、Xray の構成にある encryption 値を保持します。サーバの設定に値を直接入力することは、まだできません。
多重化
Potatso は、1 つの VLESS 接続の上に複数の接続を通せます。Clash のサブスクリプションでは smux で設定します。
| プロトコル | Clash の smux.protocol |
サーバ | 対応 |
|---|---|---|---|
| Mux.Cool(Xray) | muxcool |
Xray、sing-box | ✅ TCP と UDP |
| sing-box の多重化 | smux、yamux、h2mux |
多重化をオンにした sing-box | ✅ パディングの有無を問わず、TCP と UDP |
Vision では、Mux.Cool が運ぶのは UDP だけで、各 TCP 接続は Xray と同様に自分の接続を保持します。sing-box の多重化は Vision では動作せず、Potatso はそれを要求する Vision サーバを読み込みません。
Xray の構成にある Xray の mux 設定は読み込まれません。
UDP
VLESS は、TCP と同じ接続の上で UDP を運びます。Clash と同様に、UDP はデフォルトでオフです。サーバが UDP を中継する場合は、サーバの設定で UDP リレーをオンにしてください。Xray と sing-box はどちらも中継します。Clash のサブスクリプションでは udp: true でオンになります。
UDP の各フローは、サーバへの専用の接続を持ち、宛先ごとに独自のフローを持ちます。Potatso は XUDP や packetaddr(リンクの packetEncoding、サブスクリプションの packet-encoding や xudp)には対応していません。サーバは、これらなしの Potatso の UDP を受け付けるため、Potatso はこの設定を無視します。
機能の対応状況
| 機能 | 対応 |
|---|---|
| VLESS プロトコルバージョン 0:TCP と UDP のコマンド | ✅ |
| UUID とテキストのユーザ ID | ✅ |
| 1 つのサーバでの複数ユーザ | ✅ それぞれ自分の ID を使用 |
Vision フロー(xtls-rprx-vision、-udp443) |
✅ Vision を参照してください |
VLESS Encryption(mlkem768x25519plus) |
✅ VLESS Encryption を参照してください |
| TLS、REALITY、ECH、証明書のピン留め、ブラウザフィンガープリント | ✅ セキュリティを参照してください |
| WebSocket、gRPC、HTTP Upgrade、HTTP/2 トランスポート | ✅ トランスポートを参照してください |
| XHTTP | stream-one と auto モード |
| mKCP、QUIC、TCP の HTTP ヘッダー難読化 | ❌ |
| Mux.Cool | ✅ |
| XUDP、packetaddr | ❌ UDP は通常の UDP コマンドを使います |
| sing-box の多重化(smux、yamux、h2mux) | ✅ |
リバースプロキシ(VLESS の reverse) |
❌ サーバ側の機能です |
vless:// リンク(Xray の共有リンク標準) |
✅ |
vless:// リンク
vless:// リンクは、1 行にサーバ全体の情報をまとめたものです。
vless://id@host:port?type=…&security=…&…#name| 部分 | 説明 |
|---|---|
id |
ユーザ ID。 |
host |
サーバのアドレス。IPv6 アドレスは [2001:db8::1] のように角括弧で囲みます。 |
port |
サーバのポート。 |
encryption |
none、または VLESS Encryption の値。 |
flow |
任意。xtls-rprx-vision または xtls-rprx-vision-udp443。 |
type |
トランスポート。 |
security |
none、tls、reality。 |
sni、alpn、fp、pcs、ech、allowInsecure |
TLS 設定。 |
pbk、sid |
REALITY の公開鍵とショート ID。 |
host、path |
WebSocket、HTTP Upgrade、HTTP/2、XHTTP の Host ヘッダーとパス。WebSocket のパスは、?ed=2048 として Early Data を運べます。 |
serviceName |
gRPC のサービス名。 |
mode |
XHTTP のモード。 |
name |
任意。Potatso でのサーバ名。 |
Potatso が VLESS サーバを共有するときは、この形式のリンクを書き出します。
例
各例は、読み込むリンクを示しています。ユーザ ID は 3971e1b2-18a3-4f83-8fa6-bf9b142ee258 です。
トランスポートなしの TLS:
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&sni=vless.example.com&type=tcp#TLSwww.example.com を借りる、Vision 付きの REALITY:
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=reality&sni=www.example.com&fp=chrome&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&type=tcp&flow=xtls-rprx-vision#REALITY-VisionCDN 経由の TLS 上の WebSocket、Early Data は 2048 バイト:
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=ws&host=cdn.example.com&path=%2Fws%3Fed%3D2048#WebSocketTLS 上の gRPC:
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=grpc&serviceName=gun#gRPCTLS 上の HTTP Upgrade:
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=httpupgrade&host=cdn.example.com&path=%2Fup#HTTPUpgradeTLS 上の XHTTP:
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=xhttp&host=cdn.example.com&path=%2Fxh&mode=auto#XHTTPTLS 上の HTTP/2:
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=http&host=cdn.example.com&path=%2Fh2#HTTP2TLS なしの VLESS Encryption:
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:8443?security=none&encryption=mlkem768x25519plus.native.0rtt.u7dtLE6KgE4mjeBK3oYdNMw6MJB47Ijr_9AG2avwSmY&type=tcp#Encryption