A proxy server that runs SSH and HTTP(S) on the same port by detecting the protocol of incoming connections.
Switcher is a proxy server that allows SSH and HTTP(S) services to run on the same network port by detecting the protocol of incoming connections. It solves the problem of managing multiple ports for different services, simplifying firewall configurations and reducing administrative overhead.
System administrators, DevOps engineers, and developers who need to run both SSH and web services on servers with restricted port availability or simplified network setups.
Switcher offers a lightweight, Go-based alternative to similar tools like sslh, with easier extensibility through Go interfaces and better performance under load using goroutines instead of forking processes.
Run SSH and HTTP(S) on the same port
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Go's interfaces to automatically identify SSH and HTTP(S) connections by analyzing initial bytes, enabling seamless routing without manual configuration.
Leverages goroutines instead of forking processes, reducing CPU overhead and improving performance under concurrent loads, as highlighted in the comparison with sslh.
Offers straightforward setup via flags like --listen, --ssh, and --default, with clear examples in the README for common use cases.
Built with clean Go interfaces, making it easy to add new protocol support by implementing matcher interfaces, though this requires coding effort.
Only implements SSH and HTTP(S) out of the box; adding other protocols requires Go development, which may not be feasible for all users.
The README is minimal, lacking detailed guides or troubleshooting resources, and as a niche tool, community support is limited compared to alternatives like sslh.
Admitted to have started as a learning project, which might imply less focus on production-ready features or long-term maintenance stability.