กฎ

Chute สามารถส่งต่อคำขอไปยังเซิร์ฟเวอร์พร็อกซีอื่นหรือเชื่อมต่อกับโฮสต์โดยตรง ขึ้นอยู่กับกฎที่กำหนดเอง

ลำดับความสำคัญ

กฎจะถูกจับคู่จากกฎแรกไปยังกฎสุดท้าย ตามลำดับที่ปรากฏในไฟล์การกำหนดค่า กล่าวอีกนัยหนึ่งคือ กฎที่อยู่ด้านบนของรายการมีลำดับความสำคัญสูงกว่ากฎที่อยู่ถัดลงมา กฎที่เพิ่มโดยโมดูลจะถูกวางไว้ก่อนกฎของไฟล์การกำหนดค่าเอง ตามลำดับการโหลดโมดูล และกฎที่ Chute แทรกขณะทำงานสำหรับ Tailscale จะมาก่อนทั้งสองส่วน

องค์ประกอบ

แต่ละกฎประกอบด้วย 3 ส่วน: ประเภทกฎ, ตัวจับคู่ทราฟฟิก (ยกเว้นกฎ FINAL) และนโยบาย: TYPE, VALUE, POLICY ตัวอย่าง: DOMAIN-SUFFIX,apple.com,DIRECT IP-CIDR,192.168.0.0/16,ProxyA

นโยบายต้องเป็นชื่อของเซิร์ฟเวอร์พร็อกซี, กลุ่มนโยบาย หรือนโยบายในตัว อย่าง DIRECT, REJECT (หรือรูปแบบย่อยของมัน) หรือ PROXY กฎควรลงท้ายด้วยกฎ FINAL เพื่อกำหนดพฤติกรรมเริ่มต้น หากการกำหนดค่าไม่มีกฎ FINAL Chute จะทำงานเสมือนมีการเพิ่ม FINAL,DIRECT ต่อท้าย

ตัวอย่าง:

[Rule]
DOMAIN-SUFFIX,company.com,ProxyA
DOMAIN-KEYWORD,google,DIRECT
GEOIP,US,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,ProxyB

ประเภทกฎ

กฎตามโดเมน

ประเภท ไวยากรณ์ การจับคู่
DOMAIN DOMAIN,www.apple.com,Proxy จับคู่โดเมนแบบตรงทั้งหมด
DOMAIN-SUFFIX DOMAIN-SUFFIX,apple.com,Proxy จับคู่ส่วนต่อท้ายโดเมน
DOMAIN-KEYWORD DOMAIN-KEYWORD,google,Proxy โดเมนมีคำสำคัญ
DOMAIN-WILDCARD DOMAIN-WILDCARD,*.apple.com,Proxy จับคู่โดเมนแบบ wildcard
DOMAIN-REGEX DOMAIN-REGEX,^mail\..+\.com$,Proxy จับคู่โดเมนด้วย regex
DOMAIN-SET DOMAIN-SET,https://example.com/domains.txt,DIRECT ชุดโดเมนที่ดาวน์โหลดจาก URL

กฎตาม IP

ประเภท ไวยากรณ์ การจับคู่
IP-CIDR IP-CIDR,192.168.0.0/16,DIRECT ที่อยู่ IP อยู่ในช่วง CIDR
IP-CIDR6 IP-CIDR6,2001:db8::/32,DIRECT ที่อยู่ IPv6 อยู่ในช่วง CIDR
GEOIP GEOIP,US,DIRECT รหัสประเทศจากฐานข้อมูล GeoIP
IP-ASN IP-ASN,13335,DIRECT ที่อยู่ IP เป็นของ ASN

กฎระดับ HTTP

ประเภท ไวยากรณ์ การจับคู่
USER-AGENT USER-AGENT,Instagram*,DIRECT ส่วนหัว User-Agent
URL-REGEX URL-REGEX,^http://google\.com.*,DIRECT URL แบบเต็มของคำขอ HTTP ธรรมดาตรงกับ regex
PROTOCOL PROTOCOL,TLS,Proxy โปรโตคอลที่ตรวจพบ (HTTP/TLS/QUIC/ฯลฯ)

กฎกระบวนการ (macOS และ Android)

