# SOCKS5-прокси: протокол и как им пользоваться | ProxyJam

Что такое SOCKS5, чем он отличается от HTTP-прокси, когда важен удалённый DNS и как переключить статический ISP-прокси ProxyJam на SOCKS5 и подключиться с портом и учётными данными, которые затем покажет заказ.

- Canonical: https://proxyjam.com/ru/socks5-proxies/
- Updated: 2026-10-23
- Language: ru

SOCKS5 работает как прокси-протокол транспортного уровня: он открывает соединение от вашего имени и передаёт байты, не читая и не переписывая то, что внутри. Каждый статический ISP-прокси, который мы продаём, можно переключить между HTTP и SOCKS5 в заказе, который у вас уже есть.

Переключение протокола не делает прокси другим продуктом: вы переключаете прокси, который у вас уже есть, в панели управления или через API, и заказ обновляется новым портом и учётными данными для подключения.


SOCKS5 относится к прокси-протоколам, а не к видам адресов: он ретранслирует TCP-соединение, не читая и не переписывая то, что внутри. Каждый статический резидентный (ISP) прокси, который продаёт ProxyJam, работает по HTTP, который переносит HTTPS, или по SOCKS5, и вы переключаетесь между ними в заказе, который у вас уже есть; после переключения подключайтесь с портом и учётными данными, которые показывает заказ.


## Что происходит между вашим клиентом и нашим прокси

Три коротких обмена, и ни в одном из них прокси не нужно понимать ваш трафик.

1. **Ваш клиент приветствует прокси и договаривается об аутентификации.** Он предлагает методы, которые поддерживает; прокси называет тот, который ему нужен. На наших адресах это логин и пароль или вообще ничего, если вместо этого вы внесли свой IP в белый список.
2. **Ваш клиент запрашивает адрес назначения.** Хост и порт, переданные либо как адрес, либо как имя. Передача имени и есть интересный случай: прокси сам его резолвит, поэтому DNS-запрос уходит из сети прокси, а не из вашей.
3. **Дальше прокси просто передаёт байты.** Он не разбирает полезную нагрузку, не добавляет заголовков и не знает, что несёт: веб-страницу, сессию базы данных или передачу почты. Ради этого безразличия SOCKS5 и выбирают вместо HTTP-прокси.

## Для тех, кто решает, на какой протокол направить клиент

### Разработчики

На какой протокол направить клиент и какую схему, socks5 или socks5h, указать в нём после переключения прокси.

### Операторы

На какой протокол направить клиент и как переключить уже имеющийся прокси в панели управления или через API.


## Перевод прокси ProxyJam на SOCKS5

1. **Переключите сам прокси** В панели управления или одним вызовом API для заказа; изменить только клиент недостаточно. Во время переключения прокси может быть ненадолго недоступен.
2. **Скопируйте порт, логин и пароль, которые заказ показывает после переключения** Не используйте повторно значения, с которыми вы подключались по HTTP.
3. **Укажите схему в клиенте** `socks5h://USERNAME:PASSWORD@HOST:PORT`, чтобы имена хостов резолвил прокси, или `socks5://`, чтобы резолвить их на своей стороне.
4. **Проверьте из терминала, прежде чем трогать код** `curl -x socks5h://USERNAME:PASSWORD@HOST:PORT https://example.com/`.
5. **Установите SOCKS-дополнение в Python** В Python библиотеке requests нужно её SOCKS-дополнение, `pip install requests[socks]`, прежде чем заработает прокси-URL вида `socks5h://`.

## Сначала подключитесь, потом смените схему

Примеры ниже подключаются по HTTP, протоколу, с которого начинается заказ. Чтобы использовать SOCKS5, сначала переключите сам прокси в панели управления или одним вызовом API; после этого заказ показывает порт и учётные данные, которыми нужно пользоваться дальше. В клиенте смените схему на socks5 или на socks5h, если хотите, чтобы имя хоста резолвил прокси, с этим портом и этими учётными данными; для этого в Python нужен requests[socks], а в Node.js SOCKS-агент вместо HTTPS-агента.

### Python

Отправьте запрос через ваш прокси с помощью Python requests.

```
import requests

# HOST, PORT, USERNAME, PASSWORD come with your order (dashboard or API)
proxy = "http://USERNAME:PASSWORD@HOST:PORT"

proxies = {
    "http": proxy,
    "https": proxy,
}

response = requests.get(
    "https://example.com/",
    proxies=proxies,
)

print(response.status_code)
```

