A protocol multiplexer that shares SSH, HTTPS, and other services on a single port by inspecting the first data packet.
sslh is a protocol multiplexer (or switchboard) that allows multiple network services to share a single port by inspecting the initial client packet. It solves the problem of accessing restricted services like SSH behind firewalls that only allow common ports such as 443, enabling secure remote access without requiring port forwarding or complex network changes.
System administrators, network engineers, and DevOps professionals who need to run multiple services on limited ports, especially in restricted corporate or firewall-heavy environments.
Developers choose sslh for its reliable protocol detection, transparent proxying capabilities, and mature feature set—including support for modern TLS extensions (SNI/ALPN), IPv6, and containerized deployments—making it a robust solution for production use.
Applicative Protocol Multiplexer (e.g. share SSH and HTTPS 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.
Supports HTTP, TLS/SSL with SNI and ALPN, SSH, OpenVPN, and more via regex, allowing precise service routing based on initial packets, as detailed in the README.
Enables SSH and other services to run on port 443, commonly unblocked by corporate firewalls, solving access issues without network changes.
Offers methods like proxyprotocol and iptables-based approaches to preserve client IP addresses, though setup can be complex, as noted in the documentation.
Includes privilege dropping, systemd/inetd support, IPv6, and multiple concurrency models (fork, select, libev), making it robust for deployments.
A code review revealed CVE-worthy issues, requiring ongoing security attention and configuration tweaks like connection limits, as admitted in the security section.
Transparent proxying methods are highly dependent on network environment and iptables knowledge, with no generic approach, making deployment challenging for non-experts.
Packet inspection for protocol detection adds latency and processing load, which may not be ideal for high-throughput or low-latency applications.