├── .gitignore └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.gitignore.io/api/linux,windows,osx,latex,tex,microsoftoffice,sublimetext,vim,libreoffice 3 | 4 | ### Linux ### 5 | *~ 6 | 7 | # KDE directory preferences 8 | .directory 9 | 10 | # Linux trash folder which might appear on any partition or disk 11 | .Trash-* 12 | 13 | 14 | ### Windows ### 15 | # Windows image file caches 16 | Thumbs.db 17 | ehthumbs.db 18 | 19 | # Folder config file 20 | Desktop.ini 21 | 22 | # Recycle Bin used on file shares 23 | $RECYCLE.BIN/ 24 | 25 | # Windows Installer files 26 | *.cab 27 | *.msi 28 | *.msm 29 | *.msp 30 | 31 | # Windows shortcuts 32 | *.lnk 33 | 34 | 35 | ### OSX ### 36 | .DS_Store 37 | .AppleDouble 38 | .LSOverride 39 | 40 | # Icon must end with two \r 41 | Icon 42 | 43 | 44 | # Thumbnails 45 | ._* 46 | 47 | # Files that might appear in the root of a volume 48 | .DocumentRevisions-V100 49 | .fseventsd 50 | .Spotlight-V100 51 | .TemporaryItems 52 | .Trashes 53 | .VolumeIcon.icns 54 | 55 | # Directories potentially created on remote AFP share 56 | .AppleDB 57 | .AppleDesktop 58 | Network Trash Folder 59 | Temporary Items 60 | .apdisk 61 | 62 | 63 | ### LaTeX ### 64 | *.acn 65 | *.acr 66 | *.alg 67 | *.aux 68 | *.bbl 69 | *.bcf 70 | *.blg 71 | *.dvi 72 | *.fdb_latexmk 73 | *.fls 74 | *.glg 75 | *.glo 76 | *.gls 77 | *.idx 78 | *.ilg 79 | *.ind 80 | *.ist 81 | *.lof 82 | *.log 83 | *.lot 84 | *.maf 85 | *.mtc 86 | *.mtc0 87 | *.nav 88 | *.nlo 89 | *.out 90 | *.pdfsync 91 | *.ps 92 | *.run.xml 93 | *.snm 94 | *.synctex.gz 95 | *.toc 96 | *.vrb 97 | *.xdy 98 | *.tdo 99 | 100 | 101 | ### TeX ### 102 | ## Core latex/pdflatex auxiliary files: 103 | *.aux 104 | *.lof 105 | *.log 106 | *.lot 107 | *.fls 108 | *.out 109 | *.toc 110 | 111 | ## Intermediate documents: 112 | *.dvi 113 | *-converted-to.* 114 | # these rules might exclude image files for figures etc. 115 | # *.ps 116 | # *.eps 117 | # *.pdf 118 | 119 | ## Bibliography auxiliary files (bibtex/biblatex/biber): 120 | *.bbl 121 | *.bcf 122 | *.blg 123 | *-blx.aux 124 | *-blx.bib 125 | *.brf 126 | *.run.xml 127 | 128 | ## Build tool auxiliary files: 129 | *.fdb_latexmk 130 | *.synctex 131 | *.synctex.gz 132 | *.synctex.gz(busy) 133 | *.pdfsync 134 | 135 | ## Auxiliary and intermediate files from other packages: 136 | 137 | 138 | # algorithms 139 | *.alg 140 | *.loa 141 | 142 | # achemso 143 | acs-*.bib 144 | 145 | # amsthm 146 | *.thm 147 | 148 | # beamer 149 | *.nav 150 | *.snm 151 | *.vrb 152 | 153 | #(e)ledmac/(e)ledpar 154 | *.end 155 | *.[1-9] 156 | *.[1-9][0-9] 157 | *.[1-9][0-9][0-9] 158 | *.[1-9]R 159 | *.[1-9][0-9]R 160 | *.[1-9][0-9][0-9]R 161 | *.eledsec[1-9] 162 | *.eledsec[1-9]R 163 | *.eledsec[1-9][0-9] 164 | *.eledsec[1-9][0-9]R 165 | *.eledsec[1-9][0-9][0-9] 166 | *.eledsec[1-9][0-9][0-9]R 167 | 168 | # glossaries 169 | *.acn 170 | *.acr 171 | *.glg 172 | *.glo 173 | *.gls 174 | 175 | # gnuplottex 176 | *-gnuplottex-* 177 | 178 | # hyperref 179 | *.brf 180 | 181 | # knitr 182 | *-concordance.tex 183 | *.tikz 184 | *-tikzDictionary 185 | 186 | # listings 187 | *.lol 188 | 189 | # makeidx 190 | *.idx 191 | *.ilg 192 | *.ind 193 | *.ist 194 | 195 | # minitoc 196 | *.maf 197 | *.mtc 198 | *.mtc[0-9] 199 | *.mtc[1-9][0-9] 200 | 201 | # minted 202 | _minted* 203 | *.pyg 204 | 205 | # morewrites 206 | *.mw 207 | 208 | # mylatexformat 209 | *.fmt 210 | 211 | # nomencl 212 | *.nlo 213 | 214 | # sagetex 215 | *.sagetex.sage 216 | *.sagetex.py 217 | *.sagetex.scmd 218 | 219 | # sympy 220 | *.sout 221 | *.sympy 222 | sympy-plots-for-*.tex/ 223 | 224 | #pythontex 225 | *.pytxcode 226 | pythontex-files-*/ 227 | 228 | # Texpad 229 | .texpadtmp 230 | 231 | # TikZ & PGF 232 | *.dpth 233 | *.md5 234 | *.auxlock 235 | 236 | # todonotes 237 | *.tdo 238 | 239 | # xindy 240 | *.xdy 241 | 242 | # WinEdt 243 | *.bak 244 | *.sav 245 | 246 | # endfloat 247 | *.ttt 248 | *.fff 249 | 250 | ### TeX Patch ### 251 | # pdfcomment 252 | .upa 253 | .upb 254 | 255 | 256 | ### MicrosoftOffice ### 257 | *.tmp 258 | 259 | # Word temporary 260 | ~$*.doc* 261 | 262 | # Excel temporary 263 | ~$*.xls* 264 | 265 | # Excel Backup File 266 | *.xlk 267 | 268 | # PowerPoint temporary 269 | ~$*.ppt* 270 | 271 | 272 | ### SublimeText ### 273 | # cache files for sublime text 274 | *.tmlanguage.cache 275 | *.tmPreferences.cache 276 | *.stTheme.cache 277 | 278 | # workspace files are user-specific 279 | *.sublime-workspace 280 | 281 | # project files should be checked into the repository, unless a significant 282 | # proportion of contributors will probably not be using SublimeText 283 | # *.sublime-project 284 | 285 | # sftp configuration file 286 | sftp-config.json 287 | 288 | 289 | ### Vim ### 290 | [._]*.s[a-w][a-z] 291 | [._]s[a-w][a-z] 292 | *.un~ 293 | Session.vim 294 | .netrwhist 295 | *~ 296 | 297 | 298 | ### LibreOffice ### 299 | # LibreOffice locks 300 | .~lock.*# 301 | 302 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

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

