Мой домашний интернет-провайдер использует CGNAT, поэтому я начал рассматривать использование VPS и установку SSH-туннеля, чтобы иметь возможность подключаться.
Я купил дешевый VPS для проверки этой идеи. Могу перейти на более мощный, если потребуется, но сначала хочу убедиться, что всё работает.
- Домашний сервер под управлением Windows 11
- VPS под управлением Ubuntu
Я могу подключиться по SSH к VPS с Windows-сервера, сгенерировал и скопировал SSH-ключ, поэтому достаточно набрать:
“ssh <ip_вПС> -l <имя_пользователя>”
и подключение происходит без запроса пароля (без установки passkey)
Я читал много о том, что нужно настроить обратный туннель. Мне хотелось бы протестировать это, прежде чем настраивать autossh или что-то подобное, чтобы держать туннель открытым.
На моем сервере с Windows 11 дома я набираю:
“ssh -R <порт_вПС>:localhost:32400 <пользователь>@<ip_вПС>”
После запуска этого я ожидаю возможность открыть браузер и перейти по адресу:
HTTP://<ip_вПС>:<порт_вПС> и получить доступ к Plex через порт 32400 моего домашнего сервера Windows 11.
Но… ничего не выходит.
Может кто подскажет?
Я пробовал использовать ngrok, но быстро растратил весь бесплатный трафик и подумал, что так проще.
Спасибо!
Рекомендую использовать PuTTy для Windows вместо командной строки. В Linux — терминал, а PuTTy очень помогает для первых экспериментов (можно даже сохранять ключи в профилях). Кажется, что SSH ведет себя как VPN к вашем серверу, но это не так.
Чтобы подключиться — нужно настроить VPN-клиент и соединить его с сервером, потребуется сначала настроить OpenVPN или использовать внешние сервисы вроде CloudFlare.
SSH-соединение само по себе не переносит трафик снаружи через VPS к вашей машине автоматически. Нужно настроить Wireguard и изменить правила IPTABLES на VPS. Эти правила делают VPS маршрутизатором для входящего трафика по его публичному IP — так трафик может перенаправляться через Wireguard к вашему домашнему серверу.
Спасибо всем, я скачал PuTTy и начну изучать старые посты, где речь идет о Wireguard / OpenVPN и подобных технологиях.
Много альтернатив ngrok, у которых нет таких ограничений — https://github.com/anderspitman/awesome-tunneling. Я рекомендую zrok.io, так как сам работаю над его родительским проектом OpenZiti. zrok — это open source с бесплатными (более щедрыми и функциональными) SaaS-опциями по сравнению с ngrok.
Также интересно разобраться в этом. Пожалуйста, делитесь своими экспериментами и ошибками.
Я немного изучил тему, но времени впритык, чтобы глубже погрузиться. В последние 6-7 лет я был немного вдали от технологий из-за работы. Очень хочется сделать это, так как это многое откроет для меня, но потребуется время.
Я обязательно отпишусь, когда продвинусь.