### cURL

Одна команда, чтобы отправить запрос через ваш прокси.

```
# HOST, PORT, USERNAME, PASSWORD come with your order (dashboard or API)
curl -x http://USERNAME:PASSWORD@HOST:PORT \
     https://example.com/
```

### Node.js

Направьте axios через ваш прокси в несколько строк.

```
import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";

// HOST, PORT, USERNAME, PASSWORD come with your order (dashboard or API)
const proxy = "http://USERNAME:PASSWORD@HOST:PORT";
const agent = new HttpsProxyAgent(proxy);

const response = await axios.get(
  "https://example.com/",
  {
    httpAgent: agent,
    httpsAgent: agent,
  },
);

console.log(response.status);
```

### Go

Настройте http.Transport с вашим прокси и отправьте запрос.

```
package main

import (
    "fmt"
    "net/http"
    "net/url"
)

func main() {
    // HOST, PORT, USERNAME, PASSWORD come with your order (dashboard or API)
    proxy, _ := url.Parse(
        "http://USERNAME:PASSWORD@HOST:PORT")

    client := &http.Client{Transport: &http.Transport{
        Proxy: http.ProxyURL(proxy),
    }}

    res, _ := client.Get("https://example.com/")
    fmt.Println(res.Status)
}
```


## SOCKS5 и HTTP-прокси: что каждый переносит и что видит прокси

|  | HTTP-прокси | HTTPS через CONNECT | SOCKS5 |
|---|---|---|---|
| Что может переносить | Только HTTP-запросы | TCP-туннель к названным хосту и порту | Любой TCP-поток |
| Читает ли прокси полезную нагрузку | Да, он разбирает запрос | Нет, после открытия туннеля | Нет, ни на каком этапе |
| Может ли он изменить ваши заголовки | Да, он их пересылает и может добавить свои, например Via | Нет, после открытия туннеля | Нет, у него нет понятия заголовка |
| Где резолвится имя хоста | На прокси | На прокси, потому что CONNECT называет хост | На ваш выбор, на любой из сторон |
| Типичная поддержка в клиентах | Повсеместная в HTTP-инструментах | Повсеместная в HTTP-инструментах | Распространена в инструментах командной строки; некоторым библиотекам нужен дополнительный пакет |
| Лучше всего подходит для | Простых веб-запросов | Обычного просмотра и скрейпинга по HTTPS | Протоколов помимо веба и смешанного трафика |

Прокси ProxyJam работает по HTTP, который переносит HTTPS через CONNECT, или по SOCKS5, протокол переключается в заказе. Выбор зависит от того, что должен отправлять ваш клиент.


## Что SOCKS5 даёт на наших адресах

- **Протокол:** SOCKS5 или HTTP (который переносит HTTPS), переключается в заказе
- **Аутентификация:** Логин и пароль или белый список IP
- **Адрес, который видит цель:** Статический ISP-адрес в сети названного оператора
- **Выбор оператора:** Названных операторов в США: 19; в других странах список короче
- **Охват:** 77 стран в каталоге, у каждой назван оператор
- **Ротация:** Нет: адрес не меняется в течение периода
- **Одновременные сессии:** 100 на прокси, 10 после 50 ГБ в месяц
- **Учёт трафика:** За IP за период; передача данных не учитывается ни на одном протоколе

## Вопросы о SOCKS5

Ответы ниже называют условия, на которых мы продаём, и каждый ответ, где они названы, ссылается на документ, который нас ими обязывает.

### Что такое SOCKS5-прокси?

Протокол SOCKS5 определён в RFC 1928 и работает на транспортном уровне. Ваш клиент просит прокси открыть соединение с хостом и портом, прокси его открывает и с этого момента пересылает байты в обе стороны, не интерпретируя их. Поскольку он никогда не разбирает то, что несёт, он не ограничен веб-трафиком: через него может пройти всё, что работает поверх TCP.

### Чем он отличается от HTTP-прокси?

HTTP-прокси понимает HTTP. Он читает строку запроса и заголовки и волен добавлять, удалять или переписывать их, поэтому некоторые прокси незаметно сообщают о себе в заголовке, которого вы не задавали. У SOCKS5 вообще нет понятия заголовка: он видит адрес назначения и поток байтов. Если ваш трафик не HTTP или вы хотите, чтобы ничто посередине не могло его править, выбирайте SOCKS5.

