Перейти до вмісту
Типы прокси 7 хв читання 421 переглядів

SOCKS4 проти SOCKS5

Зрозумійте ключові відмінності між протоколами проксі SOCKS4 та SOCKS5. Дізнайтеся, який пропонує кращу безпеку, функції та продуктивність для вашої онлайн-активності.

SOCKS5
SOCKS4 проти SOCKS5

SOCKS5 — це більш досконалий і широко рекомендований протокол проксі-сервера порівняно з SOCKS4, який насамперед пропонує підтримку UDP-трафіку, IPv6 та різних методів автентифікації, тоді як SOCKS4 обмежений TCP-з'єднаннями, IPv4 та не має автентифікації.

Проксі SOCKS (Socket Secure) працює на рівні 5 (сесійний рівень) моделі OSI, діючи як посередник між клієнтською програмою та сервером. На відміну від проксі-серверів, специфічних для програм (наприклад, HTTP-проксі), SOCKS-проксі є протокольно-незалежними, пересилаючи весь трафік від імені клієнта без інтерпретації самого мережевого протоколу. Це дозволяє їм обробляти різні типи трафіку, включаючи HTTP, HTTPS, FTP та інші, шляхом встановлення з'єднання з цільовим сервером та ретрансляції даних.

Протокол SOCKS4

SOCKS4 — це старіша версія протоколу SOCKS, розроблена для простіших вимог до проксі-серверів.

Основна функціональність

SOCKS4 виключно підтримує проксіювання TCP (Transmission Control Protocol) з'єднань. Коли клієнт хоче встановити з'єднання з цільовим сервером через SOCKS4-проксі, він надсилає запит на з'єднання до проксі-сервера. Проксі потім встановлює з'єднання з цільовим сервером від імені клієнта та ретранслює дані між ними.

Обмеження

  • Тільки TCP: SOCKS4 не може обробляти UDP (User Datagram Protocol) трафік, що робить його непридатним для програм, які покладаються на UDP для зв'язку, таких як онлайн-ігри, потокове відео або певні VoIP-сервіси.
  • Тільки IPv4: Він розроблений для роботи виключно з IPv4-адресами. Він не підтримує IPv6, що обмежує його корисність у сучасних мережевих середовищах, які все частіше використовують IPv6.
  • Без автентифікації: SOCKS4 не надає жодних вбудованих механізмів автентифікації. Будь-який клієнт може підключитися та використовувати проксі, що робить його менш безпечним для публічних або спільних проксі-сервісів. Поле USERID у запиті SOCKS4 є лише ідентифікатором, а не для автентифікації.
  • Роздільна здатність DNS на стороні клієнта: Клієнтська програма повинна розв'язати ім'я хоста призначення в IPv4-адресу перед надсиланням запиту до SOCKS4-проксі. Проксі отримує IP-адресу, а не доменне ім'я.
  • Обмежені команди: SOCKS4 в основному підтримує одну команду для встановлення з'єднання.

Розширення SOCKS4a

Неофіційне розширення, SOCKS4a, було представлено для вирішення обмеження роздільної здатності DNS на стороні клієнта. За допомогою SOCKS4a клієнти можуть надсилати доменне ім'я замість IP-адреси. Проксі-сервер потім виконує роздільну здатність DNS. Незважаючи на це покращення, SOCKS4a все ще зберігає інші обмеження SOCKS4, такі як підтримка лише TCP та лише IPv4.

Структура запиту SOCKS4 (концептуальна)

Запит на з'єднання SOCKS4 зазвичай передбачає надсилання клієнтом послідовності байтів до проксі-сервера.

+----+----+----+----+----+----+----+----+----+----+....+----+
| VN | CD | DSTPORT |      DSTIP        | USERID       | NULL |
+----+----+----+----+----+----+----+----+----+----+....+----+
  1    1      2              4           variable      1
  • VN: Номер версії (0x04 для SOCKS4)
  • CD: Код команди (0x01 для CONNECT)
  • DSTPORT: Порт призначення
  • DSTIP: IP-адреса призначення
  • USERID: Ідентифікатор користувача (змінної довжини, нуль-термінований)

Для SOCKS4a, якщо DSTIP є 0.0.0.X (де X ненульовий), фактичне доменне ім'я додається після нульового байта, що слідує за USERID.

Протокол SOCKS5

SOCKS5 є поточним стандартом і значним покращенням порівняно з SOCKS4, пропонуючи більшу гнучкість та можливості.

Основна функціональність

SOCKS5 підтримує як TCP, так і UDP трафік. Ця подвійна можливість робить його придатним для ширшого спектра застосувань, включаючи ті, що вимагають зв'язку в реальному часі. Він також вводить фазу узгодження методів автентифікації, що дозволяє більш безпечне використання проксі.

