Иногда нужно получить надёжный SSH-доступ к домашнему серверу (ноутбуку или мини-серверу на Ubuntu), который находится за NAT/CGNAT провайдера. Публичный IPv4 отсутствует, а использовать полноценный VPN или облачные туннели (ngrok, Cloudflare Tunnel и т.п.) не хочется. (Раньше пользовался Cloudflare Tunnel, но в последнее время с ним часто случались проблемы)
Способ reverse SSH tunnel с использованием autossh для поддержания постоянного соединения + ProxyCommand через существующий SOCKS-прокси: Xray socks inbound.
Сделаем reverse SSH tunnel через autossh с проксированием через Xray (VLESS + Reality) и пробросом нестандартного порта (2222)
Основная цель: Получить SSH-доступ с любого устройства (в данном случае с MacBook) к домашнему серверу на Ubuntu 22.04 (далее как homeLaptop)
Выбранный подход: Будем использовать односторонний reverse tunnel от homeLaptop к : homeLaptop постоянно держит соединение к VPS и просит VPS слушать на порту 2222 и пересылать все подключения к этому порту на локальный порт homeLaptop (в моем случае sshd работает на 2222).
Получаем шифрованный и автоматически восстанавливающийся доступ к домашнему серверу без белого IP и без сторонних облачных сервисов. Всё управление — через уже работающий Xray, дополнительная нагрузка минимальна. (Мой VPSик на 1Gb RAM + 1 Cpu)
Если у вас уже есть Xray/V2Ray для обхода блокировок — этот способ добавляет reverse-доступ практически бесплатно.