ประเภท ไวยากรณ์ การจับคู่
PROCESS-NAME PROCESS-NAME,Telegram,Proxy ชื่อกระบวนการ (จับคู่แบบ wildcard)
PROCESS-PATH PROCESS-PATH,/Applications/Safari.app,Proxy เส้นทางแบบเต็มของกระบวนการ (จับคู่แบบ wildcard)
PROCESS-NAME-REGEX PROCESS-NAME-REGEX,^Safari$,DIRECT ชื่อกระบวนการ (จับคู่ด้วย regex)

กฎพอร์ตและต้นทาง

ประเภท ไวยากรณ์ การจับคู่
DEST-PORT DEST-PORT,80,DIRECT พอร์ตปลายทาง
SRC-IP SRC-IP,192.168.20.100,DIRECT ที่อยู่ IP ต้นทาง (IP เดี่ยวหรือ CIDR)
SRC-PORT SRC-PORT,52345,DIRECT พอร์ตต้นทาง
IN-PORT IN-PORT,6152,DIRECT พอร์ตพร็อกซีขาเข้าบน Chute

กฎการจับคู่ขั้นสูง

ประเภท ไวยากรณ์ การจับคู่
SUBNET SUBNET,TYPE:WIFI,Proxy คุณลักษณะเครือข่ายย่อย (TYPE, BSSID, SSID, ROUTER)
HOSTNAME-TYPE HOSTNAME-TYPE,AAAA,Proxy ประเภทระเบียน DNS (A/AAAA/ฯลฯ)
IN-TYPE IN-TYPE,SOCKS5,Proxy ประเภทการเชื่อมต่อขาเข้า (HTTP/SOCKS5/TUN)
IN-USER IN-USER,user1,Proxy ชื่อผู้ใช้การยืนยันตัวตนขาเข้า
IN-NAME IN-NAME,my-proxy,Proxy ชื่อเซิร์ฟเวอร์พร็อกซีขาเข้า

หมายเหตุ: SUBNET และ HOSTNAME-TYPE จับคู่กับทราฟฟิกจริง — SUBNET จับคู่กับเครือข่ายที่อุปกรณ์เชื่อมต่ออยู่ในขณะนั้น (Apple TV ไม่มีข้อมูลระบุเครือข่าย จึงไม่มีวันจับคู่ SUBNET ได้) IN-TYPE และ IN-USER ก็จับคู่กับทราฟฟิกจริงเช่นกัน: IN-TYPE ระบุขาเข้าที่การเชื่อมต่อเข้ามา (HTTP, SOCKS5 หรือ TUN) ส่วน IN-USER ระบุชื่อผู้ใช้ที่ขาเข้านั้นตรวจสอบแล้วกับ http-auth — หากไม่ได้ตั้งข้อมูลรับรองไว้ก็ไม่มีอะไรให้ตรวจสอบ IN-USER จึงไม่จับคู่กับสิ่งใด ส่วน IN-NAME รับไว้เพื่อให้โปรไฟล์ Surge โหลดได้ แต่ Chute รันตัวรับฟัง HTTP หนึ่งตัวและตัวรับฟัง SOCKS5 หนึ่งตัวซึ่งไม่มีชื่อ จึงไม่มีชื่อขาเข้าให้จับคู่และกฎนี้ไม่มีวันทำงาน ให้ใช้ IN-TYPE หรือ IN-PORT แทน

กฎผสมทางตรรกะ

ประเภท ไวยากรณ์ การจับคู่
AND AND,((DOMAIN,example.com),(DEST-PORT,443)),Proxy กฎย่อยทั้งหมดตรงกัน
OR OR,((DOMAIN,example.com),(DOMAIN,test.com)),Proxy กฎย่อยใด ๆ ตรงกัน
NOT NOT,((DOMAIN,example.com)),Proxy กฎย่อยไม่ตรงกัน

กฎพิเศษ

ประเภท ไวยากรณ์ การจับคู่
RULE-SET RULE-SET,SYSTEM,DIRECT ชุดกฎจาก URL, ผู้ให้บริการกฎ (rule provider) หรือชุดในตัว
SCRIPT SCRIPT,MyRuleScript,PROXY การจับคู่กฎที่กำหนดเองด้วย JavaScript
FINAL FINAL,ProxyB ค่าเริ่มต้นเมื่อไม่มีกฎอื่นตรงกัน (ต้องเป็นกฎสุดท้าย)

ตัวเลือก

no-resolve

