مفاهیم پایه

DNS شکن چیست و چطور کار می‌کند؟ راهنمای کامل DNS ضد تحریم

تهیه: کلودیفای (نگارش با کمک هوش مصنوعی) · انتشار: · زمان مطالعه: ۱۲ دقیقه

ATTL 3600DNSمفاهیم پایهDNS شکن چیست وچطور کار می‌کند؟ راهنمایکامل DNS ضد تحریممجلهٔ کلودیفایclodify.net/blog
پاسخ کوتاه

DNS شکن (DNS ضد تحریم) یک سرور DNS ایرانی است که برای دامنه‌های تحریمی، به‌جای آی‌پی اصلی سایت، آی‌پی یک سرور واسط خارج از ایران را برمی‌گرداند؛ در نتیجه سایت مقصد درخواست را از آی‌پی غیرایرانی می‌بیند و خطای 403 تحریم برطرف می‌شود. DNS شکن فیلترشکن نیست: سایت‌های فیلترشده را باز نمی‌کند، آی‌پی شما را برای بقیهٔ سایت‌ها تغییر نمی‌دهد و ترافیک را رمزنگاری نمی‌کند. برای کار روزمره و دانلود ابزارهای برنامه‌نویسی مفید است، ولی روی سرورِ محصول، میرور داخلی یا سرور خارج قابل‌اعتمادتر است.

DNS شکن یعنی چه؟ تحریم با فیلترینگ فرق دارد

وقتی سایتی از ایران باز نمی‌شود، دو علت کاملاً متفاوت ممکن است پشت آن باشد:

  • فیلترینگ: دسترسی را سیستم فیلترینگ داخل ایران می‌بندد. سایت مقصد شما را مسدود نکرده؛ مسیر رسیدن به آن بسته است. سازوکار این محدودیت را در فایروال ایران چیست؟ توضیح داده‌ایم.
  • تحریم: خود سایت یا سرویس خارجی (مثل برخی سرویس‌های گوگل، Docker Hub، ابزارهای توسعهٔ اندروید یا فروشگاه‌های بازی) وقتی می‌بیند درخواست از آی‌پی ایران آمده، آن را با خطای 403 Forbidden یا پیامی مثل «این سرویس در کشور شما در دسترس نیست» رد می‌کند.

«DNS شکن» اسمی است که کاربران ایرانی روی سرویس‌های DNS ضد تحریم گذاشته‌اند (این اسم از سرویس «شکن» گرفته شده که از قدیمی‌ترین نمونه‌های این سرویس است). این سرویس‌ها فقط با مشکل دوم سروکار دارند. اگر در جست‌وجوها عبارت «DNS فیلترشکن» را دیده‌اید، بدانید چنین چیزی با یک تغییر ساده DNS وجود ندارد؛ DNSهای ضد تحریم داخلی عمداً سراغ سایت‌های فیلترشده نمی‌روند.

DNS ضد تحریم دقیقاً چطور کار می‌کند؟

برای فهم سازوکار، اول باید بدانید DNS چیست: دستگاه شما پیش از باز کردن هر سایت، از یک سرور DNS می‌پرسد «آی‌پی این دامنه چیست؟». DNS ضد تحریم در همین پرسش‌وپاسخ دخالت می‌کند:

  1. پرسش: مرورگر یا برنامه می‌پرسد آی‌پی developer.android.com چیست.
  2. تصمیم: سرور DNS ضد تحریم نگاه می‌کند این دامنه در فهرست دامنه‌های تحریمی‌اش هست یا نه.
  3. پاسخ برای دامنهٔ معمولی: اگر دامنه تحریمی نباشد، همان آی‌پی واقعی را برمی‌گرداند و ترافیک شما مستقیم به سایت می‌رود.
  4. پاسخ برای دامنهٔ تحریمی: اگر دامنه در فهرست باشد، آی‌پی یک سرور واسط (پراکسی) در خارج از ایران را برمی‌گرداند. دستگاه شما به آن سرور وصل می‌شود و سرور واسط اتصال را به سایت اصلی می‌رساند. سایت مقصد آی‌پی سرور واسط را می‌بیند، نه آی‌پی ایران را.

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

چرا DNS شکن سایت فیلترشده را باز نمی‌کند؟

چون فیلترینگ روی مسیر اتصال اعمال می‌شود، نه روی پاسخ DNS سایت مقصد. سرویس‌های DNS ضد تحریم داخل ایران فعالیت قانونی دارند و دامنه‌های فیلترشده را در فهرست خود قرار نمی‌دهند. بنابراین اگر سایتی فیلتر است، تغییر DNS چیزی را عوض نمی‌کند. برای تشخیص اینکه مشکل یک سایت فیلتر، تحریم یا چیز دیگری است، راهنمای سایت باز نمی‌شود ولی اینترنت وصل است را ببینید.

