راه‌اندازی پراکسی در لینوکس

یکی از اولین نیازها برای مهاجرت به لینوکس استفاده از پراکسی هست، متاسفانه آموزش‌های مناسبی هم براش سراغ ندارم در نتیجه تصمیم گرفتم این آموزش رو بنویسم، امیدوارم برای تازه کاران مفید باشه.
سعی می‌کنم به مرور زمان تکمیلش کنم شما هم می‌تونید کمک کنید ایراداش رو بگید روش‌های دیگه رو آموزش بدید.
منتظر ایشو‌ها یا پول ریکوست‌هاتون هستم.

توضیح: من سواد لینوکسی، شبکه‌ای، فارسی زیادی ندارم در نتیجه ممکنه هرجا متن اشتباه باشه.

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

حواستون باشه میرورهای موجود در ایران ممکنه برنامه‌هایی که برای دور زدن استفاده می‌شه رو نداشته باشند در نتیجه از میرورهای خارج ایران استفاده کنید. (یادتون نره لیست مخازنن رو آپدیت کنید)

ساخت تونل

نکته: این تونل‌ها تا زمانی که ترمینال باز هست کار می‌کنه و با بستن ترمینال بسته می‌شه. اگر می‌خواید ترمینال رو ببندید می‌تونید اول دستور screen و یا nohup رو بزنید تا تونل با بستن ترمینال باز بمونه (ممکنه لازم باشه screen و nohup رو نصب کنید) ولی من پیشنهاد میدم یه گوشه‌های باز نگهش دارید تا اگر خطایی داد ببنید مشکل چیه

راه‌اندازی تونل به وسیله shadow socks

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

$ sudo apt install libevent-dev
$ sudo apt install python-pip
$ sudo apt install python-dev
$ sudo apt install python-m2crypto
$ sudo pip install gevent
$ sudo pip install shadowsocks

الان شدو ساکس رو سیستم شما نصب شده و با دستور زیر می‌تونید یک تونل رو سیستم خودتون ایجاد کنید.

$ sslocal -s “server” -k password -t 600 -p port  -l 1080 -m encryption

به جای "server" آی‌پی یا آدرس سرور، به جای "password" پسورد و جای "port" پورت، جای "encryption" انکریپشن سرویس رو وارد کنید و به جای "local port" پورت لوکال سیستم که خودتون تایینش می‌کنید. بعد تونل رو سیستم شما ایجاد میشه و باید به مرحله رد کردن ترافیک از تونل برید.

میشه دستورات بالا رو تو یه فایل به این شکل ذخیره کرد

{
  "server": "sever addr",
  "server_port": port,
  "local_port": 1080,
  "password": "password",
  "timeout":600,
  "method":"aes-256-cfb"
}

و دستور رو اینجوری زد

$ sslocal -c path_file

شدو ساکس در پورت‌های مختلف و انکریپشن‌های متفاوت سرعت‌های مختلفی میده، فرود در این زمینه اطلاعات دقیق و کاملی داره

تونل با کمک ssh

نمی‌دونم اسم این تونل چیه ولی ازش استفاده می‌کنم اگر دسترسی ssh به یک سرور دارید می‌تونید به این طریق یک تونل رو سیستم خودتون ایجاد کنید

$ ssh user@server.address -D 1080

به این طریق یک تونل رو پورت ۱۰۸۰ سیستمتون ایجاد میشه

تونل با کمک tor

تور یکی از امن ترین شبکه‌های دنیاست

$ sudo apt install tor
$ sudo apt install python-pip
$ sudo apt install python-dev gcc
$ sudo pip install obfsproxy

سپس تنظیمات تور رو باید انجام بدید

$ sudo nano /etc/tor/torrc

موارد زیر رو به انتهای فایل اضافه کنید با کنترل + c و انتخاب y می‌تونید تغییرات رو ذخیره کنید

SocksPort 1080
SocksListenAddress 127.0.0.1
Bridge obfs3 194.132.209.187:39413
Bridge obfs3 194.68.32.131:56006
Bridge obfs3 107.191.58.23:34344
UseBridges 1
ClientTransportPlugin obfs2,obfs3 exec /usr/local/bin/obfsproxy --managed

تعدادی از پل‌های تور هم در این تنظیمات هستند، پل‌ها ممکن است بسته شوند از https://bridges.torproject.org می‌تونید پل‌های جدید بگیرید و با موارد بالا جایگزین کنید.

بعد ذخیره تنظیمات با دستور زیر تور را دوباره راه‌اندازی کنید

$ sudo service tor restart

حالا تونل در سیستم شما اجرا شده و لازمه ترافیک رو ازش رد کنید

ساخت تونل با yourfreedom

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

$ java -jar freedom.jar

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

openvpn

از openvpn هم میشه در لینوکس استفاده کرد اول نصبش کنید (فایل کانفیگ رو یا یا خودتون باید تو سرورتون بسازید یا از کسی که دارید از سرویسش استفاده می‌کنید بگیرید)

