---
title: "پروکسی SOCKS5 چیست؟ نحوه کار و تفاوت SOCKS4 و SOCKS5"
description: "پروکسی SOCKS5 هر اتصال TCP یا UDP را بدون خواندن محتوا از یک IP دیگر عبور می‌دهد. نحوه کار پروتکل، تفاوت SOCKS4 و SOCKS5، راه‌اندازی، خطاها و نکات خرید."
url: https://proxynet.io/fa/blog/socks5-proxy-101
date: 2024-05-13
updated: 2026-09-25
author: "Acar Diveroli"
category: "مبانی پروکسی"
lang: fa
---

# پروکسی SOCKS5 چیست؟ نحوه کار و تفاوت SOCKS4 و SOCKS5

کلاینت بازی‌ای که پروکسی مرورگر را نادیده می‌گیرد، تلگرامی که از شما «سرور SOCKS5» می‌خواهد، اسکرپری که پرس‌وجوهای DNS آن نباید از شبکه دفترتان بیرون برود: هر سه به یک پروتکل می‌رسند. SOCKS5 به‌جای شما اتصال را باز می‌کند و بایت‌ها را در هر دو جهت جابه‌جا می‌کند، فرقی نمی‌کند ترافیک از چه نوعی باشد.

در این نوشته SOCKS4 و SOCKS5، دست‌دادن (handshake) پروتکل به‌صورت گام‌به‌گام، عبور UDP و DNS از پروکسی، راه‌اندازی، نکاتی که پیش از خرید باید بررسی کنید و خطاهای رایج را توضیح می‌دهیم. کدها روی یک سرور SOCKS5 آزمایشی محلی اجرا شده‌اند.

> **نکته: پاسخ کوتاه**
>
> پروکسی SOCKS5 سروری است که هر اتصال TCP را، و در صورت پشتیبانی ترافیک UDP را هم، میان برنامه شما و مقصد جابه‌جا می‌کند. این پروتکل که در ⁦RFC 1928⁩ تعریف شده، احراز هویت با نام کاربری و رمز عبور، UDP، IPv6 و resolve کردن DNS روی پروکسی را به SOCKS4 قدیمی‌تر افزوده است. SOCKS5 ترافیک را رمزگذاری نمی‌کند و طبق عرف روی پورت 1080 کار می‌کند. آن را برای بازی‌ها، برنامه‌های دسکتاپ و پیام‌رسان‌ها و پروتکل‌های غیروب انتخاب کنید؛ برای اسکرپینگ ساده وب، پروکسی HTTP(S) معمولاً ساده‌تر است.

## SOCKS چیست؟

پروکسی SOCKS سرور واسطه‌ای میان برنامه شما و سرور مقصد است. کلاینت به پروکسی می‌گوید به کدام آدرس و پورت می‌خواهد برسد، پروکسی آن اتصال را باز می‌کند و از آن پس ترافیک را میان دو طرف پیش می‌برد، طوری که طرف مقابل آدرس IP پروکسی را می‌بیند نه آدرس شما را.

