Skip to content

VLESS

Potatso が対応する VLESS のトランスポート、フロー、暗号化、TLS オプション、リンク、機能。

Updated Markdown で表示

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:// リンクは、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#TLS

www.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-Vision

CDN 経由の 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#WebSocket

TLS 上の gRPC:

vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=grpc&serviceName=gun#gRPC

TLS 上の HTTP Upgrade:

vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=httpupgrade&host=cdn.example.com&path=%2Fup#HTTPUpgrade

TLS 上の XHTTP:

vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=xhttp&host=cdn.example.com&path=%2Fxh&mode=auto#XHTTP

TLS 上の HTTP/2:

vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&type=http&host=cdn.example.com&path=%2Fh2#HTTP2

TLS なしの VLESS Encryption:

vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:8443?security=none&encryption=mlkem768x25519plus.native.0rtt.u7dtLE6KgE4mjeBK3oYdNMw6MJB47Ijr_9AG2avwSmY&type=tcp#Encryption
ナビゲーション

Type to search…

↑↓ navigate↵ selectEsc close