Автор: TrackLine Сказать спасибо
Оригинальный проект: gharib-uk/dnstt
Полностью автоматический установщик DNSTT-сервера с поддержкой SSH через DNS-туннель для клиента DarkTunnel (Android).
Скрипт интерактивный, на русском, автоматически генерирует ссылку darktunnel://… для импорта профиля и содержит режим удаления (возврат VPS в исходное состояние).
- Ставит Go 1.22.x (удаляется по желанию в режиме деинсталляции).
- Собирает
dnstt-serverиз исходников (репозиторий см. выше). - Генерирует ключи
server.keyиserver.pub. - Настраивает
iptables: редирект 53 → 5300 и открывает порты. - Разрешает вход по паролю и root‑вход в SSH (создаётся отдельный drop‑in
sshd_config.d/99-dnstt.conf). - Создаёт и запускает systemd‑сервис
dnstt-server. - Генерирует ссылку вида
darktunnel://…(формат экспорта DarkTunnel) и сохраняет её в/root/darktunnel-uri.txt. - Имеет режим удаления
--uninstall: очищает сервис/бинарник/ключи, сворачивает правила iptables, по желанию удаляет drop‑in SSH и Go.
- VPS с Ubuntu/Debian и правами
root. - Делегированный поддомен (например
t.example.com). - На сервере должны быть открыты порты 22 (SSH) и 53 (UDP/TCP) на фаерволе и у провайдера.
Делегируйте поддомен на свой VPS. Пример записи:
| Тип | Имя | Значение | TTL |
|---|---|---|---|
| NS | t |
tns.example.com |
Auto |
| A | tns |
IP вашего VPS |
Auto |
Итог: запросы к *.t.example.com придут прямо на ваш VPS, где работает dnstt-server.
sudo -i
apt update && apt install -y curl
curl -fsSL https://dnstt.echo0.dev -o /root/dnstt-setup.sh
chmod +x /root/dnstt-setup.sh
/root/dnstt-setup.shСкрипт спросит:
- Делегированную зону (например
t.example.com). - Внешний интерфейс (чаще всего
eth0). - Имя профиля для DarkTunnel.
- Установить/не менять пароль
root(и/или ввести текущий для генерации ссылки).
В конце экран очистится и вы увидите цветной итог:
- параметры для клиента,
- готовую ссылку для импорта
darktunnel://…, - путь к файлу:
/root/darktunnel-uri.txt.
Вариант 1 — через ссылку:
- Скопируйте вывод
darktunnel://…на телефон (чат/почта/QR) в буфер обмена. - Откройте DarkTunnel, нажмите на кнопку справа вверху (три точки), Config -> Import -> Clipboard — DarkTunnel подхватит конфиг.
Вариант 2 — вручную (если нужно):
| Поле | Значение |
|---|---|
| Tunnel Type | SSH Through DNSTT |
| Target | localhost:22@root:<ваш_пароль_root> |
| UDP DNS | 1.1.1.1:53 (или свой публичный резолвер) |
| Server name | t.example.com |
| Public key | содержимое server.pub (скрипт выведет) |
| Payload | оставить пустым |
DNSTT упаковывает трафик в DNS‑запросы, которые почти всегда разрешены в сети.
Схема потока:
[DarkTunnel на Android] --DNS--> t.example.com (NS делегирован на VPS)
|
v
[DNSTT-сервер на VPS] -> SSH (127.0.0.1:22) -> ИнтернетСнаружи трафик выглядит как обычный DNS.
systemctl status dnstt-server
journalctl -u dnstt-server -f
ss -ulpn | grep 5300
iptables -t nat -L PREROUTING -n -v | grep ':53 '
tail -f /var/log/auth.logЕсли не коннектится:
- Проверьте, что порты 22 и 53 (UDP/TCP) открыты.
- Убедитесь в корректном делегировании (
dig NS t.example.com +short). - Смотрите логи
dnstt-serverиsshd.
/root/dnstt-setup.sh --uninstall
# или
/root/dnstt-setup.sh -uЧто делает деинсталляция:
- Останавливает/удаляет сервис
dnstt-server. - Удаляет
/usr/local/bin/dnstt-server,/opt/dnstt,/etc/dnstt. - Удаляет редиректы/открытия портов (53/5300) из
iptablesи сохраняет правила. - Не удаляет правило порта 22 без явного согласия (чтобы не потерять доступ).
- По желанию удаляет drop‑in
sshd_config.d/99-dnstt.confи установленный Go.
Используйте DNSTT в рамках закона и политик провайдера. Проект предназначен для обеспечения приватности и работы в ограниченных сетях, а не для несанкционированных действий.
by TrackLine
📦 лицензия: MIT
🧩 основано на gharib-uk/dnstt