Десктопное приложение для Windows и Linux, которое поднимает локальный SOCKS5-прокси и направляет трафик через SSH-соединение с удалённым VDS.
Приложение подходит для Telegram, браузеров, FoxyProxy и других программ с поддержкой SOCKS5. Устанавливать системный SSH-клиент или отдельный прокси-сервер на VDS не требуется.
Скачать последнюю версию для Windows или Linux
- подключение к VDS по SSH с приватным ключом;
- поддержка RSA, ECDSA и Ed25519 в форматах OpenSSH, PEM и PKCS#8;
- запрос пароля для зашифрованного ключа без сохранения на диск;
- SOCKS5-прокси на локальном адресе
127.0.0.1; - передача DNS-запросов через VDS при поддержке удалённого DNS клиентом;
- проверка SHA256-отпечатка SSH-сервера при первом подключении;
- блокировка подключения при неожиданной смене ключа сервера;
- автоматическое переподключение после временного обрыва сети;
- сохранение адреса, портов, пользователя и пути к ключу;
- готовые сборки для Windows x86-64 и Linux x86-64.
Telegram или браузер
|
| SOCKS5 127.0.0.1:1080
|
VDS Proxy
|
| зашифрованное SSH-соединение
|
VDS
|
| соединение с нужным сайтом
|
Интернет
Приложение не выполняет команды на VDS и не изменяет его конфигурацию. Для
каждого запроса SOCKS5 оно открывает стандартный SSH-канал direct-tcpip.
- Скачайте
VDS-Proxy-windows-x86_64.exeсо страницы Releases. - Запустите файл.
- Если Windows SmartScreen предупредит о неизвестном издателе, откройте «Подробнее» и выберите «Выполнить в любом случае».
Сборка пока не подписана коммерческим сертификатом. Проверить целостность файла
можно по SHA256SUMS из релиза.
Скачайте AppImage, разрешите его выполнение и запустите:
chmod +x VDS-Proxy-linux-x86_64.AppImage
./VDS-Proxy-linux-x86_64.AppImageДля локальной сборки из репозитория:
go run ./cmd/vds-proxyВ главном окне заполните:
| Поле | Что указать |
|---|---|
| Адрес VDS | IP-адрес или доменное имя сервера |
| SSH-порт | Обычно 22 |
| Пользователь | Пользователь Linux, которому добавлен публичный ключ |
| Приватный ключ | Локальный файл соответствующего приватного ключа |
| Локальный порт | Обычно 1080; можно выбрать другой свободный порт |
Нажмите «Запустить прокси». При первом подключении приложение покажет алгоритм и SHA256-отпечаток ключа сервера. Сверьте отпечаток с данными администратора VDS и только после этого подтвердите доверие.
После подключения приложение покажет адрес:
127.0.0.1:1080
Именно его необходимо указать в программе, трафик которой должен проходить через VDS.
- Откройте «Настройки» → «Продвинутые настройки» → «Тип соединения».
- Выберите SOCKS5.
- Укажите сервер
127.0.0.1и порт1080. - Имя пользователя и пароль оставьте пустыми.
- Откройте настройки сети.
- Выберите ручную настройку прокси.
- В поле SOCKS укажите
127.0.0.1, порт1080. - Выберите SOCKS v5.
- Включите проксирование DNS через SOCKS v5.
Chrome не предоставляет отдельную постоянную настройку SOCKS5 в интерфейсе. Используйте FoxyProxy или аналогичное расширение и создайте профиль:
Тип: SOCKS5
Адрес: 127.0.0.1
Порт: 1080
Включите удалённое разрешение DNS, если расширение предлагает такую настройку.
На сервере должен работать OpenSSH и быть разрешён local TCP forwarding. Рекомендуется создать отдельного непривилегированного пользователя и разрешить ему вход только по ключу.
Пример важных параметров /etc/ssh/sshd_config:
AllowTcpForwarding local
PasswordAuthentication no
PermitTTY no
X11Forwarding no
AllowAgentForwarding no
Публичную часть ключа добавьте в:
/home/<пользователь>/.ssh/authorized_keys
Перед перезапуском SSH проверьте конфигурацию:
sudo sshd -tНе закрывайте текущую административную SSH-сессию, пока не проверите вход нового пользователя и работу forwarding.
- Локальный прокси слушает только
127.0.0.1и недоступен другим устройствам локальной сети. - Пароль приватного ключа существует только в памяти работающего приложения.
- Сам приватный ключ не копируется в каталог приложения.
- Доверенные ключи серверов сохраняются в отдельном
known_hosts. - При смене ключа VDS соединение блокируется. После подтверждённой переустановки сервера используйте в приложении кнопку «Сбросить доверие».
- Приложение не анализирует и не записывает передаваемый трафик.
Используйте прокси только на серверах и для трафика, которыми вы имеете право управлять.
Приложение использует стандартный пользовательский каталог конфигурации операционной системы. Сохраняются только:
- адрес VDS;
- SSH-порт и пользователь;
- локальный порт;
- путь к приватному ключу;
- подтверждённые публичные ключи серверов.
Пароли и содержимое приватных ключей не сохраняются.
Проверьте адрес сервера, SSH-порт, сетевой экран и доступность sshd.
Проверьте имя пользователя, права каталога .ssh, содержимое authorized_keys
и соответствие приватного ключа публичному.
Выберите другой порт, например 1081, и укажите тот же порт в Telegram или
браузере.
Убедитесь, что программа действительно использует SOCKS5-профиль. Для браузера также включите удалённое разрешение DNS через прокси.
Сначала независимо проверьте новый SHA256-отпечаток. Затем нажмите «Сбросить доверие» и подключитесь заново.
Требуются Go 1.24 или новее, C-компилятор и системные зависимости Fyne.
go mod download
go test ./...
go run ./cmd/vds-proxyОсновные пакеты:
internal/tunnel: SSH-подключение и жизненный цикл туннеля;internal/socks: минимальный SOCKS5-сервер;internal/hostkeys: проверка и хранение ключей серверов;internal/config: настройки приложения;internal/ui: интерфейс Fyne.
Linux:
go build -trimpath -ldflags="-s -w" -o vds-proxy ./cmd/vds-proxyWindows собирается через MinGW или fyne-cross. Workflow
.github/workflows/release.yml запускает тесты и создаёт:
VDS-Proxy-windows-x86_64.exe;VDS-Proxy-linux-x86_64.AppImage;SHA256SUMS.
Workflow запускается вручную или при отправке тега вида v*.
Лицензия пока не выбрана. До появления файла LICENSE использование,
распространение и модификация исходного кода требуют разрешения правообладателя.