2 |

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

3 |

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

4 |

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

5 |

ساخت تونل

6 |

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

7 |

اگر دقیقا طبق این نوشته‌ها پیش برید stunnel و tor به صورت سرویس بعد از هر بار روشن شدن سیستم روی سیستم شما اجرا میشند ولی بقیه رو باید دستی اجرا کنید.

8 |

پیشنهاد میکنم هر کدوم از سرویس‌هارو رو یک پورت لوکال اجرا کنید (الان همشون رو 1080 هستند) تا بتونید در صورت نیاز همزمان ازشون استفاده کنید. روش‌های دیگه‌ای هم هست که میتونه هر وقت سرعت یه سرویس بالاتر بود ترافیک رو از اون روش انتقال بده که سعی میکنم به زودی اضافش کنم.

9 |

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

10 |

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

12 | ```bash 13 | $ sudo apt install libevent-dev 14 | $ sudo apt install python-pip 15 | $ sudo apt install python-dev 16 | $ sudo apt install python-m2crypto 17 | $ sudo pip install gevent 18 | $ sudo pip install shadowsocks 19 | ``` 20 |

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

21 | ```bash 22 | $ sslocal -s “server” -k password -t 600 -p port -l 1080 -m encryption 23 | ``` 24 |

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

25 |

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

26 | ```json 27 | { 28 | "server": "sever addr", 29 | "server_port": port, 30 | "local_port": 1080, 31 | "password": "password", 32 | "timeout":600, 33 | "method":"aes-256-cfb" 34 | } 35 | ``` 36 |

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

37 | ```bash 38 | $ sslocal -c path_file 39 | ``` 40 |

شدو ساکس در پورت‌های مختلف و انکریپشن‌های متفاوت سرعت‌های مختلفی میده.

