رفتن به محتوای اصلی
FA

خانه / وبلاگ / قواعد و مسیریابی

تونل تفکیکی در عمل — شبکهٔ داخلی سازمان و دسترسی مستقیم محلی و پروکسی خارجی با هم

قواعد و مسیریابی2026-07-171389 واژه3 دقیقه مطالعه
تونل تفکیکی در عمل — شبکهٔ داخلی سازمان و دسترسی مستقیم محلی و پروکسی خارجی با هم

وضعیت کلاسیک کار از راه دور: سامانه‌های داخلی شرکت باید از VPN بروند، سایت‌های محلی باید مستقیم بروند، و سرویس‌های خارجی پروکسی می‌خواهند. هر سه هم‌زمان، بدون اینکه پای هم را لگد کنند.

این یک پیکربندی است که همین کار را می‌کند.

اول، سه دستهٔ ترافیک

هر دسته باید کجا برودشبکهٔ داخلی سازمانسامانه‌های اداری، GitLab، APIهای داخلی، سرورهای واسط — باینترنت عمومی محلیجست‌وجو و فروشگاه و ویدیو و پرداخت محلی — مستقیم، تا نه سرویس‌های خارجیسایت‌های مستندات، سرویس‌های توسعه‌دهنده، SaaSهای خارجی —
هر سه با معیار متفاوتی شناخته می‌شوند: داخلی با دامنه به‌علاوهٔ بازهٔ IP، محلی با GEOIP، خارجی با پوشش نهایی

بخش سخت ماجرا: دامنه‌های داخلی معمولاً به IPهای خصوصی حل می‌شوند، ولی خود نام‌ها هیچ فرقی با نام‌های عمومی ندارند. قضاوت فقط بر پایهٔ GEOIP یعنی اشتباه کردن.

پیکربندی کامل

گام ۱: گروه‌های سیاست را تعریف کنید

proxy-groups:
  - name: "🚀 خارجی"
    type: select
    proxies: ["♻️ خودکار", "🇭🇰 هنگ‌کنگ", "🇯🇵 ژاپن", "🇺🇸 آمریکا"]

  - name: "♻️ خودکار"
    type: url-test
    include-all: true
    exclude-filter: "(?i)remaining|expiry|website"
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 50

  - name: "🏢 شبکهٔ داخلی"
    type: select
    proxies: [DIRECT]        # از رابط محلی بیرون می‌رود (VPN از قبل بالاست)

  - name: "🇨🇳 محلی مستقیم"
    type: select
    proxies: [DIRECT, "🚀 خارجی"]   # در صورت نیاز قابل تعویض

  - name: "🐟 باقی‌ماندهٔ ترافیک"
    type: select
    proxies: ["🚀 خارجی", DIRECT]

گروه سیاست ساختن برای شبکهٔ داخلی و محلی به‌جای نوشتن DIRECT در خود قاعده یعنی می‌توانید هنگام عیب‌یابی در رابط عوضشان کنید، بدون ویرایش پیکربندی.

گام ۲: قواعد شبکهٔ داخلی (اول فهرست)

rules:
  # ===== ۱. loopback و بازه‌های خصوصی =====
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,192.168.0.0/16,🏢 شبکهٔ داخلی,no-resolve
  - IP-CIDR,10.0.0.0/8,🏢 شبکهٔ داخلی,no-resolve
  - IP-CIDR,172.16.0.0/12,🏢 شبکهٔ داخلی,no-resolve
  - IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
  - IP-CIDR6,fc00::/7,DIRECT,no-resolve

  # ===== ۲. دامنه‌های داخلی سازمان =====
  - DOMAIN-SUFFIX,mycompany.com,🏢 شبکهٔ داخلی
  - DOMAIN-SUFFIX,corp.internal,🏢 شبکهٔ داخلی
  - DOMAIN-SUFFIX,intra,🏢 شبکهٔ داخلی
  - DOMAIN-KEYWORD,gitlab-internal,🏢 شبکهٔ داخلی
  - DOMAIN-SUFFIX,local,DIRECT
  - DOMAIN-SUFFIX,lan,DIRECT

گام ۳: قواعد سرویس‌های خارجی

  # ===== ۳. صراحتاً پروکسی‌شده =====
  - DOMAIN-SUFFIX,github.com,🚀 خارجی
  - DOMAIN-SUFFIX,githubusercontent.com,🚀 خارجی
  - DOMAIN-SUFFIX,docker.io,🚀 خارجی
  - DOMAIN-SUFFIX,npmjs.org,🚀 خارجی
  - DOMAIN-SUFFIX,pypi.org,🚀 خارجی
  - DOMAIN-SUFFIX,openai.com,🚀 خارجی
  - RULE-SET,proxy-list,🚀 خارجی

