SOCKS는 클라이언트와 서버 간의 연결을 보호하는 데 도움이 되는 인터넷 프로토콜 유형인 "Socket Secure"의 약어입니다. 이는 TCP/IP 수준 프로토콜입니다. 즉, IP, TCP 및 UDP와 동일한 계층에 위치합니다. SOCKS는 TCP/IP 상단과 HTTP 및 FTP와 같은 애플리케이션 수준 프로토콜 아래에서 수평 레이어 역할을 합니다. 클라이언트가 일반적으로 방화벽이나 NAT를 통해 다른 네트워크의 서버에 있는 네트워크 리소스에 액세스할 수 있도록 설계되었습니다.
SOCKS 프로토콜은 1990년 SSC의 소프트웨어 엔지니어인 David Koblas에 의해 개발되었으며 이후 1996년에 IETF(Internet Engineering Task Force) RFC(Request for Comment) 표준이 되었습니다. 그 이후로 프로토콜의 여러 버전이 개발되었으며 현재 SOCKS 버전 5(SOCKS5)가 가장 많이 사용됩니다. 이전 버전과 달리 SOCKS5는 인증을 지원합니다. 즉, 사용자는 서버에 액세스하려면 유효한 사용자 이름과 비밀번호 조합을 제공해야 합니다. 또한 UDP 및 IPv6에 대한 지원을 제공하므로 더 빠른 연결과 더욱 강력한 보안이 가능합니다.
SOCKS의 주요 용도는 클라이언트가 보안 서버의 리소스에 액세스할 수 있도록 하는 것입니다. 또한 클라이언트가 특정 방화벽 및 NAT(네트워크 주소 변환) 장치를 우회할 수 있습니다. 예를 들어, 사용자가 다른 네트워크에 있는 인터넷 애플리케이션이나 서비스에 액세스하려는 경우 SOCKS 서버를 사용하여 그렇게 할 수 있습니다. 서버는 클라이언트의 요청을 암호화하고 원격 서비스로 라우팅하는 보안 "터널" 역할을 합니다. 그런 다음 데이터는 터널을 통해 이동하고 동일한 보안 연결을 통해 클라이언트로 반환됩니다.
SOCKS 프로토콜은 네트워크 보안에 사용되는 것 외에도 익명 웹 검색에도 일반적으로 사용됩니다. SOCKS 프록시를 사용하면 사용자가 자신의 IP 주소와 위치를 마스킹하여 추적하기가 더 어려워질 수 있습니다. 이는 민감한 정보가 포함된 사이트나 서비스에 액세스할 때 사용자의 익명성을 보호하는 데 도움이 됩니다.
마지막으로 SOCKS 프로토콜은 VPN(가상 사설망)에서도 사용됩니다. VPN은 SOCKS를 활용하여 요청을 적절한 서버로 라우팅할 수 있으므로 클라이언트가 서버 주소를 지정하지 않고도 서비스나 애플리케이션에 액세스할 수 있습니다. VPN은 모든 연결이 보안 터널을 통해 이루어지도록 보장하므로 원격 서버에 연결할 때 특히 유용합니다.