### Шифрует ли SOCKS5 мой трафик?

Нет, как и HTTP-прокси. SOCKS5 аутентифицирует вас на прокси и затем пересылает байты. Спецификация позволяет методу аутентификации добавить собственную защиту, но аутентификация по логину и паролю (RFC 1929) отправляет пароль открытым текстом и ничего после него не защищает. Если внутри идёт HTTPS или SSH, трафик уже зашифрован из конца в конец, и прокси не может его прочитать. Если трафик внутри открытый, он остаётся открытым, поэтому не считайте SOCKS5 слоем шифрования.

### Что делает socks5h такого, чего не делает socks5?

Он переносит DNS-запрос. С socks5 ваш клиент резолвит имя хоста локально и просит прокси подключиться к полученному адресу. С socks5h ваш клиент отправляет имя, и его резолвит прокси. Это важно в двух отношениях: ваш собственный резолвер никогда не видит, какие хосты вы посещаете, и вы получаете тот ответ, который получает сеть прокси, а для хоста, ответ которого зависит от географии, он часто отличается от ответа, который вы получили бы дома.

### Поддерживает ли он UDP?

UDP ASSOCIATE есть в RFC 1928, но одни клиенты и серверы его реализуют, а другие нет, поэтому проверяйте обе стороны, а не предполагайте. Мы не публиковали поддержку UDP для наших прокси, поэтому рассчитывайте на TCP и спросите поддержку, прежде чем строить что-либо, что зависит от UDP.

### Нужен ли другой прокси, чтобы пользоваться SOCKS5?

Нет. Вы переключаете уже имеющийся прокси между HTTP, который также переносит HTTPS, и SOCKS5 в панели управления или одним вызовом API для того же заказа. Это не только настройка клиента: переключение выполняется на прокси, заказ обновляется новым протоколом, портом и учётными данными, а пока это происходит, прокси может быть ненадолго недоступен. Прокси остаётся вашим весь оплаченный период, его бесплатно заменяют, если он перестаёт отвечать или заблокирован на названной вами цели, до 20 % заказа за календарный месяц, а на первый заказ действует возврат в течение 24 часов, который покрывает до 10 IP и не отменяется проверкой.


## HTTP или SOCKS5?

Оставайтесь на HTTP, когда вы отправляете только веб-трафик и ваши инструменты уже умеют работать с HTTP-прокси. Переключайтесь на SOCKS5, когда клиенту нужно переносить что-то, что не является HTTP, или когда вы хотите, чтобы имена хостов резолвились на прокси и ничто посередине не могло править ваши заголовки. В любом случае это один и тот же продукт, который заказывается на странице [ISP-прокси](/ru/isp-proxies/) и описан также как [статические резидентные прокси](/ru/static-residential-proxies/), без отдельного заказа и без платы за переключение. Вопросы по настройке разобраны в [FAQ](/ru/faq/). Количество операторов и стран на этой странице берётся из снимка каталога, по которому собирается сайт, как описывает наша [редакционная политика](/ru/editorial-policy/).



## Источники

