🖥 Прокси-туннель

Локальный сервер в интернете за 30 секунд

Опубликуйте что угодно с вашего компьютера или Raspberry Pi — без белого IP, без проброса портов, без настройки роутера. Один бинарник, и вы онлайн.

Начать бесплатно Быстрый старт Проверить туннель →
⚠ Правила использования туннеля
пользователь
Browser
slug.dix.su
dix.su
Прокси
HTTPS / WSS
⟵ WSS ⟶
ваше устройство
device_client
Один бинарник
ваш сервер
localhost
:8080
Клиент устанавливает WebSocket-соединение с сервером и проксирует запросы к вашему локальному порту
SERVER_HOST=dix.su SERVER_PORT=443 \
  ./device_client_linux_x86_64 мой-слаг мой-токен 8080
Всё включено из коробки
Никаких облачных зависимостей, никаких сложных настроек
🔒

HTTPS без настройки

Wildcard-сертификат Let's Encrypt на *.dix.su. Каждый туннель работает по HTTPS автоматически.

🌐

Без белого IP

Работает за любым NAT, корпоративным файрволом или мобильным интернетом. Нужен только исходящий TCP.

📦

Один бинарник

device_client — самодостаточный файл со встроенным Erlang runtime. Никаких зависимостей, никаких установщиков.

🏷

Постоянный поддомен

Ваш туннель всегда на одном адресе: ваш-слаг.dix.su. Делитесь ссылкой один раз — она не меняется.

🖥

Все платформы

Linux x86_64, ARM64, macOS Apple Silicon и Intel. Raspberry Pi, VPS, ноутбук — всё поддерживается.

🔄

Автозапуск

Готовые конфиги для systemd и Docker Compose — туннель поднимается автоматически при старте системы.

От регистрации до живого туннеля
  1. Зарегистрируйтесь — получите слаг и токен

    Войдите в личный кабинет. Выберите слаг — он станет вашим поддоменом: ваш-слаг.dix.su.

  2. Скачайте device_client

    Выберите бинарник под вашу платформу и дайте права на запуск.

    chmod +x device_client_linux_x86_64
  3. Запустите туннель

    Укажите ваш слаг, токен и порт локального сервера.

    SERVER_HOST=dix.su SERVER_PORT=443 \
      ./device_client_linux_x86_64 мой-слаг мой-токен 8080
  4. Откройте в браузере

    Туннель готов. Делитесь адресом с кем угодно:

    https://мой-слаг.dix.su
TCP-туннели: SSH, RDP, VNC, базы данных

Помимо HTTP, dix.su умеет проксировать любой TCP-трафик — терминал, удалённый рабочий стол, прямой доступ к БД. Всё через то же WebSocket-соединение device_client.

Как это работает

При подключении к ваш-слаг.dix.su:2222 клиент сначала отправляет заголовок DIXSU:ваш-слаг, по которому сервер находит нужное устройство в реестре. Так работает SSH через ProxyCommand.

RDP, VNC и базы данных не умеют отправлять такой заголовок — поэтому они работают через SSH port forwarding: SSH-туннель до устройства уже установлен и аутентифицирован, а флаг -L пробрасывает локальный порт через него.

SSH — прямое подключение

ProxyCommand инжектирует DIXSU-заголовок перед handshake.

ssh -p 2222 \
  -o "ProxyCommand=bash -c '{ echo DIXSU:ваш-слаг; cat; } | nc ваш-слаг.dix.su 2222'" \
  user@ваш-слаг.dix.su
RDP — удалённый рабочий стол Windows/Linux

Шаг 1: SSH-туннель с пробросом порта. Шаг 2: RDP-клиент на localhost.

# 1. Открыть туннель (держать терминал открытым)
ssh -p 2222 \
  -o "ProxyCommand=bash -c '{ echo DIXSU:ваш-слаг; cat; } | nc ваш-слаг.dix.su 2222'" \
  -L 13389:localhost:3389 -N user@ваш-слаг.dix.su

# 2. Подключиться (в другом терминале)
xfreerdp /v:localhost:13389 /u:USER
# или: Remmina → localhost:13389
VNC — удалённый рабочий стол

Аналогично RDP, только порт 5900.

