SOCKS is a protocol that allows TCP connections to be proxied from another host. It is defined by RFC 1928. According to the RFC, a SOCKS server should be on TCP Port 1080.

SOCKS is used both locally (e.g. Tor) and with external servers (e.g. public proxies). It can be used for all TCP network protocols but it’s mostly used for HTTP and HTTPS. There are various extensions and new versions of the SOCKS protocol that allows authentication and remote DNS.

The protocol is simple and doesn’t alter the proxied data in any way after a connection is established. That means after the connection request is sent, any bytes sent to/from the server are not modified in any way and passed along as-is.