وضعیت کلاسیک کار از راه دور: سامانههای داخلی شرکت باید از VPN بروند، سایتهای محلی باید مستقیم بروند، و سرویسهای خارجی پروکسی میخواهند. هر سه همزمان، بدون اینکه پای هم را لگد کنند.
این یک پیکربندی است که همین کار را میکند.
اول، سه دستهٔ ترافیک
بخش سخت ماجرا: دامنههای داخلی معمولاً به 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: CNnameserver-policy قلب این چیدمان است. بدون آن، نامهای داخلی به حلکنندهٔ عمومی میروند و پاسخ یا NXDOMAIN است یا صفحهٔ ربودهشدهٔ اپراتور.
تعارضهای رایج و راهحلشان
تعارض ۱: VPN سازمانی و TUN بر سر مسیرها دعوا میکنند
کلاینتهای VPN سازمانی (Cisco AnyConnect، FortiClient، محصولات SSL VPN) معمولاً جدول مسیریابی را بازنویسی میکنند. حالت TUN در Clash Verge هم همین کار را میکند و راحت به هم میخورند.
نحو 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تطبیق همچنان از بالا به پایین است، پس دستگاههای مشخص بالای قاعدهٔ زیرشبکه میآیند.
بررسی اینکه کار میکند
خلاصه
کلیدهای همزیستی هر سه:
- شبکهٔ داخلی به هر سه چیز نیاز دارد: قواعد دامنه، قواعد بازهٔ IP، و nameserver-policy
- ترتیب قواعد: داخلی ← موارد صریح خارجی ← فهرستهای محلی ← GEOIP ← MATCH
- وقتی VPN و TUN تعارض دارند، پروکسی سیستم تنها را ترجیح بدهید
- هر دسته را گروه سیاست کنید تا هنگام عیبیابی بشود در رابط عوضش کرد
بیشتر بخوانید: توضیح پیکربندی DNS و مرجع انواع قواعد.
مستندات مرتبط
نحو و منطق تطبیق و هزینهٔ نسبی هر نوع قاعده، اینکه no-resolve واقعاً چه میکند، چرا ترتیب قواعد همهچیز را تعیین میکند، و چطور بفهمیم یک اتصال با کدام قاعده تطبیق خورده.
جایگزین کردن صدها قاعدهٔ دستی با فهرستهای بیرونی. تفاوت سه behavior یعنی domain و ipcidr و classical، قالب text در برابر yaml، تنظیم بازهٔ بهروزرسانی، و وقتی مجموعه قاعده کار نمیکند چه چیزی را بررسی کنیم.
تصویر کامل مسیریابی بر پایهٔ فرایند: روشن کردن find-process-mode، پیدا کردن نام فرایند، تفاوت PROCESS-NAME و PROCESS-PATH، هزینهٔ کارایی، و اینکه چرا قاعدهای که نوشتهاید کاری نمیکند.