Сеть
SOCKS5 — generic proxy protocol
Базовый протокол прокси-сервера: пересылка TCP / UDP к произвольному target host:port. Используется почти всеми VPN-клиентами как локальный интерфейс между приложениями и движком.
Определение
SOCKS5 — стандартный протокол прокси, описанный в RFC 1928 (1996). Клиент устанавливает TCP-соединение с прокси-сервером, аутентифицируется (по желанию) и просит установить TCP-, UDP- или Bind-соединение к произвольному target. Дальше — прокси-сервер передаёт байты в обе стороны.
В мире VPN SOCKS5 — это не протокол шифрованного туннеля (он не шифрует трафик сам по себе), а универсальный интерфейс между приложениями и VPN-движком, работающим локально или на удалённом сервере.
Как работает
SOCKS5 handshake — два простых обмена сообщениями:
- Negotiation. Клиент шлёт
[0x05, methods_count, methods...]— версия 5, какие методы аутентификации поддерживает (0x00 = no auth, 0x02 = username/password, 0x80–0xFE = vendor). - Server method choice. Сервер выбирает один и отвечает
[0x05, chosen_method]. - Authentication (если выбрана) — subprotocol на основе chosen_method.
- Request. Клиент шлёт
[0x05, cmd, 0x00, atyp, addr, port]. cmd: 0x01=CONNECT (TCP), 0x02=BIND, 0x03=UDP ASSOCIATE. - Reply. Сервер отвечает
[0x05, status, 0x00, atyp, bind_addr, bind_port]. Дальше — прозрачный pass-through байт.
Простой пример CLI-использования через curl:
curl --socks5 127.0.0.1:1080 https://example.com
Почему это важно для пользователя VPN
SOCKS5 — это «универсальный гнездо», в которое втыкаются почти все современные VPN-клиенты на десктопе. Типичная архитектура AmneziaVPN / Hiddify / NekoBox / V2Box / xray-core:
браузер / приложение
│ (SOCKS5 / HTTP proxy на 127.0.0.1:10808)
▼
VPN-движок (xray-core / sing-box)
│ (VLESS Reality / Shadowsocks-2022 / Trojan)
▼
VPN-сервер
Приложение настраивает свой системный прокси на 127.0.0.1:10808 (SOCKS5), все запросы уходят в VPN-движок, тот заворачивает их в выбранный VPN-протокол.
Альтернативы SOCKS5 как локального интерфейса:
- HTTP proxy — слабее (только HTTP/HTTPS, не любой TCP). Большинство VPN-клиентов поднимают и SOCKS5, и HTTP-proxy одновременно.
- TUN/TAP интерфейс — захват трафика на уровне ядра, без настройки прокси в приложениях. Это путь «system VPN» (Wintun на Windows, utun на macOS). Более прозрачно, но требует root / админ-прав.
- Routing-based — настройка маршрутизации на уровне OS. Самый низкоуровневый.
Юзеру: если у вас VPN не работает «глобально», только в браузере — почти наверняка ваш клиент работает в SOCKS5-режиме, и системный прокси настроен только в браузере. Чтобы покрыть всю систему — переключите клиент в TUN-режим (опция «System Proxy» / «TUN Mode» в большинстве GUI).
Важно: SOCKS5 не шифрует трафик. Если вы экспортируете SOCKS5-endpoint из своего VPN-движка в локальную сеть без VPN-туннеля поверх — это голый прокси, кто угодно в сети может его использовать и подслушать. Всегда привязывайте SOCKS5 к 127.0.0.1, не к 0.0.0.0.
Связанные термины
TUN/TAP — альтернативный интерфейс. Shadowsocks-2022 — VPN-протокол, часто использующий SOCKS5 как локальный фронт. NaïveProxy — поднимает SOCKS5 локально. xray-core, sing-box — VPN-движки, реализующие SOCKS5 inbound.