Proxifier + SOCKS5: فقط برنامههایی که انتخاب میکنید را از طریق پروکسی مسیریابی کنید
Proxifier به شما اجازه میدهد به جای سیستمگستر، یک پروکسی SOCKS5 را برای هر برنامه اعمال کنید. چگونه پروکسی را اضافه کنید، تصمیم بگیرید DNS کجا resolve شود، قوانین proxification بنویسید که درست عمل کنند، و نشتیهایی که بیشتر کاربران را گرفتار میکند را برطرف کنید.
بیشتر تنظیمات پروکسی همه یا هیچ هستند. یا یک تنظیم سیستم را تغییر میدهید و همه چیز از طریق پروکسی میرود، یا یک برنامه را پیکربندی میکنید و بقیه آن را نادیده میگیرند. Proxifier در میانه قرار میگیرد: اتصالات خروجی را در سطح سوکت رهگیری میکند و قوانین را اعمال میکند - این برنامه از پروکسی استفاده میکند، آن یکی مستقیم میرود، این میزبان کاملاً مسدود میشود.
این باعث میشود برای SOCKS5 مناسب باشد، زیرا SOCKS5 میتواند هر ترافیک TCP را حمل کند، نه فقط HTTP. این راهنما مراحل راهاندازی، تصمیم DNS که باعث بیشتر نشتیها میشود، و قوانینی که جلوی پروکسی کردن چیزهایی که قصدش را نداشتید را میگیرد را پوشش میدهد.
یک هشدار قبل از شروع: نام منوها بین نسخههای Proxifier و پلتفرمها کمی تغییر میکند. مفاهیم زیر ثابت هستند، بنابراین اگر برچسبی دقیقاً مطابقت نداشت، به دنبال نزدیکترین معادل بگردید.
آنچه Proxifier به شما میدهد که تنظیمات سیستم نمیتوانند
- مسیریابی در سطح برنامه. یک مرورگر را از طریق پروکسی بفرستید و بقیه را مستقیم رها کنید.
- مسیریابی در سطح هدف. ترافیک را به دامنهها یا محدودههای IP خاص پروکسی کنید و بقیه را مستقیم بفرستید.
- پروکسی کردن مستقل از پروتکل. هر برنامه TCP میتواند از طریق یک پروکسی SOCKS5 مسیریابی شود، حتی برنامهای که تنظیمات پروکسی خود را ندارد.
- زنجیرهسازی. مسیریابی از طریق یک پروکسی و سپس از طریق یک هاپ دیگر.
- گزارش ترافیک. میتوانید دقیقاً ببینید کدام اتصال به کجا رفته است، که هنگام نشتی چیزی بسیار ارزشمند است.
قبل از شروع: جزئیات پروکسی را جمعآوری کنید
از ارائهدهنده پروکسی خود نیاز دارید به:
- نام میزبان یا آدرس IP، به همراه پورت.
- پروتکل: SOCKS5.
- نام کاربری و رمز عبور، در صورت نیاز به احراز هویت.
- اینکه endpoint یک IP چرخشی میدهد یا یک نشست چسبنده (sticky session)، زیرا این تعیین میکند که آیا جریانهای چند مرحلهای stateful کار میکنند یا نه.
از قبل تصمیم بگیرید که آیا DNS باید در پروکسی resolve شود. با SOCKS5، resolve کردن نام میزبانها روی ماشین خودتان رایجترین منبع نشتی موقعیت مکانی است. بیشتر ارائهدهندگان DNS راه دور را یا از طریق تنظیمات سمت کلاینت یا یک فلگ نام کاربری ارائه میدهند.
مرحله ۱: پروکسی SOCKS5 را به Proxifier اضافه کنید
۱. منوی Profile را باز کنید و Proxy Servers را انتخاب کنید. ۲. روی Add کلیک کنید. ۳. آدرس و پورت را وارد کنید و پروتکل را روی SOCKS Version 5 تنظیم کنید. ۴. اگر پروکسی نیاز به احراز هویت دارد، آن را فعال کنید و اطلاعات ورود را وارد کنید. ۵. از دکمه Check داخلی استفاده کنید تا قبل از ساختن هر قانونی روی آن، مطمئن شوید پروکسی پاسخ میدهد.
اگر بررسی شکست خورد، علت تقریباً همیشه یکی از سه چیز است: پورت اشتباه، اطلاعات ورود که به دلیل کاراکترهای خاص نیاز به URL encoding دارند، یا ارائهدهندهای که اتصالات را به آدرسهای IP لیست سفید محدود میکند.
مرحله ۲: تصمیم بگیرید DNS چگونه مدیریت شود
این تنظیمی است که بیشتر مردم از آن میگذرند، و همان است که بیسروصدا نشتی ایجاد میکند. در تنظیمات name resolution، معمولاً زیر Profile و سپس Name Resolution، بین resolve کردن نام میزبانها به صورت محلی یا در پروکسی یکی را انتخاب میکنید.
- Resolve از طریق پروکسی زمانی که هدف شما دور نگه داشتن موقعیت واقعی و کوئریهای DNS شما از تصویر است. این معادل SOCKS5 استفاده از
socks5h://به جایsocks5://است. - Resolve محلی فقط زمانی که به طور خاص به رفتار DNS محلی نیاز دارید، مانند نامهای split-horizon در یک شبکه شرکتی.
اگر سایتی موقعیت مکانی را مطابق با موقعیت واقعی شما نه موقعیت پروکسی میبیند، این اولین تنظیمی است که باید بررسی کنید.
مرحله ۳: قوانین proxification را بنویسید
قوانین زیر Profile و سپس Proxification Rules قرار دارند. به ترتیب ارزیابی میشوند و اولین تطبیق برنده است، بنابراین ترتیب مهمتر از هر ورودی جداگانه است.
یک ساختار شروع منطقی:
۱. مستقیم برای آدرسهای محلی. Loopback و LAN شما هرگز نباید پروکسی شوند. ۲. مستقیم برای خود سرور پروکسی. بدون این، برخی پیکربندیها سعی میکنند ترافیک پروکسی را دوباره از طریق پروکسی بفرستند. ۳. پروکسی برای برنامههای خاصی که به آنها اهمیت میدهید. یک قانون به ازای هر فایل اجرایی، با اقدام تنظیم شده روی پروکسی SOCKS5 شما. ۴. مستقیم یا مسدود برای بقیه. آگاهانه انتخاب کنید که کدام یک از این دو را به عنوان پیشفرض میخواهید.
هر قانون میتواند بر اساس موارد زیر مطابقت کند:
- برنامهها - نام یا مسیر فایلهای اجرایی.
- میزبانهای هدف - دامنهها، wildcardها، یا محدودههای IP.
- پورتهای هدف - مفید برای ارسال فقط مثلاً پورت ۴۴۳ از طریق پروکسی.
لیست را کوتاه نگه دارید. یک مجموعه قانون با سی ورودی همپوشان، وقتی چیزی خراب میشود، استدلال دربارهاش غیرممکن است.
مرحله ۴: تأیید کنید که ترافیک به جایی که فکر میکنید میرود
تأیید سه بخش دارد:
۱. در گزارش ترافیک، تأیید کنید اتصالی که همین الان برقرار کردید به پروکسی SOCKS5 نسبت داده شده نه به Direct. ۲. از خود برنامه، IPی که یک صفحه بررسی IP عمومی گزارش میدهد را بررسی کنید. ۳. از خط فرمان، یک درخواست مستقیم را با یک درخواست پروکسی شده مقایسه کنید:
# Direct
curl -s https://api.ipify.org; echo
# Through the SOCKS5 proxy with remote DNS resolution
curl -s --proxy socks5h://user:[email protected]:1080 https://api.ipify.org; echo
اگر آن دو دستور با هم اختلاف دارند، قانون شما با برنامهای که فکر میکردید مطابقت ندارد. این معمولاً یک مشکل ترتیب است، یا قانونی که با یک لانچر مطابقت دارد نه با فرآیندی که شبکه را انجام میدهد.
مشکلات رایج Proxifier + SOCKS5
- یک قانون با لانچر مطابقت دارد، نه با فرآیند. مرورگرها و runtimeها اغلب یک فرآیند فرزند جداگانه ایجاد میکنند که سوکتها را باز میکند. با فرآیندی که واقعاً متصل میشود مطابقت دهید.
- نشتیهای DNS. در بالا پوشش داده شد، اما همچنان علت شماره یک "IP من تغییر کرد، با این حال سایت هنوز میداند کجا هستم." است.
- خود کلاینت پروکسی پروکسی میشود. یک حلقه آسان برای ایجاد با یک قانون برنامه بیش از حد گسترده.
- تداخل با یک VPN یا درایور فیلتر آنتیویروس. رهگیری شبکه لایهای شکننده است. اگر یک کلاینت VPN در حال اجراست، ابتدا Proxifier را به تنهایی آزمایش کنید.
- برنامههای sandbox شده. برنامههایی که در یک sandbox محدود اجرا میشوند ممکن است از طریق همان مکانیزم نرمافزارهای معمولی دسکتاپ قابل رهگیری نباشند.
زمانی که اصلاً به Proxifier نیاز ندارید
اگر فقط مرورگر شما به پروکسی نیاز دارد، پیکربندی در سطح مرورگر سادهتر است. اگر برای ابزارهای خط فرمان به SOCKS5 نیاز دارید، یک SSH dynamic forward ترکیب شده با یک wrapper مانند proxychains کار مشابهی انجام میدهد. اگر میخواهید هر برنامه روی دستگاه مسیریابی شود و به قوانین per-app نیاز ندارید، VPN ابزار تمیزتری است. Proxifier جای خود را دقیقاً زمانی به دست میآورد که نیاز به مسیریابی انتخابی و به ازای هر برنامه باشد.
نتیجهگیری
ابتدا پروکسی SOCKS5 را اضافه کنید و تأیید کنید که پاسخ میدهد، آگاهانه تصمیم بگیرید که DNS به صورت محلی resolve شود یا در پروکسی، سپس لیست قوانین را کوتاه و مرتب نگه دارید تا اولین تطبیق همیشه همان چیزی باشد که انتظار دارید. با گزارش ترافیک و با یک بررسی IP تأیید کنید - و هر اختلافی بین آن دو را به عنوان یک باگ تطبیق قانون در نظر بگیرید نه یک مشکل پروکسی.