macOS
brew install wstunnellocal Homebrew formula metadata
sudo port install wstunnelMacPorts ports tree · net/wstunnel/Portfile · source: api.github.com
brew
Tunnel all your traffic over Websocket or HTTP2. Version 10.6.1 via Homebrew; verified 2026-06-29.
install
brew install wstunnellocal Homebrew formula metadata
sudo port install wstunnelMacPorts ports tree · net/wstunnel/Portfile · source: api.github.com
nix profile install nixpkgs#wstunnelnixpkgs package indexes · pkgs/by-name/ws/wstunnel/package.nix · source: api.github.com
scoop install main/wstunnelScoop official bucket manifest trees · bucket/wstunnel.json · source: api.github.com
overview
Tunnel all your traffic over Websocket or HTTP2
history
wstunnel is a tunneling tool that carries arbitrary traffic over WebSocket or HTTP/2, aiming to look like ordinary HTTP-family traffic on networks where direct protocols are blocked by firewalls, proxies, or DPI systems. It supports static and reverse tunnels, TCP, UDP, Unix sockets, stdio, SOCKS5, HTTP proxy mode, TLS, mTLS, IPv6, and standalone binaries.
The upstream README says wstunnel was inspired by an older npm package named `wstunnel`, but was remade so users would not need npm and Node.js. The project was originally written in Haskell and later moved to Rust; the README calls v7.0.0 a complete Rust rewrite that is not compatible with earlier versions and keeps the previous Haskell implementation on a separate branch.
The Rust rewrite was motivated by maintenance and performance concerns. The maintainer cites lower jitter from avoiding Haskell garbage collection, a more homogeneous command-line interface, reverse tunneling support, traffic that better resembles normal traffic, and easier long-term maintenance because the Haskell ecosystem had become harder for the maintainer to keep up with.
wstunnel's adoption is concentrated among users who need a single-file tunnel that can survive HTTP-only or proxy-constrained networks. The README's examples cover ordinary port forwarding, UDP DNS forwarding, SOCKS5 and HTTP proxy modes, transparent proxying, Unix sockets, and using stdio as an SSH ProxyCommand transport.
The GitHub releases page shows an active v10 series, and the project publishes container images through GitHub Packages in addition to binary releases. That packaging footprint reflects its operational audience: people copying a tunnel binary or container to constrained client and server environments.
A common pattern is to run a public wstunnel server and then start a local client with one or more `-L` local-to-remote forwards or `-R` remote-to-local forwards. For SSH, the README documents a stdio tunnel suitable for `ssh -o ProxyCommand=...`; for browser or whole-session use, it can expose SOCKS5 or HTTP proxy listeners.
The tool is often used where WebSocket over TLS is more likely to pass through middleboxes than raw SSH, WireGuard, or application-specific TCP/UDP traffic. The README cautions that HTTP/2 tunneling is harder behind reverse proxies and CDNs because buffering and protocol conversion can break streaming.
wstunnel is notable because it sits in the pragmatic tunneling family with tools such as chisel, gost, boringproxy, and SSH ProxyCommand setups, but keeps a very explicit WebSocket/HTTP transport identity. The Haskell-to-Rust rewrite also makes it a useful example of a network utility migrating runtimes to improve distribution and maintenance.
security posture
broad file, network, media, or database tool signal.
blue risk · medium confidence · tool
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
wstunnel | cli | global executable |
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.
https://github.com/erebe/wstunnel
install metadata
| Package key | brew:wstunnel |
|---|---|
| Version | 10.6.1 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/wstunnel |
| Homepage | https://github.com/erebe/wstunnel |
| Repository | https://github.com/erebe/wstunnel |
| Upstream docs | https://github.com/erebe/wstunnel#readme |
| License | BSD-3-Clause |
| Source archive | https://github.com/erebe/wstunnel/archive/refs/tags/v10.6.1.tar.gz |
| Last updated | 2026-06-29T11:32:54Z |
| Pulse | updated |
| Build dependencies | rust |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | wstunnel |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
wstunnel
nix profile install nixpkgs#wstunnelwstunnel
sudo port install wstunnelmain/wstunnel
scoop install main/wstunnelsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.