Skip to content

Latest commit

 

History

History
executable file
·
318 lines (244 loc) · 17.6 KB

README.fa.md

File metadata and controls

executable file
·
318 lines (244 loc) · 17.6 KB

دامنه‌های میزبانی شده در ایران

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

🚨 قبل از push کردن به GitHub تغییراتتان مطمئن شوید که ایمیل شخصیتان قابل مشاهده نیست. اطلاعات بیشتر

بسیاری از سرویس‌ها و دامنه‌های خارج از ایران سانسور و مسدود شده‌اند و باید برای دسترسی به آن‌ها از VPN و Proxy هایی با امنیت بالا استفاده کنیم، جدای از این مسئله دسترسی به بعضی سرویس‌های ایرانی از طریق IP خارجی مسدود شده است. حال برای رد کردن این سرویس ها لیستی از دامنه‌های داخلی را جمع کرده‌ایم تا با اضافه کردن آن‌ به کلاینت‌های مورد استفاده، دیگر نیاز به قطع کردن VPN برای دسترسی به سرویس‌های داخلی نباشد.

سلب مسئولیت

این مخزن فهرستی گردآوری شده از منابع عمومی و در دسترس مردم در مورد وب سایت های میزبانی شده در ایران است. این فقط برای مقاصد اطلاعات عمومی در نظر گرفته شده است و برای ارائه راهنمایی در مورد نحوه اتصال یا ایجاد یا مدیریت یک شبکه خصوصی مجازی (VPN) در نظر گرفته نشده است. محتوای این مخزن همانطور که هست ارائه شده است و ما هیچ گونه اظهارنظر یا ضمانتی، صریح یا ضمنی، در مورد کامل بودن، دقت، قابلیت اطمینان، مناسب بودن یا در دسترس بودن اطلاعات موجود در این مخزن نداریم. هر گونه اتکای شما به چنین اطلاعاتی کاملاً به عهده شماست. ما مسئولیتی در قبال خطاها یا حذفیات در اطلاعات یا هر گونه ضرر، خسارت یا سایر تعهدات ناشی از استفاده از آن نخواهیم داشت. لطفاً قبل از استفاده از هر گونه اطلاعات این مخزن احتیاط کنید و با یک متخصص واجد شرایط مشورت کنید.

روش استفاده

بسته به اینکه از کدام کلاینت استفاده می‌کنید، ممکن است متفاوت باشد. لیست دامنه‌ها و فایل‌های مربوط را می‌توانید از این صفحه دریافت کنید.
برای سیستم routing بهتر در کلاینت‌های v2ray شما می‌توانید پارامتر Domain Resolution Strategy را به IPIfNonMatch تغییر دهید. اطلاعات بیشتر

شما می‌توانید فایل qv2ray_schema.json را در این صفحه پیدا کنید.

  1. فایل را دانلود کنید.
  2. در بخش preferences بر روی Advanced Route Settings کلیک کنید.
  3. در پایین صفحه، بر روی import schema... کلیک کنید.
  4. فایل qv2ray_schema.json دانلود شده را انتخاب کنید.
  5. در کادر باز شده بر روی yes کلیک کنید.
  6. بر روی OK کلیک کنید.

.dat file

این فایل در تمامی کلاینت‌های v2ray v2fly و xray قابل استفاده است.

  1. فایل iran.dat را از این صفحه دانلود کنید.
  2. فایل را در کلاینت خود کپی و یا وارد کنید.
    به عنوان مثال:
    • v2ray macOS: /usr/local/share/v2ray
  3. قوانین مناسب را اضافه کنید:
    • ext:iran.dat:ir در بخش bypass
    • ext:iran.dat:other در بخش bypass
    • ext:iran.dat:ads در بخش block
  4. اتصال خود را قطع و وصل کنید.
  1. فایل iran.dat را از این صفحه دانلود کنید.
  2. فایل را از طریق Route -> Three dots -> Manage Route Assets به کلاینت اضافه کنید.
  3. از بخش Route -> Create Route قوانین زیر را اضافه کنید:
  • Block Ads:
    • domain: geosite:category-ads-all
    • outbound: Block
  • Block Iran Ads:
    • domain: ext:iran.dat:ads
    • outbound: Block
  • Bypass Iran .ir Domains:
    • domain: regexp:.+\.ir$
    • outbound: Bypass
  • Bypass Iran non .ir Domains:
    • domain: ext:iran.dat:other
    • outbound: Bypass
  • Bypass Iran geoip:
    • ip: geoip:ir
    • outbound: Bypass

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

  1. اتصال خود را قطع و وصل کنید.
  1. فایل shadowrocket.conf را دانلود کنید.
  2. در اپلیکیشن بر روی Import From Cloud کلیک کرده و فایل مربوط را اضافه کنید.
  3. در نهایت، بر روی shadowrocket.confکلیک کرده و Use Config را انتخاب کنید.
  1. مطمئن شوید که حداقل از ورژن 2023.04.13 Clash Premium Core یا ورژن 1.14.1 Clash.Meta Core استفاده می‌کنید. در غیر این صورت از فرمت نسخه‌ی قدیمی که در مرحله‌ی سوم توضیح داده شده‌است استفاده کنید.
  2. صفحه‌ی پروفایل/تنظیمات فعلی خود را که استفاده می‌کنید باز کنید.
  3. این خطوط را به فایل اضافه کنید:
