TCP-туннели: команды подключения для пользователей¶
Помимо HTTP, dixu_proxy проксирует произвольный TCP-трафик через то же
WebSocket-соединение device_client. Прокси терминирует TLS — устройству не
нужно настраивать SSL ни для одного протокола (кроме VNC). Протокол на уровне
реализации (как именно определяется slug по каждому порту) — dixu_proxy/README.md;
эта страница — практический справочник команд подключения для пользователей/поддержки.
Ограничение для docker-стеков: SSH (порт 22), RDP (3389) и VNC (5900) недоступны, если туннель поднят через контейнерный стек (
📦 docker-стек). Тумблеры этих протоколов в ЛК заблокированы с пояснительной подсказкой. Базы данных (PostgreSQL, MySQL, Redis, MongoDB) работают в docker-стеках только если контейнер с БД слушает на соответствующем порту внутри docker-сети.
Порты¶
| Протокол | Внешний порт | Порт на устройстве | Мин. роль |
|---|---|---|---|
| SSH | 2222 | 22 | VIP |
| RDP | 3389 | 3389 | PRO |
| VNC | 4900 | 5900 | PRO |
| PostgreSQL | 4432 | 5432 | PERS |
| MySQL | 4306 | 3306 | PERS |
| Redis | 4379 | 6379 | PERS |
| MongoDB | 4017 | 27017 | PERS |
Порты активируются в личном кабинете → Туннель → Прямое TCP.
Команды подключения¶
# SSH — через ProxyCommand с DIXSU-заголовком
ssh -o "ProxyCommand=bash -c '{ echo DIXSU:slug; cat; } | nc slug.dix.su 2222'" \
user@slug.dix.su
# RDP — прямое подключение (SNI из hostname)
xfreerdp /v:slug.dix.su:3389 /u:USER /cert:ignore
# VNC — прямое подключение через TLS (нужен x11vnc --ssl на устройстве)
vncviewer slug.dix.su::4900
# PostgreSQL — прямое подключение через TLS
psql "host=slug.dix.su port=4432 dbname=mydb user=postgres sslmode=require"
# MySQL — прямое подключение через TLS
mysql -h slug.dix.su -P 4306 -u root -p --ssl-mode=REQUIRED
# Redis — нужен --sni (redis-cli не берёт SNI из -h автоматически)
redis-cli -h slug.dix.su -p 4379 --tls --insecure --sni slug.dix.su
# MongoDB
mongosh "mongodb://slug.dix.su:4017/mydb?tls=true&tlsAllowInvalidCertificates=true"
# SFTP
sftp -o "ProxyCommand=bash -c '{ echo DIXSU:slug; cat; } | nc slug.dix.su 2222'" \
user@slug.dix.su
SSH-ключи (рекомендуется)¶
Использование ключей вместо пароля — безопаснее и удобнее.
1. Генерация ключа на локальной машине¶
ssh-keygen -t ed25519 -C "my-pc" -f ~/.ssh/dixsu_tunnel
# создаёт ~/.ssh/dixsu_tunnel (приватный) и ~/.ssh/dixsu_tunnel.pub (публичный)
2. Копирование публичного ключа на устройство¶
ssh-copy-id -i ~/.ssh/dixsu_tunnel.pub \
-p 2222 \
-o "ProxyCommand=bash -c '{ echo DIXSU:slug; cat; } | nc slug.dix.su 2222'" \
user@slug.dix.su
Или вручную — зайти на устройство и выполнить:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "содержимое_dixsu_tunnel.pub" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
3. Подключение с ключом¶
ssh -i ~/.ssh/dixsu_tunnel \
-p 2222 \
-o "ProxyCommand=bash -c '{ echo DIXSU:slug; cat; } | nc slug.dix.su 2222'" \
user@slug.dix.su
4. ~/.ssh/config для удобства¶
Host mydevice
HostName slug.dix.su
User root
Port 2222
IdentityFile ~/.ssh/dixsu_tunnel
ProxyCommand bash -c '{ echo DIXSU:slug; cat; } | nc slug.dix.su 2222'
После этого достаточно: ssh mydevice, sftp mydevice
5. Отключить парольный вход (опционально)¶
На устройстве в /etc/ssh/sshd_config:
~/.ssh/config без ключей¶
После этого: ssh user@slug.dix.su, sftp user@slug.dix.su, и DBeaver с
SSH-туннелем тоже подхватят конфиг.
DBeaver — подключение к базам данных¶
Прямое TLS-подключение (рекомендуется):
DBeaver → New Connection → выбрать БД:
| Параметр | PostgreSQL | MySQL |
|---|---|---|
| Host | slug.dix.su |
slug.dix.su |
| Port | 4432 |
4306 |
| SSL | включить | useSSL=true |
| Verify cert | выключить | verifyServerCertificate=false |
Вкладку SSH в DBeaver не использовать — прокси уже всё делает напрямую.
SFTP и файловые менеджеры¶
Настройте ~/.ssh/config (см. выше) и подключайтесь напрямую:
- Krusader / Dolphin / FileZilla: sftp://user@slug.dix.su/
- Android: отдельное родное приложение с dixsu-туннелем внутри (без ProxyCommand и Termux) —
см. Android-приложение: доступ к файлам и автобэкап