MTProxyHub
تمام نوشته‌ها
8 دقیقه

IPv6 برای MTProxy: چرا مقیاس فضای آدرس در برابر مسدودسازی محافظت می‌کند

چرا باید از IPv6 در سرور MTProxy پشتیبانی کرد، dual-stack چگونه کار می‌کند، چرا مسدودسازی انبوه IPv6 غیرممکن است و چگونه داکر را به درستی برای IPv6 پیکربندی کنیم.

IPv6 برای MTProxy: دور زدن مسدودیت‌ها از طریق مقیاس فضای آدرس

هنگامی که مقامات MTProxy را مسدود می‌کنند، اغلب آدرس‌های IP خاص سرورها را هدف قرار می‌دهند. این رویکرد در برابر IPv4 کار می‌کند اما در برابر IPv6 محدودیت اساسی دارد. بیایید بررسی کنیم که چرا — و چگونه از آن استفاده کنیم.

مقایسه IPv4 با IPv6: تفاوت اساسی در چیست

اینترنت روی دو نسل از آدرس‌دهی کار می‌کند. IPv4 و IPv6 با هم وجود دارند، اما خواص متفاوتی دارند که برای دور زدن سانسور مهم هستند.

واقعیت کلیدی: یک بلوک استاندارد IPv6 که ISP به یک سرور منفرد اختصاص می‌دهد یک پیشوند /64 است. این شامل 2^64 = 18,446,744,073,709,551,616 آدرس می‌شود. حتی اگر یک نهاد سانسور روزانه 1,000,000 آدرس را مسدود کند، بیش از 50,000 سال طول می‌کشد تا کل بلوک /64 را خسته کند.

توضیح مهم: IPv6 برای DPI "نامرئی" نیست

یک تصور غلط رایج: "سیستم‌های DPI نمی‌توانند IPv6 را تجزیه و تحلیل کنند." این درست نیست.

مجتمع‌های مدرن DPI (از جمله TSPU در روسیه و معادل‌های آن در ایران) به طور کامل ترافیک IPv6 را در سطح محتوا تجزیه و تحلیل می‌کنند. صرف نظر از نسخه IP، پنهان‌سازی Fake TLS ضروری است.

مزیت IPv6 نه در "نامرئی بودن"، بلکه در غیرقابل شمارش بودن آدرس‌هاست:

روش مسدودسازیدر برابر IPv4در برابر IPv6
مسدودسازی IPمؤثر (تعداد محدود آدرس)بی‌اثر (2^64 آدرس در یک /64)
DPI محتواکار می‌کنددقیقاً به همان شکل کار می‌کند
Fake TLS برای عبور از DPIنیاز استنیاز است

حالت dual-stack در زمینه MTProxy چگونه کار می‌کند

Dual-stack به این معنی است که سرور شما همزمان در هر دو آدرس IPv4 و IPv6 گوش می‌دهد. کلاینت (تلگرام) به طور خودکار پروتکل را انتخاب می‌کند.

اگر آدرس IPv4 پروکسی شما مسدود شده باشد، اما آدرس IPv6 مسدود نشده باشد (که در مراحل اولیه فیلترینگ معمول است)، کلاینت‌های دارای IPv6 به کار خود ادامه خواهند داد.

چگونه پشتیبانی IPv6 را روی سرور بررسی کنیم

# بررسی وجود آدرس IPv6
ip -6 addr show

# بررسی اتصال اینترنت از طریق IPv6
ping6 google.com

# پیدا کردن آدرس IPv6 خود
curl -6 ifconfig.me

اگر سرور یک آدرس IPv6 داشته باشد (با 2 یا fc/fd شروع شود)، برای تنظیمات dual-stack آماده است.

پیکربندی داکر برای IPv6

به طور پیش‌فرض، داکر از IPv6 برای کانتینرها پشتیبانی نمی‌کند. شما باید آن را به صراحت فعال کنید.

مرحله 1: فعال کردن IPv6 در daemon داکر

فایل /etc/docker/daemon.json را ویرایش کنید:

{
  "ipv6": true,
  "fixed-cidr-v6": "fd00::/80",
  "ip6tables": true,
  "experimental": true
}

داکر را ری‌استارت کنید:

systemctl restart docker

مرحله 2: اجرای MTProxy با اتصال صریح آدرس

