Skip to content

SOCKS4 & SOCKS5 Proxy

Every Proxy provides a single SOCKS server implementation that supports both:

  • SOCKS4
  • SOCKS5

The server automatically negotiates the protocol version during the client handshake.

This is a TCP forwarding proxy.

UDP forwarding is not supported.


Overview

SOCKS (Socket Secure) is a transport-level proxy protocol used to forward TCP connections between a client and a destination server.

Unlike an HTTP proxy, a SOCKS proxy does not interpret HTTP traffic. It forwards raw TCP connections after a successful handshake.

Every Proxy forwards traffic using the Android device’s active network connection (Wi-Fi or mobile data).

No root access is required.


Protocol Support

SOCKS4

Supported:

  • TCP CONNECT command
  • IPv4 destination addresses
  • No authentication

SOCKS4 relies on client-side DNS resolution.


SOCKS5

Supported:

  • TCP CONNECT command
  • IPv4 destination addresses
  • Domain name support (client sends hostname)
  • Username/Password authentication (basic)

Not supported:

  • UDP ASSOCIATE command
  • BIND command
  • Advanced authentication methods

SOCKS5 authentication uses the standard username/password mechanism defined in the protocol.


Feature Summary

Feature SOCKS4 SOCKS5 Every Proxy
TCP CONNECT Yes Yes Yes
Domain name support No Yes Yes (v5)
Username/Password auth No Yes Yes (v5)
UDP ASSOCIATE No Yes No
BIND No Yes No

Every Proxy implements the commonly used TCP CONNECT workflow for both protocol versions.


How It Works

  1. Client connects to the SOCKS port.
  2. Protocol version is negotiated (SOCKS4 or SOCKS5).
  3. If SOCKS5 and authentication is enabled, credentials are validated.
  4. Client sends a CONNECT request.
  5. Every Proxy establishes a TCP connection to the target server.
  6. Traffic is forwarded bidirectionally until the connection closes.

The proxy does not inspect or modify application data.

Encrypted protocols (such as HTTPS) remain encrypted end-to-end.


Configuration

  1. Open Every Proxy on your Android device.
  2. Enable the SOCKS server.
  3. (Optional) Enable username/password authentication.
  4. Note the IP address and port displayed.
  5. Configure your client application:

    • Proxy type: SOCKS4 or SOCKS5
    • Host: Android device IP address
    • Port: Port shown in the app
    • Username/Password (if enabled)

Traffic will then be forwarded through your Android device’s active network connection.


Limitations

  • TCP forwarding only
  • No UDP support
  • No BIND support
  • No advanced authentication mechanisms
  • No traffic inspection or decryption
  • Does not modify Android system routing

The SOCKS implementation is designed for straightforward TCP proxying.


For HTTP-based proxying, see the HTTP Proxy documentation.
For automatic proxy configuration across devices, see the PAC Server documentation.