SOCKS5 прокси — сетевой протокол проксирования (Socket Secure, версия 5), который работает на транспортном уровне и может пересылать любой TCP/UDP трафик, не анализируя его содержимое. В отличие от HTTP-прокси, SOCKS5 прозрачен для прикладных протоколов: через него работают HTTP, HTTPS, SMTP, FTP, BitTorrent — любой TCP/UDP.
Как работает
При подключении через SOCKS5 клиент сначала устанавливает соединение с прокси-сервером, аутентифицируется (опционально: login/password или без аутентификации), затем отправляет команду CONNECT с адресом назначения. Прокси устанавливает соединение с целевым сервером и перенаправляет трафик — клиент общается с целевым сервером через прокси.
Настройка SOCKS5 прокси на VPS через SSH tunnel (без установки прокси-сервера):
ssh -D 1080 -N user@your-server.com
Параметр -D 1080 создаёт локальный SOCKS5 прокси на порту 1080, который туннелирует трафик через SSH. Настоящий SOCKS5-сервер устанавливается через Dante или Microsocks.
Конфигурация Dante (/etc/danted.conf) позволяет настроить аутентификацию, ограничение по IP и аудит подключений. Подключение к SOCKS5 в curl: curl --socks5 proxy:1080 https://example.com.
История
SOCKS создан в MIRKYS Corp в начале 1990-х. SOCKS4 не поддерживал аутентификацию и работал только с TCP. SOCKS5 (RFC 1928, 1996) добавил аутентификацию и поддержку UDP. Широкое распространение SOCKS5 получил как инструмент обхода сетевых ограничений и анонимизации — популярность выросла с ростом интернет-цензуры в 2010-х.
На что обращать внимание
SOCKS5 не шифрует трафик — только проксирует. Для шифрования нужен HTTPS на прикладном уровне или отдельный туннель (VPN, SSH). SOCKS5 через SSH туннель шифрует — это удобное решение для личного использования.
Для VPS-провайдеров SOCKS5-сервер — дополнительная нагрузка: каждый туннелируемый поток — отдельное соединение. При высоком трафике это сказывается на потреблении трафика. Мобильные прокси — отдельная категория, использующая мобильные IP вместо серверных.
Настройка Dante SOCKS5 на VPS
Dante — наиболее популярный SOCKS5-сервер для Linux. Установка на Ubuntu:
apt install dante-server
Базовая конфигурация /etc/danted.conf:
logoutput: syslog
user.privileged: root
user.unprivileged: nobody
# Слушать на всех интерфейсах
internal: 0.0.0.0 port=1080
external: eth0
# Аутентификация по username/password
socksmethod: username
# Клиенты
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect
}
# Разрешить SOCKS5
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
socksmethod: username
log: connect disconnect
}
После настройки добавьте пользователей Linux (adduser proxyuser) — они используются для аутентификации в прокси. Закройте порт 1080 через UFW для всех, кроме доверенных IP: ufw allow from YOUR_IP to any port 1080.
Для автоматизации и парсинга Python-скрипты используют SOCKS5 через requests + socks: proxies = {"https": "socks5://user:pass@host:1080"}. Это позволяет направлять HTTP-запросы через SOCKS5-туннель без изменения системных настроек.