Ключові покращення

  • Підтримка TCP та UDP: SOCKS5 може проксіювати як TCP, так і UDP з'єднання. Підтримка UDP є критично важливою для таких програм, як VPN (при використанні тунелів на основі UDP), онлайн-ігри, прямі трансляції та DNS-запити (якщо використовується DNS-розв'язувач на основі UDP).
  • Методи автентифікації: SOCKS5 підтримує кілька методів автентифікації, підвищуючи безпеку. Поширені методи включають:
    • Без автентифікації (0x00): Аналогічно SOCKS4, облікові дані не потрібні.
    • Ім'я користувача/Пароль (0x01): Клієнти надають ім'я користувача та пароль проксі-серверу для перевірки.
    • GSS-API (0x02): Більш надійний, розширюваний механізм безпеки, який зазвичай використовується в корпоративних середовищах.
  • Підтримка IPv4 та IPv6: SOCKS5 нативно підтримує як IPv4, так і IPv6 адресацію, що робить його перспективним та сумісним із сучасними мережевими інфраструктурами.
  • Роздільна здатність DNS на стороні сервера: Клієнти можуть надсилати доменне ім'я безпосередньо до SOCKS5-проксі, який потім виконує роздільну здатність DNS. Це знімає завдання роздільної здатності з клієнта та іноді може покращити конфіденційність, запобігаючи локальним DNS-запитам.
  • Розширені команди: SOCKS5 підтримує три основні команди:
    • CONNECT (0x01): Встановлює TCP-з'єднання з пунктом призначення.
    • BIND (0x02): Використовується для протоколів, де серверу потрібно ініціювати зворотне з'єднання з клієнтом (наприклад, деякі режими FTP). Проксі прослуховує вхідне з'єднання від імені клієнта.
    • UDP ASSOCIATE (0x03): Встановлює UDP-ретрансляцію, дозволяючи клієнту надсилати та отримувати UDP-пакети через проксі.

Структура запиту SOCKS5 (концептуальна)

SOCKS5 передбачає початкову фазу узгодження автентифікації, за якою слідує фактичний запит на з'єднання.

Узгодження автентифікації (Клієнт до Проксі)
+----+----------+----------+
| VER | NMETHODS | METHODS  |
+----+----------+----------+
  1       1       1 to 255
  • VER: Версія протоколу (0x05 для SOCKS5)
  • NMETHODS: Кількість методів автентифікації, підтримуваних клієнтом
  • METHODS: Список підтримуваних методів автентифікації
Відповідь автентифікації (Проксі до Клієнта)
+----+--------+
| VER | METHOD |
+----+--------+
  1      1
  • VER: Версія протоколу (0x05)
  • METHOD: Обраний метод автентифікації (0xFF, якщо немає прийнятного методу)
Запит на з'єднання (Клієнт до Проксі)
+----+-----+-------+------+----------+----------+
| VER | CMD |  RSV  | ATYP | DST.ADDR | DST.PORT |
+----+-----+-------+------+----------+----------+
  1     1      1      1     variable      2
  • VER: Версія протоколу (0x05)
  • CMD: Команда (0x01 для CONNECT, 0x02 для BIND, 0x03 для UDP ASSOCIATE)
  • RSV: Зарезервовано (0x00)
  • ATYP: Тип адреси (0x01 для IPv4, 0x03 для доменного імені, 0x04 для IPv6)
  • DST.ADDR: Адреса призначення (змінної довжини залежно від ATYP)
  • DST.PORT: Порт призначення

SOCKS4 проти SOCKS5: Ключові відмінності