- [RFC 1928, SOCKS Protocol Version 5](https://www.rfc-editor.org/rfc/rfc1928): спецификация 1996 года, согласование аутентификации, команды CONNECT, BIND и UDP ASSOCIATE и адреса назначения в виде доменных имён или адресов IPv6
- [RFC 1929, Username/Password Authentication for SOCKS V5](https://www.rfc-editor.org/rfc/rfc1929): метод входа, который отправляет пароль открытым текстом
- [RFC 9110, HTTP Semantics](https://www.rfc-editor.org/rfc/rfc9110): раздел 9.3.6, запрос CONNECT называет хост и порт назначения, и прокси открывает туннель к ним
- [curl man page](https://curl.se/docs/manpage.html): `--socks5` резолвит имя хоста локально, `--socks5-hostname` позволяет резолвить его прокси
- [Everything curl, SOCKS proxy](https://everything.curl.dev/usingcurl/proxies/socks.html): `socks5://` и `socks5h://` в прокси-URL и то, какая сторона резолвит имя хоста
- [OpenBSD manual, ssh(1)](https://man.openbsd.org/ssh): `-D` настраивает локальную динамическую переадресацию портов, при которой ssh работает как сервер SOCKS4 и SOCKS5, а `-N` переадресует порты без выполнения удалённой команды




SOCKS5 переносит всё, для чего ваш клиент может открыть TCP-соединение, включая трафик, который HTTP-прокси переслать не может, и передаёт байты нетронутыми. Поэтому он становится естественным выбором для клиента базы данных, SSH-сессии или любого инструмента, который не говорит на HTTP. Одного он не делает: не меняет того, чем является адрес. На прокси-протоколе говорят ваш клиент и прокси; сайт на дальнем конце видит соединение с адреса прокси плюс любые заголовки, которые решил добавить HTTP-прокси. Поэтому стоит спрашивать не о том, какой протокол купить, а о том, какой сети принадлежит адрес, и здесь ответ такой: названному интернет-провайдеру, а в США их 19.

## Что говорят спецификации

SOCKS версии 5 был опубликован в 1996 году как [RFC 1928](https://www.rfc-editor.org/rfc/rfc1928), протокол для прохождения через файрволы, который расширил SOCKS версии 4 поддержкой UDP, рамками для методов аутентификации и адресами назначения в виде доменных имён или адресов IPv6. Клиент предлагает методы аутентификации, которые поддерживает, и сервер выбирает один; затем клиент запрашивает исходящее соединение (CONNECT), слушающий порт (BIND) или ретрансляцию UDP (UDP ASSOCIATE). Вход по логину и паролю описан в собственной короткой спецификации, [RFC 1929](https://www.rfc-editor.org/rfc/rfc1929), которая отправляет пароль открытым текстом, поэтому там, где это важно, держите трафик внутри туннеля зашифрованным.

Именно в том, передаётся ли доменное имя, и различаются схемы socks5 и socks5h. [Руководство curl](https://curl.se/docs/manpage.html) описывает `--socks5` как использование прокси, но «resolve the hostname locally» (с локальным резолвингом имени хоста), а `--socks5-hostname` как вариант, при котором «the proxy resolve the hostname» (имя хоста резолвит прокси). В прокси-URL `socks5://` даёт первое поведение, а `socks5h://` второе, как показывает таблица в [Everything curl](https://everything.curl.dev/usingcurl/proxies/socks.html). HTTP-прокси, переносящий HTTPS, обычно получает имя: запрос CONNECT называет хост и порт назначения, и прокси открывает туннель к ним ([RFC 9110](https://www.rfc-editor.org/rfc/rfc9110), раздел 9.3.6). Ретрансляция UDP входит в спецификацию SOCKS5, но реализации в ней расходятся; что это значит для наших прокси, сказано в FAQ ниже.

## SOCKS5 через SSH

Если у вас уже есть SSH-доступ к серверу, у вас есть SOCKS5-прокси без всякой покупки. `ssh -N -D 1080 user@server` настраивает то, что [руководство OpenBSD по ssh](https://man.openbsd.org/ssh) называет локальной «dynamic» (динамической) переадресацией портов на уровне приложений. Команда ssh слушает порт 1080 на вашей машине и «will act as a SOCKS server» (работает как SOCKS-сервер), перенося каждое соединение по зашифрованному SSH-каналу и открывая его с удалённой машины. `-N` ограничивает его переадресацией, без удалённой оболочки. Направьте клиент на `socks5h://127.0.0.1:1080`, и его трафик будет уходить с сервера.

Отличие от купленного SOCKS5-прокси в том, где соединение выходит наружу. Через SSH-туннель сайт на дальнем конце видит адрес SSH-сервера и сеть, которой этот сервер принадлежит, а у арендованного сервера это обычно сеть хостинг-компании. SSH шифрует участок между вами и сервером; от сервера до сайта трафик остаётся таким, каким он уже был. Прокси ProxyJam, переключённый на SOCKS5, выходит с адреса в сети названного интернет-провайдера, выбранного по стране и оператору при оформлении заказа. Подключаетесь вы к нему напрямую, с портом и учётными данными из заказа, без SSH посередине и без собственного сервера, который нужно поддерживать.

Поэтому они отвечают на разные вопросы. Туннель через SSH выпускает трафик с машины, которую вы уже контролируете. SOCKS5-прокси на ISP-адресе нужен для работы, где важен сам выходной адрес, то есть то, какую сеть показывает его проверка.