مقایسه: DNS شکن، DNS عمومی و فیلترشکن

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

ویژگی DNS ضد تحریم (شکن و مشابه) DNS عمومی (مثل 8.8.8.8 و 1.1.1.1) فیلترشکن (VPN)
مشکل تحریم (خطای 403) را حل می‌کند؟ برای دامنه‌های داخل فهرستش، بله خیر معمولاً بله
سایت فیلترشده را باز می‌کند؟ خیر خیر —
آی‌پی شما را برای همهٔ سایت‌ها عوض می‌کند؟ خیر، فقط مسیر دامنه‌های تحریمی خیر بله
روی سایت‌های داخلی و بانکی اثر منفی دارد؟ خیر خیر ممکن است (به‌خاطر ایران اکسس)
روی سرعت اثر دارد؟ کم؛ فقط دامنه‌های تحریمی از سرور واسط رد می‌شوند تقریباً نه بسته به سرور، محسوس
نصب برنامه لازم دارد؟ خیر، یک تنظیم DNS کافی است خیر بله

به همین دلیل DNS ضد تحریم برای کاری مثل دانلود SDK اندروید، باز کردن کنسول‌های ابری یا به‌روزرسانی بازی گزینهٔ سبک‌تری است، چون بقیهٔ ترافیک دست‌نخورده می‌ماند.

آدرس DNSهای ضد تحریم پرکاربرد

آدرس‌های زیر را از منبع ذکرشده برداشته‌ایم و در تاریخ ۱۱ آبان ۱۴۰۵ بررسی کرده‌ایم. این سرویس‌ها مستقل از کلودیفای هستند و آدرس، پلن رایگان و پوشش آن‌ها ممکن است بدون اطلاع تغییر کند؛ پیش از استفاده سایت رسمی هر سرویس را ببینید.

سرویس DNS اصلی و دوم DoT / DoH منبع
شکن (رایگان) 178.22.122.100 و 185.51.200.2 free.shecan.ir و https://free.shecan.ir/dns-query سایت رسمی shecan.ir
۴۰۳ آنلاین 10.202.10.202 و 10.202.10.102 dns.403.online فهرست‌های عمومی DNS (سایت رسمی هنگام بررسی ما در دسترس نبود)

چند نکته که در فهرست‌های کپی‌شده معمولاً گفته نمی‌شود:

  • پلن رایگان محدودیت دارد. طبق سایت شکن، نسخهٔ رایگان حدود ۸۰٪ سایت‌های تحریمی را پوشش می‌دهد، سرعت آن محدود است و هنگام بررسی ما اطلاعیه‌ای درباره اختلال در سرویس رایگان روی سایت بود. سرویس پولی آن آدرس جداگانه دارد و به ثبت‌نام نیاز دارد.
  • آدرس‌های 10.x همه‌جا کار نمی‌کنند. بازهٔ 10.0.0.0/8 آدرس خصوصی است و فقط روی شبکهٔ اپراتورهایی که آن را مسیریابی می‌کنند در دسترس است. در تست ما از یک سرور دیتاسنتری در ایران، این آدرس‌ها اصلاً پاسخ ندادند؛ روی اینترنت خانگی یا همراه ممکن است نتیجه فرق کند.
  • نتیجه به مبدأ بستگی دارد. در همان تست، پاسخ آدرس رایگان شکن برای چند دامنهٔ تحریمی همان آی‌پی اصلی سایت بود، یعنی دست‌کم از آن شبکه سرور واسطی در کار نبود. پس همیشه با روش بخش «تست» در ادامه، نتیجه را روی اتصال خودتان بسنجید.

تنظیم DNS در ویندوز، اندروید، آیفون و مودم

قبل از هر تغییر، DNS فعلی را یادداشت کنید تا اگر اینترنت مختل شد بتوانید برگردید.

ویندوز ۱۰ و ۱۱

از مسیر Settings › Network & Internet › Wi-Fi یا Ethernet › Hardware properties › DNS server assignment › Edit، حالت را روی Manual بگذارید، IPv4 را روشن کنید و دو آدرس را وارد کنید. روش سریع‌تر با PowerShell (به‌عنوان Administrator):

