SOCKS5: универсальный прокси для TCP и UDP | Глоссарий FREEHOSTING

SOCKS5

SOCKS5 Proxy
SOCKS5 — Прокси-протокол сеансового уровня (RFC 1928). Передаёт TCP и UDP-трафик любого приложения, поддерживает аутентификацию и работает с IPv4, IPv6 и доменными именами.

Определение простыми словами

SOCKS5 — это туннель, который не разбирается в содержимом трафика. Клиент договаривается с прокси-сервером по TCP-порту (обычно 1080), сообщает, куда хочет подключиться, и сервер открывает второй сокет к назначению. Дальше байты гоняются в обе стороны без анализа протокола, поэтому через SOCKS5 проходят HTTP, FTP, SMTP, BitTorrent, MySQL и любой TCP или UDP.

В отличие от HTTP-прокси, SOCKS5 работает на сеансовом уровне OSI и передаёт IP-пакеты целиком, не модифицируя заголовки. Шифрования у самого протокола нет — конфиденциальность достигается оборачиванием в SSH-туннель или TLS.

Сравнение SOCKS5, HTTP-прокси и VPN

Параметр SOCKS5 HTTP-прокси VPN
Уровень OSI 5 (сеанс) 7 (приложение) 3 (сеть)
Поддержка UDP Да Нет Да
Шифрование Нет (нужен SSH/TLS) Только HTTPS-CONNECT Встроено
Настройка приложения На уровне приложения На уровне приложения На уровне ОС/устройства
Обход блокировок Хорошо Слабо Лучше всех

Кейсы использования

  • Доступ к рабочим базам данных через bastion-хост: ssh -D 1080 поднимает SOCKS5, и DBeaver ходит к PostgreSQL через туннель.
  • Парсинг сайтов с ротацией IP: SOCKS5-пул прокси у Bright Data или Smartproxy подменяет адрес для каждого запроса.
  • Tor работает поверх SOCKS5 на 127.0.0.1:9050.
  • Игровые трафики UDP, не пропускаемые HTTP-прокси: SOCKS5 даёт ассоциацию UDP-сокета.
  • Negative: чистый SOCKS5 не шифрует — пароль базы данных уйдёт в открытом виде, если без SSH/TLS.
  • Negative: некоторые приложения (мобильный софт, корпоративные программы) игнорируют системный прокси и требуют ProxyCap или аналогов.

Технические детали

# Поднять локальный SOCKS5 через SSH к удалённому серверу
ssh -fND 0.0.0.0:1080 user@vps.example.com -i ~/.ssh/id_ed25519

# Проверка
curl -x socks5h://127.0.0.1:1080 https://ifconfig.me

# Полноценный сервер: 3proxy с авторизацией
cat > /etc/3proxy/3proxy.cfg <<'EOF'
nserver 1.1.1.1
timeouts 1 5 30 60 180 1800 15 60
users user1:CL:strongPass
auth strong
allow user1
socks -p1080 -i0.0.0.0 -e0.0.0.0
log /var/log/3proxy/3proxy.log D
rotate 7
EOF
systemctl restart 3proxy

# Тест UDP-ассоциации (DNS через SOCKS5)
dig @1.1.1.1 example.com +tcp +socks5=127.0.0.1#1080

Параметр socks5h в curl означает, что DNS-запросы тоже идут через прокси — без него имя резолвится локально и утечёт DNS-запрос провайдеру.

Частые вопросы

Чем SOCKS5 отличается от SOCKS4?

SOCKS5 поддерживает аутентификацию, UDP, IPv6 и передачу доменных имён. SOCKS4 — только TCP по IPv4 без пароля.

Безопасно ли использовать публичный SOCKS5?

Нет. Владелец видит весь нешифрованный трафик и может подменять контент. Использовать только свои или платные с репутацией, и желательно поверх HTTPS.

Можно ли запустить SOCKS5 на виртуальном хостинге?

Обычно нет — нужен открытый произвольный порт и доступ к процессу. Подходит VPS с root-доступом.