Руководство по настройке сервисов на устройстве и подключению через туннель из Remmina, DBeaver, TablePlus и других клиентов.
*.dix.su).
Сервис на устройстве работает без TLS — не нужно настраивать сертификаты.
Трафик между прокси и устройством защищён шифрованием WebSocket (WSS).
Исключение: VNC — там TLS на устройстве обязателен.
Скачайте бинарник под вашу платформу в личном кабинете и запустите его. Без активного соединения клиента подключение невозможно.
В личном кабинете → раздел Туннели → вкладка Прямое TCP. Включите нужные порты. Требуется тариф PRO или PERS в зависимости от протокола.
Для баз данных, Redis, MongoDB, SSH и RDP — запустите стандартную службу без каких-либо изменений TLS. Прокси сам берёт на себя шифрование. TLS на устройстве нужен только для VNC.
Установка xrdp на Debian/Ubuntu:
sudo apt install xrdp xfce4 xfce4-goodies -y echo "startxfce4" > ~/.xsession sudo systemctl enable xrdp --now
Включение Remote Desktop на Windows:
Параметры → Система → Удалённый рабочий стол → Включить # Или через PowerShell: Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections -Value 0 Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
sudo apt install openssh-server -y sudo systemctl enable ssh --now
ProxyCommand, который отправляет идентификатор перед SSH-трафиком.
Простой ssh -p 2222 user@ваш-слаг.dix.su не сработает.
Подключение через командную строку:
ssh -o "ProxyCommand=bash -c '{ echo DIXSU:ваш-слаг; cat; } | nc ваш-слаг.dix.su 2222'" user@ваш-слаг.dix.su
Удобный способ — настройка ~/.ssh/config:
# ~/.ssh/config
Host ваш-слаг.dix.su
ProxyCommand bash -c '{ echo DIXSU:ваш-слаг; cat; } | nc %h 2222'
После этого достаточно просто: ssh user@ваш-слаг.dix.su
ваш-слаг.dix.su, и в настройках укажите SSH-конфиг с ProxyCommand.# Установка и запуск (никаких изменений SSL не нужно) sudo apt install postgresql -y sudo systemctl enable postgresql --now # Создайте пользователя и базу данных как обычно: sudo -u postgres psql -c "CREATE USER myuser WITH PASSWORD 'mypass';" sudo -u postgres psql -c "CREATE DATABASE mydb OWNER myuser;" # Разрешите подключения в pg_hba.conf (если нужно с паролем): # host all all 127.0.0.1/32 md5
# docker-compose.yml — стандартный образ, TLS не нужен
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypass
POSTGRES_DB: mydb
ports:
- "127.0.0.1:5432:5432"
docker-compose.yml есть ports: - "127.0.0.1:5432:5432". Без этого device_client не сможет подключиться к контейнеру.# Установка и запуск (никаких изменений SSL не нужно) sudo apt install mysql-server -y sudo systemctl enable mysql --now # Создайте пользователя: sudo mysql -e "CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';" sudo mysql -e "GRANT ALL ON mydb.* TO 'myuser'@'localhost';" sudo mysql -e "CREATE DATABASE mydb;"
# docker-compose.yml — стандартный образ, TLS не нужен
services:
mysql:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: mydb
MYSQL_USER: myuser
MYSQL_PASSWORD: mypass
ports:
- "127.0.0.1:3306:3306"
docker-compose.yml есть ports: - "127.0.0.1:3306:3306".# Установка и запуск стандартного Redis (без TLS) sudo apt install redis-server -y sudo systemctl enable redis-server --now # Проверка (локально на устройстве): redis-cli ping # → PONG
# docker-compose.yml — стандартный образ, TLS не нужен
services:
redis:
image: redis:7-alpine
ports:
- "127.0.0.1:6379:6379"
--tls при подключении через dix.su — TLS терминируется на прокси, но клиент обязан его инициировать.# Установка и запуск стандартного MongoDB (без TLS)
# Следуйте официальной документации для вашего дистрибутива:
# https://www.mongodb.com/docs/manual/administration/install-on-linux/
sudo systemctl enable mongod --now
# Создайте пользователя:
mongosh --eval "db.getSiblingDB('admin').createUser({
user: 'myuser', pwd: 'mypass',
roles: [{role: 'readWrite', db: 'mydb'}]
})"
# docker-compose.yml — стандартный образ, TLS не нужен
services:
mongo:
image: mongo:7
environment:
MONGO_INITDB_ROOT_USERNAME: myuser
MONGO_INITDB_ROOT_PASSWORD: mypass
MONGO_INITDB_DATABASE: mydb
ports:
- "127.0.0.1:27017:27017"
docker-compose.yml есть ports: - "127.0.0.1:27017:27017".--ssl.
# Установка x11vnc с поддержкой TLS: sudo apt install x11vnc openssl -y # Генерируем сертификат mkdir -p ~/.vnc/ssl openssl req -new -x509 -days 365 -nodes \ -out ~/.vnc/ssl/vnc.crt -keyout ~/.vnc/ssl/vnc.key \ -subj "/CN=vnc-tunnel" # Запуск с TLS (обёрнутый SSL с первого байта): x11vnc -display :0 -forever -nopw \ -ssl ~/.vnc/ssl/vnc.key,~/.vnc/ssl/vnc.crt \ -rfbport 5900
| Параметр | Значение |
|---|---|
| Протокол | RDP |
| Сервер | ваш-слаг.dix.su |
| Порт | 3389 |
| Безопасность | TLS или Negotiate (NLA тоже работает) |
| Игнорировать сертификат | Да (self-signed) |
| Разрешение | Любое |
~/.ssh/config (см. раздел SSH выше),
затем в Remmina укажите хост ваш-слаг.dix.su — SSH-клиент подхватит конфиг автоматически.
| Параметр | Значение |
|---|---|
| Протокол | SSH |
| Сервер | ваш-слаг.dix.su |
| Порт | 22 (после настройки ~/.ssh/config) |
| Аутентификация | Пароль или SSH-ключ |
| Параметр | Значение |
|---|---|
| Протокол | VNC |
| Сервер | ваш-слаг.dix.su |
| Порт | 4900 |
| SSL/TLS | Включить |
--ssl на стороне сервера (см. раздел VNC выше).| Параметр | Значение |
|---|---|
| Host | ваш-слаг.dix.su |
| Port | 4432 |
| Database | имя вашей БД |
| Username / Password | ваши данные |
| SSL → Use SSL | ✓ включить |
| SSL → Verify server certificate | выключить (self-signed) |
| Параметр | Значение |
|---|---|
| Host | ваш-слаг.dix.su |
| Port | 4306 |
| Database | имя вашей БД |
| Username / Password | ваши данные |
| Driver properties → useSSL | true |
| Driver properties → requireSSL | true |
| Driver properties → verifyServerCertificate | false |
| Параметр | Значение |
|---|---|
| Host | ваш-слаг.dix.su |
| Port | 4017 |
| SSL → Enable SSL | ✓ включить |
| SSL → Allow invalid hostnames | ✓ включить |
| SSL → Allow invalid certificates | ✓ включить |
| Параметр | Значение |
|---|---|
| Host | ваш-слаг.dix.su |
| Port | 4379 |
| SSL → Use SSL | ✓ включить |
| SSL → Skip certificate verify | ✓ включить |
| Параметр | PostgreSQL | MySQL |
|---|---|---|
| Host | ваш-слаг.dix.su | ваш-слаг.dix.su |
| Port | 4432 | 4306 |
| SSL Mode | Require | Require |
| Verify SSL | выключить | выключить |
# PostgreSQL
psql "host=ваш-слаг.dix.su port=4432 dbname=mydb user=postgres sslmode=require"
# MySQL
mysql -h ваш-слаг.dix.su -P 4306 -u root -p --ssl-mode=REQUIRED
# Redis — нужен флаг --sni, redis-cli не берёт SNI из -h автоматически
redis-cli -h ваш-слаг.dix.su -p 4379 --tls --insecure --sni ваш-слаг.dix.su
# MongoDB
mongosh "mongodb://ваш-слаг.dix.su:4017/mydb?tls=true&tlsAllowInvalidCertificates=true"
# SSH — через ProxyCommand с DIXSU-заголовком
ssh -o "ProxyCommand=bash -c '{ echo DIXSU:ваш-слаг; cat; } | nc ваш-слаг.dix.su 2222'" user@ваш-слаг.dix.su
Прокси определяет целевое устройство по TLS-расширению SNI, которое содержит имя хоста. При подключении по IP-адресу браузер и клиенты не включают SNI в TLS ClientHello, и прокси не знает к какому туннелю маршрутизировать соединение.
Всегда используйте ваш-слаг.dix.su — тогда SNI будет присутствовать и маршрутизация сработает корректно.
Нет — кроме VNC. Прокси терминирует TLS на своей стороне, используя wildcard-сертификат *.dix.su. Сервисы на устройстве (PostgreSQL, MySQL, Redis, MongoDB, SSH) работают без TLS — они получают обычный незашифрованный трафик от прокси. Клиент при этом всегда подключается с TLS — это важно для передачи SNI.
VNC — исключение: там прокси делает pass-through TLS-соединения, поэтому устройство должно запустить x11vnc с --ssl.
Проверьте порт в docker-compose.yml:
В docker-compose.yml должно быть ports: - "127.0.0.1:5432:5432". Без этого device_client не доберётся до контейнера. TLS внутри контейнера настраивать не нужно.
Без активного соединения device_client прокси не знает о вашем устройстве и отклоняет подключение с ошибкой «no tunnel connected».
Проверьте по порядку:
слаг.dix.su), а не по IPssh -p 2222)