# نام کارت شبکه را ببینید
Get-NetAdapter
# تنظیم DNS (به‌جای Wi-Fi نام کارت شبکهٔ خودتان را بنویسید)
Set-DnsClientServerAddress -InterfaceAlias "Wi-Fi" -ServerAddresses ("178.22.122.100","185.51.200.2")
ipconfig /flushdns
# بازگشت به DNS خودکار مودم
Set-DnsClientServerAddress -InterfaceAlias "Wi-Fi" -ResetServerAddresses

اندروید

در اندروید ۹ و بالاتر، Settings › Network & Internet › Private DNS را باز کنید و در بخش «Private DNS provider hostname» نام DoT سرویس (مثلاً free.shecan.ir) را بنویسید. این گزینه فقط نام میزبان می‌پذیرد، نه آدرس آی‌پی. برای برگشتن، گزینه را روی Automatic بگذارید.

آیفون

از Settings › Wi-Fi روی شبکهٔ فعلی بزنید، Configure DNS را روی Manual بگذارید، آدرس‌های قبلی را حذف و دو آدرس جدید را اضافه کنید. این تنظیم فقط برای همان وای‌فای اعمال می‌شود و روی اینترنت همراه اثری ندارد.

مودم یا روتر

اگر DNS را در بخش LAN یا DHCP مودم وارد کنید، همهٔ دستگاه‌های خانه (از جمله کنسول بازی و تلویزیون هوشمند) از آن استفاده می‌کنند. این راه برای دستگاه‌هایی که تنظیم DNS دستی ندارند ساده‌ترین روش است، ولی اگر سرویس DNS قطع شود، اینترنت همهٔ دستگاه‌ها مختل می‌شود. در کنسول‌هایی مثل PS5 هم می‌توانید در تنظیمات اتصال اینترنت، DNS را به‌صورت دستی وارد کنید.

مرورگر را فراموش نکنید

کروم، اج و فایرفاکس گزینه‌ای به نام Secure DNS یا DNS over HTTPS دارند. اگر این گزینه روی یک سرویس خارجی تنظیم شده باشد، مرورگر DNS سیستم را نادیده می‌گیرد و DNS ضد تحریم برای آن مرورگر عملاً بی‌اثر می‌شود. شایع‌ترین علت اینکه «DNS را عوض کردم ولی سایت هنوز 403 می‌دهد» همین است. در تنظیمات Privacy and security مرورگر، Secure DNS را خاموش یا روی همان سرویس ضد تحریم بگذارید.

DNS ضد تحریم روی سرور لینوکس: کی آری، کی نه

روی سرور، DNS شکن معمولاً برای رفع خطای 403 در docker pull، apt update یا نصب پکیج به کار می‌رود. پیش از تغییر DNS کل سرور، این ترتیب را پیشنهاد می‌کنیم:

  1. اول میرور داخلی. برای apt و داکر، میرورهای داخلی پایدارترند و به سرویس شخص ثالث وابسته نیستند؛ گام‌ها در رفع خطای 403 در docker pull و apt update و میرور npm و pip روی سرور ایران آمده است.
  2. اگر DNS ضد تحریم لازم شد، موقتی و قابل برگشت. در سیستم‌هایی که از systemd-resolved استفاده می‌کنند (مثل اوبونتوی جدید)، با resolvectl می‌توانید DNS کارت شبکه را فقط برای همین نشست عوض کنید؛ این تغییر در فایل‌های تنظیمات نوشته نمی‌شود و با revert یا ریبوت برمی‌گردد:
# نام کارت شبکهٔ اصلی (مقدار جلوی dev)
ip route get 1.1.1.1
# تنظیم موقت DNS روی همان کارت (به‌جای eth0 نام کارت خودتان)
sudo resolvectl dns eth0 178.22.122.100 185.51.200.2
resolvectl status eth0
resolvectl query registry-1.docker.io
# پس از پایان کار، برگشت به تنظیمات قبلی
sudo resolvectl revert eth0

در این مدت همهٔ پرسش‌های DNS سرور از همین سرویس عبور می‌کنند؛ پس کار را انجام دهید و بلافاصله برگردانید. اگر در resolved.conf یک DNS سراسری (Global) هم تنظیم شده باشد، systemd-resolved پرسش‌ها را به آن هم می‌فرستد و نتیجه ممکن است یکدست نباشد؛ خروجی resolvectl status را بررسی کنید.

  1. برای سرویس محصول، به DNS شخص ثالث تکیه نکنید. اگر برنامهٔ شما دائماً به API یا مخزن‌های تحریمی نیاز دارد، قطع شدن یک سرویس رایگان می‌تواند کل استقرار را متوقف کند. در این حالت، بخش‌هایی که به سرویس خارجی وابسته‌اند را روی سرور مجازی خارج اجرا کنید و بخش مخاطب‌محور را روی سرور مجازی ایران نگه دارید. اگر بعد از تغییر DNS خطای Temporary failure in name resolution گرفتید، راهنمای رفع خطای DNS در لینوکس را ببینید.

