Сервер SOCKS5 открывает соединения за вас и ретранслирует UDP, с именем пользователя и паролем или без них (RFC 1928). SOCKS5 over TLS — тот же сервер, но доступный по TLS, поэтому соединение с сервером тоже шифруется.
Potatso отправляет серверу имя сайта, который вы посещаете, а не его адрес, и сервер сам разрешает это имя. Другие приложения называют это socks5h или удаленным DNS.
Сервер SOCKS5 можно добавить вручную, с помощью ссылки socks5:// или импортом:
- подписки Clash или Mihomo (
type: socks5), - конфигурации Surge (
socks5иsocks5-tls), - конфигурации Xray или V2Ray (выход
socks, с TLS или без).
Чтобы добавить сервер SOCKS5 over TLS вручную, выберите SOCKS5 и включите TLS.
Настройки
| Настройка | Описание |
|---|---|
| Сервер, порт | Адрес и порт сервера. Адрес IPv6 тоже подходит. |
| Аутентификация | Нет или имя пользователя и пароль. |
| Имя пользователя, пароль | Каждое до 255 байт. |
| Ретрансляция UDP | По умолчанию включена. См. UDP. |
| TLS | Включен для SOCKS5 over TLS. |
| Не проверять сертификат | Только для SOCKS5 over TLS. Принимает любой сертификат. Используйте только для тестирования. |
| Закрепление сертификата | Только для SOCKS5 over TLS, необязательно. Отпечаток SHA-256 сертификата сервера в виде 64 шестнадцатеричных цифр. С закреплением Potatso принимает закрепленный сертификат, в том числе самоподписанный, и больше никакой. |
Если сервер запрашивает имя пользователя и пароль, а вы их не задали, Potatso не подключается. Potatso не поддерживает аутентификацию GSSAPI (Kerberos).
Сервер Clash или Mihomo с пустым username импортируется без аутентификации, как это делает Clash.
Сертификаты
С SOCKS5 over TLS именем сервера в TLS-рукопожатии всегда служит адрес сервера, и сертификат сервера должен быть действителен для него. Если это не так, задайте закрепление сертификата или включите Не проверять сертификат. Задать другое имя сервера нельзя: Potatso не импортирует ссылку, сервер Surge или сервер Xray, у которых оно есть. В Clash и Mihomo для SOCKS5 имени сервера нет, поэтому Potatso, как и они, игнорирует там sni.
Potatso не поддерживает:
- свой сертификат CA: вместо него закрепите сертификат сервера,
- клиентский сертификат TLS (
certificateиprivate-keyв Clash) или другое имя для проверки сертификата (name-cert-verify): Potatso не импортирует сервер, которому они нужны, - список ALPN: Potatso импортирует сервер без него.
UDP
UDP используют QUIC, голосовые и видеозвонки и многие игры. Когда Ретрансляция UDP включена, Potatso отправляет UDP через сервер (UDP ASSOCIATE) на адреса IPv4 и IPv6. Это работает и с сервером за NAT, который сообщает свой адрес как 0.0.0.0: Potatso отправляет UDP на заданный вами адрес.
Выключите «Ретрансляция UDP», если ваш сервер не ретранслирует UDP. Тогда:
- При использовании правил Potatso пропускает правило, которое отправляет UDP на этот сервер, и решает следующее подходящее правило. UDP, которому не соответствует никакое другое правило, отправляется напрямую.
- В глобальном режиме UDP не работает, потому что весь трафик должен идти через сервер.
Что нужно знать об UDP:
- UDP ретранслируется через отдельный порт UDP сервера, поэтому брандмауэр сервера должен пропускать UDP.
- В SOCKS5 over TLS шифруется только соединение с сервером. SOCKS5 отправляет UDP вне него, поэтому ваш трафик UDP доходит до сервера незашифрованным.
- Для UDP Potatso сам определяет адрес сайта и отправляет серверу адрес.
- При импорте из Clash, Mihomo или Surge «Ретрансляция UDP» включена, если сервер не задает
udp: false(udp-relay=falseв Surge). Clash оставляет UDP выключенным, еслиudpне указан, поэтому проверьте, что ваш сервер ретранслирует UDP.
Поддержка возможностей
| Возможность | Поддержка |
|---|---|
CONNECT к целям IPv4, IPv6 и доменам (RFC 1928) |
✅ |
Удаленный DNS: доменные имена разрешает сервер (socks5h) |
✅ Для TCP |
| Без аутентификации | ✅ |
| Имя пользователя и пароль (RFC 1929) | ✅ |
| GSSAPI (RFC 1961) | ❌ |
UDP ASSOCIATE к целям IPv4 и IPv6 |
✅ |
UDP с сервером за NAT (адрес ретрансляции 0.0.0.0) |
✅ |
| Фрагментация UDP | ❌ Фрагментированные датаграммы отбрасываются, что разрешено RFC 1928 |
BIND (входящие соединения, например FTP в активном режиме) |
❌ |
| SOCKS5 over TLS | ✅ С закреплением сертификата и отключением проверки сертификата |
| Имя сервера TLS, отличное от адреса сервера, ALPN, свой CA, клиентский сертификат | ❌ |
| UDP, зашифрованный TLS | ❌ SOCKS5 отправляет UDP вне TLS |
| Адрес сервера IPv6 | ✅ |
| SOCKS4 и SOCKS4a | ❌ |
Каждая поддерживаемая возможность проверена на настоящих серверах SOCKS5: Xray, sing-box, Mihomo, 3proxy и microsocks. sing-box предоставляет SOCKS5 over TLS на входе mixed, а не на входе socks.
Ссылки
Ссылка SOCKS5 содержит весь сервер в одной строке:
socks5://user:password@host:port#name
socks5+tls://user:password@host:port?insecure=1#name| Часть | Описание |
|---|---|
| схема | socks5://, socks:// или socks5h:// для SOCKS5; socks5+tls:// или socks+tls:// для SOCKS5 over TLS. Potatso всегда отправляет серверу доменные имена, поэтому socks5h:// работает так же, как socks5://. |
user:password |
Необязательно. Закодируйте :, @ и другие специальные символы пароля с помощью процентного кодирования, например p%3Ass для p:ss. Имя пользователя не может содержать :. |
host |
Адрес сервера. Адрес IPv6 заключайте в квадратные скобки, например [2001:db8::1]. |
port |
Порт сервера. |
insecure |
Только для SOCKS5 over TLS, необязательно. 1 включает «Не проверять сертификат». Potatso также читает allowInsecure и skip-cert-verify. |
name |
Необязательно. Название сервера в Potatso. |
В ссылке нельзя указать закрепление сертификата. Ссылка с sni, отличным от адреса сервера, не импортируется.
Potatso также импортирует две другие формы:
socks://base64(user:password)@host:port#name
socks5://base64(user:password@host:port)#nameПервая — так v2rayN делится серверами SOCKS. Вторая — старая форма, где всё между :// и # закодировано в Base64. Когда Potatso делится сервером SOCKS5 с паролем, он предлагает стандартную ссылку и форму v2rayN.
Примеры
Сервер без пароля:
socks5://proxy.example.com:1080#OpenСервер с именем пользователя alice и паролем s3cret:
socks5://alice:s3cret@proxy.example.com:1080#AuthПароль p:ss wörd с процентным кодированием:
socks5://alice:p%3Ass%20w%C3%B6rd@proxy.example.com:1080#EncodedТот же сервер в виде ссылки socks5h://:
socks5h://alice:s3cret@proxy.example.com:1080#Remote-DNSФорма v2rayN, alice:s3cret в кодировке Base64:
socks://YWxpY2U6czNjcmV0@proxy.example.com:1080#v2rayNСтарая форма:
socks5://YWxpY2U6czNjcmV0QHByb3h5LmV4YW1wbGUuY29tOjEwODA#LegacyСервер с адресом IPv6:
socks5://[2001:db8::1]:1080#IPv6Сервер SOCKS5 over TLS:
socks5+tls://alice:s3cret@proxy.example.com:443#TLSСервер SOCKS5 over TLS с самоподписанным сертификатом:
socks+tls://proxy.example.com:443?insecure=1#Self-signed