تبدیل پراکسی SOCKS به TCP proxy برای کل سیستم

خب یوقت یه پراکسی SOCKS خوب داریم، و میخوایم روی سیستم یه کاری کنیم که همهء برنامه ها حتی اونایی که امکان تنظیم پراکسی SOCKS ندارن ازش بهره ببرن.

خب اول باید یه TAP device درست کنیم. این کار رو روی ویندوز میشه با OpenVPN انجام داد، چون این برنامه رو که نصب کنید خودش یک اینترفیس مجازی درست میکنه که توی ویندوز من توصیف این اینترفیس مجازی رو نوشته TAP-Windows Adapter V9، و ما میتونیم برای راحت تر شدن فرمان هایی که بعدا میخوایم وارد کنیم اسم اون رو عوض کنیم و بذاریم مثلا mytap.
بعد این دیوایس رو اینطوری پیکربندی میکنیم:
IP: 10.0.0.1
Subnet mask: 255.255.255.0

خب بعد ما نیاز به یه برنامه داریم بنام tun2socks که جزو پروژه/پکیجی هست بنام badvpn که سابقا روی سرورهای google code قرار داشت. البته من همه این فایل ها رو روی سیستمم از خیلی وقت پیش داشتم و همونا رو آپلود کردم توی وبلاگم گذاشتم که بعدا راحت بتونم دانلود کنم، بخصوص که اینطور سرویس ها/سرورهای گوگل برای ما تحریم شده.
البته من در اینجا فقط فایل badvpn-tun2socks.exe رو جدا کردم و گذاشتم، چون حجم کلش زیاد بود. بهرحال بنظر میرسه که همین یک فایل به تنهایی کار میکنه و کار ما رو راه میندازه، ولی اگر به فایل dll جانبی ای چیزی نیاز داشت باید از badvpn برداریم و کپی کنیم.

حالا tun2socks رو به این شکل اجرا میکنیم:
badvpn-tun2socks.exe --tundev tap0901:mytap:10.0.0.1:10.0.0.0:255.255.255.0 --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:12345
مشخصه که اون آدرس و پورت آخر، آدرس و پورت پراکسی socks ماست که روی لوکاله، و درواقع این پراکسی لوکال توسط یک اتصال SSH دارای داینامیک پورت فوروارد ایجاد شده. درواقع ما داریم از یک اتصال SSH به یک سرور ریموت، بعنوان پراکسی بهره میبریم.

خب بعد باید route ها رو در ویندوز تنظیم کنیم:
route add <IP_of_SSH_server> <IP_of_original_gateway> metric 5
route add 0.0.0.0 mask 0.0.0.0 10.0.0.2 metric 6

نکته اینکه ویندوز 7 در این مورد عجیب و غریب عمل میکنه و باید مواظب metric ها باشیم ببینیم چی بهشون اختصاص میده، اونی که ما وارد میکنیم رو خودش برمیداره یه عدد دیگه مثل اینکه بهش اضافه میکنه، خلاصه میرینه به کاسه کوزه، بنابراین باید بررسی کنیم ببینیم باید متریک route اول از متریک route دوم کمتر باشه و اگر نیست بوسیله فرمان route اصلاحش کنیم. همچنین default root قبلی که قبل از این جریانات در سیستم بوده ممکنه مشکل ساز بشه و بنابراین بهتره با فرمان ‎route delete‎…‎ حذفش کنیم.
ویندوز 7 در این زمینه بطور کلی خیلی آدمو اذیت میکنه و همین الان برای نوشتن این مقاله کلی گیج شده بودم و کلی وقت صرف کردم تا بالاخره این بند و بساط رو راه انداختم. روی ویندوز XP هرگز اینقدر دردسر واسه این کار نداشتم.

خب من فایل راهنمایی رو هم که چند سال پیش دانلود کرده بودم اینجا میذارم: راهنما
درصورتیکه اطلاعات بیشتر و دقیقتری بخواید یا نیاز به فرمانهای لازم تحت لینوکس داشته باشید، اطلاعات کامل در این راهنما هست.

بخصوص روی ویندوز 7، رفتارها و دردسرهای عجیبی ممکنه دیده بشه، بنابراین باید حواسمون به IP ها و Metric ها باشه. مثلا گهگاه ممکنه سیستم بصورت خودکار Default route قبلی رو اضافه کنه، که این باعث میشه سیستم و تشکیلات ما دیگه درست کار نکنه، و اونوقت با حذف کردن اون route میتونیم سیستم رو دوباره به حالت درست برگردونیم.
باید حواسمون به IP هایی هم که به اینترفیس ها اختصاص داده میشه باشیم. درست یادم نیست خودم اشتباه تنظیم کرده بودم یا سیستم خودش بصورت خودکار یک IP نامتجانس به اینترفیس داده بود که خلاصه ریده شده بود به کاسه کوزه! ظاهرا IP ها باید هم خانواده باشن. مثلا نمیشه IP اینترفیس باشه 10.0.2.2 و default gateway کلا توی یه range دیگه باشه مثلا باشه 192.168.22.3 و این حرفا.

