Народный

Сеть

SOCKS5 — generic proxy protocol

Базовый протокол прокси-сервера: пересылка TCP / UDP к произвольному target host:port. Используется почти всеми VPN-клиентами как локальный интерфейс между приложениями и движком.

Определение

SOCKS5 — стандартный протокол прокси, описанный в RFC 1928 (1996). Клиент устанавливает TCP-соединение с прокси-сервером, аутентифицируется (по желанию) и просит установить TCP-, UDP- или Bind-соединение к произвольному target. Дальше — прокси-сервер передаёт байты в обе стороны.

В мире VPN SOCKS5 — это не протокол шифрованного туннеля (он не шифрует трафик сам по себе), а универсальный интерфейс между приложениями и VPN-движком, работающим локально или на удалённом сервере.

Как работает

SOCKS5 handshake — два простых обмена сообщениями:

  1. Negotiation. Клиент шлёт [0x05, methods_count, methods...] — версия 5, какие методы аутентификации поддерживает (0x00 = no auth, 0x02 = username/password, 0x80–0xFE = vendor).
  2. Server method choice. Сервер выбирает один и отвечает [0x05, chosen_method].
  3. Authentication (если выбрана) — subprotocol на основе chosen_method.
  4. Request. Клиент шлёт [0x05, cmd, 0x00, atyp, addr, port]. cmd: 0x01=CONNECT (TCP), 0x02=BIND, 0x03=UDP ASSOCIATE.
  5. 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.

Источники