برخلاف پروکسی HTTP، پروتکل SOCKS در لایه کاربرد کار نمی‌کند: بسته‌ها را نمی‌خواند و تغییر نمی‌دهد، بلکه ترافیک TCP یا UDP را دست‌نخورده پیش می‌برد. برای همین SOCKS را در لایه 5 مدل OSI، پایین‌تر از HTTP، قرار می‌دهند و به همین دلیل [پروکسی SOCKS5](https://proxynet.io/fa/socks5-proxy) با برنامه‌هایی که پروتکل‌های کاملاً متفاوتی دارند کنار می‌آید: یک کلاینت بازی، یک برنامه ایمیل و یک نشست SSH می‌توانند از همان پروکسی استفاده کنند. حتی OpenSSH هم اگر با `ssh -D` اجرا شود به یک سرور SOCKS محلی تبدیل می‌شود ([راهنمای OpenSSH](https://man.openbsd.org/ssh)).

**دو نسخه اصلی وجود دارد:** SOCKS4 و SOCKS5. نسخه SOCKS5 احراز هویت و پشتیبانی از پروتکل‌های بیشتر را به نسخه پیشین افزوده است و امروز وقتی ارائه‌دهنده‌ای از «SOCKS» حرف می‌زند، منظورش SOCKS5 است.

## پروتکل قدیمی SOCKS4 چیست؟

SOCKS4 نسخه پیشین این پروتکل است که پیش از SOCKS5 آمد و فقط اتصال‌های TCP را پیش می‌برد؛ مانند هر پروکسی SOCKS، مقصد به‌جای آدرس کاربر آدرس پروکسی را می‌بیند. درخواست آن بسیار کوچک است: یک بایت نسخه، یک فرمان، پورت مقصد، آدرس IPv4 مقصد و یک شناسه کاربر (user ID) ([مشخصات SOCKS4](https://www.openssh.org/txt/socks4.protocol)).

### ویژگی‌های اصلی SOCKS4

- **فقط TCP:** فرمان CONNECT برای اتصال‌های خروجی و BIND برای اتصال‌های ورودی. برای صفحه‌های وب، ایمیل و دیگر برنامه‌های مبتنی بر TCP کافی است، اما UDP ندارد.
- **فقط IPv4:** فیلد مقصد چهار بایت است، پس فقط مقصدهای [IPv4](/fa/ipv4) را می‌توان نشانی داد.
- **بدون رمز:** شناسه کاربر، کاربر را معرفی می‌کند اما او را وارد سیستم نمی‌کند. در عمل سرورهای SOCKS4 دسترسی را بر اساس IP کلاینت کنترل می‌کنند.
- **بدون resolve نام روی پروکسی:** کلاینت باید IP مقصد را از پیش بداند، یعنی نام دامنه را خودش resolve کند و IP را بفرستد. افزونه SOCKS4a این کمبود را برطرف کرد: کلاینت می‌تواند نام را بفرستد تا پروکسی آن را resolve کند ([مشخصات SOCKS4a](https://www.openssh.org/txt/socks4a.protocol)).

SOCKS4 امروز فقط در ابزارهای قدیمی و رله‌های ساده داخلی باقی مانده است. کلاینت‌های بازی امروزی به‌جای آدرس ثابت با نام DNS کار می‌کنند و به UDP هم نیاز دارند، پس کسی که دنبال [پروکسی برای بازی](/fa/gaming-proxy) است سراغ SOCKS5 می‌رود. سروری که فقط SOCKS5 را می‌پذیرد درخواست‌های SOCKS4 را رد می‌کند، پس بررسی کنید ابزارتان کدام نسخه را می‌فرستد.

## پروکسی SOCKS5 چیست؟

SOCKS5 نسخه کنونی این پروتکل است که در سال 1996 با عنوان [⁦RFC 1928⁩](https://www.rfc-editor.org/rfc/rfc1928) منتشر شد. همان کار SOCKS4 را انجام می‌دهد، اما آنچه برنامه‌های امروزی لازم دارند را هم افزوده است:

- **TCP و UDP:** در کنار CONNECT و BIND، فرمان UDP ASSOCIATE را هم دارد، پس ترافیک وب، ایمیل، انتقال فایل، تماس صوتی (VoIP)، پرس‌وجوهای DNS و ترافیک بازی را پیش می‌برد.
- **احراز هویت:** کلاینت و سرور بر سر یک روش توافق می‌کنند: بدون احراز هویت، GSSAPI، یا نام کاربری و رمز عبور طبق [⁦RFC 1929⁩](https://www.rfc-editor.org/rfc/rfc1929). ارائه‌دهندگان تجاری از نام کاربری و رمز یا لیست سفید IP استفاده می‌کنند تا فقط کلاینت‌های مجاز از پروکسی استفاده کنند.
- **IPv6:** در کنار IPv4 از IPv6 هم پشتیبانی می‌کند؛ مقصد می‌تواند یک آدرس IPv4، یک آدرس IPv6 یا یک نام دامنه باشد.
- **resolve نام روی پروکسی:** کلاینت می‌تواند نام دامنه را بفرستد تا پروکسی آن را resolve کند و پرس‌وجوی DNS از شبکه خود شما بیرون نرود. این فقط راحتی نیست: اگر نام را رایانه خودتان resolve کند، همان پرس‌وجوی DNS به اپراتور اینترنت شما می‌گوید کجا می‌روید، حتی اگر ترافیک بعد از آن از پروکسی بگذرد.

راه‌اندازی آن به یک میزبان (host)، یک پورت و معمولاً نام کاربری و رمز عبور نیاز دارد و از پروکسی HTTP پیچیده‌تر نیست. آنچه فرق می‌کند پشتیبانی ابزارهاست: Chrome نمی‌تواند رمز SOCKS5 بفرستد، تنظیمات Wi-Fi در iPhone و اندروید فقط پروکسی HTTP را می‌پذیرند و برخی کتابخانه‌ها به یک بسته اضافه نیاز دارند.

## اتصال SOCKS5 چگونه کار می‌کند؟

هر نشست SOCKS5 با یک تبادل کوتاه روی یک اتصال TCP به پروکسی آغاز می‌شود. گام‌ها طبق ⁦RFC 1928⁩ چنین‌اند:

1. **سلام اولیه (greeting).** کلاینت نسخه و روش‌های احراز هویتی را که می‌شناسد می‌فرستد، برای نمونه `05 02 00 02`: بدون احراز هویت (`0x00`) و نام کاربری و رمز (`0x02`).
2. **انتخاب روش.** سرور روشی را که برگزیده برمی‌گرداند، برای نمونه `05 02`، یا اگر هیچ‌کدام را نپذیرد `05 FF`.
3. **احراز هویت.** کلاینت نام کاربری و رمز را می‌فرستد و پیش از هرکدام طول آن را می‌آورد. وضعیت 0 یعنی موفقیت.
4. **درخواست.** کلاینت یک فرمان (1 برای CONNECT، 2 برای BIND، 3 برای UDP ASSOCIATE)، نوع آدرس (1 برای IPv4، 3 برای نام دامنه، 4 برای IPv6)، خود آدرس و پورت را می‌فرستد.
5. **پاسخ.** پروکسی اتصال را امتحان می‌کند و با یک کد پاسخ می‌دهد: 0 موفقیت، 1 خطای عمومی، 2 غیرمجاز طبق قواعد سرور، 3 شبکه در دسترس نیست، 4 میزبان در دسترس نیست، 5 اتصال رد شد، 6 پایان TTL، 7 فرمان پشتیبانی نمی‌شود، 8 نوع آدرس پشتیبانی نمی‌شود.
6. **رله.** پروکسی بایت‌ها را در هر دو جهت کپی می‌کند. در HTTPS، اتصال TLS درون همین تونل برقرار می‌شود، پس پروکسی فقط داده رمزگذاری‌شده را می‌بیند.

اسکریپت زیر این گام‌ها را دستی انجام می‌دهد و سپس از درون تونل یک اتصال TLS به `httpbin.org` باز می‌کند. روی سرور آزمایشی ما خروجی آن `server picked method 0x2`، `auth status 0`، `reply code 0` و IP خروجی بود؛ با رمز اشتباه در `auth status 1` متوقف شد.

```python
import socket
import ssl
import struct

PROXY_HOST, PROXY_PORT = "pr.proxynet.io", 1080
USER, PASSWORD = b"user", b"pass"
TARGET_HOST, TARGET_PORT = "httpbin.org", 443

def recv_exact(sock, n):
    data = b""
    while len(data) < n:
        chunk = sock.recv(n - len(data))
        if not chunk:
            raise ConnectionError("proxy closed the connection")
        data += chunk
    return data

sock = socket.create_connection((PROXY_HOST, PROXY_PORT), timeout=15)

# 1. Greeting: version 5, two methods offered (0x00 no auth, 0x02 username/password)
sock.sendall(b"\x05\x02\x00\x02")
ver, method = recv_exact(sock, 2)
print("server picked method", hex(method))
if method == 0xFF:
    raise SystemExit("no acceptable authentication method: send credentials or whitelist your IP")

# 2. Username/password sub-negotiation (RFC 1929)
if method == 0x02:
    sock.sendall(b"\x01" + bytes([len(USER)]) + USER + bytes([len(PASSWORD)]) + PASSWORD)
    _, status = recv_exact(sock, 2)
    print("auth status", status)  # 0 = success
    if status != 0:
        raise SystemExit("wrong username or password")

# 3. CONNECT request with a domain name (ATYP 0x03): the proxy resolves DNS
name = TARGET_HOST.encode()
sock.sendall(b"\x05\x01\x00\x03" + bytes([len(name)]) + name + struct.pack(">H", TARGET_PORT))
ver, rep, _, atyp = recv_exact(sock, 4)
print("reply code", rep)  # 0 = succeeded, 4 = host unreachable, 5 = connection refused
if rep != 0:
    raise SystemExit(f"SOCKS5 request failed with REP={rep}")
addr_len = {1: 4, 4: 16}.get(atyp) or recv_exact(sock, 1)[0]
recv_exact(sock, addr_len + 2)  # bound address and port, not needed here

# 4. From here on the socket is a plain tunnel: TLS runs end to end with the target
tls = ssl.create_default_context().wrap_socket(sock, server_hostname=TARGET_HOST)
tls.sendall(b"GET /ip HTTP/1.1\r\nHost: httpbin.org\r\nConnection: close\r\n\r\n")
response = b""
while chunk := tls.recv(4096):
    response += chunk
print(response.decode(errors="replace").split("\r\n\r\n", 1)[1])
```

## SOCKS5 ترافیک UDP را چگونه جابه‌جا می‌کند؟

پروکسی UDP را به‌سادگی روی همان پورتی که به آن وصل می‌شوید جلو نمی‌فرستد؛ روند چنین است:

1. کلاینت همان اتصال TCP معمول را باز می‌کند، احراز هویت می‌کند و یک درخواست UDP ASSOCIATE می‌فرستد.
2. پروکسی با آدرس و پورت رله UDP خود پاسخ می‌دهد.
3. کلاینت هر دیتاگرام را با یک سرآیند کوچک که آدرس و پورت مقصد را در خود دارد به رله می‌فرستد؛ رله آن را جلو می‌فرستد و پاسخ‌ها را هم به همین شکل بسته‌بندی می‌کند.
4. این ارتباط تا وقتی برقرار است که اتصال TCP گام 1 باز بماند.

هر دو طرف باید این روند را پیاده کرده باشند: برای نمونه Chrome، همان‌طور که [مستندات پروکسی Chromium](https://chromium.googlesource.com/chromium/src/+/HEAD/net/docs/proxy.md) می‌گوید، هرگز UDP را از SOCKS5 عبور نمی‌دهد. سرویس SOCKS5 در Proxynet از UDP پشتیبانی می‌کند. دو پروتکل انتقال در [تفاوت TCP و UDP چیست و هرکدام کجا به کار می‌رود؟](/fa/blog/tcp-vs-udp) مقایسه شده‌اند.

## تفاوت SOCKS4 و SOCKS5 چیست؟

SOCKS4a را هم در جدول آورده‌ایم، چون کمبود DNS در SOCKS4 را برطرف می‌کند.

| ویژگی | SOCKS4 | SOCKS4a | SOCKS5 |
|---|---|---|---|
| ترافیک | TCP | TCP | TCP و UDP |
| احراز هویت | فقط شناسه کاربر، بدون رمز | مانند SOCKS4 | بدون احراز هویت، GSSAPI، نام کاربری و رمز |
| آدرس مقصد | IPv4 | IPv4 یا نام دامنه | IPv4، IPv6 یا نام دامنه |
| resolve نام (DNS) | روی کلاینت | روی پروکسی | روی کلاینت یا پروکسی، به انتخاب کلاینت |
| طرح نشانی در cURL | `socks4://` | `socks4a://` | `socks5://`، `socks5h://` |
| کاربرد رایج امروز | ابزارهای قدیمی | ابزارهای قدیمی | بازی، برنامه‌ها، پیام‌رسان‌ها، اسکرپینگ |

روی‌هم‌رفته SOCKS5 نسخه منعطف‌تر است: کاربران غیرمجاز را با رمز بیرون نگه می‌دارد، در حالی که SOCKS4 فقط می‌تواند بر اساس IP فیلتر کند. SOCKS5 به مقصدهای IPv6 هم می‌رسد (نگاه کنید به [پروکسی IPv4 یا IPv6: کدام را انتخاب کنیم؟](/fa/blog/ipv4-vs-ipv6-proxy)) و UDP را برای تماس، استریم و بازی جابه‌جا می‌کند. SOCKS4 نماینده مرحله‌ای قدیمی‌تر و محدودتر است و در عمل امروز تقریباً با آن روبه‌رو نمی‌شوید.

## پروکسی SOCKS5 یا HTTP: به کدام نیاز دارید؟

پروکسی HTTP(S) درخواست‌های وب را می‌فهمد؛ SOCKS5 هر اتصال TCP یا UDP را بی‌آنکه چیزی از HTTP بداند جابه‌جا می‌کند. برای ترافیک وب هر دو کار می‌کنند و ابزارهای بیشتری از HTTP(S) پشتیبانی می‌کنند. SOCKS5 وقتی انتخاب درست است که برنامه HTTP حرف نمی‌زند (کلاینت‌های دسکتاپ، بازی‌ها، VoIP و دیگر پروتکل‌های غیروب) یا وقتی به UDP نیاز دارید. اما اگر کار صرفاً اسکرپینگ روی HTTP باشد، [پروکسی HTTPS](https://proxynet.io/fa/https-proxy) هیچ ضعفی ندارد و با سرآیندها کنترل دقیق‌تری می‌دهد. مقایسه کامل در [تفاوت پروکسی SOCKS و HTTP: کدام را انتخاب کنیم؟](/fa/blog/socks-vs-http-proxy) آمده است.

## socks5 یا socks5h: DNS کجا resolve می‌شود؟

درخواست SOCKS5 می‌تواند مقصد را با IP یا با نام دامنه مشخص کند و همین تعیین می‌کند چه کسی نام را جست‌وجو می‌کند:

- **cURL:** طرح `socks5://` نام را به‌صورت محلی resolve می‌کند؛ `socks5h://` یا گزینه `--socks5-hostname` این کار را به پروکسی می‌سپارد ([Everything curl](https://everything.curl.dev/usingcurl/proxies/socks.html)).
- **Python Requests و HTTPX:** همان طرح‌ها را می‌پذیرند؛ [مستندات Requests](https://requests.readthedocs.io/en/latest/user/advanced/#socks) می‌گوید `socks5h` نام را روی پروکسی resolve می‌کند.
- **Firefox:** کادر **استفاده از پیشکار DNS هنگام استفاده از ⁦SOCKS v5⁩** (Proxy DNS when using SOCKS v5) که از ⁦Firefox 128⁩ به‌طور پیش‌فرض روشن است.
- **Chrome:** resolve نام را همیشه به پروکسی SOCKS5 می‌سپارد.

در لاگ سرور آزمایشی ما، درخواست cURL با `socks5h://` به شکل `domain httpbin.org:443` رسید؛ با `socks5://` فقط یک IP رسید، یعنی جست‌وجوی نام پیش‌تر از resolver محلی گذشته بود. اگر نام به‌صورت محلی resolve شود، شبکه شما هر دامنه‌ای را که باز می‌کنید می‌بیند؛ پس resolve روی پروکسی را ترجیح دهید. آزمون نشت در [نشت WebRTC و DNS: چیست و چگونه جلوی آن را بگیریم](/fa/blog/webrtc-dns-leak) آمده است.

## آیا پروکسی SOCKS5 امن است؟ آیا ترافیک را رمزگذاری می‌کند؟

نه. SOCKS5 مسیر ترافیک شما را عوض می‌کند، نه محتوای آن را. HTTPS خودش صفحه‌های وب را رمزگذاری می‌کند، پس پروکسی فقط مقصد و پورت را می‌فهمد؛ اما HTTP ساده، FTP یا ایمیل بدون TLS برای آن خواناست.

- **رمز پروکسی به‌صورت متن ساده منتقل می‌شود.** خود ⁦RFC 1929⁩ هم این را می‌گوید. از یک رمز یکتا استفاده کنید، یا در شبکه‌های مشترک لیست سفید IP را به کار ببرید.
- **گرداننده پروکسی اتصال‌های شما را می‌بیند.** پروکسی پولی را یک شرکت شناخته‌شده اداره می‌کند؛ فهرست‌های SOCKS5 رایگان چنین نیستند. نگاه کنید به [پروکسی رایگان و سایت‌های وب پروکسی امن هستند؟](/fa/blog/are-free-proxies-safe)

اگر مسیر میان شما و پروکسی هم باید رمزگذاری شود، دستور `ssh -D 1080 user@server` یک سرور SOCKS محلی به شما می‌دهد که ترافیکش درون SSH جابه‌جا می‌شود.

## چگونه از پروکسی SOCKS5 استفاده کنیم؟

| ابزار | پشتیبانی از SOCKS5 | محل تنظیم |
|---|---|---|
| cURL | بله، با رمز | `-x socks5h://user:pass@host:port` |
| Python Requests / HTTPX | بله، با بسته اضافه | `pip install "requests[socks]"` یا `"httpx[socks]"` |
| Firefox | بله، بدون فیلد رمز | **تنظیمات**، جست‌وجوی «پروکسی»، **پیکربندی پروکسی** (در نسخه‌های قدیمی‌تر دکمه **تنظیمات…** زیر **تنظیمات شبکه**)، ردیف ⁦SOCKS v5⁩ |
| Chrome | فقط TCP، بدون رمز | `--proxy-server="socks5://host:port"` همراه با لیست سفید IP |
| macOS | بله | ⁦System Settings > Network > Details > Proxies > SOCKS proxy⁩ |
| iPhone و Wi-Fi اندروید | نه، فقط HTTP | پورت HTTP، یا برنامه‌ای که تنظیم پروکسی خودش را دارد |
| تلگرام، Proxifier | بله، با رمز | تنظیم پروکسی خود برنامه |

راهنماهای گام‌به‌گام: [Firefox](/fa/blog/firefox)، [ویندوز و Chrome](/fa/blog/windows-chrome-proxy-settings)، [تلگرام](/fa/blog/telegram-proxy) و [Proxifier](/fa/blog/proxifier).

### آزمایش پروکسی با cURL

```bash
# The proxy resolves DNS (recommended)
curl -x "socks5h://user:pass@pr.proxynet.io:1080" https://httpbin.org/ip

# The same request with separate options
curl --socks5-hostname pr.proxynet.io:1080 --proxy-user user:pass https://httpbin.org/ip
```

پاسخ، IP خروجی پروکسی را نشان می‌دهد. گزینه‌های بیشتر در [استفاده از cURL با پروکسی: تنظیم پروکسی HTTP و SOCKS5](/fa/blog/curl-proxy) آمده و روش بررسی فقط با مرورگر در [آیا پروکسی کار می‌کند؟ چگونه پروکسی را آزمایش کنیم](/fa/blog/how-to-test-a-proxy).

### استفاده در Python با تلاش دوباره

این اسکریپت قطعی‌های گذرای شبکه را دوباره امتحان می‌کند، اما روی خطاهای پیکربندی، که تلاش دوباره درستشان نمی‌کند، بی‌درنگ متوقف می‌شود.

```python
# pip install "requests[socks]"
import time

import requests

PROXY = "socks5h://user:pass@pr.proxynet.io:1080"  # socks5h = the proxy resolves DNS
PROXIES = {"http": PROXY, "https": PROXY}

# Configuration errors: retrying will not fix them
FATAL = ("SOCKS5 authentication failed", "sent invalid data", "Missing dependencies for SOCKS")

def fetch(url, attempts=3):
    for attempt in range(1, attempts + 1):
        try:
            r = requests.get(url, proxies=PROXIES, timeout=(10, 30))
            r.raise_for_status()
            return r
        except (requests.ConnectionError, requests.Timeout, requests.exceptions.InvalidSchema) as exc:
            message = str(exc)
            if any(text in message for text in FATAL) or attempt == attempts:
                raise
            print(f"attempt {attempt} failed, retrying: {exc.__class__.__name__}")
            time.sleep(2 ** attempt)

start = time.perf_counter()
r = fetch("https://httpbin.org/ip")
print("exit IP:", r.json()["origin"], f"({time.perf_counter() - start:.2f}s)")
```

در آزمایش ما این اسکریپت IP خروجی را چاپ کرد، با رمز اشتباه بی‌درنگ خطا داد و روی یک پورت بسته دو بار دوباره تلاش کرد. پورت‌های این نوشته نمونه‌اند؛ پورت‌های شما را پنل کاربری نشان می‌دهد.

## پروکسی SOCKS5 چه کاربردهایی دارد؟

- **بازی‌های آنلاین.** کلاینت‌های بازی پروتکل‌های خودشان را دارند و اغلب از UDP استفاده می‌کنند؛ یک ابزار مسیریابی ترافیک آن‌ها را از SOCKS5 عبور می‌دهد. برای یک نمونه، صفحه [پروکسی Growtopia](/fa/growtopia-proxy) ما را ببینید.
- **پیام‌رسان‌ها.** تلگرام در تنظیمات خودش SOCKS5 با نام کاربری و رمز را می‌پذیرد.
- **برنامه‌هایی که تنظیم پروکسی ندارند.** Proxifier هر برنامه دسکتاپ را، جداگانه برای هر برنامه، از SOCKS5 عبور می‌دهد.
- **جمع‌آوری داده.** اسکرپرهایی که باید DNS را در نقطه خروج resolve کنند از SOCKS5 با `socks5h` استفاده می‌کنند؛ [راهکارهای استخراج داده](/fa/data-scraping) ما را ببینید.

## مسکونی، موبایل، ISP یا دیتاسنتر: پیش از خرید پروکسی SOCKS5 چه چیزهایی را بررسی کنیم؟

SOCKS5 یک پروتکل است، نه نوعی IP؛ پس خرید پروکسی SOCKS5 یعنی انتخاب نوع IP مناسب کارتان و سرویسی که با ابزارهای شما کار کند.

| نوع IP | IP از کجا می‌آید | مناسب برای |
|---|---|---|
| دیتاسنتر | سرورهای مرکز داده، ثابت | بازی، انتقال‌های حجیم، مقصدهایی که بر اساس نوع IP فیلتر نمی‌کنند |
| ISP ثابت | آدرس‌های ارائه‌دهندگان اینترنت خانگی، ثابت برای چند ماه | نشست‌های طولانی، مدیریت حساب |
| مسکونی | اتصال‌های خانگی، چرخشی یا با نشست ثابت | اسکرپینگ، نتایج محلی، بررسی قیمت |
| موبایل | IPهای اپراتورهای ⁦4G/5G⁩ | برنامه‌های موبایل، پلتفرم‌هایی که انتظار IP اپراتور دارند |

پروکسی SOCKS5 اختصاصی (private) یک IP است که فقط شما از آن استفاده می‌کنید؛ در مقابل، IPهای مسکونی و موبایل از یک استخر مشترک می‌آیند. نگاه کنید به [تفاوت پروکسی مسکونی و دیتاسنتر چیست؟](/fa/blog/residential-vs-datacenter-proxy) پیش از خرید این موارد را بررسی کنید:

1. **UDP.** همه سرویس‌های SOCKS5 آن را عبور نمی‌دهند؛ سرویس Proxynet عبور می‌دهد.
2. **احراز هویت.** اگر ابزار شما مانند Chrome نمی‌تواند رمز SOCKS5 بفرستد، به لیست سفید IP نیاز دارید؛ Proxynet تا 10 IP را می‌پذیرد. نگاه کنید به [احراز هویت پروکسی: نام کاربری و رمز یا لیست سفید IP](/fa/blog/proxy-authentication-methods).
3. **DNS روی پروکسی.** سرویس باید نام دامنه را بپذیرد تا `socks5h` کار کند.
4. **پورت‌ها و اطلاعات ورود.** در Proxynet، پروکسی مسکونی و موبایل از یک گیت‌وی مشترک با پورت‌های جداگانه برای HTTP و SOCKS5 استفاده می‌کنند؛ سازنده نقطه اتصال (Endpoint Generator) در پنل کاربری، نام کاربری را با کشور، شهر و نشست آماده می‌سازد.
5. **نشست‌ها.** نشست ثابت (sticky)، که در Proxynet بین 1 تا 60 دقیقه است، یک IP را در طول یک فرایند ورود ثابت نگه می‌دارد.
6. **اول آزمایش.** دستور cURL را اجرا کنید و موقعیت و نشت DNS را بررسی کنید.

استخرهای مسکونی و موبایل Proxynet روی‌هم 160 میلیون IP دارند که 140 میلیون آن مسکونی است و استخر موبایل خطوط Turkcell، Türk Telekom و Vodafone در ترکیه را هم در بر می‌گیرد. صفحه‌های محصول: [پروکسی SOCKS5](https://proxynet.io/fa/socks5-proxy)، [پروکسی مسکونی](https://proxynet.io/fa/residential-proxy)، [پروکسی موبایل](https://proxynet.io/fa/mobile-proxy) و [پروکسی ISP](https://proxynet.io/fa/static-isp-residential-proxy). پرسش‌های بیشتر درباره خرید در [هنگام خرید پروکسی به چه نکاتی باید توجه کرد؟](/fa/blog/proxy-buying-guide) پاسخ داده شده‌اند. برای مقایسه کنار هم فروشندگان ⁦SOCKS5⁩ و شرایط‌شان، نوشته [بهترین ارائه‌دهندگان پروکسی ⁦SOCKS5⁩ - 2026](/fa/blog/best-socks5-proxy-providers-2026) را ببینید.

## خطاهای رایج SOCKS5 و راه رفع آن‌ها

پیام‌های ⁦cURL 8.21⁩، Python و Chrome را روی سرور آزمایشی خودمان بازتولید کردیم؛ متن مربوط به بسته نصب‌نشده از کد منبع Requests نقل شده است.

| پیام خطا | علت محتمل | راه رفع |
|---|---|---|
| `curl: (97) User was rejected by the SOCKS5 server (1 1).` | نام کاربری یا رمز اشتباه | اطلاعات ورود را دوباره کپی کنید؛ نویسه‌های خاص را URL-encode کنید |
| `curl: (97) No authentication method was acceptable.` | اطلاعات ورود فرستاده نشده و IP شما در لیست سفید نیست | `user:pass` را اضافه کنید یا IP خود را در لیست سفید بگذارید |
| `curl: (97) Received invalid version in initial SOCKS5 response.` | درخواست SOCKS5 به پورت پروکسی HTTP رفته است | از پورت SOCKS5 استفاده کنید |
| `curl: (56) Proxy CONNECT aborted` | طرح `http://` به پورت SOCKS5 اشاره می‌کند | آن را به `socks5h://` تغییر دهید |
| `Missing dependencies for SOCKS support.` | PySocks نصب نیست | `pip install "requests[socks]"` |
| `ERR_SOCKS_CONNECTION_FAILED` (Chrome) | پروکسی رمزی می‌خواهد که Chrome نمی‌تواند بفرستد | IP خود را در لیست سفید بگذارید |
| `ERR_PROXY_CONNECTION_FAILED` (Chrome) | میزبان یا پورت پروکسی در دسترس نیست | میزبان، پورت و فایروال را بررسی کنید |
| بازی وارد حساب می‌شود اما وسط مسابقه قطع می‌شود | UDP عبور داده نمی‌شود | از سرویس SOCKS5 و ابزار مسیریابی با پشتیبانی UDP استفاده کنید |

Python این خطاها را درون یک خط `Max retries exceeded` قرار می‌دهد؛ برای خواندن آن خط، [خطای Max Retries Exceeded With URL چیست و چگونه رفع می‌شود؟](/fa/blog/max-retries-exceeded-with-url) را ببینید.

## راهنمای انتخاب

| نیاز شما | پیشنهاد |
|---|---|
| کلاینت بازی، تماس صوتی یا ترافیک UDP دیگر | SOCKS5 با پشتیبانی UDP، و در صورت نیاز یک ابزار مسیریابی |
| تلگرام یا برنامه دیگری با فیلد SOCKS5 | SOCKS5 با نام کاربری و رمز |
| اتوماسیون Chrome یا Chromium | SOCKS5 با لیست سفید IP، یا HTTP(S) با رمز |
| اسکرپینگ وب‌سایت‌ها با Python یا Node.js | HTTP(S)، یا SOCKS5 با `socks5h` |
| پروکسی سراسری روی iPhone یا اندروید | پورت HTTP(S) همان پلن |

## پرسش‌های متداول

### SOCKS5 از چه پورتی استفاده می‌کند؟

طبق عرف پورت 1080. ارائه‌دهندگان اغلب پورت‌های دیگری به کار می‌برند، پس همان پورتی را وارد کنید که پنل کاربری‌تان نشان می‌دهد. پورت‌های پروکسی در [پورت 8080 چیست؟ شماره پورت‌های پروکسی و معنای آن‌ها](/fa/blog/port-8080) توضیح داده شده‌اند.

### آیا SOCKS5 همان VPN است؟

نه. VPN همه ترافیک دستگاه را تا سرور خودش رمزگذاری می‌کند. SOCKS5 فقط برنامه‌هایی را پوشش می‌دهد که تنظیمشان کرده‌اید و رمزگذاری هم نمی‌کند. نگاه کنید به [تفاوت پروکسی و VPN: هرکدام را کی به کار ببریم؟](/fa/blog/proxy-vs-vpn)

### آیا پروکسی SOCKS5 همان پروکسی مسکونی است؟

نه. SOCKS5 پروتکلی است که برنامه شما با آن با پروکسی حرف می‌زند؛ «مسکونی» می‌گوید IP خروجی از کجا می‌آید. به پروکسی‌های مسکونی، دیتاسنتر، ISP و موبایل می‌توان هم از راه HTTP و هم از راه SOCKS5 وصل شد.

### آیا SOCKS5 با سایت‌های HTTPS کار می‌کند؟

بله. دست‌دادن TLS و بررسی گواهی میان کلاینت شما و سایت انجام می‌شود، پس پروکسی نمی‌تواند محتوای صفحه را بخواند.

### آیا می‌توان در iPhone یا اندروید از SOCKS5 استفاده کرد؟

نه از راه تنظیمات پروکسی Wi-Fi، که در هر دو سیستم فقط پروکسی HTTP را می‌پذیرد. برنامه‌هایی که تنظیم پروکسی خودشان را دارند، مانند تلگرام، SOCKS5 را می‌پذیرند. برای استفاده سراسری، پورت HTTP(S) همان پلن را وارد کنید؛ روش آن در [تنظیم پروکسی در گوشی اندروید چگونه انجام می‌شود؟](/fa/blog/android-proxy-settings) آمده است.

### آیا فهرست‌های رایگان پروکسی SOCKS5 امن هستند؟

نه برای هر کاری که ورود به حساب دارد. نمی‌توانید بدانید چه کسی یک سرور رایگان را اداره می‌کند و آن سرور می‌تواند ترافیک رمزگذاری‌نشده را بخواند. از آن‌ها فقط برای آزمایش‌های موقت و بی‌اهمیت استفاده کنید.

## خلاصه

SOCKS5 اتصال‌های TCP و UDP را بدون خواندن محتوا جابه‌جا می‌کند و از هر نظر عملی جای SOCKS4 را گرفته است، اما رمزگذاری نمی‌کند. از `socks5h` استفاده کنید، هرجا ابزاری نمی‌تواند رمز SOCKS5 بفرستد لیست سفید IP را به کار ببرید و برای بازی یا تماس، پشتیبانی از UDP را بررسی کنید. برای دسترسی به SOCKS5 و HTTP(S) در یک پلن، [خدمات پروکسی](/fa/proxy) ما را ببینید.