สำหรับคำขอที่ชื่อโฮสต์เป็นโดเมน Chute จะประเมินรายการกฎเป็นสองรอบ ในรอบแรก กฎตาม IP (GEOIP, IP-CIDR, IP-ASN) จะถูกข้าม หากไม่มีกฎอื่นตรงกัน Chute จะแปลงชื่อโดเมนด้วย DNS แล้วประเมินกฎอีกครั้งด้วยที่อยู่ IP ที่ได้ เพิ่มตัวเลือก no-resolve เพื่อให้กฎตาม IP ยังคงถูกข้ามในรอบที่สองด้วย ดังนั้นกฎจะจับคู่เฉพาะคำขอที่มีที่อยู่ IP อยู่แล้วเท่านั้น

GEOIP,US,DIRECT,no-resolve
IP-CIDR,172.16.0.0/12,DIRECT,no-resolve

บนบรรทัด RULE-SET ตัวเลือก no-resolve จะครอบคลุมกฎตาม IP ทุกข้อในชุดนั้น เหมือนกับว่าแต่ละข้อมีตัวเลือกนี้เอง: RULE-SET,https://example.com/cn-ip.list,DIRECT,no-resolve ส่วนชุดในตัว SYSTEM และ LAN จะถูกแตกออกเป็นกฎแยกกันและไม่รับตัวเลือกนี้

หมายเหตุ: เนื่องจากการประเมินแบบสองรอบ สำหรับคำขอที่ชื่อโฮสต์เป็นโดเมน กฎที่ไม่ใช่ IP ที่อยู่ถัดลงมาอาจจับคู่ได้ก่อนกฎตาม IP ที่อยู่ก่อนหน้า หากการแปลงชื่อ DNS ล้มเหลว กฎตาม IP จะไม่จับคู่เลยและกฎ FINAL จะถูกนำมาใช้ การประเมินกฎจะไม่ถูกยกเลิก

force-remote-dns

บังคับให้แปลงชื่อ DNS ผ่านเซิร์ฟเวอร์พร็อกซีระยะไกลแทน DNS ในเครื่อง

DOMAIN-SUFFIX,google.com,Proxy,force-remote-dns

หมายเหตุ: ตัวเลือกนี้ปัจจุบันถูกแยกวิเคราะห์เพื่อความเข้ากันได้เท่านั้นและไม่มีผลในรุ่นปัจจุบัน

extended-matching

ขยายการจับคู่กฎตามโดเมนเพื่อตรวจสอบส่วนหัว HTTP Host เพิ่มเติมจากชื่อโฮสต์การเชื่อมต่อ ส่วนหัวนี้มาจากคำขอแรกของการเชื่อมต่อของไคลเอนต์ที่เข้ามายังตัวรับฟังพร็อกซี HTTP — สำหรับ HTTPS คือส่วนหัว Host ของคำขอ CONNECT เอง — ดังนั้นตัวเลือกนี้จะช่วยได้เมื่อไคลเอนต์ส่งคำขอไปยังที่อยู่ IP หรือไปยังชื่ออื่นที่ไม่ใช่ชื่อในส่วนหัว Host ของคำขอนั้น การเชื่อมต่อที่ผ่าน TUN หรือ SOCKS5 ไม่มีส่วนหัว Host และตัวเลือกนี้จะไม่เปลี่ยนแปลงอะไรสำหรับการเชื่อมต่อเหล่านั้น

DOMAIN-SUFFIX,example.com,Proxy,extended-matching

requires-resolve

สำหรับกฎ SCRIPT ตัวเลือกนี้ได้รับการยอมรับโดยตัวแยกวิเคราะห์ แต่ไม่ได้ทำให้การประเมินสคริปต์ล่าช้า $request.dnsResult จะพร้อมใช้งานในสคริปต์เฉพาะเมื่อเซสชันแปลงชื่อ DNS แล้วเท่านั้น (เช่น คำขอที่ส่งไปยังที่อยู่ IP โดยตรง หรือรอบการจับคู่ที่สองหลังการแปลงชื่อ DNS)

SCRIPT,MyRuleScript,PROXY,requires-resolve

pre-matching