Функція SOCKS4 SOCKS5
Версія протоколу 4 5
Підтримка TCP Так Так
Підтримка UDP Ні Так
Автентифікація Без вбудованої автентифікації Так (Без автентифікації, Ім'я користувача/Пароль, GSS-API тощо)
Підтримка IPv4 Так Так
Підтримка IPv6 Ні Так
Роздільна здатність DNS На стороні клієнта (SOCKS4a дозволяє на стороні проксі) На стороні проксі (також може бути на стороні клієнта)
Типи адрес IPv4 (та доменні імена з SOCKS4a) IPv4, IPv6, Доменне ім'я
Команди CONNECT CONNECT, BIND, UDP ASSOCIATE
Безпека Нижча (через відсутність автентифікації) Вища (через параметри автентифікації)

Який протокол обрати

Вибір між SOCKS4 та SOCKS5 залежить від конкретних вимог програми, мережевого середовища та міркувань безпеки.

Коли обирати SOCKS4

SOCKS4 зазвичай вважається застарілим. Його використання обмежене конкретними сценаріями:

  • Застарілі системи: При роботі зі старими клієнтськими програмами або проксі-серверами, які підтримують лише SOCKS4.
  • Простота: Для надзвичайно простих потреб проксіювання, де UDP, IPv6 та автентифікація суворо непотрібні, SOCKS4 пропонує незначно простішу реалізацію (хоча різниця в продуктивності незначна).
  • Мінімальні накладні витрати: Хоча різниця в накладних витратах на практиці мінімальна, SOCKS4 має дещо простіший процес встановлення з'єднання.

У більшості сучасних контекстів SOCKS4 не є кращим вибором через його обмеження.

Коли обирати SOCKS5

SOCKS5 є рекомендованим вибором для майже всіх сучасних випадків використання завдяки його чудовим можливостям та гнучкості:

  • UDP-трафік: Необхідний для програм, що вимагають UDP, таких як:
    • Онлайн-ігри
    • Голос через IP (VoIP)
    • Відеоконференції та потокове передавання
    • Обмін файлами за принципом "рівний-рівному" (P2P)
    • DNS-запити (якщо пересилаються через проксі)
  • Вимоги до автентифікації: Якщо проксі-сервіс вимагає автентифікації користувача для контролю доступу та безпеки, вбудовані методи автентифікації SOCKS5 є незамінними.
  • Підключення IPv6: Для середовищ, які використовують або вимагають IPv6, SOCKS5 забезпечує нативну підтримку, гарантуючи сумісність з майбутньою мережевою інфраструктурою.
  • Роздільна здатність DNS на стороні сервера: Якщо клієнт віддає перевагу, щоб проксі обробляв роздільну здатність DNS (наприклад, щоб потенційно маскувати локальні DNS-запити клієнта або для зручності), SOCKS5 пропонує цю можливість.
  • Сучасні програми: Більшість сучасного програмного забезпечення та операційних систем, які підтримують SOCKS-проксі, підтримуватимуть SOCKS5.
  • Гнучкість та перспективність: SOCKS5 пропонує більш надійне та універсальне рішення, яке краще пристосоване для обробки різноманітних та мінливих мережевих вимог.

Практичні міркування

При інтеграції SOCKS-проксі враховуйте наступне:

  • Безпека: Ні SOCKS4, ні SOCKS5 не шифрують самі дані. Вони насамперед полегшують з'єднання. Для безпечного зв'язку переконайтеся, що трафік програми сам по собі зашифрований (наприклад, за допомогою TLS/SSL для HTTPS-трафіку або шляхом тунелювання SOCKS-з'єднання через VPN).
  • Підтримка програм: Переконайтеся, що клієнтська програма або конфігурація операційної системи підтримує обрану версію протоколу SOCKS. Більшість сучасних програм за замовчуванням використовують SOCKS5, якщо він доступний.
  • Продуктивність: Різниця в продуктивності між SOCKS4 та SOCKS5 зазвичай незначна для типових TCP-з'єднань. Накладні витрати, спричинені узгодженням та автентифікацією SOCKS5, мінімальні. Основним фактором продуктивності буде затримка мережі та пропускна здатність між клієнтом, проксі та цільовим сервером.
  • Конфігурація: Налаштування SOCKS-проксі зазвичай передбачає вказівку IP-адреси або імені хоста проксі-сервера, порту, а для SOCKS5 — потенційно облікових даних для автентифікації.
# Приклад конфігурації програми (концептуальна)
proxy_type = SOCKS5
proxy_host = proxy.example.com
proxy_port = 1080
proxy_username = myuser
proxy_password = mypassword

Вибір SOCKS5 замість SOCKS4 є чіткою перевагою для сучасних мереж, пропонуючи ширший набір функцій та покращені можливості безпеки для широкого спектра застосувань.

Оновлено: 03.03.2026
Назад до категорії

Читайте також

Типы прокси 3 хв

Xray та Sing-box – Сучасні проксі-ядра

Xray та Sing-box є універсальними проксі-платформами нового покоління. Підтримка VLESS, VMess, Trojan, Shadowsocks та багатопротокольної маршрутизації.

Типы прокси 3 хв

VLESS та VMess Проксі-протоколи

VLESS та VMess — це сучасні проксі-протоколи від V2Ray. Обхід DPI, шифрування, обфускація трафіку та порівняння з SOCKS5 і Shadowsocks.

Типы прокси 3 хв

I2P проксі

I2P (Проєкт Невидимого Інтернету) — прихована мережа для анонімного спілкування. Відмінності від Tor, часникова маршрутизація та використання як проксі.

Типы прокси 3 хв

Вихідні вузли Tor як проксі

Використання вихідних вузлів Tor як проксі: як працює мережа Tor, переваги анонімності, обмеження швидкості та правові аспекти.

Типы прокси 3 хв

Хмарні функції як проксі (AWS Lambda, Cloudflare Workers)

Використання хмарних функцій (AWS Lambda, Cloudflare Workers, Google Cloud Functions) як проксі-серверів. Динамічні IP-адреси, масштабованість та обмеження.

Типы прокси 3 хв

Децентралізовані проксі (dVPN)

Децентралізовані проксі та dVPN: блокчейн-мережі для анонімного доступу, токеноміка, приклади проектів та порівняння з традиційними проксі.

Спробуйте наші проксі

20,000+ проксі в 100+ країнах світу

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.