pkg.soopen package index

brew / rank 7790

Install sslh with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper

Forward connections based on first data packet sent by client. Version 2.3.1 via Homebrew; verified from local package data. Also installable with debian: sudo apt install sslh.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install sslh

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install sslh

MacPorts ports tree · net/sslh/Portfile · source: api.github.com

Linux

Alpine Linux apkverified · 92%
sudo apk add sslh

Alpine Linux edge package indexes · sslh · source: dl-cdn.alpinelinux.org

Debian aptverified · 92%
sudo apt install sslh

Debian stable package indexes · sslh · source: deb.debian.org

Fedora dnfverified · 92%
sudo dnf install sslh

Fedora Rawhide package metadata · sslh · source: dl.fedoraproject.org

Nixverified · 92%
nix profile install nixpkgs#sslh

nixpkgs package indexes · pkgs/by-name/ss/sslh/package.nix · source: api.github.com

Arch Linux pacmanverified · 92%
sudo pacman -S sslh

Arch Linux sync databases · sslh · source: geo.mirror.pkgbuild.com

openSUSE zypperverified · 92%
sudo zypper install sslh

openSUSE Tumbleweed package metadata · sslh · source: download.opensuse.org

overview

Package summary

Forward connections based on first data packet sent by client

Commands and aliases

  • sslh

history

Project history and usage

sslh is a small Unix daemon for sharing one public port among several backend protocols by looking at the first bytes sent by a client. Its classic package-manager appeal is that it lets administrators keep SSH, HTTPS, OpenVPN, WireGuard, XMPP, SOCKS5, and similar services reachable in constrained networks without deploying a full reverse-proxy stack.

Project history

The upstream changelog records basic functionality in version 1.0, with privilege dropping and configurable targets already present, followed by daemon behavior in 1.1 in 2007. Through the late 2000s and early 2010s sslh accumulated the operational traits expected of a packaged system service: libwrap support, init scripts, a manual page, inetd mode, FreeBSD fixes, IPv6 support, foreground mode, a test suite, and systemd-friendly behavior.

The project later expanded from an SSL/SSH splitter into a general protocol demultiplexer. Upstream documentation now describes probes for HTTP, TLS/SSL including SNI and ALPN, SSH, WireGuard, OpenVPN, tinc, XMPP, SOCKS5, syslog, and regular-expression based protocols, plus transparent proxying, proxyprotocol support, Docker examples, and several process models including fork, select, and libev.

Adoption history

The official download page notes that sslh has been packaged for Debian, Gentoo, FreeBSD, and many other operating systems, while the supplied package metadata shows it in Homebrew, apk, Debian, Fedora, MacPorts, Nix, Arch, Ubuntu, and openSUSE package sets. That broad packaging footprint is the main sign of adoption: it is the kind of small network utility distributions carry because it solves a recurring administrator problem.

Upstream also maintains a mailing list for announcements, usage discussion, and feature requests, and directs development to GitHub, where patches and features may appear before formal releases.

How it is used

Common usage is to listen on a public address and port, often 443, then forward traffic to local services such as sshd, an HTTPS server, OpenVPN, or other backends based on protocol detection. The configuration guide says packaged scripts read configuration from /etc/sslh.cfg, and the systemd generator can also read /etc/sslh/sslh.cfg if present.

Package users care about build-time and runtime options because sslh can be compiled with libconfig, systemd socket activation, POSIX capabilities, libwrap, transparent proxying support, and different event models. Those knobs determine whether a distro package feels like a drop-in service or just a source build.

Why package nerds care

sslh is package-nerd material because it sits at the boundary between networking policy, init systems, and distro defaults. Small differences in config paths, capabilities, service files, and compile flags decide whether it works cleanly on a stock server.

It also preserves an old but still useful Unix pattern: one focused daemon, a readable config file, init/systemd integration, and behavior that can be composed with sshd, httpd, OpenVPN, stunnel, fail2ban, and container runtimes.

Timeline

  • 2007: Version 1.1 added more daemon-like behavior such as PID-file support and startup forking.
  • 2008: Versions 1.3 through 1.5 added local listen-interface parsing, syslog logging, libwrap support, support scripts, and Makefile work.
  • 2009: Version 1.6 added a man page and install targets.
  • 2011: Version 1.8 added OpenVPN probing, a select-based implementation, foreground mode, tests, and Mac OS X documentation; version 1.9 added IPv6 support.
  • 2012: Version 1.11 changed defaults to better fit systemd and launchd and added an HTTP probe.
  • 2020: Version 1.21 moved configuration and command-line handling to conf2struct and changed TLS naming and config defaults.
  • 2021: Version 1.22 added UDP protocol support.
  • 2025: Versions 2.2.4 and later addressed SUSE security-review findings and added connection-limit controls.

