mirror of
https://github.com/sshuttle/sshuttle.git
synced 2025-08-09 07:44:56 +02:00
514847e7d86f65be7315f390e20987a9352840ca
**Problem:** - sshuttle v1.2.0+ crashes with "socket.error: [Errno 32] Broken pipe" during long-running commands like "cilium status --wait" - The _nb_clean() function re-raises EPIPE errors before socket methods can handle them gracefully - This causes tunnel termination instead of graceful recovery **Solution:** - Enhanced uwrite() and uread() methods to catch both OSError and socket.error for Python 2/3 compatibility - Added specific EPIPE handling in uread() to treat broken pipes as EOF - Improved error messages in client.py for better user experience - Maintains existing error handling patterns and backward compatibility **Benefits:** - Long-running commands no longer crash the tunnel - Graceful connection recovery instead of fatal errors - Better resilience for network interruptions - Improved error reporting Fixes issues with tunnel stability during extended operations. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
sshuttle: where transparent proxy meets VPN meets ssh ===================================================== As far as I know, sshuttle is the only program that solves the following common case: - Your client machine (or router) is Linux, FreeBSD, MacOS or Windows. - You have access to a remote network via ssh. - You don't necessarily have admin access on the remote network. - The remote network has no VPN, or only stupid/complex VPN protocols (IPsec, PPTP, etc). Or maybe you *are* the admin and you just got frustrated with the awful state of VPN tools. - You don't want to create an ssh port forward for every single host/port on the remote network. - You hate openssh's port forwarding because it's randomly slow and/or stupid. - You can't use openssh's PermitTunnel feature because it's disabled by default on openssh servers; plus it does TCP-over-TCP, which has `terrible performance`_. .. _terrible performance: https://sshuttle.readthedocs.io/en/stable/how-it-works.html Obtaining sshuttle ------------------ Please see the documentation_. .. _Documentation: https://sshuttle.readthedocs.io/en/stable/installation.html Documentation ------------- The documentation for the stable version is available at: https://sshuttle.readthedocs.org/ The documentation for the latest development version is available at: https://sshuttle.readthedocs.org/en/latest/ Running as a service -------------------- Sshuttle can also be run as a service and configured using a config management system: https://medium.com/@mike.reider/using-sshuttle-as-a-service-bec2684a65fe
Languages
Python
95.2%
Shell
3.1%
Nix
1.2%
Dockerfile
0.5%