گام ۴: محلی و پوشش نهایی

  # ===== ۴. محلی مستقیم =====
  - RULE-SET,direct-list,🇨🇳 محلی مستقیم
  - RULE-SET,cn-ip,🇨🇳 محلی مستقیم,no-resolve
  - GEOIP,CN,🇨🇳 محلی مستقیم

  # ===== ۵. پوشش نهایی =====
  - MATCH,🐟 باقی‌ماندهٔ ترافیک

DNS هم باید مسیریابی شود

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

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "*.local"
    - "+.mycompany.com"        # نام‌های داخلی از fake-ip رد می‌شوند
    - "+.corp.internal"
    - "+.pool.ntp.org"

  default-nameserver: [223.5.5.5, 119.29.29.29]
  nameserver:
    - 223.5.5.5
    - 119.29.29.29

  # بخش کلیدی: نام‌های مشخص را به حل‌کننده‌های مشخص بفرست
  nameserver-policy:
    "+.mycompany.com": "10.10.0.53"       # سرور DNS سازمان
    "+.corp.internal": "10.10.0.53"
    "geosite:cn": [223.5.5.5, 119.29.29.29]
    "geosite:geolocation-!cn": [https://1.1.1.1/dns-query]

  fallback:
    - https://1.1.1.1/dns-query
    - tls://8.8.4.4:853
  fallback-filter:
    geoip: true
    geoip-code: CN
مسیر کامل یک نام داخلیدرخواست برای gitlab.mycompany.برنامه می‌پرسدfake-ip-filter تطبیق می‌خوردنشانی ساختگی برنگردانده می‌شودnameserver-policy تطبیق می‌خوربه 10.10.0.53 سپرده می‌شودIP واقعی داخلی برمی‌گردد10.20.30.40قاعده تطبیق می‌خوردIP-CIDR 10.0.0.0مستقیم بیرون می‌روداز تونل VPN
هر سه حلقه لازم است: رد شدن از fake-ip، حل‌کنندهٔ داخلی، و قاعدهٔ بازهٔ IP که مستقیمش می‌کند

nameserver-policy قلب این چیدمان است. بدون آن، نام‌های داخلی به حل‌کنندهٔ عمومی می‌روند و پاسخ یا NXDOMAIN است یا صفحهٔ ربوده‌شدهٔ اپراتور.

تعارض‌های رایج و راه‌حلشان

تعارض ۱: VPN سازمانی و TUN بر سر مسیرها دعوا می‌کنند

کلاینت‌های VPN سازمانی (Cisco AnyConnect، FortiClient، محصولات SSL VPN) معمولاً جدول مسیریابی را بازنویسی می‌کنند. حالت TUN در Clash Verge هم همین کار را می‌کند و راحت به هم می‌خورند.

چه کنیم، به ترتیب ترجیحپروکسی سیستم تنها را ترجیح بدهید، بدون TUN — کمترین سطح تعارضاگر TUN ناگزیر است، بازه‌های داخلی VPN را با قواعد صریح DIRECT بنویسیدترتیب را تنظیم کنید: اول VPN را وصل کنید بعد TUN را روشن کنیدکارت شبکهٔ VPN را در پیکربندی TUN با exclude-interface مستثنا کنیداگر VPN مسیر تونل کامل را تحمیل می‌کند — معمولاً هم‌زیستی ممکن نیست و باید یکی را انتخاب کنید

نحو exclude-interface:

tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  exclude-interface: ["ppp0", "Cisco AnyConnect"]

نام کارت شبکه را روی ویندوز با ipconfig و روی لینوکس و مک با ifconfig یا ip link پیدا کنید.

تعارض ۲: کارفرما نرم‌افزار مدیریت نقاط پایانی دارد

محصولات EDR ممکن است کارت مجازی را غیرعادی بشمارند. در آن حالت:

  • TUN را روشن نکنید؛ فقط پروکسی سیستم را به کار ببرید
  • یا اصلاً کارهای شخصی را روی دستگاه شخصی انجام دهید و ماشین کاری را تمیز نگه دارید

تعارض ۳: سرویس داخلی از پروکسی رفت

نشانه: سامانهٔ داخلی timeout می‌شود و صفحهٔ اتصال‌ها یک گرهٔ خارجی نشان می‌دهد.

بررسی:

۱. ستون «Rule» صفحهٔ اتصال‌ها را بخوانید تا ببینید چه چیزی تطبیق خورده ۲. اگر MATCH یا GEOIP تطبیق خورده، یعنی قواعد داخلی‌تان فعال نشده‌اند ۳. املای قواعد دامنه‌ای داخلی را بررسی کنید؛ ببینید قاعدهٔ گسترده‌تری بالاتر آن را نقاپیده باشد ۴. با prepend-rules قواعد داخلی را به بالاترین نقطه هل بدهید

تعارض ۴: سایت محلی از پروکسی رفت و کنترل ریسک را فعال کرد

نشانه: بانک ورود از مکان غیرعادی گزارش می‌کند، یا سکوی پرداخت عامل دوم می‌خواهد.

علت: آن سایت‌ها در direct-list نیستند و IPهای حل‌شده‌شان در GEOIP CN نمی‌افتند (ممکن است روی CDN خارجی باشند).

راه‌حل: قواعد را دستی اضافه کنید

prepend-rules:
  - DOMAIN-SUFFIX,icbc.com.cn,🇨🇳 محلی مستقیم
  - DOMAIN-SUFFIX,alipay.com,🇨🇳 محلی مستقیم
  - DOMAIN-SUFFIX,unionpay.com,🇨🇳 محلی مستقیم

مسیریابی به‌ازای دستگاه (سناریوهای شبکهٔ محلی)

اگر Clash روی روتر نرم‌افزاری اجرا می‌شود یا با دستگاه‌های دیگر به اشتراک گذاشته شده، می‌توانید بر پایهٔ IP مبدأ تفکیک کنید:

prepend-rules:
  # لپ‌تاپ کاری: فقط سرویس‌های خارجی پروکسی می‌شوند
  - AND,((SRC-IP-CIDR,192.168.1.100/32),(GEOIP,CN)),DIRECT
  # باکس تلویزیون: همه‌چیز پروکسی
  - SRC-IP-CIDR,192.168.1.200/32,🚀 خارجی
  # دستگاه‌های IoT: همه‌چیز مستقیم
  - SRC-IP-CIDR,192.168.1.0/24,DIRECT

تطبیق همچنان از بالا به پایین است، پس دستگاه‌های مشخص بالای قاعدهٔ زیرشبکه می‌آیند.

بررسی اینکه کار می‌کند

چهار بررسی1شبکهٔ داخلیسامانهٔ داخلی را در مرورگر باز کنید؛ صفحهٔ اتصال‌ها باید «شبکهٔ داخلی ← DIRECT» نشان بدهد2محلیبه یک سایت محلی بروید؛ باید «محلی مستقیم ← DIRECT» با GEOIP,CN یا یک مجموعه قاعده در ستون Rule ببینید3خارجیبه github.com بروید؛ باید «خارجی ← فلان گره» ببینید4DNSدر ترمینال nslookup gitlab.mycompany.com بزنید؛ باید IP داخلی برگردد نه 198.18.x.x
هر چهارتا درست باشد یعنی تفکیک واقعاً برقرار است

خلاصه

کلیدهای هم‌زیستی هر سه:

  • شبکهٔ داخلی به هر سه چیز نیاز دارد: قواعد دامنه، قواعد بازهٔ IP، و nameserver-policy
  • ترتیب قواعد: داخلی ← موارد صریح خارجی ← فهرست‌های محلی ← GEOIP ← MATCH
  • وقتی VPN و TUN تعارض دارند، پروکسی سیستم تنها را ترجیح بدهید
  • هر دسته را گروه سیاست کنید تا هنگام عیب‌یابی بشود در رابط عوضش کرد

بیشتر بخوانید: توضیح پیکربندی DNS و مرجع انواع قواعد.


مستندات مرتبط

مجموعه‌قواعد راه دور با rule-providers — behavior و format و راهبرد به‌روزرسانی
قواعد و مسیریابی مجموعه‌قواعد راه دور با rule-providers — behavior و format و راهبرد به‌روزرسانی

جایگزین کردن صدها قاعدهٔ دستی با فهرست‌های بیرونی. تفاوت سه behavior یعنی domain و ipcidr و classical، قالب text در برابر yaml، تنظیم بازهٔ به‌روزرسانی، و وقتی مجموعه قاعده کار نمی‌کند چه چیزی را بررسی کنیم.

2026-07-211355 واژه3 دقیقه مطالعه
مسیریابی برنامه‌های خاص با قواعد PROCESS-NAME
قواعد و مسیریابی مسیریابی برنامه‌های خاص با قواعد PROCESS-NAME

تصویر کامل مسیریابی بر پایهٔ فرایند: روشن کردن find-process-mode، پیدا کردن نام فرایند، تفاوت PROCESS-NAME و PROCESS-PATH، هزینهٔ کارایی، و اینکه چرا قاعده‌ای که نوشته‌اید کاری نمی‌کند.

2026-06-221338 واژه3 دقیقه مطالعه