$ sudo apt install openvpn

فایل کانفیگ openvpn رو دانلود کنید و به این طریق وصل شید

$ sudo openvpn filename

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

رد کردن ترافیک از تونل

اگر دقیقا مثل تنظیماتی که نشون دادیم جلو رفته باشید با هر کدوم از روش‌ها یه تونل از نوع socks5 رو پورت 1080 و آی‌پی سیتمتون 127.0.0.1 دارید.
حالا باید هر چیزی رو که می‌خواید از توی این تونل رد کنید. خود سیستم عامل تو قسمت نتورک تنظیماتی برای پراکسی داره ولی من ازش خوشم نمیاد و فکر کنم بعضی از برنامه‌ها به اون تنظیمات کاری ندارند.
روش‌های بهتری هم هست

فایرفکس

foxyproxy یه پلاگین برای فایرفکس و فکر کنم کروم هست که می‌تونید خیلی راحت و دم دستی تنظیمات پراکسی رو توش تغییر بدید.
پلاگین رو نصب کنید، add new proxy رو بزنید، ip رو 127.0.0.1 و پورت 1080 بزارید، نوع پراکسی رو socks5 انتخاب کنید و ذخیره کنید.
از قسمت مود پراکسی‌ای که ساختید رو فعال کنید.

نکته:‌بدون این پلاگین هم میشه از تنظیمات فایرفکس پراکسی رو تغییر داد ولی این دم دسته

می‌تونید تنظیمات دیگه‌ای هم بهش اضافه کنید مثلا aparat.com رو از پراکسی رد نکنه تا سرعت بالاتری داشته باشه

کروم

اکستنشنی هست به نام SwitchyOmega که می‌تونه تنظیمات پراکسی کروم رو باهاش دست کاری کرد. نصبش کنید.
کنار آدرس بار آیکنش اضافه می‌شه از option گزینه new profile رو انتخاب کنید، یه اسم براش وارد کنید و گزینه proxy profile رو بزنید. پروتکل رو socks5 انتخاب کنید. سرور 127.0.0.1 و پورت 1080 باشه در انتها هم apply change رو بزنید.
هر وقت خواستید می‌تونید با کلیک رو آیکنش به راحتی ارتباط رو مستقیم کنید یا از پراکسی رد کنید.
تنظیمات دیگه‌ای هم داره مثلا بزنید تمام سایت‌هایی که با ir تموم میشند بدون پراکسی باشند.

ترمینال

گاهی لازمه ترافیک ترمینال هم از پراکسی رد شه، مثلا زمانی که می‌خواید کروم رو آپدیت کنید یا برای نصب جاوا و … چون این شرکت‌ها مارو تحریم کردند.
برنامه‌ای هست به نام proxychains اول هر کامندی که بزنید ترافیکش از پراکسی رد میشه، اول نصبش کنید

$ sudo apt install proxychains

بعد کامند زیر رو بزنید

$ sudo nano /etc/proxychains.conf

به آخر فایل برید و اول خط آخر یک # اضافه کنید تا کامنت شه و خط زیر به آخرش اضافه کنید

socks5  127.0.0.1 1080

خوب حالا می‌تونید با زدن proxychains اول هر دستوری ترافیکش رو از تونل رد کنید.
نکته اگر می‌خواید سیستم تون رو آپدیت کنید اول sudo -s و بعدش proxychains apt update

تبدیل socks5 به http

هنوز یه مشکلی هست بعضی از برنامه‌ها تو تنظیمات پراکسیشون socks5 ندارند. مثل اندروید استادیو و sdk! در نتیجه نمیشه sdk رو آپدیت کرد چون گوگل تحریممون کرده، بنابراین ما socks5 رو تبدیل میکنیم به http می‌کنیم که این برنامه‌ها ازش پشتیبانی می‌کنند. به کمک برنامه polipo که مثل یه شلنگ می‌مونه، از یه ور socks5 می‌گیره از یه ور دیگه http تحویل میده

sudo apt install polipo

و بعد برای کافیگش دو خط زیر رو

socksParentProxy = localhost:1080
socksProxyType = socks5

به انتهای فایل

```bash $ sudo nano /etc/polipo/config ```

اضافه کنید با کنترل + c و انتخاب y تغییرات رو ذخیره کنید و بعدش Polipo رو ری‌استارت کنید

$ sudo service polipo restart

حالا یه پراکسی دیگه هم رو سیستم داریم همون آی‌پی 127.0.0.1 ولی رو پورت 8123 و از نوع http که به راحتی می‌تونید رو همه سیستم‌ها از جمله اندروید استادیو اضافش کنید

و در آخر

اگر جایی نا واضح هست بگید با افزودن عکس یا توضیحات دقیق‌تر بهترش کنیم.
اگر چیزی کار نکرد ارور رو به دقت مطالعه کنید سعی کنید برطف کنید، نشد سرچ، نشد بچه‌های کامینیوتی از جمله خودم در فروم‌ها، irc و … کمکتون می‌کنیم.