چطور بفهمیم DNS شکن واقعاً کار می‌کند؟

ساده‌ترین تست، مقایسهٔ پاسخ DNS ضد تحریم با یک DNS معمولی برای یک دامنهٔ تحریمی است:

# لینوکس و مک (dig)
dig +short developer.android.com @178.22.122.100
dig +short developer.android.com @1.1.1.1
# ویندوز
nslookup developer.android.com 178.22.122.100
  • اگر دو پاسخ متفاوت بود و آی‌پی پاسخ DNS ضد تحریم به سرور واسط تعلق داشت، سرویس روی این دامنه فعال است.
  • اگر پاسخ‌ها یکسان یا از یک شبکه بود، یا دامنه در فهرست سرویس نیست، یا سرویس از شبکهٔ شما فعال نیست.
  • اگر پاسخی نیامد (timeout)، سرور DNS از شبکهٔ شما در دسترس نیست؛ این را با آدرس‌های 10.x زیاد می‌بینید.

بعد از تأیید پاسخ DNS، خود سایت را با curl -sI https://developer.android.com آزمایش کنید. اگر کد 200 یا 301 گرفتید، مشکل تحریم برطرف شده است؛ اگر هنوز 403 می‌گیرید، بخش عیب‌یابی را ببینید.

DNS over HTTPS و DNS over TLS چه نقشی دارند؟

پرسش‌های DNS معمولی رمزنگاری نمی‌شوند و هر کسی در مسیر می‌تواند آن‌ها را ببیند یا دستکاری کند. DoT (روی پورت 853) و DoH (روی HTTPS) این ارتباط را رمزنگاری می‌کنند. برخی سرویس‌های ضد تحریم نسخهٔ DoT/DoH هم دارند (مثل جدول بالا)؛ مزیتش این است که اپراتور یا مودم نمی‌تواند پاسخ را عوض کند.

دو نکتهٔ عملی:

  • DoH و DoT فقط مسیر پرسش DNS را رمزنگاری می‌کنند؛ آی‌پی شما، فیلترینگ یا تحریم را تغییر نمی‌دهند.
  • سرورهای DoH خارجی ممکن است از ایران ناپایدار یا در دسترس نباشند. اگر بعد از روشن کردن Secure DNS مرورگر، سایت‌ها دیر باز شدند، علت احتمالاً همین است.

امنیت و حریم خصوصی: پیش از استفاده بدانید

هر سرور DNS که انتخاب می‌کنید، می‌بیند شما دنبال چه دامنه‌هایی هستید. در DNS ضد تحریم، ترافیک دامنه‌های تحریمی هم از سرور واسط آن سرویس عبور می‌کند. بنابراین:

  • از سرویس‌های شناخته‌شده و دارای هویت مشخص استفاده کنید، نه آدرس‌هایی که در کانال‌ها بدون منبع دست‌به‌دست می‌شوند.
  • هرگز گواهی ریشه (Root Certificate) یا پروفایل ناشناس نصب نکنید. DNS ضد تحریمِ درست به چنین چیزی نیاز ندارد. اگر سرویسی این را خواست، یعنی می‌تواند ترافیک رمزنگاری‌شدهٔ شما را بخواند.
  • خطای گواهی جدی است. اگر بعد از تغییر DNS، مرورگر برای سایتی هشدار امنیتی داد، از آن رد نشوید و DNS را برگردانید.
  • اطلاعات حساس را با احتیاط وارد کنید. HTTPS از محتوا محافظت می‌کند، ولی بهتر است ورود به حساب‌های مهم را از اتصالی انجام دهید که به آن اطمینان دارید.
  • وابستگی را کم کنید. DNS ضد تحریم را فقط روی دستگاه‌هایی که لازم دارند تنظیم کنید و روی سرورها فقط موقت و با امکان برگشت (روش بالا) از آن استفاده کنید.

عیب‌یابی رایج

