sshuttle is a transparent proxy server that acts as a 'poor man's VPN', forwarding network traffic over SSH. It doesn't require admin privileges for basic use and works across Linux and macOS, supporting DNS tunneling. The current stable version is 1.3.2, with releases occurring periodically, often driven by bug fixes and platform compatibility updates.
pip install sshuttleNo compatibility data collected yet for this library.
This command will establish a transparent proxy connection to `remote_server` via SSH, routing all local traffic (0.0.0.0/0) through the remote server. Replace `user` with your SSH username and `remote_server` with the IP address or hostname of your SSH server.
Ensure your environment uses Python 3.9 or 3.10. Consider using pyenv or virtual environments to manage Python versions for sshuttle.
Verify that `sshuttle --dns` works correctly by checking name resolution after connecting. If issues persist, ensure the remote SSH server allows outgoing connections on port 53 (UDP/TCP) from the `sshuttle` process or disable `--dns` and configure local DNS to a remote server.
Disable other VPNs before starting sshuttle. If you have custom firewall rules, you may need to adjust them to allow sshuttle's traffic manipulation. Test connectivity thoroughly after starting sshuttle.
Choose an SSH server with low latency to your client. For specific applications requiring higher throughput, consider alternative VPN solutions. Optimize SSH settings (e.g., Compression, Cipher) if possible, but keep in mind sshuttle itself handles some optimizations.
Verify the remote server's SSH service is running and accessible from your client. Check firewall rules on both client and server. Ensure the SSH port (default 22) is open and specified correctly if non-standard (e.g., `sshuttle -r user@host:port ...`).
Ensure you're using the correct username and password/key for the remote server. Test SSH connectivity independently (e.g., `ssh user@remote_server`). Add your SSH key to your agent (`ssh-add ~/.ssh/id_rsa`).
Without `--dns`, ensure your local system's DNS resolvers are functional. If using `--dns`, verify the remote SSH server has working DNS resolution and its firewall allows outgoing DNS queries. Try `sshuttle -r user@remote_server 0.0.0.0/0` (without `--dns`) to isolate the issue.
This usually means another instance of sshuttle or a different application is using the required port. Kill existing sshuttle processes (`pgrep sshuttle | xargs kill`) or identify and stop the conflicting application. Rebooting may also resolve transient port issues.
No dependency data recorded yet.