کمک به راه اندازی SNOWFLAKE برای کمک به دور زدن فیلترینگ
برای زن, زندگی و آزادیتور / Tor یک سیستمی است که به بقیه افراد سراسر جهان کمک میکنه به سایت ها و برنامه های سانسور شده / فیلتر شده دسترسی پیدا کنند.
توی این مطلب کوتاه راه های مختلف اینکه چطوری میشه به کمک SNOWFLAKE ظرفیت این شبکه رو زیاد کرد رو توضیح میدیم. در واقع شما راه هایی رو نشون میدیم که کار بچه های داخل ایران رو برای دور زدن فیلترینگ آسون میکنه.
این راه حل مناسب افرادی هست که خارج از ایران زندگی میکنند.
SNOWFLAKE چیست؟
برای اتصال از طریق Snowflake میتونید با استفاده از Tor Browser در اندروید و ویندوز (و لینوکس) , Onion Browser در IOS و Orbot در اندروید استفاده کنید.
قبل از اینکه درباره راه حل ها صحبت کنم, اگر دانش فنی اولیه دارید راه اندازی به صورت docker-compose و باینتری راه بهتر و پایدار تری هست. البته بهترین راه حل کامپایل کردن و نسخه باینری هست که کمتر سربار رو نسبت به بقیه موارد دارد.
نحوه راه اندازی Snowflake:
راه حل های ساده:
نصب افزونه مرورگر
ساده ترین راه کمک به این سیستم این هست که با استفاده از مرورگر خودتون این کار رو کنید.
این راه حل مناسب افرادی هست که خارج از ایران زندگی میکنند.
پیش نیاز ها:
- داشتن مرورگر کروم یا firfox در دکستاپ (ویندوز / لینوکس / mac os)
- دسترسی به اینترنتی آزاد
نصب افزونه برای مرورگر فایرفاکس
از طریق لینک افزونه وارد فروشگاه افزونه فایر فاکس شوید.
سپس روی دکمه Add to Firfox بزنید
سپس مرورگر از شما سوالی میپرسد که باید روی دکمه Add بزنید.
نصب افزونه برای مرورگر گوگل کروم
از طریق لینک افزونه وارد فروشگاه افزونه گوگل کروم شوید.
سپس روی دکمه Add to Chrome بزنید
سپس دکمه Add extension را بزنید.
به همین سادگی افزونه فعال شد و به شما تبریک میگم.
قرار دادن کد در سایت خودتان و همکاری کاربری
در صورتی که یک سایت دارید میتونید با قرار دادن کد زیر توی بخشی از سایت مانند نمونه به این فرایند کمک کنید.
<iframe src="https://snowflake.torproject.org/embed.html" width="320" height="240" frameborder="0" scrolling="no"></iframe>
نمونه توی خروجی:
راه حل های پیچیده تر و بهتر:
راه حل های پیچیده تر نیازمند دانش اولیه در زمینه سیستم عاملی که استفاده میکنید و برنامه نویسی هست بهتر است از راه حل های ساده شروع کنید.
نصب از طریق docker compose - همه موارد مورد نیاز یک جا
برای نصب داکر با توجه به سیستم عامل روش های مختلفی وجود دارد, لطفا این دو لینک رو مطالعه کنید و در صورتی که از سیستم عامل لینوکس توزیع ubuntu - استفاده میکنید یک راه حل سریع در ادامه برای شما قرار گرفته.
https://docs.docker.com/engine/install/
https://docs.docker.com/compose/install/
برای نصب سریع در سیستم عامل لینوکس توزیع ubuntu
ابتدا برای ساخت فایل ابتدا با استفاده از هر ویرایش گری که میدونید توی ترمینال یک فایل بسازید به هر اسمی مثلا docker و محتویات زیر رو عینا توش کپی کنید:
#!/bin/sh # Uninstall old versions sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin sudo service docker start sudo docker run hello-world # Configure Docker to start on boot # sudo systemctl enable docker.service # sudo systemctl enable containerd.service wget https://gitlab.torproject.org/tpo/anti-censorship/docker-snowflake-proxy/raw/main/docker-compose.yml docker-compose up -d snowflake-proxy
اگر میخواهید که بالا اومدن اتوماتیک داکر رو فعال کنید دو خط زیر رو ازش # رو حذف کنید
# sudo systemctl enable docker.service # sudo systemctl enable containerd.service
(توجه کنید که بقیه خط ها رو باید توی ترمینال تایپ کنید)
حالا فایلی که ساختید رو اجرایی کنید با دستور :
sudo chmod +x docker
حالا فایل رو با استفاده از
./docker
اجرا کنید که همه مراحل را از نصب تا راه اندازی را انجام دهد.
برای دفعات بعدی فقط کافیست بزنید
docker-compose up -d snowflake-proxy
رفع مشکل network io zero در نسخه داکر
در صورتی که با استفاده docker compose سرویس snowflake رو بالا اوردید احتمالا متوجه شدید ممکن هست network شما رو صفر نشون بده وقتی که بررسی میکنید و برداشت کنید که هیچ داده ای رد و بدل نمیشه. در واقع اگر از اتصال اینترنت خودتون مطمئن هستید به این معناست که به درستی کار میکنه ولی به دلیل اینکه network_mode: host به شما نشون نمیده. میتونید با استفاده از ابزار های چک کردن پهنای باند سیستم بعد از حدود یک ساعت بررسی کنید تا مطمئن بشید. (اکثر روتر ها این قابلیت رو دارند)
یک راه حل این هست که یک فایل جداگانه docker compose بسازید در پوشه ای با محتویات زیر که لاگش رو بتونید ذخیره کنید.
version: "3.8" services: snowflake-proxy: network_mode: host image: thetorproject/snowflake-proxy:latest container_name: snowflake-proxy restart: unless-stopped command: [ "-log" , "/tmp/snowflake_log" ] volumes: - /tmp:/tmp
نصب و کامپایل از طریق source code
یک راه دیگر این است که مستقیم کد منبع را کامپایل کنیم و اجرا این راه حل یکم سختر از قبلی هست. و نیاز دارد شما درکی از برنامه نویسی و بلید کردن داشته باشید و بتونید خروجی بلید شده را اجرا کنید.
پیش نیاز ها:
- git : https://git-scm.com/
- go lang: https://go.dev/
در صورتی که از دبیان / اوبونتو استفاده میکنید (توزیع های لینوکس) با استفاده از
sudo apt install golang git
میتونید پیشنیاز ها را نصب کنید.
سپس مراحلی که پیش رو داریم
۱- کلون کردن کد (کپی همه کد از مخزن گیت هاب به دستگاهمون)
git clone https://git.torproject.org/pluggable-transports/snowflake.git
۲- وارد شدن به پوشه مربوط
cd snowflake/proxy
۳- بلید کردن کد
go build
حالا خروجی که به شما داده میشود رو اجرا کنید.
لینک های وابسته
https://snowflake.torproject.org/
https://community.torproject.org/relay/setup/snowflake/standalone/