Настройка SSH для VPS (Windows && Linux-WPS)
Настройка под Windows.
Для настройки соединения у вас обязательно должен быть файл с приватным ключом и желательно с публичным тоже. В моем примере я использую ключи в формате ED25519, которые приходят сейчас на смену ключам RSA. На VPS вы сгенирировали файлы с ключами, в моем случае они назывались id_ed25519 и id_ed25519.pub, лучше их переименовать в виде id_ed25519_myproxy и id_ed25519_myproxy,pub. Если у вас имеется несколько серверов с различными ключами, то названия файлов будут различаться и подключение будет управляться через файл config.
Положите файлы в папку C:\Users\[your_user_name]\.ssh\, в той же папке создайте файл config без расширения примерно с таким содержанием:
Host myproxy
HostName 11.22.33.44 # IP-адрес или домен вашего VPS
User root # Логин для подключения
IdentityFile ~/.ssh/id_ed25519_myproxy # Путь к файлу ключа
DynamicForward 0.0.0.0:1080
SessionType none
Port 22 # Порт (если меняли стандартный)
Строка DynamicForward 0.0.0.0:1080 это прямой аналог флага -D 0.0.0.0:1080 в файле конфигурации. Он включает локальный SOCKS5-прокси на порту 1080 для всех сетевых интерфейсов (0.0.0.0), строка SessionType none это директива RequestTTY no которая аналогична флагу -N и позволяет не выполнять команды на удаленном сервере, а только держать туннель.
Запуск туннеля на ваш сервер будет теперь выполняться одной командой:
ssh myproxy
Способ 1. Проверка через PowerShell (Windows) — Самый удобный
Get-NetTCPConnection -LocalPort 1080 -ErrorAction SilentlyContinue
-
Если порт открыт и прослушивается: Команда выведет таблицу с состоянием подключения (
State: Listen), а в колонкеOwningProcessбудет указан PID (идентификатор процесса, например, вашегоssh.exe). -
Если порт закрыт: Команда ничего не выведет (вернется пустая строка).
Способ 2. Классическая команда netstat (Windows CMD / PowerShell)
netstat -ano | findstr :1080
-
Ожидаемый результат (порт открыт):
PlaintextTCP 0.0.0.0:1080 0.0.0.0:0 LISTENING 1234(ЗначениеLISTENINGозначает, что SOCKS-туннель успешно поднят и ждет подключений, а1234в конце — это PID процесса SSH). -
Если порт закрыт: Вывод будет абсолютно пустым.
Способ 3. Проверка через терминал WSL (Linux)
# Через ss (современный аналог netstat)
ss -tulpn | grep 1080
# Или через классический netstat
netstat -tulpn | grep 1080
Способ 4. Экспресс-проверка подключения (Test-NetConnection)
Test-NetConnection -ComputerName 127.0.0.1 -Port 1080
-
TcpTestSucceeded : True— порт открыт и принимает соединения. -
TcpTestSucceeded : False— порт закрыт (SSH-туннель не запущен или упал).
Узнать, какая программа заняла порт:Если порт 1080 занят, но вы не уверены, чем именно, узнайте PID из командыnetstat(последнее число в строке) и выполните в PowerShell:PowerShellGet-Process -Id <PID>
No comments to display
No comments to display