용어집

SOCKS5 프록시란 무엇인가요?

SOCKS5 프록시는 SOCKS5 프로토콜을 사용하여 클라이언트와 대상 간의 임의의 TCP 및 UDP 트래픽을 애플리케이션 계층 페이로드를 파싱하거나 수정하지 않고 전달하는 프록시 서버입니다.

SOCKS5가 HTTP 프록시와 어떻게 다른지, 왜 HTTP뿐만 아니라 모든 TCP/UDP 프로토콜을 지원하는지, 그리고 스크래퍼, 게임 클라이언트, 토렌트 사용자가 언제 SOCKS5를 선호하는지 이해합니다.

설명

SOCKS5는 RFC 1928에 정의된 전송 계층 프록시 프로토콜입니다. HTTP 요청과 응답을 이해하고 파싱하는 HTTP 프록시와 달리, SOCKS5 프록시는 더 낮은 수준에서 작동합니다. 즉, 페이로드를 검사하거나 수정하지 않고 사용자와 대상 간에 원시 TCP 또는 UDP 패킷을 전달합니다. 이는 SOCKS5 프록시가 웹 트래픽뿐만 아니라 TCP 또는 UDP 상에서 실행되는 모든 프로토콜을 전달할 수 있음을 의미합니다.

SOCKS5는 SOCKS 프록시 프로토콜의 최신 버전으로, IPv6, UDP 포워딩, 인증 방식(인증 없음, 사용자명/비밀번호, GSS-API) 지원을 추가했습니다. 대부분의 레지덴셜 및 ISP 프록시 제공업체는 클라이언트가 자신의 스택에 맞는 프로토콜을 선택할 수 있도록 HTTP와 SOCKS5 모두로 엔드포인트를 제공합니다.

HTTPS를 통한 웹 스크래핑의 경우, HTTP CONNECT 프록시와 SOCKS5 프록시는 거의 동일하게 작동합니다. 둘 다 결국 암호화된 TCP 트래픽을 터널링하게 됩니다. 클라이언트가 HTTP가 아닌 프로토콜(FTP, SMTP, IRC, BitTorrent, 게임)을 사용하거나 특별히 UDP 지원이 필요한 경우에 차이가 의미를 갖게 됩니다.

작동 방식

클라이언트가 SOCKS5 프록시에 연결하면, 인증 방법을 지정하는 작은 핸드셰이크를 전송한 다음, 대상 호스트와 포트가 포함된 CONNECT 명령을 전송합니다. 프록시는 해당 대상으로 TCP 연결을 열고, 그 시점부터는 클라이언트와 대상 사이에서 단순히 바이트를 중계합니다. HTTP 계층에 대한 인식이 없으므로, 프록시는 URL, 헤더, 응답 본문을 읽지 않습니다.

이러한 전송 계층 투명성 덕분에 SOCKS5는 모든 TCP 기반 프로토콜에서 작동합니다. UDP 지원은 별도의 UDP ASSOCIATE 흐름을 사용하는데, 클라이언트가 UDP 데이터그램을 프록시로 보내면 프록시가 이를 대상으로 전달합니다. 인증을 사용하는 경우, 초기 핸드셰이크 중 한 번만 이루어지며 전체 세션에 적용됩니다.

타입

인증된 SOCKS5 (사용자명/비밀번호)

자격 증명 기반 인증을 사용하는 SOCKS5로, 유료 프록시 서비스의 표준 모드입니다. 사용자명에는 지역 타겟팅 및 세션 매개변수가 인코딩되는 경우가 많습니다(예: `USER-country-us-session-12345`).

인증되지 않은 SOCKS5

인증이 없는 SOCKS5로, IP 기반 접근 제어만으로 충분한 사설 네트워크에서 자체 호스팅되는 내부 프록시에 주로 사용됩니다.

TLS를 사용하는 SOCKS5 / TLS 터널링 SOCKS5

TLS로 감싸진 SOCKS5로, SOCKS5 제어 채널 자체를 암호화하기 위해 프라이버시 중심의 VPN 유사 서비스에서 사용됩니다. 레지덴셜 SOCKS5는 HTTPS 대상에 대해 이미 종단 간 TLS를 통해 사용되기 때문에 상업용 프록시 서비스에서는 덜 일반적입니다.

일반적인 사용 사례

HTTP CONNECT보다 SOCKS를 선호하는 클라이언트에서의 웹 스크래핑
비HTTP 프로토콜(FTP, SMTP, IRC, IMAP)
BitTorrent 및 P2P 클라이언트
게임 및 음성 클라이언트 (UDP 지원이 중요한 경우)
SOCKS5를 지원하는 헤드리스 브라우저 및 자동화 도구
클라이언트가 HTTP를 사용하지 않는 네트워크 수준 라우팅
자주 묻는 질문

자주 묻는 질문

다음에 대한 일반적인 질문 socks5 프록시.

HTTP 프록시는 HTTP를 이해하며 애플리케이션 계층에서 작동합니다. SOCKS5 프록시는 전송 계층에서 작동하며 페이로드를 파싱하지 않고 원시 TCP/UDP를 전달합니다. HTTPS 스크래핑의 경우 그 차이는 대체로 표면적이지만(두 방식 모두 암호화된 바이트를 터널링함), 비HTTP 프로토콜을 프록시해야 할 때는 SOCKS5가 우세합니다.

일부 경우 미미합니다. SOCKS5는 HTTP 파싱 오버헤드가 없어 대용량 워크로드에서 약간의 지연 시간을 절약할 수 있습니다. 실제로는 병목 현상이 거의 항상 파싱이 아닌 네트워크 지연 시간이므로, 속도 차이는 거의 의미가 없습니다.

예. Shifter는 HTTP/HTTPS와 SOCKS5 모두를 통해 레지덴셜 및 ISP 프록시 엔드포인트를 제공합니다. 클라이언트와 도구가 가장 잘 지원하는 프로토콜을 선택할 수 있습니다. 동일한 인증 자격 증명과 지역 타겟팅이 두 프로토콜 모두에서 작동합니다.

예. SOCKS5는 UDP ASSOCIATE 명령을 통해 UDP를 지원하지만, 실제로는 대부분의 상업용 프록시 서비스가 TCP만 전달합니다. 이는 대부분의 사용 사례(웹 스크래핑, 계정 관리, 광고 검증)가 HTTPS 기반이기 때문입니다. UDP 지원은 주로 게임, 음성, 특정 커스텀 프로토콜에서 중요합니다.

본질적으로는 아닙니다. 두 프로토콜 모두 종단 간 암호화(TLS) 트래픽을 전달할 수 있고, 둘 다 인증을 사용할 수 있습니다. 프록시의 '보안성'은 대부분 프록시 프로토콜이 아니라 목적지에 HTTPS를 사용하는지 여부에서 비롯됩니다. SOCKS5는 HTTP 헤더를 추가하거나 수정하지 않기 때문에 프라이버시 목적으로 선호되기도 합니다.

예. Playwright, Puppeteer, Selenium 및 기타 헤드리스 브라우저 드라이버는 모두 launch 옵션을 통해 SOCKS5 프록시를 지원합니다. 많은 자동화 엔지니어는 헤드리스 브라우저와 함께 SOCKS5를 선호하는데, 이는 모든 브라우저 트래픽(HTTP, HTTPS, WebSockets, 폰트 등)을 프록시를 통해 균일하게 라우팅하기 때문입니다.