Перейти к содержимому
docs.
WORKSPACE

Документации проектов

Открыть каталог проектов
Localzet ServerАсинхронный PHP-серверTriangleФреймворк и компонентыMIX IDИдентификация и интеграцииHack APIПубличные API хакатонаACNПроект и компонентыUserlay / UserNetПроект и компонентыAxiomПроект и компонентыМесседжинг через почтуПроект и компонентыLWT / JWT / JOSEПроект и компонентыФинансовая аналитика KimaiПроект и компонентыМультипарадигмальная БДПроект и компонентыZorin PlatformПроект и компонентыZorin TrustПроект и компонентыFloraScope / VegwatchПроект и компонентыaegis-qДокументация проектаaevumdbДокументация проектаauditДокументация проектаauto-invest-managerАвтотрейдерcaine-companionДокументация проектаcertbot-cloudflareДокументация проектаClusterLocalzet Server / ClustercmdveilДокументация проектаConsolePHP CLICronБиблиотеки Localzet Serverdata-connectorДокументация проектаdevice-controlDevice Controlenn-projectДокументация проектаEventsБиблиотеки Localzet ServerflowsintДокументация проектаforgeДокументация проектаHttpClientБиблиотеки Localzet ServerinterpreterСобственный языкinvariaДокументация проектаkeynotesДокументация проектаknotrouteKnotroutelaravel-personal-analyticsДокументация проектаlocalzet-osДокументация проектаmeridianДокументация проектаMQTTБиблиотеки Localzet Servernano-kernelСобственная ОСNoterДокументация проектаpersonal-analyticsДокументация проектаProxyБиблиотеки Localzet ServerPSRБиблиотеки Localzet ServerPSR-7Библиотеки Localzet Serverrschs-monitorДокументация проектаsemsealДокументация проектаshardsealДокументация проектаSocketIOБиблиотеки Localzet ServerSOCKS5Библиотеки Localzet Server✓standalone-analyticsДокументация проектаstatic-php-cliДокументация проектаStorageБиблиотеки Localzet ServersutureДокументация проектаtempoweaveДокументация проектаttsСинтез речиTunnelБиблиотеки Localzet Serverui-kitUI KitvesperДокументация проектаWebAnalyzerWebAnalyzerzorin-access-brokerДокументация проектаzorin-authority-brokerДокументация проектаzorin-authority-sdk-phpДокументация проектаzorin-authority-sdk-pythonДокументация проектаzorin-authority-sdk-tsДокументация проектаzorin-client-intelДокументация проектаzorin-device-core-aospДокументация проектаzorin-host-agentДокументация проектаzorin-native-labДокументация проектаzorin-nodeДокументация проектаzorin-opsДокументация проектаdonstu-python-sdkДокументация проектаfloortraceFloortraceserver-rsLocalzet Server / Cluster
Каталог

SOCKS5 запускает TCP-прокси: клиент проходит выбор метода и аутентификацию, запрашивает CONNECT к IPv4-адресу или hostname, затем обменивается байтами с upstream. SOCKS не разбирает HTTP и не выполняет MITM-расшифровку HTTPS.

Это запускаемый сервис из start.php и config.php, а не класс для new Socks5().

Требуются PHP ^8.2 и Localzet Server ^4.1:

Окно терминала
git clone https://github.com/localzet/SOCKS5.git
cd SOCKS5
composer install

Задайте SOCKS5_USERNAME и SOCKS5_PASSWORD в защищённом окружении сервиса, затем выполните:

Окно терминала
php start.php start

Без обеих непустых credentials запуск отклоняется. Длина каждого поля ограничена 255 байтами. Не передавайте пароль аргументом shell-команды, который сохраняется в истории и списке процессов.

По умолчанию listener — 127.0.0.1:1080. Для остановки того же экземпляра:

Окно терминала
php start.php stop

Если меняли PID path через окружение, используйте его и при остановке. Для нескольких экземпляров нужны разные listener/port и PID/log paths.

В SOCKS-клиенте задайте адрес listener, порт и credentials. Чтобы hostname передавался прокси и DNS выполнялся на его стороне, выберите remote DNS — например, socks5h в клиенте, который поддерживает такое обозначение.

Успешный CONNECT возвращается после установления upstream-соединения. HTTPS остаётся TLS-потоком между клиентом и целевым сайтом; plain HTTP сам SOCKS не шифрует.

ЗапросПоведение
TCP CONNECT к IPv4Исходящее TCP-соединение.
TCP CONNECT к hostnameПроверка hostname, затем IPv4 DNS A record.
IPv6 destinationОтклоняется.
BINDНе реализован.
UDP ASSOCIATEОтклоняется: штатная конфигурация отключает UDP.
Username/passwordОсновной метод по умолчанию.
No-authТолько явно включённый loopback-режим.
GSSAPIНе предоставляется конфигурацией.
ПеременнаяDefaultУсловия
SOCKS5_BIND127.0.0.1Корректный IPv4-адрес.
SOCKS5_PORT1080Целое 1–65535.
SOCKS5_USERNAME, SOCKS5_PASSWORDНетОбязательны вне no-auth.
SOCKS5_ALLOW_NO_AUTHВыключенТолько точное 1, bind должен начинаться с 127..
SOCKS5_PID_FILE<sys_get_temp_dir()>/localzet-socks5.pidФайл управления экземпляром.
SOCKS5_LOG_FILE<sys_get_temp_dir()>/localzet-socks5.logЛог сервиса.

No-auth включается вместо username/password, а не как дополнительный обход проверки при неверном пароле. Изменение config.php напрямую требует понимания обработчиков; env-флага для включения UDP нет.

HandshakeBuffer накапливает данные до целого greeting, auth или CONNECT request. Несколько стадий могут прийти одним фрагментом, одна стадия — многими. Данные приложения, пришедшие сразу после CONNECT request, сохраняются и отправляются upstream после успешного подключения.

Лимит handshake buffer — 65 536 байт. На переход к relay даётся 10 секунд с момента принятия соединения. После перехода в stream этот timer удаляется; это не общий timeout или лимит объёма установленного relay.

Username/password SOCKS5 не шифрует credentials на участке клиент–прокси. Для удалённого подключения нужен доверенный/защищённый транспорт и ограничение входящих адресов.

Аутентифицированный клиент получает исходящий доступ машины прокси, включая доступные ей внутренние сети. Сам сервис не содержит ACL целей, rate limit или многопользовательскую базу прав. Допустимые destinations и egress-policy задавайте инфраструктурой.

Handshake API, ответы и диагностика

Исходный код · AGPL-3.0