# apt install sslh
Далее запускаем:
# sslh-select -f --listen 0.0.0.0:443 \
--tls 127.0.0.1:443 \
--ssh 127.0.0.1:22 \
--openvpn 127.0.0.1:1194
Теперь, если зайти браузером на сервер, то запрос будет перенаправлен на 443 порт веб сервера, если SSH клиентом, то на 22-й порт, если OpenVPN клиентом, то на дефолтный 1194 порт openvpn сервера.
То же самое через Docker:
docker run --rm -it sslh:latest \
--listen=0.0.0.0:443 \
--ssh=hostname:22 \
--tls=hostname:443
--openvpn=hostname:1194
Более функциональный вариант через docker-compose. Пример конфига, где трафик уходит в разные контейнеры:
version: "3"
services:
sslh:
image: sslh:latest
hostname: sslh
ports:
- 443:443
command: --listen=0.0.0.0:443 --tls=nginx:443 --openvpn=openvpn:1194
depends_on:
- nginx
- openvpn
nginx:
image: nginx
openvpn:
image: openvpn
⇨ Исходники
#openvpn #webserver