5 دیدگاه در “تبدیل پراکسی SOCKS به TCP proxy برای کل سیستم

  1. به شناسه خداوند پرمهر بسیار مهربان
    با آشتی سلام،،
    بینید بنده شبکه را درست نمیتوانم دریابم،، این که هر نرم افزار یک شناسه در خانه یا لوکال دارد،یک نشانی هم دارد، هر دستگاه کناری، جور چاپگر هم یک نشانی دارد،، خوب نشانی های ساختگی مجازی هم داریم،، نشانی های شبکه تارگردی ip داریم،،یک چیز دگر که tcp ،، همین زیر شبکه subnet mask نمیدانم چرا نمای آن با نمای ip یکجور نیستند، نمونه
    IP: 10.0.0.1
    Subnet mask: 255.255.255.0.
    یا ماسک در اینجا مرزبندی میکند که شماره نشانی های بیشتر از اینها نمیتوانند گذر کنند؟ چگونه به چهار بخش با برش نقطه جدا شدند،،
    بدیدم چون تارنما یا شبکه کارش با میانجی ها یا واسطه هاست ،
    میانجی های سخت افزاریُ نرم افزاری فراوان، ،اینهمه پیچیده شد آنهم با زبان برنامه نویسی پله پایین ،جور c که با هیچ صفر، یک کار میکنند،،
    خود زبان ها هم در آغاز روی سامانه ای که پیاده شد بدیدم زمان بر بود،نیز سامانه کاری یا سیستم عامل هم که پیاده میشود رازش کمتر آشکار میشود برای کار شاید پیچیده که نیاز به دانش هم سرمایه باشد،،
    “اَللهم”"خداوندا” تویی گذارنده هر کسی در کاری،، نه دگری ها مرا پذیرای آنچه برایم گذاشتی دار سرنگون در برابرت برپاساز پیوست نماز

    • IPv4 یه عدد 32 بیتی است. حالا به چهار قسمت هرکدام 8 بیت (که طبیعتا هر 8 بیت میتونه مقداری از 0 تا 255 داشته باشه) تقسیمش میکنن، یک دلیل اصلی بخاطر خوانایی و راحتی بخاطر سپردن و کارهای ذهنی و دستی منجمله طبقه بندی روی این آدرسهاست، وگرنه حتما لزومی نداره به این شکل باشه و در واقعیت IP فقط یک عدد 32 بیتی است (البته IPv6 عددی خیلی بزرگتره).
      Subnet mask هم برای اینه که مشخص کنه آدرس IP مورد نظر باید در شبکهء جاری/داخلی باشه یا خارج از اون. فرض مثلا کامپیوتر شما اطلاعاتی رو به آدرس 192.168.5.130 ارسال میکنه. برای اینکه بفهمیم این آدرس جزو محدوده آدرسهای شبکه جاری/داخلی است یا جایی در خارج از اون قرار داره، این آدرس رو با ماسک شبکه که فرضا 255.255.255.0 است AND بیتی میکنیم که نتیجه اش 192.168.5.0 میشه. اون 255 ها در مبنای باینری اگر ببریم هرکدام به 11111111 تبدیل میشن باعث میشه که در عمل AND بیتی در آدرس آیپی مورد نظر در اونجا هر عددی صفر یا یک هست در خروجی دقیقا همون ظاهر بشه (خاصیت عمل AND بیتی با 1)، ولی اون بیت هایی که با قسمت 00000000 اند میشن در خروجی هم 0 میشن و بنابراین فرقی نمیکنه که قسمت آخر IP ما چی باشه؛ مثلا اگر بجای عدد 130 عدد 91 بود، بازم نتیجهء اند ما همون عدد ثابت 192.168.5.0 میشد که این بخش در آدرس IP تمام دستگاه های متصل به شبکه داخلی ما مشترک است. درواقع قسمت 130 و 91 و غیره، آدرس host های ما در شبکه داخلی رو مشخص میکنه، و 192.168.5.0 بنوعی آدرس کل شبکه جاری ماست که بهش Network prefix گفته میشه. اگر بخوایم یه مثال ساده بزنیم مثلا Network prefix رو اسم یک خیابان در یک شهر تصور کنیم، و اون عدد 130 میشه شماره پلاک خانهء مورد نظر در اون خیابان. پستچی باید اول بدونه که شماره پلاک مورد نظر آیا در همین خیابان است یا در خیابان دیگری باید باشه.
      خب بعد حالا فرض کنیم سیستم شما اطلاعاتی رو به آدرس دیگری ارسال میکنه که وقتی با ماسک شبکه شما AND میشه 192.168.5.0 رو نتیجه نمیده. در این صورت سیستم میفهمه که این آدرس نمیتونه عضوی از این شبکه باشه و در این موارد اون رو به آدرس IP دستگاه دیگری در همین شبکه که بعنوان Gateway تعریف شده میفرسته که کار Gateway همینه که دروازهء ارتباط و اتصال شبکه داخلی شما با بقیهء شبکه هاست، یعنی آدرسهایی که در شبکه جاری نباشن توسط Gateway هندل میشن.

      البته اینا بصورت خیلی ساده و مختصر شده کلیاتش رو گفتم. در عمل انواع و جزییات خیلی بیشتری میتونه وجود داشته باشه و مسلما سوالات زیادی در ادامه ممکنه به ذهن بیاد.

      • ضمنا برای شبکه های شخصی/داخلی (خانگی، شرکتی، سازمانها و غیره) محدوده های خاصی از آدرسهای آیپی رو کنار گذاشتن و فقط باید از این محدوده ها استفاده بشه چون آدرسهای دیگر ممکنه در جای دیگری در اینترنت جهانی مورد استفاده باشن. محدوده آیپی های private اینها هستند:

        10.0.0.0 تا 10.255.255.255 که برای شبکه های خیلی بزرگ است چون نزدیک 17 میلیون آدرس IP ممکن داره.

        172.16.0.0 تا 172.31.255.255 که حدود یک میلیون آدرس IP ممکن داره.

        192.168.0.0 تا 192.168.255.255 که شامل 65,536 آدرس ممکن میشه.

        حالا استفاده کننده ها میتونن تنها از بخشی از هر یک از این آدرسها استفاده کنن و میتونن بوسیلهء همون Subnet mask و این حرفها، چند زیر شبکه بوجود بیارن، یعنی بازم محدوده های کوچکتری رو در این بازه ها تعریف و جداسازی کنن که هرکدام یک شبکهء فیزیکی یا منطقی جداگانه رو ایجاد میکنن.

  2. “بسم الله الرحمن الرحيم
    .. ﻭَ ﺃَﯾُّﻮﺏ ﺇِﺫْ ﻧَﺎﺩَﻯ ﺭَﺑَّﻪُ ﺃَﻧﻰ ﻣَﺴﻨﻰَ ﺍﻟﻀﺮُّ ﻭَ ﺃَﻧﺖ ﺃَﺭْﺣَﻢُ ﺍﻟﺮَّﺣﻤِﯿﻦَ ‏ 83 ‏ ﻓَﺎﺳﺘَﺠَﺒْﻨَﺎ ﻟَﻪُ ﻓَﻜَﺸﻔْﻨَﺎ ﻣَﺎ ﺑِﻪِ ﻣِﻦ ﺿﺮٍّ ﻭَ ﺀَﺍﺗَﯿْﻨَﻪُ ﺃَﻫْﻠَﻪُ ﻭَ ﻣِﺜْﻠَﻬُﻢ ﻣَّﻌَﻬُﻢْ ﺭَﺣﻤَﺔً ﻣِّﻦْ ﻋِﻨﺪِﻧَﺎ ﻭَ ﺫِﻛﺮَﻯ ﻟِﻠْﻌَﺒِﺪِﯾﻦَ ‏ 84 ..”
    “به شناسه خداوند پرمهر بسیار مهربان
    ..نیز ایوب ‏» شاید از جور اوّاب که بسیار پیوسته برگشت کننده سمت خداوند هست،بود»، آنگه صدازد پرورنده اش، که اگرم ساییده ام آسیبرسانُ، تو مهرآورنده تری مهرآورنده ها ۸۳ وارخواستیم پاسخ دهیم تاش، وارلخت کردیم چه بهش از آسیبرسانیُ، آوردیم دادیم سزاوارشُ مانندشان باهاشان، مهر آوری از نزدمانُ، یادگویی برابنده ها ۸۴..”
    بینید، خوب ساده بسیار چیزهایی را گفتید،، کنون درگاه یا سوکت که با دو جداساز نقطه در ipv4 نمایش داده میشوند؟؟ جور 80،8080،،،یا
    کنون ipv6 هم در دستکاری چیدمان تنظیمات فرستنده گیرنده همان مودم هم میبینیم،،آیا این نشانی دهی یا آدرس دهی بزرگتر هست؟؟
    فراز یا فرق میان telnet که در داس میدیدیم، با فرستادن نامه یا email در چیست؟؟ آیا یکمی بر خش یا برخط آنلاین ،،دگری تواناییِ انبار کردن داده ها را دارد؟؟
    یا همین تارگردی از چه گونه ای هست با یک تارگردی جور اپرا؟ ، از گونه تلنت، یا نامه رسانی، یا کنار هم ،از این دو روش؟؟
    کار گیرنده های شمارشی دیجیتال، که رسانهء تازه کار برای پخش رسانه هستند، چگونه هست؟ یا گیرنده های بشقابی ماهواره ها که پخش زنده دارند؟؟
    که ساده تر از شبکه سراسری تارنمای نت هستند، نیز در کدام شاخه اش جای دارند؟؟ ،،
    “اَللهم”"خداوندا” ما دلارام ها را به دانش ناچیزمان سرگرم ندار که از یادت نکاهیم هم بیافتیم در برابرت برپاساز پیوست نماز، نه باخته به دگر چیزهایی که دستورت نیست

پاسخ دادن به بندهء خداوند لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>