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#EncodedHTTPS プロキシ:
https://alice:s3cret@proxy.example.com:443#TLSIP アドレスで接続し、証明書の名前が 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-signedIPv6 アドレスのプロキシ:
http://[2001:db8::1]:8080#IPv6基本的なプロキシの古い形式:
http://YWxpY2U6czNjcmV0QHByb3h5LmV4YW1wbGUuY29tOjgwODA#Legacy