docker run -d \
  --name mtproxy \
  --restart always \
  -p 0.0.0.0:443:443 \
  -p [::]:443:443 \
  -e SECRET="YOUR_SECRET_EE..." \
  -e WORKERS=1 \
  -v proxy-config:/data \
  telegrammessenger/proxy:latest

پرچم -p [::]:443:443 پورت 443 را به هر آدرس IPv6 متصل می‌کند (معادل 0.0.0.0 برای IPv4).

مرحله 3: تأیید گوش دادن dual-stack

docker exec mtproxy ss -tlnp | grep 443

شما باید هم 0.0.0.0:443 و هم [::]:443 را ببینید.

تنظیم فایروال برای IPv6

# اوبونتو/دبیان با ufw
sudo ufw allow 443/tcp
sudo ufw allow 443/tcp comment 'MTProxy'

# اطمینان حاصل کنید IPv6 در ufw فعال است
grep IPV6 /etc/default/ufw
# باید باشد: IPV6=yes

برای استفاده مستقیم از iptables/ip6tables:

ip6tables -A INPUT -p tcp --dport 443 -j ACCEPT
ip6tables-save > /etc/iptables/rules.v6

آدرس IPv6 در لینک اتصال

یک لینک اتصال با آدرس IPv6 به این شکل است:

tg://proxy?server=2a01:4f8:c2c:1234::1&port=443&secret=ee...

کلاینت تلگرام آدرس‌های IPv6 را در فیلد server به درستی پردازش می‌کند. در صورت لزوم، می‌توانید هر دو گزینه را ارائه دهید:

# لینک IPv4
tg://proxy?server=1.2.3.4&port=443&secret=ee...

# لینک IPv6
tg://proxy?server=2a01:4f8:c2c:1234::1&port=443&secret=ee...

کاربران می‌توانند هر کدام را که در شیکه‌شان کار می‌کند انتخاب کنند.

ارزش عملی در سناریوهای واقعی مسدودسازی

تجربه کاربران در ایران و روسیه الگو مشخصی را نشان می‌دهد: هنگامی که موجی از مسدودیت‌ها آغاز می‌شود، ارائه‌دهندگان اینترنت ابتدا آدرس‌های IPv4 سرورها را مسدود می‌کنند. آدرس‌های IPv6 بعداً مسدود می‌شوند — گاهی اوقات با تاخیری چند روزه یا چند هفته‌ای.

این یک تضمین نیست، اما راه‌اندازی dual-stack مقاومت پروکسی را در دوره‌های مسدودسازی فعال افزایش می‌دهد.

برای اطلاعات بیشتر در مورد پیکربندی IPv6 در داکر، مستندات رسمی داکر را بخوانید. برای مشخصات IPv6، به RFC 4291 (IETF) مراجعه کنید. درباره زیرساخت تلگرام — در core.telegram.org/mtproto.

سوالات متداول

آیا DPI واقعاً IPv6 را عبور می‌دهد؟ خیر، این یک افسانه است. سیستم‌های مدرن DPI هم IPv6 را تحلیل می‌کنند. مزیت IPv6 در مقیاس فضای آدرس است، نه "نامرئی بودن".

آیا IPv6 اجباری است؟ خیر. MTProxy روی IPv4 کار می‌کند. IPv6 یک ابزار انعطاف‌پذیری اضافی است.

چگونه IPv6 را روی سرور بررسی کنیم؟ دستور ip -6 addr show — اگر آدرسی مشاهده کردید، IPv6 در دسترس است.

آیا باید پورت‌های IPv6 را به طور جداگانه در فایروال باز کنم؟ بله. ufw allow 443/tcp به طور پیش‌فرض تنها در صورتی که IPV6=yes در /etc/default/ufw تنظیم شده باشد هر دو پروتکل را پوشش می‌دهد.

dual-stack چیست؟ گوش دادن همزمان روی هر دو IPv4 و IPv6. کلاینت پروتکل را به صورت خودکار انتخاب می‌کند.


کار با IPv6 را یاد گرفتید؟ بخوانید چگونه عملکرد سرور خود را بهینه‌سازی کنید و DPI که با آن روبرو می‌شوید چگونه کار می‌کند.

لیست پروکسی‌های کارآمد — بدون نیاز به تنظیمات، هر ۶۰ ثانیه به‌روزرسانی می‌شود.