redsocks
Redirecteur transparent TCP vers proxy SOCKS/HTTP. Route tout le trafic réseau à travers un proxy SOCKS4/5 ou HTTP sans modifier les applications, en agissant au niveau système via la redirection iptables. Transparent TCP-to-SOCKS/HTTP-proxy redirector. Routes all network traffic through a SOCKS4/5 or HTTP proxy without modifying applications — works at the system level using iptables redirection.
↗ https://github.com/darkk/redsocksOverview
redsocks transparently redirects TCP connections through a SOCKS or HTTP proxy. Unlike proxychains (which requires prepending to each command), redsocks works at the system level using iptables — any process’s TCP traffic automatically routes through the configured proxy.
Installation
sudo apt install redsocks
Configuration
# Edit config: /etc/redsocks.conf
cat > /tmp/redsocks.conf << EOF
base {
log_debug = off;
log_info = on;
daemon = on;
redirector = iptables;
}
redsocks {
local_ip = 127.0.0.1;
local_port = 12345;
ip = 127.0.0.1; # SOCKS proxy IP
port = 1080; # SOCKS proxy port
type = socks5; # socks4, socks5, http-connect, http-relay
}
EOF
Starting redsocks
Start with config file
redsocks -c /tmp/redsocks.conf
Or use system service
sudo systemctl start redsocks
iptables Redirection Rules
Create chain for redsocks
sudo iptables -t nat -N REDSOCKS
# Don't redirect traffic to private networks (local)
sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
Redirect all TCP to redsocks listener
sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
Apply to OUTPUT (traffic from this machine)
sudo iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
Or apply to PREROUTING (traffic through this machine)
sudo iptables -t nat -A PREROUTING -p tcp -j REDSOCKS
SSH Tunnel + redsocks Example
Step 1: Create SSH SOCKS proxy
ssh -D 1080 -N -q user@pivot-host &
# Step 2: Configure redsocks to use it (port 1080)
# Edit /tmp/redsocks.conf: port = 1080
Step 3: Start redsocks
redsocks -c /tmp/redsocks.conf
# Step 4: Set iptables rules
# Now ALL processes' TCP traffic goes through SSH tunnel
Cleanup
# Remove iptables rules
sudo iptables -t nat -F REDSOCKS
sudo iptables -t nat -D OUTPUT -p tcp -j REDSOCKS
sudo iptables -t nat -X REDSOCKS
Stop redsocks
sudo pkill redsocks
Tips
- redsocks is useful when you need system-wide proxy without modifying each application
- Combine with SSH -D for transparent pivoting on Linux
- Be careful with the private network exclusions — wrong configuration causes routing loops
- proxychains is simpler for tool-by-tool proxying; redsocks for system-wide
- For Windows, use proxifier as a GUI-based equivalent
Help / Man page
redsocks [options]
-c FILE Config file (default: /etc/redsocks.conf)
-t Test config and exit
-v Verbose
Config file types:
socks4 — SOCKS4 proxy
socks5 — SOCKS5 proxy (with/without auth)
http-connect — HTTP CONNECT proxy
http-relay — HTTP relay proxy
Vue d’ensemble
redsocks redirige de manière transparente les connexions TCP à travers un proxy SOCKS ou HTTP. Contrairement à proxychains (qui nécessite d’être préfixé à chaque commande), redsocks agit au niveau système via iptables : le trafic TCP de n’importe quel processus est automatiquement routé à travers le proxy configuré.
Installation
sudo apt install redsocks
Configuration
# Éditer la config : /etc/redsocks.conf
cat > /tmp/redsocks.conf << EOF
base {
log_debug = off;
log_info = on;
daemon = on;
redirector = iptables;
}
redsocks {
local_ip = 127.0.0.1;
local_port = 12345;
ip = 127.0.0.1; # IP du proxy SOCKS
port = 1080; # Port du proxy SOCKS
type = socks5; # socks4, socks5, http-connect, http-relay
}
EOF
Démarrer redsocks
# Démarrer avec un fichier de config
redsocks -c /tmp/redsocks.conf
# Ou utiliser le service système
sudo systemctl start redsocks
Règles de redirection iptables
Créer une chaîne pour redsocks
sudo iptables -t nat -N REDSOCKS
# Ne pas rediriger le trafic vers les réseaux privés (local)
sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
Rediriger tout le TCP vers le listener redsocks
sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
Appliquer à OUTPUT (trafic issu de cette machine)
sudo iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
Ou appliquer à PREROUTING (trafic transitant par cette machine)
sudo iptables -t nat -A PREROUTING -p tcp -j REDSOCKS
Exemple tunnel SSH + redsocks
Étape 1 : créer un proxy SOCKS SSH
ssh -D 1080 -N -q user@pivot-host &
# Étape 2 : configurer redsocks pour l'utiliser (port 1080)
# Éditer /tmp/redsocks.conf : port = 1080
Étape 3 : démarrer redsocks
redsocks -c /tmp/redsocks.conf
# Étape 4 : configurer les règles iptables
# Maintenant, le trafic TCP de TOUS les processus passe par le tunnel SSH
Nettoyage
# Supprimer les règles iptables
sudo iptables -t nat -F REDSOCKS
sudo iptables -t nat -D OUTPUT -p tcp -j REDSOCKS
sudo iptables -t nat -X REDSOCKS
Arrêter redsocks
sudo pkill redsocks
Conseils
- redsocks est utile quand un proxy système-wide est nécessaire sans modifier chaque application
- Combiner avec SSH -D pour un pivoting transparent sur Linux
- Faire attention aux exclusions de réseaux privés : une mauvaise configuration provoque des boucles de routage
- proxychains est plus simple pour un proxying outil par outil ; redsocks pour un usage système-wide
- Pour Windows, utiliser proxifier comme équivalent basé sur une interface graphique
Aide / Page de manuel
redsocks [options]
-c FILE Config file (default: /etc/redsocks.conf)
-t Test config and exit
-v Verbose
Config file types:
socks4 — SOCKS4 proxy
socks5 — SOCKS5 proxy (with/without auth)
http-connect — HTTP CONNECT proxy
http-relay — HTTP relay proxy