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): 이것이 필요한 프록시는 가져오지 않습니다.
  • 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 포트를 사용하세요. 일부 프록시는 포트 443으로만 CONNECT를 허용합니다. 프록시를 통해 일부 사이트만 열린다면 제공업체에 CONNECT 포트를 제한하는지 문의하세요.

http:// 또는 https:// 링크는 프록시 전체를 한 줄에 담습니다.

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