چگونه از پروکسی SOCKS5 در Windows 10 و 11 استفاده کنیم: راهاندازی سیستمی، مرورگر و برنامههای خاص
تنظیمات Windows یک کادر پروکسی دارد، اما سوئیچ واقعی SOCKS5 نیست. در ادامه میبینید چه چیزی واقعاً ترافیک Windows را از SOCKS5 عبور میدهد — تنظیمات هر برنامه، فورواردینگ داینامیک SSH، WSL و wrapperها — و همچنین چگونه DNS و نشت را بررسی کنید.
کاربران Windows که دنبال چگونگی استفاده از پروکسی SOCKS5 میگردند اغلب از Settings شروع میکنند و گیر میافتند. کادر پروکسی دستی به نظر میرسد باید هر پروکسیای را بپذیرد، اما سوئیچ پروتکل SOCKS5 ارائه نمیدهد. این راهنما چیزهایی را پوشش میدهد که واقعاً در Windows 10 و 11 کار میکنند، از تنظیمات هر برنامه تا تونلهای SSH و wrapperهای برنامه، و اینکه چگونه بررسی کنید DNS و WebRTC نشت نمیکنند.
پاسخ کوتاه: Windows هیچ سوئیچ سراسری SOCKS5 داخلی ندارد
- تنظیمات Windows شامل راهاندازی پروکسی دستی است، اما حول پروکسی HTTP/HTTPS طراحی شده است.
netsh winhttp set proxyدر WinHTTP برای برخی اجزای سیستم پیکربندی میکند؛ سوئیچ عمومی SOCKS5 نیست.- بسیاری از برنامههای Windows اصلاً پروکسی سیستمی را نادیده میگیرند مگر اینکه صراحتاً از آن پشتیبانی کنند.
- برای SOCKS5 قابل اعتماد، هر برنامه را جداگانه پیکربندی کنید، از یک proxifier مخصوص برنامه استفاده کنید، یا با SSH یک پروکسی SOCKS5 محلی بسازید و برنامهها را به آن اشاره دهید.
تنظیمات پروکسی Windows 10 و 11 واقعاً چه کاری انجام میدهد
در Settings، به Network & Internet > Proxy > Manual proxy setup بروید. فیلدهای Address و Port را دریافت میکنید، بهعلاوه یک لیست bypass. هیچ منوی کشویی SOCKS4 یا SOCKS5 وجود ندارد. این تنظیم معمولاً برای پروکسیهای HTTP استفاده میشود و رفتار آن بسته به برنامه متفاوت است. Chrome و Edge ممکن است از تنظیمات پروکسی سیستمی پیروی کنند، در حالی که Firefox پیکربندی پروکسی خودش را دارد. برنامههای بومی Windows و ابزارهای خط فرمان اغلب به پیکربندی جداگانه نیاز دارند.
گزینه ۱: پیکربندی SOCKS5 برای هر برنامه
برای مرورگرها، اگر کنترل مستقیم SOCKS5 میخواهید از Firefox استفاده کنید. در Firefox، Settings را باز کنید، proxy را جستجو کنید، Manual proxy configuration را انتخاب کنید، SOCKS Host و Port را وارد کنید، SOCKS v5 را انتخاب کنید، و اگر میخواهید DNS از راه دور انجام شود، Proxy DNS when using SOCKS v5 را فعال کنید.
برای ابزارهای خط فرمان، از فلگها یا متغیرهای محیطی که ابزار پشتیبانی میکند استفاده کنید.
curl
# DNS را در پروکسی resolve کنید (برای بررسیهای جغرافیایی توصیه میشود)
curl --socks5-hostname 127.0.0.1:1080 https://api.ipify.org
# DNS را بهصورت محلی resolve کنید
curl --socks5 127.0.0.1:1080 https://api.ipify.org
--socks5-hostname معادل استفاده از URL پروکسی socks5h:// در بسیاری از ابزارها است. حرف h یعنی resolve کردن hostname در سمت پروکسی انجام میشود، که برای هدفگیری جغرافیایی و بررسی نشت DNS اهمیت دارد.
git
git config --global http.proxy socks5h://127.0.0.1:1080
git config --global https.proxy socks5h://127.0.0.1:1080
# بعداً حذف کنید
git config --global --unset http.proxy
git config --global --unset https.proxy
Python با requests
python -m pip install 'requests[socks]'
import requests
proxies = {
'http': 'socks5h://127.0.0.1:1080',
'https': 'socks5h://127.0.0.1:1080',
}
response = requests.get('https://api.ipify.org?format=json', proxies=proxies, timeout=10)
print(response.json())
گزینه ۲: ایجاد یک پروکسی SOCKS5 محلی با SSH
اگر یک سرور SSH مورد اعتماد دارید، فورواردینگ داینامیک آن را به یک پروکسی SOCKS5 محلی تبدیل میکند.
ssh -D 1080 -N -C [email protected]
در حین کار آن ترمینال را باز نگه دارید. سپس برنامهها را به 127.0.0.1:1080 اشاره دهید. این زمانی مفید است که فقط برای یک مرورگر، یک اسکریپت، یا یک ابزار خاص به پروکسی نیاز دارید. این کار بهطور خودکار همه برنامههای Windows را تغییر مسیر نمیدهد.
گزینه ۳: مسیریابی برنامههای خاص با ابزارهای Proxifier-Style
برخی برنامهها اصلاً تنظیمات پروکسی ندارند. ابزارهای به سبک Proxifier میتوانند اتصالات برنامههای انتخابشده Windows را رهگیری کرده و آنها را از طریق پروکسی SOCKS5 ارسال کنند. هنگام ارزیابی یکی از آنها، بررسی کنید:
- اینکه آیا از SOCKS5 با DNS از راه دور پشتیبانی میکند.
- اینکه DNS را برای برنامههای پروکسیشده و بدون پروکسی چگونه مدیریت میکند.
- اینکه قواعد بر اساس نام برنامه، میزبان هدف، پورت، یا ترکیبی از آنها هستند.
- اینکه وقتی پروکسی از کار میافتد چگونه رفتار میکند.
- اینکه آیا دادههای حساس اتصال را لاگ میکند.
گزینه ۴: WSL، Windows Terminal و ابزارهای Linux
WSL2 در یک شبکه مجازی جداگانه اجرا میشود. اگر پروکسی SOCKS5 روی Windows اجرا میشود، 127.0.0.1 داخل WSL ممکن است به آن نرسد. در این حالت، از IP میزبان Windows یا آدرسهایی که WSL برای رسیدن به میزبان استفاده میکند استفاده کنید، سپس متغیرهای محیطی را تنظیم کنید:
export ALL_PROXY=socks5h://WINDOWS_HOST_IP:1080
export all_proxy=socks5h://WINDOWS_HOST_IP:1080
همه ابزارهای Linux از ALL_PROXY تبعیت نمیکنند. برای ابزارهایی که از فلگ SOCKS5 پشتیبانی میکنند، مستقیماً از همان فلگ استفاده کنید.
چگونه پروکسی را تأیید و نشت DNS را بررسی کنیم
۱. IP عمومی خود را با پروکسی فعال و غیرفعال بررسی کنید.
۲. تأیید کنید کشور و ASN با انتظار شما مطابقت دارند.
۳. یک تست نشت DNS اجرا کنید. اگر DNS بهصورت محلی resolve میشود در حالی که انتظار resolve از راه دور داشتید، از socks5h استفاده کنید یا DNS از راه دور را در برنامه فعال کنید.
۴. در همان مرورگر یا برنامهای که برایتان مهم است تست کنید، نه فقط با curl.
۵. اگر نیاز دارید آدرسهای IP عمومی را از اسکریپتهای صفحه پنهان کنید، رفتار WebRTC را در مرورگرها بررسی کنید.
اشتباهات رایج SOCKS5 در Windows
- انتظار داشتن اینکه کادر پروکسی Settings در Windows SOCKS5 سراسری سیستم را فراهم کند.
- قاطی کردن
socks5://وsocks5h://و گرفتن رفتار متفاوت DNS. - فراموش کردن اینکه هر برنامه پشتیبانی پروکسی خودش را دارد.
- استفاده از پروکسیهای SOCKS5 رایگان برای ورود، پرداخت، یا دادههای حساس.
- فعال گذاشتن پروکسی پس از تست و خراب کردن سرویسهای محلی.
جمعبندی
Windows یک سوئیچ واحد SOCKS5 ارائه نمیدهد. مسیر عملی این است که انتخاب کنید پروکسی کجا اعمال شود: یک برنامه، یک مرورگر، یک نشست خط فرمان، یا مجموعهای wrapperشده از برنامهها. همان لایه را مستقیماً پیکربندی کنید، وقتی DNS از راه دور مهم است از socks5h استفاده کنید، و بهجای فرض کردن اینکه کار میکند، نتیجه را تأیید کنید.