กฎ
Chute สามารถส่งต่อคำขอไปยังเซิร์ฟเวอร์พร็อกซีอื่นหรือเชื่อมต่อกับโฮสต์โดยตรง ขึ้นอยู่กับกฎที่กำหนดเอง
ลำดับความสำคัญ
กฎจะถูกจับคู่จากกฎแรกไปยังกฎสุดท้าย ตามลำดับที่ปรากฏในไฟล์การกำหนดค่า กล่าวอีกนัยหนึ่งคือ กฎที่อยู่ด้านบนของรายการมีลำดับความสำคัญสูงกว่ากฎที่อยู่ถัดลงมา
องค์ประกอบ
แต่ละกฎประกอบด้วย 3 ส่วน: ประเภทกฎ, ตัวจับคู่ทราฟฟิก (ยกเว้นกฎ FINAL) และนโยบายพร็อกซี: TYPE, VALUE, POLICY ตัวอย่าง: DOMAIN-SUFFIX,apple.com, DIRECT IP-CIDR, 192.168.0.0/16,ProxyA
นโยบายพร็อกซีต้องตั้งชื่อภายใต้ชื่อนโยบายใดๆ ซึ่งรวมถึงพร็อกซี, กลุ่มนโยบาย, DIRECT หรือ REJECT กฎต้องลงท้ายด้วยกฎ FINAL เพื่อกำหนดพฤติกรรมเริ่มต้น
ตัวอย่าง:
[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,my-set,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 ตรงกับ regex |
| PROTOCOL | PROTOCOL,HTTPS,Proxy |
โปรโตคอลที่ตรวจพบ (HTTP/HTTPS/TLS/SSH/ฯลฯ) |
กฎกระบวนการ (เฉพาะ Mac)
| ประเภท | ไวยากรณ์ | การจับคู่ |
|---|---|---|
| PROCESS-NAME | PROCESS-NAME,Telegram,Proxy |
ชื่อกระบวนการ (จับคู่แบบ wildcard) |
| PROCESS-PATH | PROCESS-PATH,/Applications/Safari.app,Proxy |
เส้นทางแบบเต็มของกระบวนการ |
| 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 ต้นทาง |
| 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 |
ชื่อเซิร์ฟเวอร์พร็อกซีขาเข้า |
กฎผสมทางตรรกะ
| ประเภท | ไวยากรณ์ | การจับคู่ |
|---|---|---|
| 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 หรือชุดในตัว |
| SCRIPT | SCRIPT,MyRuleScript,PROXY |
การจับคู่กฎที่กำหนดเองด้วย JavaScript |
| FINAL | FINAL,ProxyB |
ค่าเริ่มต้นเมื่อไม่มีกฎอื่นตรงกัน (ต้องเป็นกฎสุดท้าย) |
ตัวเลือก
no-resolve
เมื่อพบกฎ GEOIP, IP-CIDR หรือ IP-ASN Chute จะส่งคำถาม DNS เพื่อตรวจสอบว่าชื่อโฮสต์ของคำขอเป็นโดเมนหรือไม่ คุณสามารถเลือกตัวเลือก no-resolve เพื่อข้ามกฎนี้สำหรับคำขอที่มีโดเมน
GEOIP,US,DIRECT,no-resolve
IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
หมายเหตุ: หากบางโดเมนไม่สามารถแก้ไขได้โดยเซิร์ฟเวอร์ DNS ในเครื่อง โปรดตรวจสอบว่าไม่มีกฎตาม IP อยู่ข้างหน้ากฎที่ตรงกับโดเมนนั้น มิฉะนั้นการทดสอบกฎจะล้มเหลวเนื่องจากข้อผิดพลาด DNS คุณสามารถใช้
no-resolveเพื่อแก้ไขปัญหานี้ได้เช่นกัน
force-remote-dns
บังคับการแก้ไข DNS ผ่านเซิร์ฟเวอร์พร็อกซีระยะไกลแทน DNS ในเครื่อง
DOMAIN-SUFFIX,google.com,Proxy,force-remote-dns
extended-matching
ขยายการจับคู่กฎตามโดเมนเพื่อตรวจสอบส่วนหัว HTTP Host เพิ่มเติมจากชื่อโฮสต์การเชื่อมต่อ สิ่งนี้มีประโยชน์เมื่อ SNI หรือเป้าหมาย CONNECT แตกต่างจากส่วนหัว Host
DOMAIN-SUFFIX,example.com,Proxy,extended-matching
requires-resolve
สำหรับกฎ SCRIPT ตรวจสอบว่าการแก้ไข DNS เสร็จสมบูรณ์ก่อนที่สคริปต์จะถูกประเมิน นี้รับประกันว่า $request.dnsResult พร้อมใช้งานในสคริปต์
SCRIPT,MyRuleScript,PROXY,requires-resolve
ชุดโดเมน
Chute รองรับการกำหนดชุดโดเมนที่มีชื่อจากไฟล์ภายนอกหรือ URL ใช้ได้กับประเภทกฎ DOMAIN-SET แต่ละบรรทัดในไฟล์ชุดโดเมนประกอบด้วยการประกาศกฎโดยไม่มีนโยบาย