Skip to content

HTTP / HTTPS

Potatso が対応する HTTP / HTTPS プロキシのオプション、リンク、機能。

Updated Markdown で表示

HTTP プロキシは、HTTP の CONNECT リクエストを受けて、代わりに接続を開くサーバです。HTTPS プロキシは、同じサーバに TLS 経由で接続するもので、プロキシまでの接続も暗号化されます。Potatso はどちらにも、ユーザ名とパスワードの有無にかかわらず接続できます。

HTTP プロキシが運べるのは TCP だけです。そのほかの通信がどうなるかは、UDP を参照してください。

HTTP / HTTPS プロキシは、手動、http:// または https:// リンク、または次のものからの読み込みで追加できます。

  • Clash または Mihomo のサブスクリプション(type: http)、
  • Surge の構成(http と https)、
  • Xray または V2Ray の構成(http アウトバウンド)。

HTTPS プロキシを手動で追加するには、HTTP を選び、TLS をオンにします。

設定

設定 説明
サーバ、ポート プロキシのアドレスとポート。IPv6 アドレスも使えます。
ユーザ名、パスワード 任意。Basic 認証で送信されます。
TLS HTTPS プロキシではオン。
サーバ名 HTTPS のみ、任意。TLS ハンドシェイクで送信され、証明書の照合に使われる名前。空欄の場合はサーバのアドレスを使います。
証明書の検証をスキップ HTTPS のみ。あらゆる証明書を受け入れます。テストにのみ使用してください。
証明書のピン HTTPS のみ、任意。プロキシの証明書の SHA-256 フィンガープリント(16 進数 64 桁)。ピンを設定すると、Potatso は自己署名証明書を含め、ピンに一致する証明書だけを受け入れます。

パスワードには、: や ASCII 以外の文字を含め、あらゆる文字を使えます。ユーザ名に : は使えません。

カスタムヘッダー

Clash、Mihomo、Xray の構成では、プロバイダが指定する User-Agent など、CONNECT リクエストにヘッダーを追加できます。Potatso はプロキシを読み込むときにそれらを保持し、すべての接続で送信します。Host ヘッダーは、Potatso が送信するものを置き換えます。アプリ内でヘッダーを追加・編集することはできません。

証明書

HTTPS プロキシには、デバイスが信頼する証明書が必要です。ただし、証明書のピンを設定するか、証明書の検証をスキップをオンにした場合は除きます。

Potatso は次のものに対応していません。

  • HTTPS プロキシのカスタム CA 証明書:代わりにプロキシの証明書をピン留めしてください、
  • TLS クライアント証明書(Clash の certificate と private-key):これが必要なプロキシは、Potatso は読み込みません、
  • ALPN のリスト:Potatso はプロキシとは常に HTTP/1.1 でやり取りします。

UDP

HTTP プロキシは TCP しか運べないため、Potatso は UDP を HTTP プロキシに送りません。UDP は、QUIC、音声・ビデオ通話、多くのゲームで使われます。

  • ルールを使う場合、Potatso は UDP を HTTP / HTTPS プロキシに送るルールをスキップし、次に一致するルールが転送先を決めます。ほかのどのルールにも一致しない UDP は、直接送られます。
  • グローバルモードでは、すべての通信がプロキシを経由しなければならないため、UDP は動作しません。

UDP もプロキシ経由にするには、SOCKS5 や Shadowsocks のように、UDP を運べるプロトコルのサーバを使ってください。

機能の対応状況

機能 対応
IPv4、IPv6、ドメインの宛先への CONNECT トンネル(RFC 9110 §9.3.6) ✅
Basic 認証(RFC 7617)、UTF-8 のパスワード ✅
Digest 認証(RFC 7616) ❌
HTTPS プロキシ(TLS 上の HTTP) ✅ サーバ名、証明書のピン、証明書の検証のスキップに対応
カスタムの CONNECT ヘッダー ✅ 読み込み時
IPv6 のプロキシアドレス ✅
HTTP/2 CONNECT(RFC 9113 §8.5) ❌
HTTP/3 CONNECT(RFC 9114 §4.4) ❌
プロキシ経由の UDP(CONNECT-UDP、RFC 9298) ❌
CONNECT を使わない平文 HTTP の転送(absolute-form のリクエスト) ❌ Potatso はすべての接続で CONNECT を使います
TLS クライアント証明書、カスタム CA、ALPN ❌

対応しているすべての機能は、実際のプロキシサーバ(tinyproxy、sing-box、Xray、Mihomo)に対してテスト済みです。

サーバの CONNECT ポートを使ってください。通常の Web リクエストを転送するだけの Web 用ポートは使えません。プロキシによっては、ポート 443 への CONNECT しか許可しません。一部のサイトしかプロキシ経由で表示できない場合は、CONNECT のポートを制限していないか、プロバイダに確認してください。

http:// または https:// リンクは、1 行にプロキシ全体の情報をまとめたものです。

http://user:password@host:port#name
https://user:password@host:port?sni=…&insecure=1#name
部分 説明
user:password 任意。パスワード内の :、@、その他の特殊文字はパーセントエンコードします。たとえば p:ss は p%3Ass と書きます。
host プロキシのアドレス。IPv6 アドレスは [2001:db8::1] のように角括弧で囲みます。
port プロキシのポート。
sni HTTPS のみ、任意。サーバ名。Potatso は peer と servername も読み取ります。
insecure HTTPS のみ、任意。1 で「証明書の検証をスキップ」がオンになります。Potatso は allowInsecure と skip-cert-verify も読み取ります。
name 任意。Potatso でのプロキシ名。

リンクには、証明書のピンやカスタムヘッダーを含められません。Potatso は、:// と # の間のすべてが Base64 でエンコードされた、古い形式も読み込めます。

http://base64(user:password@host:port)#name

パスワードなしのプロキシ:

http://proxy.example.com:8080#Open

ユーザ名 alice、パスワード s3cret のプロキシ:

http://alice:s3cret@proxy.example.com:8080#Basic

パスワード p:ss wörd をパーセントエンコードしたもの:

http://alice:p%3Ass%20w%C3%B6rd@proxy.example.com:8080#Encoded

HTTPS プロキシ:

https://alice:s3cret@proxy.example.com:443#TLS

IP アドレスで接続し、証明書の名前が proxy.example.com の HTTPS プロキシ:

https://alice:s3cret@203.0.113.10:443?sni=proxy.example.com#SNI

自己署名証明書の HTTPS プロキシ:

https://proxy.example.com:443?insecure=1#Self-signed

IPv6 アドレスのプロキシ:

http://[2001:db8::1]:8080#IPv6

基本的なプロキシの古い形式:

http://YWxpY2U6czNjcmV0QHByb3h5LmV4YW1wbGUuY29tOjgwODA#Legacy
ナビゲーション

Type to search…

↑↓ navigate↵ selectEsc close