Проблема ресурсов
Бывает так: вы пишите стартап, который под капотом ворочает тяжелые данные, запускает нейронки или делает сложный рендеринг. Для работы этого «монстра» нужно 32 ГБ оперативы и мощный процессор, а бюджет позволяет купить только самый дешевый VPS с 1 ГБ ОЗУ.
Платить сотни долларов в месяц за сервер, на который заходит три калеки (вы и ваша мама), - больно. Но выход есть: использовать домашнее железо как основной сервер, а дешевый VPS — как «входную дверь» или белый IP-адрес.
Настройка туннеля
Идея проста: клиент заходит по домену на ваш дешевый VPS, а тот незаметно перенаправляет трафик через SSH-туннель прямо на ваш домашний компьютер (или сервер под столом).
Шаг 1. Настройка VPS
Чтобы ваш сервер на удаленке принимал входящие соединения и пробрасывал их внутрь туннеля, нужно поправить конфиг SSH.
Открываем /etc/ssh/sshd_config и разрешаем GatewayPorts:
# Включаем возможность проброса портов на внешние интерфейсы
GatewayPorts yes
После этого не забудьте перезапустить службу: sudo systemctl restart ssh.
Шаг 2. Проброс порта с домашнего ПК
Теперь на домашней машине (которая и будет выполнять всю тяжелую работу) запускаем магическую команду. Она свяжет порт 80 на VPS с портом 80 на вашем localhost.
ssh -R 0.0.0.0:80:localhost:80 user@myVPS
Разбор параметров:
-R— указывает на реверсивный туннель.0.0.0.0:80— VPS будет слушать 80-й порт на всех интерфейсах.localhost:80— куда именно перенаправлять трафик на вашей машине.
Плюсы и минусы
Этот метод кажется идеальным, но стоит учитывать нюансы:
- Плюсы: Бесплатные ресурсы (ваше железо), легкость настройки, не нужен белый IP дома.
- Минусы: Пинг (трафик идет через VPS), зависимость от вашего домашнего провайдера и электричества в квартире.
Послесловие
Для стадии разработки или закрытого бета-теста — это ультимативное решение. Когда проект взлетит и появятся деньги, можно будет переехать в полноценное облако, а пока - «Old school, hard core».
Разумеется, в рамках этого поста мы не касаемся вопросов безопасности, настройки брандмауэров или обеспечения аптайма в 99.9%. Домашний сервер через туннель — это всегда компромисс между стоимостью и стабильностью.
Тот, кто всерьез заинтересуется темой, наверняка сможет разобраться в деталях: настроить autossh для автоматического переподключения при обрывах или завернуть трафик в WireGuard. Моя цель была проще - дать вам пищу для размышлений и показать, что для запуска проекта не всегда нужны огромные бюджеты на инфраструктуру. Иногда достаточно одного старого ноутбука и капельки инженерной смекалки.