# 1. Туннель
ssh -p 2222 \
  -o "ProxyCommand=bash -c '{ echo DIXSU:ваш-слаг; cat; } | nc ваш-слаг.dix.su 2222'" \
  -L 15900:localhost:5900 -N user@ваш-слаг.dix.su

# 2. VNC-клиент
vncviewer localhost:15900
SFTP — передача файлов (Krusader, FileZilla, командная строка)

SFTP — SSH-субсистема, отдельный порт не нужен. Работает через тот же SSH-туннель на порту 2222 автоматически.

# Командная строка
sftp -P 2222 \
  -o "ProxyCommand=bash -c '{ echo DIXSU:ваш-слаг; cat; } | nc ваш-слаг.dix.su 2222'" \
  user@ваш-слаг.dix.su

Krusader / Dolphin / FileZilla — добавьте один раз в ~/.ssh/config:

Host *.dix.su
  Port 2222
  ProxyCommand bash -c 'S=$(echo %h | cut -d. -f1); { echo "DIXSU:$S"; cat; } | nc %h %p'

После этого в Krusader: sftp://user@ваш-слаг.dix.su/ — ProxyCommand применится автоматически.

SSHFS — монтирование удалённой файловой системы

SSHFS монтирует папки с вашего устройства как локальную директорию на компьютере клиента. Работает поверх того же SSH-туннеля — никаких дополнительных портов и сервисов на устройстве не нужно.

Установка клиента

# Debian / Ubuntu / Raspberry Pi OS
sudo apt install sshfs

# Fedora / RHEL
sudo dnf install fuse-sshfs

# macOS (через Homebrew — требует macFUSE)
brew install --cask macfuse
brew install sshfs

Монтирование

# Создать точку монтирования
mkdir -p ~/mnt/dixsu

# Монтировать — с явным ProxyCommand (всегда работает)
sshfs user@ваш-слаг.dix.su:/home/user ~/mnt/dixsu \
  -p 2222 \
  -o ProxyCommand="bash -c '{ echo DIXSU:ваш-слаг; cat; } | nc ваш-слаг.dix.su 2222'" \
  -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3

Или короче — если в ~/.ssh/config уже добавлен блок Host *.dix.su (см. выше):

sshfs user@ваш-слаг.dix.su:/home/user ~/mnt/dixsu \
  -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3

Размонтирование

# Linux
fusermount -u ~/mnt/dixsu

# macOS
umount ~/mnt/dixsu

Автомонтирование через systemd (Linux)

# ~/.config/systemd/user/dixsu-mount.service
[Unit]
Description=SSHFS mount dix.su tunnel
After=network-online.target

[Service]
Type=simple
ExecStart=sshfs user@ваш-слаг.dix.su:/home/user /home/%u/mnt/dixsu \
  -p 2222 \
  -o ProxyCommand="bash -c '{ echo DIXSU:ваш-слаг; cat; } | nc ваш-слаг.dix.su 2222'" \
  -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,foreground
ExecStop=fusermount -u /home/%u/mnt/dixsu
Restart=on-failure
RestartSec=10

[Install]
WantedBy=default.target
mkdir -p ~/mnt/dixsu
systemctl --user daemon-reload
systemctl --user enable --now dixsu-mount

Монтирование будет подниматься автоматически при входе в систему и переподключаться при обрыве сети.

Android — доступ к файлам с телефона

Файловый менеджер на Android может работать с файлами вашего устройства через SSH-туннель. Root не нужен. Трафик end-to-end зашифрован SSH — прокси-сервер содержимое не видит.

Шаг 1 — Termux: создать локальный туннель

pkg install openssh

# ~/.ssh/config
Host ваш-слаг.dix.su
    Port 2222
    ProxyCommand bash -c '{ echo DIXSU:ваш-слаг; cat; } | nc ваш-слаг.dix.su 2222'

# Запустить туннель (держать активным):
ssh -N -L 127.0.0.1:10022:127.0.0.1:22 user@ваш-слаг.dix.su

Шаг 2 — файловый менеджер

Добавить SFTP-соединение: хост 127.0.0.1, порт 10022, логин/пароль устройства.

