Сегодня, 11.09.2026, я сформирую набор действий и подготовлю первую версию скрипта для Windows, с помощью которого хочу получить ещё один способ доступа в интернет без ограничений.
В основе решения — удалённое администрирование Ubuntu—систем посредством SSH (Secure Shell) с использованием встроенной возможности создания SOCKS—прокси.
Иными словами, задача достаточно простая: получить ещё один рабочий вариант доступа к интернету на базе связки SSH + SOCKS + VPS. Это не новый подход, а скорее практическая реализация уже давно известного способа, который можно использовать для собственных нужд.
Зачем появилась эта заметка
Причина появления заметки довольно практическая. На текущий момент используются несколько вариантов подключения:
3proxy— периодически домашние провайдеры блокируют или иным образом прерывают соединения;WireGuard + Mangleправила — пока работает;Ubuntu 24.04 + XFCE4 + AmneziaVPN Client— также пока работает.
Поэтому нужен ещё один способ подключения — возможно, не такой удобный, как перечисленные выше, но способный выступить в качестве резервного варианта.
Что понадобится для практической реализации
Для начала достаточно следующего:
- рабочая система на базе
Windows 10 Pro(Version 10.0.18362.356); - тестовый редактор
Notepad++; VPSс установленнойUbuntuили другой подходящей системой. В данном случаеVPSдолжен находиться за пределами России.
Шаг №1: С Windows системы (в данной заметке: Windows 10 Pro (Version 10.0.18362.356)) через которую я взаимодействую с личными и обслуживаемыми VPS системами (где OS: Ubuntu) посредством утилиты puttygen (у меня версия 0.78) формирую публичный и приватный ключ.
публичный прописываю на VPS системе сервиса ssh файл /etc/ssh/authorized_keys
приватный сохраняю себе на систему, к примеру, в каталог c:\script\vps_logon@wan_vps_ip_private_key.ppk
"Подключение к серверу Ubuntu Bionic Server через Putty + Public Key"
"Подключение к серверу Ubuntu 20.04 Server через Putty + Public Key"
Шаг №2: Настраиваем на VPS системе, к примеру, у меня это Ubuntu 22.04 LTS Server доступ через SSH на основе ключей, т.е. не нужно вводить логин и пароль, а только логин и приватный ключ, публичный прописываем в /etc/ssh/authorized_keys:
Ниже один из моих примеров настройки сервиса sshd:
vps_logon@wan_vps_ip:~$ sudo nano /etc/ssh/sshd_config
Include /etc/ssh/sshd_config.d/*.conf
Port 22
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile /etc/ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
KbdInteractiveAuthentication no
UsePAM yes
AllowTcpForwarding yes
X11Forwarding yes
PrintMotd no
PrintLastLog no
TCPKeepAlive yes
Banner none
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
AllowGroups sshauth
vps_logon@wan_vps_ip:~$ sudo service ssh restart
Шаг №3: Проверяем, что можем с Windows 10 Pro выполнить подключение к VPS системе:
Win + r -> cmd.exe
C:\Users\<windows_username>ssh -l vp_logon <vps_ip> -i C:\script\vp_logon@wan_vps_ip_private_key.ppk -p 22
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\script\vp_logon@wan_vps_ip_private_key.ppk' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "C:\script\vp_logon@wan_vps_ip_private_key.ppk": bad permissions
vps_logon@<vps_ip>: Permission denied (publickey).
Это кстати нормально, лечится данная ошибка заметкой: "Windows SSH Permissions for private key are too open"
Шаг №4: После предыдущего шага и действий заметки из файла приватного ключа (ppk-файл) нужно содержимое, для этого открываем его через текстовый редактор notepad++ и копирую в наш скрипт.
ниже пример что содержит ppk-файл
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNl
F/osLg4hPje7BoMAAAASZWNkc2Eta2V5LTIwMjMwNzMxAQIDBAUG
-----END OPENSSH PRIVATE KEY-----
Шаг №5: В процессе написания мне потребовалось узнать SID встроенных групп Windows:
rem wmic group where "name='Пользователи'" get name,sid = S-1-5-32-545
rem wmic group where "name='Администраторы'" get name,sid = S-1-5-32-544
rem "Прошедшие проверку" = S-1-5-11
rem "Система" = S-1-5-18
На заметку: правильнее будет удалять разрешения на каталог указывая не именование группы, а SID
Шаг №6: Чтобы поднять SOCKS—прокси нужно:
-D 31280 -> включаем динамическое перенаправление (SOCKS) на порт 31280 (Вы указываете выше 1024)
-N -> указывает SSH не выполнять удаленные команды (нужно только для туннелирования)
-o StrictHostKeyChecking=no -> отключает проверку ключа сервера при первом подключении. SSH не будет спрашивать: «Вы уверены, что хотите продолжить подключение (yes/no)?». Ключ автоматически примется
-o UserKnownHostsFile=NUL -> указывает SSH записывать (и искать) известные ключи серверов в «пустоту» (для Windows это файл NUL, аналог /dev/null на Linux). Благодаря этому на вашем компьютере не сохраняются следы подключения к этому серверу.
-o ServerAliveInterval=60 -> каждые 60 секунд ваш компьютер будет отправлять серверу «пустой» пакет, чтобы поддерживать соединение активным (чтобы роутер или провайдер не сбросили его из-за неактивности).
-o ServerAliveCountMax=3 -> если сервер не ответит на 3 таких пакета подряд, SSH-клиент закроет зависшее соединение.
Шаг №7: Приступаю, сперва сделаем чтобы можно было просто подключиться к VPS системе:
tips_script_ssh_tunnel_to_vps_v1
Шаг №8: После формирую скрипт работы в качестве socks организации:
tips_script_ssh_tunnel_to_vps_socks_browser_v1
Шаг №9: В каталоге C:\script располагаю два скрипта
1. tips_script_ssh_tunnel_to_vps_socks_browser_v1
2. tips_script_socks_browser_delete_v1
содержание 2-го скрипта
@echo off
rem Windows 10 Pro Version 10.0.18363.657
rem Proxy disable
rem Win - набираю Параметры прокси-сервера - Прокси-сервер и где "Использовать прокси-сервер"
rem Kill: Win - набираю Параметры прокси-сервера - Прокси-сервер и где "Использовать прокси-сервер"
taskkill /F /IM "SystemSettings.exe"
netsh winhttp reset autoproxy
rem netsh winhttp reset proxy
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
set "path_key=c:\keyppk"
if exist %path_key% rmdir /S /Q %path_key%
Шаг №10: Порядок использования:
- запускаем под пользователем 1-й скрипт, он подключается к VPS системе и сворачиваем подключение
- открываем браузер и уже Socks прописан
- можно серферить
- после закрываем свернутое подключение
- и запускаем 2-й скрипт, он удалит изменения по части socks в реестре
Ну не сказать, что очень удобно так использовать подключение, но как альтернатива быстрой организации подключения из того что есть, у меня свои наработки в лице инструкций, скриптов, файлов доступа в переносной структуре после подключения шифрованного диска, так что все нормально.
На заметку: Предполагаю, что тот кто будет применять заметку к себе понимает что написано.
На этом заметка завершена, с уважением автор блога ekzorchik.