Проблема ресурсов

Бывает так: вы пишите стартап, который под капотом ворочает тяжелые данные, запускает нейронки или делает сложный рендеринг. Для работы этого «монстра» нужно 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. Моя цель была проще - дать вам пищу для размышлений и показать, что для запуска проекта не всегда нужны огромные бюджеты на инфраструктуру. Иногда достаточно одного старого ноутбука и капельки инженерной смекалки.