====== SSH ====== ===== Static Forwarding ===== Local forwarding: ssh -L8021::21 Remote forwarding (you need to set "GatewayPorts yes" in sshd_config if you want to access the port from other addresses than localhost, then "/etc/init.d/sshd reload"): ssh -R8021::21 ===== Dynamic Forwarding ===== Use another machine as a proxy, turning localhost into a SOCKS proxy, eg on port 8080: ssh [-fN] -D8080 It may be a good idea to open a ssh server on a web port (80/8080/443), because you will need to use this when you have a restricted connection, and port 22 may be forbidden as well (just add ''Port 22'' AND ''Port 80'' to sshd_config, or configure NAT port forwarding on your router, and then use ''ssh -p ...''). Then configure your apps to use it: * **Firefox** : Preferences | Advanced | Settings | Manual Proxy Configuration | SOCKS Host : localhost, Port : 8080 * **Firefox** : there are some add-ons like FoxyProxy to quickly switch between no proxy and different proxies * **Thunderbird** : Preferences | Advanced | Network & Disk space | Settings | Manual Proxy Configuration | SOCKS Host : localhost, Port : 8080 * **VLC** : ''vlc --socks="localhost:8080"'' * **Pidgin** : Tools | Preferences | Proxy | Proxy type: SOCKS 4, Host: localhost, Port: 8080 * **ssh**, **git**, **sshfs**, **scp**, **rsync** : /etc/ssh_config # just to prevent from trying to use the proxy when you want to establish the proxy: Host ProxyCommand socat STDIO TCP:%h:%p # for using the proxy for everything else: Host * ProxyCommand socat STDIO SOCKS4:localhost:%h:%p,socksport=8080 * **KDE apps** (Konqueror, but does not work with Kopete...) ~/.kde4/share/config/kioslaverc [Proxy Settings] ProxyType=1 socksProxy=socks://localhost:8080 * **Applications that do not support use of a proxy**: configure tsocks in /etc/tsocks.conf: server = localhost server_type = 5 server_port = 8080 Then start your application with tsocks to force it to use the proxy: tsocks You can do something similar and maybe more powerful with proxychains. RSYNC protocol proxy: export RSYNC_CONNECT_PROG='ssh nc %H 873' ===== Complete Forwarding ===== Forward all the traffic so you don't have to configure every application. * **VPN**: complicated to set up * **SShuttle**: sshuttle --dns -r 0/0 -x 10.0.0.0/8 0/0 is the forward mask (everything), -x is the exclude mask (local network), --dns forwards the DNS requests as well. See also option --no-latency-control for better bandwidth but higher latency, and "--python /usr/bin/python" if you get error message "P=python2: Command not found. P: Undefined variable.".