مشکل علت محتمل راه‌حل
DNS را عوض کردم ولی سایت هنوز 403 می‌دهد Secure DNS مرورگر، کش DNS یا دامنهٔ خارج از فهرست Secure DNS را خاموش کنید، ipconfig /flushdns بزنید، با nslookup پاسخ را چک کنید
فقط بعضی بخش‌های سایت باز نمی‌شود سایت از چند دامنه استفاده می‌کند و همه در فهرست نیستند از سرویس پشتیبان یا نسخهٔ پولی سرویس DNS استفاده کنید یا دامنه را به پشتیبانی آن گزارش دهید
بعد از تغییر DNS هیچ سایتی باز نمی‌شود سرور DNS از شبکهٔ شما در دسترس نیست DNS را به حالت خودکار برگردانید و آدرس دیگری امتحان کنید
دستگاه IPv6 دارد و تغییر بی‌اثر است DNS نسخهٔ IPv6 هنوز از مودم گرفته می‌شود DNS بخش IPv6 را هم دستی تنظیم یا موقتاً خاموش کنید
باز شدن همه‌چیز کند شده DNS انتخابی کند یا پرترافیک است DNS دوم سرویس را اول قرار دهید یا به DNS اپراتور برگردید
سایت داخلی و خارجی هر دو باز نمی‌شوند احتمالاً اختلال کلی اینترنت است، نه DNS وضعیت را در دیده‌بان شبکهٔ کلودیفای و راهنمای اینترنت ایران الان اختلال دارد؟ بررسی کنید

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

اگر صاحب سایت یا سرویس آنلاین هستید

DNS ضد تحریم ابزار کاربر نهایی است و معماری سرویس شما نباید به آن وابسته باشد. چند پیشنهاد برای اینکه کاربران و تیمتان کمتر درگیر این مشکل شوند:

  • منابع سایت را خارجی‌محور نکنید. فونت، اسکریپت و کتابخانه‌هایی که از CDNهای تحریمی بارگذاری می‌شوند، برای کاربران ایرانی کند یا خراب می‌شوند. آن‌ها را روی سرور خودتان میزبانی کنید و برای تحویل سریع از CDN کلودیفای استفاده کنید.
  • کارهای وابسته به سرویس‌های خارجی را جدا کنید. build، CI و تماس با APIهای تحریمی را روی سرور خارج انجام دهید و خروجی را به سرور ایران منتقل کنید.
  • سایت را جایی میزبانی کنید که مخاطب شما به آن نزدیک است. برای انتخاب بین سرور ایران و خارج و مهاجرت از هاست اشتراکی، صفحهٔ میزبانی سایت روی سرور مجازی را ببینید.
  • وضعیت شبکه را زیر نظر داشته باشید. پیش از اینکه شکایت کاربر را به DNS یا تحریم نسبت دهید، در دیده‌بان شبکه ببینید اختلال کلی در جریان است یا نه.

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

آیا DNS شکن همان فیلترشکن است؟

خیر. DNS شکن فقط محدودیت‌هایی را که سایت‌های خارجی به‌خاطر تحریم برای آی‌پی ایران گذاشته‌اند برطرف می‌کند. سایت‌های فیلترشده را باز نمی‌کند، آی‌پی شما را برای سایر سایت‌ها تغییر نمی‌دهد و ترافیک را رمزنگاری نمی‌کند.

استفاده از DNS ضد تحریم امن است؟

اگر از سرویس شناخته‌شده استفاده کنید و هیچ گواهی یا پروفایل ناشناسی نصب نکنید، ارتباط HTTPS شما همچنان رمزنگاری‌شده می‌ماند. با این حال، سرویس DNS می‌بیند به چه دامنه‌هایی سر می‌زنید؛ پس آن را فقط روی دستگاه‌های لازم فعال کنید.

چرا با وجود DNS شکن هنوز خطای 403 می‌گیرم؟

رایج‌ترین علت‌ها: روشن بودن Secure DNS در مرورگر، کش DNS قدیمی، نبودن دامنه در فهرست سرویس یا محدود بودن پلن رایگان. اگر سرویس حساب کاربری را بر اساس کشور محدود کرده باشد، تغییر DNS کمکی نمی‌کند.

DNS شکن سرعت اینترنت یا پینگ بازی را کم می‌کند؟

روی سایت‌های غیرتحریمی تقریباً اثری ندارد، چون ترافیک آن‌ها مستقیم می‌رود. برای دامنه‌های تحریمی، ترافیک از سرور واسط عبور می‌کند و سرعت و پینگ به ظرفیت و مسیر همان سرور بستگی دارد.

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

برای apt، داکر، pip و npm اول میرور داخلی را امتحان کنید، چون پایدارتر است. اگر DNS ضد تحریم لازم شد، آن را با resolvectl به‌صورت موقت تنظیم کنید، کار را انجام دهید و بلافاصله برگردانید؛ سرویس محصول را به آن وابسته نکنید.

آماده‌اید؟ سرورتان را بسازید.

از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی

سرورتان را همین حالا بسازید.

ساعتی بپردازید. هر وقت خواستید حذف کنید.