Related projects

  • sslh is commonly used alongside sshd, web servers, OpenVPN, WireGuard, stunnel, proxytunnel, corkscrew, fail2ban, and systemd socket activation.
  • It overlaps conceptually with reverse proxies and TLS terminators, but it is focused on early protocol detection rather than HTTP routing or TLS certificate management.

security posture

Risk level: blue

broad file, network, media, or database tool signal.

Risk classifier

blue risk · medium confidence · tool

Why

  • broad file, network, media, or database tool signal

Signals

  • text:client

Install behavior

  • No Homebrew bottle metadata was recorded.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

local files

Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.

Configuration files

Config paths the tool may read or write during local use.

Unix
/etc/sslh.cfg/etc/sslh/sslh.cfg

executables

Installed executables

CommandKindExposureNote
sslhexecutableindexed executableDiscovered from the local executable index.

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-08-03
manager version2.3.1
manager updated
local dataunknown
upstreamnot available
latest detectednot detected
  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:sslh
Version2.3.1
Package managerHomebrew
Homepagehttps://www.rutschle.net/tech/sslh.shtml
Repositoryhttps://github.com/yrutschle/sslh
Bottlenot recorded
Servicenone declared

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Debian apt95%

sslh 2.1.4-1+b1

Applicative protocol multiplexer

http://www.rutschle.net/tech/sslh/README.html

sudo apt install sslh
  • Section: net
  • Architecture: amd64
  • Source Package: sslh
  • 11 dependencies
  • 6 optional deps
  • normalized package name match
  • Matched by: Sslh
Debian stable package indexes · deb.debian.org · Debian stable package indexes: sslh from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Nix95%

sslh

nix profile install nixpkgs#sslh
  • normalized package name match
  • Matched by: Sslh
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/ss/sslh/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
Ubuntu apt95%

sslh 1.22c-1

Applicative protocol multiplexer

http://www.rutschle.net/tech/sslh/README.html

sudo apt install sslh
  • Section: universe/net
  • Architecture: amd64
  • 9 dependencies
  • 6 optional deps
  • normalized package name match
  • Matched by: Sslh
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: sslh from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
apk95%

sslh 2.3.1-r0

Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port)

https://www.rutschle.net/tech/sslh/README.html

sudo apk add sslh
  • License: GPL-2.0-or-later
  • Architecture: x86_64
  • Source Package: sslh
  • 1 dependencies
  • 1 provides
  • normalized package name match
  • Matched by: Sslh
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: sslh from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

sslh-doc 2.3.1-r0

Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port) (documentation)

https://www.rutschle.net/tech/sslh/README.html

sudo apk add sslh-doc
  • License: GPL-2.0-or-later
  • Architecture: x86_64
  • Source Package: sslh
  • normalized package name match
  • Matched by: Sslh
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: sslh-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

sslh-fail2ban 2.3.1-r0

Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port)

https://www.rutschle.net/tech/sslh/README.html

sudo apk add sslh-fail2ban
  • License: GPL-2.0-or-later
  • Architecture: x86_64
  • Source Package: sslh
  • normalized package name match
  • Matched by: Sslh
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: sslh-fail2ban from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

sslh-openrc 2.3.1-r0

Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port) (OpenRC init scripts)

https://www.rutschle.net/tech/sslh/README.html

sudo apk add sslh-openrc
  • License: GPL-2.0-or-later
  • Architecture: x86_64
  • Source Package: sslh
  • normalized package name match
  • Matched by: Sslh
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: sslh-openrc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
dnf95%

sslh 2.3.1-6.fc45

Applicative protocol(SSL/SSH) multiplexer

https://github.com/yrutschle/sslh

sudo dnf install sslh
  • License: GPL-2.0-only
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: sslh
  • 10 dependencies
  • 4 provides
  • normalized package name match
  • Matched by: Sslh
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: sslh from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst
pacman95%

sslh 2.3.1-1

SSL/SSH/OpenVPN/XMPP/tinc port multiplexer

https://www.rutschle.net/tech/sslh/README.html

sudo pacman -S sslh
  • License: GPL-2.0-only
  • Architecture: x86_64
  • 7 dependencies
  • normalized package name match
  • Matched by: Sslh
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: sslh from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz
zypper95%

sslh 2.3.1-1.4

SSL/SSH multiplexer

https://www.rutschle.net/tech/sslh.shtml

sudo zypper install sslh
  • License: GPL-2.0-or-later
  • Category: Productivity/Networking/SSH
  • Architecture: x86_64
  • Source Package: sslh
  • 9 dependencies
  • 2 provides
  • normalized package name match
  • Matched by: Sslh
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: sslh from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst
MacPorts95%

sslh

sudo port install sslh
  • normalized package name match
  • Matched by: Sslh
MacPorts ports tree · api.github.com · MacPorts ports tree: net/sslh/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • cross-ecosystem install command graph
  • curated configuration and credential file locations
  • curated package history
  • external package-manager database matches
  • pkg.so package database
  • pkgdb category and tag curation