رفع مشکل این روزهای tor

اگه مثل من از tor استفاده می‌کنین لابد این روزها متوجه شدین که tor کار نمی‌کنه. خوب خوشبختانه مشکل این روزهای tor راه حل ساده‌ای داره.

برای رفع مشکل اول یه ایمیل به آدرس bridges@torproject.org می‌زنیم. متن ایمیل باید عبارت get bridges باشه و حتما از یه ایمیل یاهو یا جیمیل فرستاده بشه. حدس می‌زنید چرا؟ (؛

در جواب این ایمیل، یه ایمیل می‌گیریم که توش سه تا آدرس به این شکل فرستاده شده:

حالا اگه از vidalia استفاده می‌کنیم،‌ از صفحه Settings، برگه Network، گزینه My ISP blocks connections to the Tor network رو انتخاب می‌کنیم و بعد این سه تا آدرس رو تو لیست پایین اضافه می‌کنیم.

اگر هم از لینوکس استفاده می‌کنیم،‌ فایل ‪/etc/tor/torrc‬ رو ویرایش می‌کنیم و این چند تا خط رو بهش اضافه می‌کنیم:

و در نهایت tor رو مجدد راه‌اندازی می‌کنیم:

شاد و آزاد باشید و آزادانه اینترنت‌گردی کنید. 🙂

پی‌نوشت مهم:
هم توی ویندوز هم توی لینوکس این مشکل وجود داره که اگه دفعه اولی که bridge ها رو تنظیم می‌کنیم،‌ خط

فعال باشه، تور فعال نمی‌شه. برای حل مشکل کافیه دفعه اولی که تور رو با بریج‌های جدید اجرا می‌کنیم این خط رو کامنت کنیم (اولش یه # اضافه کنیم) و بعد، از دفعه‌های بعد، اون خط رو از کامنت در بیاریم. برای ویندوز من این آپشن رو پیدا نکردم که کجاست و بنابراین باید مستقیم فایل torrc رو ویرایش کنیم. خوشبختانه میشه با استفاده از دکمه Edit current torrc file از صفحه Settings، برگه Advanced این کار رو انجام داد.

سناریوهای فضایی کار کردن با Tor در خط فرمان

اینترنت اسلامی چیزهای زیادی داره که بهمون یاد بده. وقتی داریم با ابزارای خط فرمان با اینترنت کار می‌کنیم و -کارای پیچیده که نه- حتی کارای ساده‌ای مث اضافه کردن یه ppa یا کارکردن با پروتکل https رو هم نمی‌تونیم انجام بدیم، باید هم چیزهای جدید یاد بگیریم. به هر حال این سه تا سناریوییه که تا الان مشکلات من رو حل کرده.

سناریوی اول: کار کردن با سایت‌ها از طریق پروتکل‌های معمول
تو این حالت بهترین راه استفاده از برنامه torify اه. به این ترتیب که برنامه‌ای که می‌خواید از یه سایت بسته شده استفاده کنه رو با استفاده از torify فراخونی می‌کنید. اگر هم که می‌خواید یه محیط کلا آزاد داشته باشید که می‌شه یه ترمینال غیر فیلتر راه انداخت:

تو این ترمینال هر کاری که بکنید انگار اینترنتتون غیر اسلامیه.

سناریوی دوم: کار کردن با پروتکل https
فرض کنید می‌خواید از طریق پروتکل https با github کار کنید. یا اینکه ناچارید از یه سایتی با پروتکل https چیزی دانلود کنید. در این شرایط احتمالا روش بالا بهتون کمکی نمی‌کنه. علت؟ گاهی برای بعضی پروتکل‌ها تو سیستم یه پروکسی جدا تنظیم می‌شه. برای کنترلش با دستور env کل متغیرهای محیطی سیستم رو می‌بینیم و البته با grep چیزی که دردسر ایجاد کرده رو می‌کشیم بیرون:

اینجا تو خط سوم نتایج می‌شه دید که سیستم یه پروکسی جدا برای https داره. کافیه برای غیرفعال کردن این پروکسی، این متغیر رو unset کنیم:

و حالا اون برنامه‌ای رو که می‌خوایم با یه چیزی مثل torsocks صدا بزنیم:

من از این روش برای کار با github و دانلود پکیج‌های sublimetext استفاده کردم.

سناریوی سوم: دستور sudo و tor
اگه برای کارایی مثل اضافه کردن یه پکیج ppa احتیاج داشته باشید از دستور sudo استفاده کنید، هیچ کدوم از روش‌های بالا کار نمی‌کنه. علت قضیه هم اینه که sudo داره به نوعی id کاربر جاری رو عوض می‌کنه و ما رو به root تبدیل می‌کنه. مشکل هم دقیقا از همین جاست: دو تا دستور بالا نمی‌تونن با یه برنامه‌ای که داره آی‌دی کاربر رو عوض می‌کنه کار کنن.

برای حل این مشکل من از سوییچ s دستور sudo استفاده کردم. با این سوییچ کلا به خط فرمان root منتقل می‌شیم. بعدش اونجا می‌تونیم از دستور torsocks به درستی استفاده کنیم:

در آخر بگم که اگه برای مهاجرت دلیلی به جز وضعیت اسفبار اینترنت نبود، باز هم همین یک دلیل کافی بود.

به علاوه باید به شدت از نویسنده‌ها و طراحای tor با این ابزار عالیشون تشکر کرد.

tor روی شبکه محلی

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

اشتراک تور بین همه دستگاه‌ها
تو آدرس ‪/etc/tor‬ فایلی به اسم torrc قرار داره که تنظیمای tor رو نیگه می‌داره. کافیه به ایشون بگیم که کانکشن‌های دستگاه‌های روی شبکه محلی رو قبول کنه. بازش می‌کنیم:

و با این فرض که آی‌پی دستگاه شما ۱۹۲.۱۶۸.۱.۲۰۰باشه، این دو خط رو بهش اضافه می‌کنیم:

خط اول می‌گه که سرویس Socks رو روی اون آدرس هم ارائه بده و خط دوم هم می‌گه که کانکشن‌های وارده از همه کامپیوترهای شبکه رو قبول کن. حالا کافیه تور رو ریستارت کنیم:

حالا با تنظیم کردن کامپیوترهای شبکه برای استفاده از پروکسی Socks 5 روی پورت ۹۰۵۰ از ۱۹۲.۱۶۸.۱.۲۰۰ می‌شه از تور این دستگاه استفاده کرد.

مرجع

فایل تنظیم اتوماتیک
اگه دیوایس‌هایی داشته باشیم که نشه برای استفاده از Socks کانفیگشون کرد چی؟ مثلا دیوایس‌های اپل به طرز احمقانه‌ای این قابلیت رو ندارن. راه حل: استفاده از فایل تنظیمات اتوماتیک.

مرحله اول: نصب یه سرور HTTP
اگرچه با SimpleHTTPServer پایتون هم می‌شه این کار رو انجام داد، ولی من webfs رو پیشنهاد می‌کنم که سبک و سادست.
نصبش می‌کنیم:

و بعد فایل تنظیماتش رو ویرایش می‌کنیم:

توی فایل تنظیمات این دو خط رو تغییر می‌دیم:

و البته یادمون نمی‌ره که مطمئن بشیم اون دایرکتوری اونجاست:

و سرویس محترم رو ری استارت می‌کنیم:

مرجع

مرحله دوم: فایل کانفیگ
توی دایرکتوری ‪/var/www‬ یه فایل به اسم tor.pac با این محتویات می‌سازیم:

حالا تو دیوایس‌ها مون میتونیم بگیم که پروکسی اتوماتیکه و فایل کانفیگش هم تو آدرس http://192.168.1.200/tor.pac قرار داره. دقت کنید که اون تیکه http حتما باید باشه.

مرجع

پی‌نوشت مهم: با این روشا ممکنه خیال کنیم که حالا می‌تونیم به اینترنت آزاد دسترسی داشته باشیم. ولی اینا همه دل خوش کنکه. داشتن یه اینترنت آزاد با سرعت خوب و قیمت معقول حق ماست.

فیسبوق و تور در اوبونتو

این عمو ویلترچی یه کاری کرده آدم جرات نمی‌کنه مث بچه آدم بنویسه.

الغرض: من تو اوبونتو از تور استفاده می‌کنم (راهنمای نصب). مشکل این بود که چه با استفاده از تور و چه با فی پی عن، فایرفاکس عزیز بار اول فیسبوق رو باز می‌کرد، اما دفعه‌های بعدی نه!

این سری از فایل log‌ تور قضیه رو پیگیری کردم و دیدم که ظاهرا قضیه مربوط به اینه که فایرفاکس آی پی یه سری از دی ان اس ها رو fetch می‌کنه. درباره این مشکل و راه حلش اینجا و اینجا توضیح داده شده. به طور خلاصه برای حل مشکل کافیه وارد صفحه about:config شد و مقدار network.proxy.socks_remote_dns رو به true تغییر داد.