🔁 Как получить доступ к домашнему серверу без белого IP через внешний VPS (reverse SSH-туннель)

Задача

У вас есть домашний сервер (например, Orange Pi с Ubuntu Server), но:

  • он находится за NAT (нет белого IP);
  • вы хотите подключаться к нему удалённо из любой точки мира (ПК, ноутбук, смартфон);
  • есть внешний VPS с белым IP.

Решение: обратный SSH-туннель (reverse SSH tunnel) через VPS.


📦 Что потребуется

  • ✅ VPS с публичным IP
  • ✅ Домашний сервер (Orange Pi) под Ubuntu Server
  • ✅ Доступ к SSH на обоих устройствах
  • ✅ Открытый порт на VPS (например, 2222)

⚙️ Схема

[Вы с телефона/ноутбука]
|
SSH

[Внешний VPS] ←⎯⎯ Обратный туннель ⎯⎯ [Orange Pi]
(например: localhost:2222)

🛠️ Настройка шаг за шагом

1. На VPS: создайте пользователя (если нужно)

sudo adduser orangepi

Вы можете использовать и root, но лучше отдельного пользователя.


2. На Orange Pi: создаём обратный SSH-туннель

На вашем домашнем сервере (Orange Pi), выполните:

ssh -N -R 2222:localhost:22 orangepi@vps_ip_address

📌 Что означает:

  • -N — не выполнять команд на удалённом VPS
  • -R 2222:localhost:22 — пробросить порт 2222 на VPS к локальному порту 22 на Orange Pi
  • orangepi@vps_ip_address — учётка на VPS, куда подключаемся

После подключения — на VPS порт 2222 будет вести к SSH вашего Orange Pi.


3. Разрешите на VPS удалённый доступ к forwarded портам

Откройте /etc/ssh/sshd_config на VPS и убедитесь, что есть строки:

GatewayPorts yes
AllowTcpForwarding yes

Если их нет — добавьте, затем:

sudo systemctl restart sshd

4. Проверка подключения

Теперь с любой машины или телефона, подключаемся к VPS:

ssh orangepi@vps_ip_address -p 2222

Вы окажетесь на Orange Pi, хоть он за NAT и без белого IP!


🔁 Автоматизация подключения с автопереподключением

Установите на Orange Pi autossh:

sudo apt install autossh

Добавьте в crontab:

crontab -e

И вставьте:

@reboot autossh -M 0 -f -N -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 2222:localhost:22 orangepi@vps_ip_address

Теперь туннель будет восстанавливаться даже после перезагрузки или обрыва.


🔐 Рекомендуется: подключение по SSH-ключу

На Orange Pi:

ssh-keygen
ssh-copy-id orangepi@vps_ip_address

Теперь можно подключаться без пароля —идеально для autossh.


📲 Подключение с телефона (Termius, JuiceSSH)

  • Вводите IP VPS
  • Порт: 2222
  • Пользователь: тот, что на Orange Pi
  • Готово — вы подключаетесь через VPS на локальный сервер

📌 Заключение

Теперь вы можете управлять своим домашним сервером из любой точки мира — без проброса портов, без DynDNS — только с помощью VPS и reverse SSH-туннеля.