rule-providers:
  iran:
    type: http
    format: text
    behavior: domain
    url: "https://github.com/bootmortis/iran-hosted-domains/releases/latest/download/clash_rules.txt"
    path: ./ruleset/iran.txt
    interval: 432000

⚠️ نکته: اگر از نسخه‌های قدیمی تر Clash Core استفاده می‌کنید بجای خطوط بالا این خطوط را به فایل اضافه کنید:

rule-providers:
  iran:
    type: http
    behavior: domain
    url: "https://github.com/bootmortis/iran-hosted-domains/releases/latest/download/clash_rules.yaml"
    path: ./ruleset/iran.yaml
    interval: 432000
  1. سپس خط‌های زیر را به بخش قوانین Rules اضافه کنید:
  - RULE-SET,iran,DIRECT
  - GEOIP,IR,DIRECT
  1. فایل را ذخیره کنید.
  2. بستگی به نوع کلاینت، ممکن است لازم باشد نرم‌افزار را روی حالت Rule‍ تنظیم کنید.
  1. صفحه‌ی پروفایل/تنظیمات فعلی خود را که استفاده می‌کنید باز کنید.
  2. سپس خط‌های زیر را به بخش قوانین [Rule] اضافه کنید:
DOMAIN-SET,https://github.com/bootmortis/iran-hosted-domains/releases/latest/download/surge_domainset.txt,DIRECT,update-interval=432000
GEOIP,IR,DIRECT

سرف برد update-interval را نادیده می‌گیره، بجاش می‌تونید از طریق Tools> External resources لیست دامنه‌ها را آپدیت کنید.

⚠️ نکته: اگر از نسخه‌های قدیمی‌تر از Surge for Mac v3.5.1/Surge for iOS v4.2.2 استفاده می‌کنید به‌جای DOMAIN-SET از RULE-SET استفاده کنید:

RULE-SET,https://github.com/bootmortis/iran-hosted-domains/releases/latest/download/surge_ruleset.txt,DIRECT,update-interval=432000
GEOIP,IR,DIRECT
  1. فایل را ذخیره کنید.
  2. قسمت 'Outbound Mode' را روی 'Rule-based' ست کنید.

⚠️ نکته: اگر وبسایت‌های فیلتر شده تو حالت 'Rule-based' کار نمی‌کنن این قانون را قبل از قانون 'FINAL' اضافه کنید.

DOMAIN-KEYWORD,,YourFinalProxy/ProxyGroup,force-remote-dns

به‌جای YourFinalProxy/ProxyGroup پروکسی/گروه پروکسی خودتان را وارد کنید.

🚨 از DOMAIN-SET و RULE-SET در Loon / LanceX هم می‌تونید استفاده کنید.

📽️ آموزش ویدیویی

  1. ابتدا iran.dat را از اینجا دانلود کنید.
  2. از منو، به قسمت Geo asset files بروید، + را از بالا فشار دهید و فایل iran.dat را انتخاب کنید.
  3. از منو، به Settings بروید و مطمئن شوید که Domain Strategy روی IpIfNonMatch تنظیم شده است.
  4. به بخش Custom rules در Settings بروید.
  • در تب DIRECT URL OR IP، عبارت ext:iran.dat:ir,ext:iran.dat:other,geoip:ir را بنویسید، سپس 🗸 را از بالا فشار دهید.
  • در تب BLOCKED URL OR IP عبارت ext:iran.dat:ads را بنویسید و دوباره از بالا 🗸 را فشار دهید.
  1. دکمه‌ی بازگشت را بزنید و تمام.

