در curl، وقتی قرار است پروکسی نام مقصد را حل کند، socks5h:// را انتخاب کنید. وقتی curl باید نام را محلی حل کند و یک آدرس به پروکسی بدهد، socks5:// را انتخاب کنید. هر دو از SOCKS5 استفاده می‌کنند؛ h پایانی یک قرارداد URL در سمت کلاینت است.

با جایگزین کردن شنوندهٔ محلی با نقطهٔ پایانی SOCKS5 خود، دو حالت را مقایسه کنید:

curl --noproxy '' --proxy socks5://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/
curl --noproxy '' --proxy socks5h://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/

فقط حالت حل نام تغییر می‌کند. --noproxy '' قواعد دور زدن پروکسی را برای این فراخوانی‌ها پاک می‌کند و محدودیت‌های زمانی مدت مقایسه را محدود می‌کنند. گزینه‌های اختصاصی معادل، --socks5 و --socks5-hostname هستند. برای هدف از نام میزبان استفاده کنید: آدرس IP که مستقیم نوشته شود نیازی به جست‌وجوی نام مقصد ندارد و این تفاوت را نشان نمی‌دهد.

یک نام ممکن است فقط در یک سمت شناخته شود

فرض کنید پروکسی در شبکهٔ توسعه‌ای اجرا می‌شود که DNS آن نام یک سرویس داخلی را می‌شناسد. لپ‌تاپ شما ممکن است در حالت socks5 نتواند نام را حل کند، اما socks5h این کار را به پروکسی می‌سپارد. در حالت برعکس، اگر نام فقط در فایل hosts لپ‌تاپ تعریف شده باشد، ممکن است این بار حل نام از راه دور شکست بخورد.

DNS عمومی هم ممکن است از شبکه‌های مختلف آدرس‌های متفاوتی برگرداند. تفاوت نتیجه دلیلی برای مقایسهٔ آدرس‌های انتخاب‌شده و دسترس‌پذیری آن‌هاست، نه تعویض فوری پروکسی.

  • نام میزبان پروکسی حل نمی‌شود: هیچ‌کدام از دو حالت نمی‌تواند شروع شود. کلاینت همچنان proxy.example را در socks5h://proxy.example:1080 حل می‌کند.
  • جست‌وجوی محلی مقصد شکست می‌خورد: حل‌کنندهٔ نام کلاینت را بررسی کنید یا با حالت ارسال نام میزبان به پروکسی مقایسه کنید.
  • سرور SOCKS مقصد را رد می‌کند: پاسخ و خط‌مشی آن را بررسی کنید. موفقیت جست‌وجوی محلی دسترس‌پذیری از سمت دور را ثابت نمی‌کند.
  • تونل کار می‌کند اما اعتبارسنجی گواهی شکست می‌خورد: TLS مقصد را بررسی کنید؛ انتخاب حالت DNS دیگر راه‌حل عمومی مشکلات اعتماد نیست.

یک نام آزمایشی تحت کنترل شما و گزارش‌های سمت سرور می‌توانند تأیید کنند چه نوع آدرسی به پروکسی تحت مدیریت شما رسیده است. صفحهٔ نمایش IP خروجی نمی‌تواند: آن صفحه اتصال رو به بیرون را گزارش می‌کند، نه محل انجام حل نام DNS را.

فایدهٔ حریم خصوصی محدودهٔ مشخصی دارد

حل نام در پروکسی از جست‌وجوی محلی مقصد برای همین درخواست جلوگیری می‌کند. SOCKS را رمزگذاری نمی‌کند، ثابت نمی‌کند پروکسی از DNS رمزگذاری‌شده استفاده می‌کند و ترافیک برنامه‌های دیگر یا پیش‌واکشی مرورگر را مسیریابی نمی‌کند. Requests با پشتیبانی SOCKS نیز همین تفاوت محلی و سمت پروکسی را دارد؛ کلاینت‌های دیگر ممکن است به‌جای شکل URL در curl یک تنظیم ارائه کنند. پیش از کپی کردن نقطهٔ پایانی از فهرست پروکسی‌های SOCKS5، پروتکلی را انتخاب کنید که برنامه‌تان پشتیبانی می‌کند.

مقالات مرتبط