ใช้ได้เฉพาะกับกฎที่มีนโยบายเป็น REJECT หรือรูปแบบย่อยของมัน (REJECT-DROP, REJECT-TINYGIF ฯลฯ) เท่านั้น กฎ pre-matching จะถูกประเมินในรอบแยกต่างหากก่อนแคชผลลัพธ์ของกฎและก่อนตารางกฎปกติ ดังนั้น REJECT ที่ตรงกันจะมีผลตั้งแต่รอบแรก ก่อนการแปลงชื่อ DNS ใด ๆ ที่ตารางกฎจะกระตุ้นให้เกิดขึ้น บรรทัด RULE-SET หรือ DOMAIN-SET จะรับ pre-matching และเก็บไว้ แต่ชุดนั้นจะไม่ถูกจับคู่ในรอบแรกดังกล่าว: ชุดยังคงถูกประเมินที่ตำแหน่งของตัวเองในรายการกฎ

DOMAIN-SUFFIX,tracker.example.com,REJECT,pre-matching

dns-failed

ใช้ได้เฉพาะกับกฎ FINAL เมื่อการตัดสินคำขอต้องใช้การค้นหา DNS ภายในเครื่องและการค้นหานั้นล้มเหลว คำขอจะถูกส่งต่อให้นโยบายของ FINAL แทนที่จะล้มเหลว — ดูกฎสุดท้าย

FINAL,Proxy,dns-failed

notification-text

ส่งการแจ้งเตือนของระบบเมื่อกฎตรงกัน หัวเรื่องคือข้อความนี้ ส่วนเนื้อหาระบุปลายทางและนโยบาย (host:port → policy ส่วนบน Android คือ host:port · policy · process) notification-interval กำหนดจำนวนวินาทีที่ต้องผ่านไปก่อนที่กฎเดิมจะแจ้งเตือนอีกครั้ง (ค่าเริ่มต้น 300) กฎใดก็ใส่ตัวเลือกเหล่านี้ได้ รวมถึง FINAL บรรทัด RULE-SET หรือ DOMAIN-SET จะรับตัวเลือกเหล่านี้และเก็บไว้ แต่การตรงกันภายในชุดจะไม่ส่งการแจ้งเตือนเลย

DOMAIN-SUFFIX,bank.example,DIRECT,notification-text="Bank site opened",notification-interval=60
FINAL,Proxy,notification-text=Fell%20to%20FINAL

ข้อความที่มีช่องว่างให้ใส่เครื่องหมายคำพูด หรือเขียนช่องว่างแต่ละตัวเป็น %20 และเขียนเครื่องหมายจุลภาคเป็น %2C Chute ส่งการแจ้งเตือนเองและทำตามสวิตช์ของแอปสำหรับเรื่องนี้ — อนุญาตการแจ้งเตือน บน iPhone, แสดงการแจ้งเตือนรายงานเหตุการณ์ บน Mac และสิทธิ์การแจ้งเตือนของระบบที่ให้แก่ Chute บน Android — ดังนั้นเมื่อปิดสวิตช์นั้น จะไม่มีอะไรแสดง และ Apple TV จะไม่แสดงเลย ทุกครั้งที่ตรงกันจะถูกบันทึกเป็นเหตุการณ์การแจ้งเตือนของกฎด้วย — ดูการรายงานการแจ้งเตือน

ชื่อแฝง (Aliases)

  • DOMAIN-MATCH ได้รับการยอมรับเป็นชื่อแฝงของ DOMAIN-KEYWORD
  • NETWORK ได้รับการยอมรับเป็นชื่อแฝงของ PROTOCOL
  • DST-PORT ได้รับการยอมรับเป็นชื่อแฝงของ DEST-PORT

ชุดโดเมน

Chute รองรับการโหลดชุดโดเมนจาก URL ภายนอกด้วยประเภทกฎ DOMAIN-SET ฟิลด์แรกหลังประเภทต้องเป็น URL แบบ http(s) พารามิเตอร์เสริม update-interval คืออายุสูงสุดเป็นวินาทีที่สำเนาที่ดาวน์โหลดไว้จะมีได้ก่อนที่จะถูกดึงใหม่ โดยไม่มีตัวจับเวลา — ดูชุดกฎภายนอก

DOMAIN-SET,https://example.com/domains.txt,DIRECT
DOMAIN-SET,https://example.com/domains.txt,DIRECT,update-interval=86400

ไฟล์ชุดโดเมนประกอบด้วยโดเมนเปล่า หนึ่งโดเมนต่อบรรทัด: example.com จับคู่โดเมนแบบตรงทั้งหมด; .example.com หรือ +.example.com จับคู่โดเมนและโดเมนย่อยทั้งหมด บรรทัดที่ขึ้นต้นด้วย # หรือ // เป็นหมายเหตุ

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก

results matching ""

    No results matching ""