Статья для тех у кого есть VPS но хочет держать сервер на своем ПК и его не устраивает NGrok и ему подобные. (для Windows 10/11, без *** и сложных настроек) Для кого это? Если вам нужно: Пробросить порт с VPS (белый IP) на домашний ПК (серый IP). Быстро запустить игровой сервер, веб-сервис или другой софт локально, сделав его доступным из интернета. Обойтись без *** и долгой настройки. 1. Предварительные требования VPS с Windows 10/11 (доступ по RDP, права администратора). Домашний ПК с Windows 10/11. Открытый порт 22 (или 443) на VPS (проверьте у хостера). 2. Настройка SSH-сервера на VPS Установите OpenSSH Server: Откройте PowerShell от имени администратора. Выполните команды: # Установка OpenSSH Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 # Запуск службы Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' Code # Установка OpenSSH Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 # Запуск службы Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' Откройте порт SSH в брандмауэре: New-NetFirewallRule -Name "SSH" -DisplayName "SSH" -Protocol TCP -LocalPort 22 -Action Allow Code New-NetFirewallRule -Name "SSH" -DisplayName "SSH" -Protocol TCP -LocalPort 22 -Action Allow 3. Настройка домашнего ПК Убедитесь, что SSH-клиент установлен: Для этого в PowerShell выполните: # Проверка наличия OpenSSH Client Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*' # Если не установлен: Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 Code # Проверка наличия OpenSSH Client Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*' # Если не установлен: Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 4. Проброс порта через Reverse SSH Запустите Reverse SSH-туннель на домашнем ПК: ssh -R 25565:localhost:25565 username@server_ip -N -f Code ssh -R 25565:localhost:25565 username@server_ip -N -f Где: 25565:localhost:25565 → внешний порт на сервере → порт на домашнем ПК. username → логин администратора VPS (например, Administrator). server_ip → IP вашего VPS. Флаги -N -f оставляют туннель работать в фоне. Пример для Minecraft-сервера: Если локальный сервер слушает порт 25565, то игроки подключатся к server_ip:25565. 5. Проверка работоспособности На VPS: Проверьте, что порт слушается: netstat -an | Select-String "25565" Code netstat -an | Select-String "25565" В выводе должна быть строка: TCP 0.0.0.0:25565 0.0.0.0:0 LISTENING. На домашнем ПК: Запустите тестовый сервер (например, Python): python -m http.server 25565 Code python -m http.server 25565 Откройте в браузере http://server_ip:25565 → должно отобразиться содержимое папки 6. Автозапуск туннеля при старте системы Создайте файл tunnel.bat с содержимым: ssh -R 25565:localhost:25565 username@server_ip -N -f Code ssh -R 25565:localhost:25565 username@server_ip -N -f Добавьте его в Планировщик задач: Триггер: При запуске. Действие: Запустить программу → укажите путь к tunnel.bat. 7. Если SSH заблокирован провайдером (актуально для РФ) Измените порт SSH на VPS (например, на 443): Откройте файл C:\ProgramData\ssh\sshd_config. Добавьте строку: Port 443 Перезапустите службу: Restart-Service sshd Используйте новый порт в команде: ssh -R 25565:localhost:25565 -p 443 username@server_ip -N -f 8. Проброс диапазона портов Если нужно пробросить порты 25560-25570: На домашнем ПК выполните: for ($port=25560; $port -le 25570; $port++) { ssh -R ${port}:localhost:${port} username@server_ip -N -f } Code for ($port=25560; $port -le 25570; $port++) { ssh -R ${port}:localhost:${port} username@server_ip -N -f } Добавьте команду в tunnel.bat или создайте отдельные задания в планировщике. 9. Частые проблемы и решения Порт не слушается на VPS: Проверьте брандмауэр VPS: New-NetFirewallRule -Name "GamePort" -Protocol TCP -LocalPort 25565 -Action Allow. Убедитесь, что туннель активен: Get-Process ssh. Ошибка «Connection refused»: Убедитесь, что локальный сервер на домашнем ПК запущен и слушает нужный порт. SS-соединение обрывается: Добавьте параметр -o ServerAliveInterval=60 в команду SSH для поддержания связи. Информацию я брал с открытых источников, расписал мануал, но для красоты и правильности текста прогнал через ГПТ-брата. Всем спасибо<3