SOCKS4 & SOCKS5 Proxy
Every Proxy provides a versatile SOCKS server that automatically negotiates between SOCKS4 and SOCKS5 protocols. It acts as a transparent TCP relay, allowing your Android device to forward raw network traffic from other devices.
Technical Overview
Unlike an HTTP proxy, SOCKS is a transport-level protocol. It does not interpret or "look inside" your web traffic; it simply establishes a bridge for raw TCP streams.
- Auto-Negotiation: A single listening port handles both SOCKS4 and SOCKS5 requests seamlessly.
- TCP Relay: Every Proxy established a direct outbound connection on behalf of the client.
- User-Space Operation: Runs entirely without root permissions or system-level routing changes.
UDP Support
This implementation supports TCP CONNECT only. UDP forwarding (UDP ASSOCIATE) and the BIND command are not currently supported.
Protocol Comparison
| Feature | SOCKS4 | SOCKS5 | Every Proxy Support |
|---|---|---|---|
| TCP CONNECT | Full support | ||
| IPv4 Support | Full support | ||
| Domain Resolution | Handled by Android (v5) | ||
| Authentication | Username/Password (v5) | ||
| UDP Forwarding | Not supported |
Configuration & Usage
1. Enable the Server
Toggle the SOCKS Proxy switch on the home screen.
- Host: The IP the proxy is bound to (e.g.,
0.0.0.0). - Port: The listening port (default is usually
1080). - Auth: (Optional) Enable Basic Authentication via the Edit icon to require a username and password.
- IP Addresses The IPs currently assigned to the device.
2. Client Setup
Configure your client application (e.g., Telegram, Firefox, or a gaming console) with the following:
- Proxy Type: SOCKS5 (Recommended) or SOCKS4.
- Address/Host: Your Android device IP.
- Port: The port shown in Every Proxy.
- Username/Password: Required only if authentication is enabled in the app.
Developer Tools
Having trouble with client connections? The Developer Level upgrade adds a real-time Session Log and Connections Dialog to help you debug handshakes and monitor active sockets. Learn more about Developer Features
When to use SOCKS vs. HTTP
-
General TCP Traffic
SOCKS is ideal for non-web applications like SSH, FTP, or messaging apps that don't use standard HTTP protocols.
-
Remote DNS Resolution
Using SOCKS5 allows the client to pass the "hostname" (e.g.,
google.com) to Every Proxy, which then resolves the IP on the Android device. This is useful for bypassing local DNS restrictions. -
Encrypted Streams
Because SOCKS is a raw relay, it handles SSL/TLS traffic (like HTTPS) perfectly without any risk of interception or certificate errors.
Important Considerations
- Client DNS: SOCKS4 requires the client to resolve the IP address before connecting. If you are trying to bypass DNS filters, always use SOCKS5.
- No Inspection: Every Proxy does not cache, filter, or modify the data being sent. It is a "dumb" relay focused on speed and compatibility.
- Developer Tools: Use the Session Log (Developer Level IAP) to see if a client is failing at the authentication stage or if the destination host is unreachable.
Pro Tip: PAC Server
If you are configuring an iPhone or Mac, consider using the PAC Server in conjunction with SOCKS for a more "set-and-forget" experience. View PAC Documentation.