Настройка VPN через туннель к VPS
Окружение для настройки.
- Имеется VPS с выделенным IP где-то в Европе. Там стоит Linux, в моем случае это Ubuntu. Нужно иметь на сервер права администратора. Сервер должен принимать соединения по ssh.
- Машина с Windows 10 или 11.
- VPS должен быть виден через ваше интернет-соединение. В моем случае у меня было два интернет-подключения: через мобильное соединение VPS виден не был, через проводное соединение видимость была.
- Не должно быть работающих VPN-соединений.
Установка туннеля.
Нужно открыть windows Power Shell от лица администратора.
В windows PowerShell нужно подключиться к вашему VPS:
ssh -D 0.0.0.0:1080 -N root@[IP_your_vps]
Windows может попросить подтвердить использование туннеля.
Если у вас нет ключа доступа к VPS, то потребуется ввести пароль для root.
Сессия откроется, это окно PowerShell нужно оставить открытым, оно "зависнет", то есть через туннель пойдет обмен.
Откройте другое окно Power Shell с обычными правами. Проверка соединения:
curl.exe --proxy socks5h://127.0.0.1:1080 https://api.ipify.org
Команда должна показать IP вашего VPS.
В настройках Windows есть раздел "proxy" его можно использовать для включения обмена, но с оговорками. Нужно иметь в виду, что туннель открывается только для протокола socks, для протоколов http и https он не работает. В поле "Proxy IP address" нужно прописать
socks=127.0.0.1:1080
в поле для значения порта ничего быть не должно.
После того, как вы запишите эти настройки, они корректно пропишутся в реестр windows, но при редактировании оттуда будут взяты неверные значения. при повторной записи работа прокси сломается, ниже пример того, как интерпретирует эти настройки интерфейс windows:
для корректной настройки лучше пользоваться PowerShell, чтобы посмотреть настройки используйте команду
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
для установки протокола socks:
Set-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' ProxyServer 'socks=127.0.0.1:1080'
Нужно иметь в виду, что с таким proxy в вашем случае будут работать только те приложения, которые используют протокол socks.
Не все приложения Windows используют системный SOCKS-прокси.
Например:
- браузеры обычно умеют
- некоторые программы используют WinINET/WinHTTP
- некоторые (включая часть Electron/Node-приложений) игнорируют системный SOCKS и требуют отдельной настройки
