proxychains
Proxy network connections for applications
SYNOPSIS
proxychains [options]
Example: proxychains firefox
PARAMETERS
-f
Specifies an alternative configuration file instead of the default (e.g., /etc/proxychains.conf or ~/.proxychains/proxychains.conf).
-q
Runs in quiet mode, suppressing most output messages.
-v
Runs in verbose mode, providing more detailed output for debugging and connection tracing.
-h
Displays a help message with available command-line options.
The command or application to be executed with its network traffic routed through proxychains.
[program arguments]
Any arguments that need to be passed to the
DESCRIPTION
proxychains is a UNIX program that allows any application to transparently use a SOCKS (version 4 or 5) or HTTP proxy. It intercepts standard C library calls for network connections (like connect, sendto, recvfrom) and redirects them through a specified proxy server or a chain of multiple proxy servers. This enables applications that don't have built-in proxy support to access the internet securely and anonymously, or to bypass network restrictions. It's particularly useful for routing traffic through anonymity networks like Tor. The program works by dynamically preloading a shared library (using LD_PRELOAD on Linux) that overrides the networking functions, making the proxying transparent to the application. It's commonly used to anonymize tools or access geo-restricted content.
CAVEATS
DNS Leaks: If not configured properly (e.g., the proxy_dns option is not enabled or working), DNS requests might still leak outside the proxy chain, potentially revealing your real location.
UDP Traffic: While proxychains primarily handles TCP connections reliably, its support for UDP traffic is limited and can lead to leaks or failed connections.
Application Compatibility: Some applications with custom or low-level networking implementations might not work correctly or might bypass the proxy.
Configuration Errors: Incorrect configuration of proxy servers, chain types, or other options in proxychains.conf can lead to connection failures or expose the user's real IP address.
CONFIGURATION FILE (`PROXYCHAINS.CONF`)
The core functionality of proxychains is determined by its configuration file, typically located at /etc/proxychains.conf or ~/.proxychains/proxychains.conf. This file defines the types of proxies to use (SOCKS4, SOCKS5, HTTP), the proxy server addresses and ports, and the chaining method. Users must carefully edit this file to suit their proxy requirements, including setting proxy_dns to prevent DNS leaks.
PROXY CHAINING METHODS
proxychains supports different methods for routing traffic through multiple proxies:
strict_chain: Uses proxies in the exact order listed in the configuration file.
random_chain: Selects proxies randomly from the list for each new connection.
dynamic_chain: Similar to strict, but skips any dead or unresponsive proxies in the chain. This is often the recommended default for flexibility and reliability.
SUPPORTED PROXY TYPES
proxychains supports various proxy protocols, including SOCKS4, SOCKS5, and HTTP. SOCKS5 is generally preferred for its better support for UDP (though proxychains' UDP handling is still limited) and IPv6, offering more robust and secure proxying capabilities.
HISTORY
The original proxychains project gained popularity for its ability to transparently force network connections through proxies. Over time, it faced limitations and became less actively maintained. This led to the development of proxychains-ng (the 'next generation' version), which is now the widely used and actively maintained successor. proxychains-ng brought improvements in IPv6 support, DNS proxying, and overall stability, addressing many issues present in the original implementation. Most modern Linux distributions provide the proxychains-ng package, often simply named proxychains or proxychains4.