برای مسدود سازی دامنه‌ها و IP های داخلی در سمت سرور لطفا به این آموزش مراجعه کنید.

  1. در ابتدا فایل domains.txt را از بخش رلیز دانلود کنید.
  2. سپس nekoray را باز کنید و روی آیکون program بالا سمت چپ کلیک کنید
  3. سپس به ترتیب روی دکمه preferences و routing setting کلیک کنید
  4. فایل دانلود شده را بر روی قسمت Direct-Domain جایگذاری کنید.
  5. سپس بر روی OK کلیک کنید و برنامه را دوباره اجرا کنید.
  1. ابتدا فایل iran.dat را از این صفحه دانلود کنید و در محل نصب برنامه v2rayN در پوشه bin قرار دهید.
  2. سپس v2rayN را باز کنید و روی Setting کلیک کنید و گزینه RoutingSetting را انتخاب کنید.
  3. سپس در پنجره جدید روِی Advance Function کلیک کنید و گزینه Add را انتخاب کنید.
  4. در پنجره جدید در قسمت Remarks یک نام انتخاب کنید و در قسمت Rule List در قسمت خالی راست کلیک کرده و گزینه Rule Add را انتخاب کنید.
  5. در پنجره جدید در قسمت OutboundTag گزینه Direct را انتخاب کنید و سپس در قسمت Domains عبارت ext:iran.dat:ir,ext:iran.dat:other,regexp:^.+\.ir$ را کپی کنید.
  6. بر روی گزینه Confirm کلیک کنید تا به صفحه اصلی برنامه برگردید.
  7. مطمن شوید که از پایین برنامه فسمت Routing نام rule انتخابی شما وارد شده است. درغیر اینصورت فلش رو به پایین سمت راست آنرا بزنید و نام rule انتخابی خود را انتخاب کنید.
  1. فایل iran-geosite.db را از اینجا دانلود کرده و در پوشه sing-box قرار دهید.
  2. فایل کانفیگ sing-box را باز کنید و بخش Route را در این فرمت ویرایش کنید:
{
  "route": {
    "geosite": {
      "path": "iran-geosite.db",
      "download_url": "https://github.com/bootmortis/iran-hosted-domains/releases/latest/download/iran-geosite.db"
    },
    "rules": [
      {
        "geosite": "ir",
        "outbound": "direct"
      },
      {
        "geosite": "other",
        "outbound": "direct"
      },
      {
        "geosite": "ads",
        "outbound": "block"
      },
      {
        "domain_suffix": [
          ".ir"
        ],
        "outbound": "direct"
      }
    ]
  }
}
  1. برای اطلاعات بیشتر در مورد قالب کانفیگ sing-box اینجا را ببینید.

ایجاد دستی فایل .dat (آموزش)

۱. نصب golang

نصب کردن نسخه درست مهم است، همیشه آن را از v2fly/domain-list-community بررسی کنید.

۲. ایجاد Clone از v2fly/domain-list-community

git clone https://github.com/v2fly/domain-list-community

۳. آماده‌سازی دامنه‌ها

شما می‌توانید در یک فایل .dat هر چقدر که می‌خواهید گروه‌های متفاوت داشته باشید. هر کدام از این گروه‌ها می‌توانند در بخش bypass، proxy یا blocked باشند و هر چقدر که می‌خواهید دامنه داشته باشند.

هر گروه یک فایل txt است که دامنه‌ها را شامل می‌شود. برای مثال، شما می‌توانید یک فایل ads.txt داشته باشید که شامل دامنه‌های تبلیغاتی می‌شود.

۴. انتقال فایل‌ها به /data

شما وقتی domain-list-community‍ را Clone می‌کنید، هر چیزی که از قبل آن‌جا بود را هم Clone می‌کنید. از آنجایی که به آنها نیازی ندارید هر چیزی که در پوشه data است را پاک کنید.

حالا شما باید فایل‌های خودتان را به پوشه data کپی کنید. مطمئن شوید که پسوند آن‌ها را حذف می‌کنید. برای مثال فایل ads.txt باید بشود ads‍.

cd domain-list-community
rm data/*

cp ~/ads.txt data/ads

۵. اجرای برنامه

go run ./ --outputdir=../

فایل‌ها

  • iran.dat: شامل تمام سایت های هاست شده در ایران و دامنه های تبلیغاتی با فرمت خاص.
  • domains.txt: شامل تمام سایت های هاست شده در ایران.
  • qv2ray_schema.json: فایل قابل استفاده در کلاینت Qv2ray.
  • shadowrocket.conf: فایل قابل استفاده در کلاینت Shadowrocket.

منابع و گرامیداشت

اگر شما منابع دیگری می‌شناسید، و یا وب‌سایتی پیدا کرده‌اید که اینجا نیست لطفا یک issue باز کنید و یا فایل custom_domains.py را تغییر داده و PR ایجاد کنید.

چگونه کار می کند؟

به وسیله‌ی Github Action یک اسکریپت پایتون اجرا شده و از طریق منابع بالا فایل‌های مربوطه در صفحه‌ی رلیز ایجاد می‌شود.