41 |

تونل با کمک ssh

42 |

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

44 | ```bash 45 | $ ssh user@server.address -D 1080 46 | ``` 47 |

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

48 |

تونل با کمک tor

49 |

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

50 | ```bash 51 | $ sudo apt install tor 52 | $ sudo apt install python-pip 53 | $ sudo apt install python-dev gcc 54 | $ sudo pip install obfsproxy 55 | ``` 56 |

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

57 | ```bash 58 | $ sudo nano /etc/tor/torrc 59 | ``` 60 |

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

62 | ```bash 63 | SocksPort 1080 64 | SocksListenAddress 127.0.0.1 65 | Bridge obfs3 194.132.209.187:39413 66 | Bridge obfs3 194.68.32.131:56006 67 | Bridge obfs3 107.191.58.23:34344 68 | UseBridges 1 69 | ClientTransportPlugin obfs2,obfs3 exec /usr/local/bin/obfsproxy --managed 70 | ``` 71 |

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

72 |

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

73 | ```bash 74 | $ sudo service tor restart 75 | ``` 76 |

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

77 | 78 |

ساخت تونل با yourfreedom

79 |

باید قبلش برید تو سایتش ثبت‌نام کنید http://your-freedom.net
از قسمت دانلود نسخه جاوا دانلود کنید
از حالت فشرده خارج کنید
با cd به محل اکسترکت شده برید و دستور زیر رو وارد کنید

80 | ```bash 81 | java -jar freedom.jar 82 | ``` 83 |

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

85 |

stunnel

86 | ```bash 87 | $ sudo apt install stunnel4 88 | ``` 89 |

اگر فایل اصلی کانفیگ وجود داره پاکش کنید

90 | ```bash 91 | $sudo rm /etc/stunnel.conf 92 | ``` 93 |

و دوباره بسازیدش

94 | ```bash 95 | $ sudo nano /etc/stunnel.conf 96 | ``` 97 |

این تنظیمات رو بزارید توش

98 | ```bash 99 | pid = /stunnel4.pid 100 | client=yes 101 | [name] 102 | accept=1080 103 | connect=serverAdress:serverPort 104 | ``` 105 |

با کنترل + x و انتخاب y ذخیرش کنید.
به مسیر زیر برید و ENABLED برابر 1 کنید.

106 | ```bash 107 | $ sudo nano /etc/default/stunnel4 108 | ``` 109 |

ذخیره کنید و stunnel رو ری‌استارت کنید

110 | ```bash 111 | $ sudo service stunnel4 restart 112 | ``` 113 |

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

114 |

openvpn

115 |

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

116 | ```bash 117 | $ sudo apt install openvpn 118 | ``` 119 |

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

120 | ```bash 121 | $ sudo openvpn filename 122 | ``` 123 |

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

124 | 125 |

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

126 |

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

128 |

فایرفاکس

129 |

https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard
foxyproxy یه پلاگین برای فایرفکس و فکر کنم کروم هست که می‌تونید خیلی راحت و دم دستی تنظیمات پراکسی رو توش تغییر بدید.
پلاگین رو نصب کنید، add new proxy رو بزنید، ip رو 127.0.0.1 و پورت 1080 بزارید، نوع پراکسی رو socks5 انتخاب کنید و ذخیره کنید.
از قسمت مود پراکسی‌ای که ساختید رو فعال کنید.

130 |

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

131 |

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

132 | 133 |

کروم

134 |

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

135 | 136 | 137 |

ترمینال

138 |

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

139 | ```bash 140 | $ sudo apt install proxychains 141 | ``` 142 |

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

143 | ```bash 144 | $ sudo nano /etc/proxychains.conf 145 | ``` 146 |

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

148 | ```bash 149 | socks5 127.0.0.1 1080 150 | ``` 151 |

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

152 | 153 | 154 |

تبدیل socks5 به http

155 |

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

156 | ```bash 157 | sudo apt install polipo 158 | ``` 159 |

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

160 | ```bash 161 | socksParentProxy = localhost:1080 162 | socksProxyType = socks5 163 | ``` 164 |

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

165 | ```bash 166 | $ sudo nano /etc/polipo/config 167 | ``` 168 |

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

169 | ```bash 170 | $ sudo service polipo restart 171 | ``` 172 |

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

173 | 174 |

و در آخر

175 |

176 |

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

177 |

http://creativecommons.org/licenses/by-sa/3.0 178 | 179 | --------------------------------------------------------------------------------