Рекомендуемые приложения (F-Droid, open source):

  • CIFS Documents Provider — SFTP + SMB через Android SAF (тот же механизм что Google Drive). Файлы видны в системном пикере всем приложениям.
  • Material Files — альтернатива, только SFTP.

На Android 12+ включите «Без ограничений работы в фоне» для Termux в настройках батареи.

Базы данных (PostgreSQL, MySQL, Redis)

Та же схема — SSH-туннель + локальный порт.

# PostgreSQL
ssh ... -L 15432:localhost:5432 -N user@ваш-слаг.dix.su
psql -h localhost -p 15432

# MySQL
ssh ... -L 13306:localhost:3306 -N user@ваш-слаг.dix.su
mysql -h 127.0.0.1 -P 13306

# MongoDB
ssh ... -L 17017:localhost:27017 -N user@ваш-слаг.dix.su
mongosh mongodb://127.0.0.1:17017

# Redis
ssh ... -L 16379:localhost:6379 -N user@ваш-слаг.dix.su
redis-cli -h 127.0.0.1 -p 16379
DBeaver CE — подключение к базам данных

Два способа, оба рабочие:

Способ 1 — ручной port forward (работает без доп. настроек)

# Терминал — держать открытым
ssh -p 2222 \
  -o "ProxyCommand=bash -c '{ echo DIXSU:ваш-слаг; cat; } | nc ваш-слаг.dix.su 2222'" \
  -L 15432:localhost:5432 -N user@ваш-слаг.dix.su

Затем в DBeaver: New Connection → PostgreSQL → Host: localhost, Port: 15432. Вкладку SSH не трогать — туннель уже поднят.

Способ 2 — через встроенный SSH в DBeaver (нужен ~/.ssh/config)

Добавьте в ~/.ssh/config на машине с DBeaver:

Host *.dix.su
  Port 2222
  ProxyCommand bash -c 'S=$(echo %h | cut -d. -f1); { echo "DIXSU:$S"; cat; } | nc %h %p'

Затем DBeaver: New Connection → PostgreSQL → вкладка SSH → Use SSH tunnel ✓, SSH Host: ваш-слаг.dix.su, Port: 2222, SSH User: ваш_юзер. Выберите Native client (не JSch) — тогда DBeaver использует системный ssh, который читает config.

Активировать нужные порты можно в личном кабинете → Туннель. Доступность портов зависит от вашего плана.

Все варианты конфигурации, SSH-конфиг, ProxyCommand и примеры для разных ОС — в полном справочнике клиентских подключений →

Правила добросовестного использования TCP-туннелей

На портах SSH/RDP/VNC/БД работает автоматическая защита от перебора аккаунтов и флуда подключений — она общая для всех клиентов платформы. При обычной работе (несколько сессий, пул соединений из DBeaver/Navicat и подобных клиентов) вы её не заметите. Если вы пишете скрипты, мониторинг или CI — несколько правил, чтобы не попасть под временную блокировку:

  • Подключайтесь только к своему slug'у. Перебор разных (в том числе случайных или чужих) имён с одного IP распознаётся как попытка подбора аккаунтов и приводит к продолжительной блокировке IP.
  • Не держите одновременно неограниченное число подключений с одного IP ко всем туннелям dix.su сразу — десятки соединений (например, пул БД-клиента) это нормально, но неограниченный/массовый флуд соединений похож на атаку и блокируется.
  • Если подключение не удалось — не зацикливайте мгновенный retry без задержки. Добавьте паузу хотя бы в секунду-две между попытками; быстрый бесконечный цикл переподключений выглядит как автоматизированный скан.
  • Ответ no tunnel connected, хотя вы точно знаете, что туннель поднят — обычно означает, что вы превысили частоту попыток подключения. Подождите минуту и повторите — это не баг.

Блокировки временные и автоматически снимаются. Если считаете, что вас заблокировали по ошибке — напишите на admin@dix.su, укажите свой slug и примерное время.

Другие инструменты
📦

Не хочешь возиться с настройкой?

Готовое устройство — подключил к сети, включил в розетку, и туннель уже работает. Без Linux, без командной строки.

Смотреть устройства →

Есть вопросы о туннеле?

Ответы в FAQ →