Docker alpine image containing sslh, configurable with environment variables.
By default, no multiplexing options are enabled:
Start and expose port 443 and/or 80 with no configurations
docker run -d -p 443:443 -p 80:80 --name sslh archef2000/sslh
To configure a backend, set at least the *_HOST
env var:
Start and configure SSH, HTTP and HTTPS with default ports
docker run -e SSH_HOST=host -e HTTP_HOST=somehost.internal -e SOCKS5_HOST=socks5 -e HTTPS_HOST=somehost.internal -p 443:443 -p 80:80 archef2000/sslh
If the service is not listening on the default port, it can be overridden with the *_PORT
env var:
Start and configure SSH,HTTP and HTTPS with custom ports
docker run -e SSH_HOST=host -e SSH_PORT=2222 -e HTTP_HOST=somehost.internal \
-e HTTP_HOST=8080 -e HTTPS_HOST=somehost.internal -e HTTPS_PORT=8443 -e OPENVPN_HOST=openvpn \
-e OPENVPN_PORT=1194 -e SOCKS5_PORT=1080 -e SOCKS5_HOST=socks5 -e ENABLE_IPV6=true -p 443:443 -p 80:80 archef2000/sslh
Naming should be self explanatory, defaults are indicated.
If a *_HOST
environment variable is omitted, it will not be configured.
HTTPS_HOST= HTTPS_PORT=8443
OPENVPN_HOST= OPENVPN_PORT=1194
SHADOWSOCKS_HOST= SHADOWSOCKS_PORT=8388
SSH_HOST= SSH_PORT=22
HTTP_HOST= HTTP_PORT=80
SOCKS5_HOST=socks5 SOCKS5_PORT=1080
This can also be run with docker-compose:
---
version: '3'
services:
sslh:
image: archef2000/sslh:latest
ports:
- 443:443
- 80:80
environment:
- HTTPS_HOST=web
- HTTPS_PORT=443
- HTTP_HOST=web
- HTTP_PORT=80
- SSH_HOST=172.17.0.1 # Point to the Docker Host's IP
- SSH_PORT=22
- OPENVPN_HOST=openvpn
- OPENVPN_PORT=1194
- SOCKS5_HOST=socks5
- SOCKS5_PORT=1080
- ENABLE_IPV6=true