ตัวเลือกเบ็ดเตล็ด
[General]
ipv6 = true
loglevel = notify
skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local
tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
tun-included-routes = 192.168.1.12/32
ตัวเลือกทั่วไป
เปิดใช้งานการรองรับ IPv6 เต็มรูปแบบ (ค่าเริ่มต้น: true)
ipv6 = true
loglevel (ค่าเริ่มต้น: warning)
loglevel = notify
หนึ่งใน none, fatal, warning, notify, info หรือ verbose ไม่แนะนำให้เปิดใช้งาน verbose ในการใช้งานประจำวันเพราะจะทำให้ประสิทธิภาพลดลงอย่างมาก
skip-proxy
skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local
ในเวอร์ชัน iOS ตัวเลือกนี้บังคับให้การเชื่อมต่อไปยังช่วงโดเมน/IP เหล่านี้ถูกจัดการโดย Chute TUN แทนพร็อกซี Chute ในเวอร์ชัน macOS การตั้งค่าเหล่านี้จะถูกนำไปใช้กับระบบเมื่อเปิดใช้งาน "Set as System Proxy" ตัวเลือกนี้ใช้เพื่อแก้ไขปัญหาความเข้ากันได้กับบางแอป
- เพื่อระบุโดเมนเดียว ให้ป้อนชื่อโดเมน - ตัวอย่างเช่น apple.com
- เพื่อระบุเว็บไซต์ทั้งหมดบนโดเมน ใช้เครื่องหมายดอกจันก่อนชื่อโดเมน - ตัวอย่างเช่น *apple.com
- เพื่อระบุส่วนเฉพาะของโดเมน ระบุแต่ละส่วน - ตัวอย่างเช่น store.apple.com
- เพื่อระบุโฮสต์หรือเครือข่ายตามที่อยู่ IP ให้ป้อนที่อยู่ IP เฉพาะ เช่น 192.168.2.11 หรือช่วงที่อยู่ เช่น 192.168.2.* หรือ 192.168.2.0/24
หมายเหตุ: หากคุณป้อนที่อยู่ IP หรือช่วงที่อยู่ คุณจะสามารถข้ามพร็อกซีได้เฉพาะเมื่อคุณเชื่อมต่อกับโฮสต์นั้นโดยใช้ที่อยู่นั้น ไม่ใช่เมื่อคุณเชื่อมต่อกับโฮสต์โดยชื่อโดเมนที่แก้ไขเป็นที่อยู่นั้น
ขัดจังหวะการเชื่อมต่อที่มีอยู่
interrupt-exist-connections = true
เมื่อเปิดใช้งาน การเปลี่ยนนโยบายที่เลือกในกลุ่มนโยบายใดๆ (ผ่าน URL Test, Fallback, Load Balance, SSID หรือการเลือกด้วยตนเอง) จะปิดการเชื่อมต่อที่มีอยู่ที่ใช้นโยบายเก่าอย่างนุ่มนวล สิ่งนี้รับประกันว่าการเชื่อมต่อใช้พร็อกซีที่เลือกใหม่ทันทีแทนที่จะค้างอยู่กับพร็อกซีเก่า
การเชื่อมต่อที่ได้รับผลกระทบแต่ละรายการถูกปิดอย่างนุ่มนวลด้วยเวลาหมด 3 วินาทีก่อนที่จะถูกบังคับปิด
ค่าเริ่มต้น:
falseนี่คือการตั้งค่าส่วนกลาง — มันส่งผลต่อกลุ่มนโยบายทั้งหมด
Network Framework (macOS / tvOS)
network-framework = true
เปิดใช้งาน Apple Network.framework สำหรับการเชื่อมต่อขาออก สิ่งนี้ถูกเปิดใช้งานโดยค่าเริ่มต้นบน macOS และ tvOS และปิดใช้งานบน iOS การใช้ Network.framework สามารถให้ประสิทธิภาพที่ดีขึ้นและการรวมสแตก TLS สมัยใหม่บนแพลตฟอร์มที่รองรับ
ค่าเริ่มต้น:
trueบน macOS/tvOS,falseบน iOS
ยกเว้นชื่อโฮสต์อย่างง่าย
exclude-simple-hostnames = true
เมื่อเปิดใช้งาน คำขอไปยังชื่อโฮสต์อย่างง่าย (ชื่อป้ายเดียวที่ไม่มีจุด เช่น localhost) ข้ามกฎพร็อกซีและถูกแก้ไขในเครื่อง สิ่งนี้ช่วยหลีกเลี่ยงการค้นหา DNS ที่ไม่จำเป็นสำหรับชื่อเครือข่ายท้องถิ่น
ค่าเริ่มต้น:
false
ปิดใช้งานการบันทึกฐานข้อมูล
disable-db-record = true
เมื่อเปิดใช้งาน Chute หยุดเขียนระเบียนทราฟฟิกไปยังฐานข้อมูลในเครื่อง สิ่งนี้สามารถปรับปรุงประสิทธิภาพและลดการใช้พื้นที่เก็บข้อมูล แต่ประวัติทราฟฟิกจะไม่พร้อมใช้งานใน Chute Dashboard
ค่าเริ่มต้น:
false
การแสดงความเร็วในแถบเมนู (เฉพาะ Mac)
menu-bar-show-speed = true
เมื่อเปิดใช้งาน Chute Mac แสดงความเร็วอัปโหลดและดาวน์โหลดปัจจุบันในแถบเมนู
ค่าเริ่มต้น:
false
ไฮแจ็กเซิร์ฟเวอร์ DNS อื่น
hijack-dns = 8.8.8.8:53
โดยค่าเริ่มต้น Chute จะส่งคืนที่อยู่ IP ปลอมเฉพาะสำหรับคำถาม DNS ที่ส่งไปยังที่อยู่ DNS ของ Chute (198.18.0.2) คำถามที่ส่งไปยัง DNS มาตรฐานจะถูกส่งต่อเพียงอย่างเดียว
บางอุปกรณ์หรือซอฟต์แวร์ใช้เซิร์ฟเวอร์ DNS แบบ hardcode เสมอ (ตัวอย่างเช่น Google Speakers ใช้ 8.8.8.8 เสมอ) คุณอาจใช้ตัวเลือกนี้เพื่อไฮแจ็กคำถามเพื่อรับที่อยู่ปลอม
คุณอาจใช้ hijack-dns = *:53 เพื่อไฮแจ็กคำถาม DNS ทั้งหมด
เส้นทางที่ยกเว้น
tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
Chute VIF สามารถประมวลผลเฉพาะโปรโตคอล TCP และ UDP ใช้ตัวเลือกนี้เพื่อข้ามช่วง IP ที่ระบุเพื่ออนุญาตให้ทราฟฟิกทั้งหมดผ่านได้
หมายเหตุ: ตัวเลือกนี้ทำงานเฉพาะกับประเภท Enhanced Mode แบบ VIF (utun) — มันไม่มีผลเมื่อใช้ประเภท PacketTunnel VPN คำขอที่จัดการโดย Chute Proxy Server จะไม่ได้รับผลกระทบ รวม 'skip-proxy' และ 'tun-excluded-routes' เพื่อให้แน่ใจว่าทราฟฟิก HTTP บางอย่างข้าม Chute
ตัวเลือกนี้อาจทำให้เกิดข้อผิดพลาดของระบบ ENOMEM (Cannot allocate memory) ดูเหมือนเป็นข้อบกพร่องในระบบ iOS โปรดอย่าใช้ตัวเลือกนี้หากเป็นไปได้
เส้นทางที่รวม
tun-included-routes = 192.168.1.12/32
โดยค่าเริ่มต้น อินเทอร์เฟซ Chute VIF จะประกาศตัวเองเป็นเส้นทางเริ่มต้น แต่เนื่องจากอินเทอร์เฟซ Wi-Fi มีเส้นทางที่เล็กกว่า ทราฟฟิกบางอย่างอาจไม่ผ่านอินเทอร์เฟซ Chute VIF ใช้ตัวเลือกนี้เพื่อเพิ่มเส้นทางที่เล็กกว่า
หมายเหตุ: ตัวเลือกนี้ทำงานเฉพาะกับประเภท Enhanced Mode แบบ VIF (utun) — มันไม่มีผลเมื่อใช้ประเภท PacketTunnel VPN
การดมกลิ่นโปรโตคอล
sniffing-enabled = true
sniffing-timeout = 100
Chute สามารถตรวจจับโปรโตคอลที่แท้จริงของการเชื่อมต่อโดยการตรวจสอบไบต์เริ่มต้น สิ่งนี้ทำให้กฎเช่น PROTOCOL,HTTPS,Proxy ทำงานได้อย่างถูกต้องแม้สำหรับการเชื่อมต่อขาเข้าที่ไม่ใช่ HTTP
sniffing-enabled (ค่าเริ่มต้น: false)
sniffing-enabled = true
เปิดใช้งานการตรวจจับโปรโตคอลสำหรับการเชื่อมต่อ TCP
sniffing-timeout (ค่าเริ่มต้น: 100ms)
sniffing-timeout = 200
เวลาสูงสุดเป็นมิลลิวินาทีในการรอข้อมูลเริ่มต้นเพื่อกำหนดโปรโตคอล เพิ่มค่านี้หากการตรวจจับโปรโตคอลล้มเหลวบนการเชื่อมต่อที่ช้า
บายพาส TUN
bypass-tun = 192.168.0.0/16, 10.0.0.0/8
คล้ายกับ skip-proxy แต่ทำงานในระดับการจัดเส้นทาง TUN/VIF การเชื่อมต่อไปยังช่วง IP เหล่านี้จะบายพาสอินเทอร์เฟซ TUN ทั้งหมดและผ่านสแตกเครือข่ายของระบบโดยตรง
หมายเหตุ: ตัวเลือกนี้ทำงานเฉพาะกับประเภท Enhanced Mode แบบ VIF (utun) มันไม่มีผลเมื่อใช้ประเภท PacketTunnel VPN
แสดงหน้าข้อผิดพลาดสำหรับ Reject
show-error-page-for-reject = true
เมื่อเปิดใช้งาน Chute ส่งคืนหน้าข้อผิดพลาดที่เป็นมิตรกับผู้ใช้สำหรับคำขอที่ถูกปฏิเสธแทนที่จะเพียงแค่ทิ้งการเชื่อมต่อ
Optimistic DNS
optimistic-dns = true
เมื่อเปิดใช้งาน Chute ส่งคืนผลลัพธ์ DNS ที่แคชไว้ทันทีในขณะที่รีเฟรชระเบียนในพื้นหลัง สิ่งนี้ลดเวลาแฝงในการเชื่อมต่อโดยมีค่าใช้จ่ายคืออาจส่งคืนระเบียน DNS ที่เก่า
อนุญาตการเข้าถึง Wi-Fi
allow-wifi-access = true
เมื่อเปิดใช้งานในบริบทเซลลูลาร์/คิดปริมาณข้อมูล Chute จะยังคงทำงานผ่านการเชื่อมต่อ Wi-Fi นี่เป็นเฉพาะ macOS
การกำหนดค่าแบบจัดการ
Chute รองรับการกำหนดค่าแบบจัดการระยะไกลผ่านส่วนหัว #!MANAGED-CONFIG ที่ด้านบนของไฟล์การกำหนดค่า:
#!MANAGED-CONFIG https://example.com/config.conf interval=86400 strict=false
| พารามิเตอร์ | จำเป็นต้องระบุ | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
<url> |
ใช่ | — | URL เพื่อดึงการกำหนดค่า |
interval |
ไม่ | 86400 (24 ชม.) | ช่วงการอัปเดตเป็นวินาที |
strict |
ไม่ | false | เมื่อเป็น true การกำหนดค่าแบบจัดการไม่สามารถเขียนทับในเครื่องได้ |
Chute จะดึงการกำหนดค่าจาก URL ที่ระบุเป็นระยะและนำไปใช้ การแก้ไขในเครื่องของการกำหนดค่าแบบจัดการแบบ strict จะไม่ถูกบันทึก
Replica / การบันทึกทราฟฟิก
ส่วน [Replica] ควบคุมพฤติกรรมการบันทึกทราฟฟิกและการกรอง:
[Replica]
hide-apple-request = true
hide-udp = true
hide-crashlytics-request = true
use-keyword-filter = false
keyword-filter = example
| คีย์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
hide-apple-request |
Boolean | false | ซ่อนคำขอบริการ Apple จากบันทึกทราฟฟิก |
hide-udp |
Boolean | false | ซ่อนทราฟฟิก UDP จากบันทึกทราฟฟิก |
hide-crashlytics-request |
Boolean | false | ซ่อนคำขอ Crashlytics จากบันทึกทราฟฟิก |
use-keyword-filter |
Boolean | false | เปิดใช้งานการกรองทราฟฟิกตามคำสำคัญ |
keyword-filter |
String | — | คำสำคัญที่คั่นด้วยคอมมาเพื่อกรองระเบียนทราฟฟิก |
คีย์
replicaใน[General](replica = true) เปิดใช้งานการบันทึกทราฟฟิก ใช้ส่วน[Replica]เพื่อกรองสิ่งที่ถูกบันทึก
HTTP Control API และ Web UI
[General]
external-http-controller = 127.0.0.1:9090
external-http-secret = your-secret-token
external-http-ui = true
external-http-cors = false
Chute มี HTTP control API ในตัวและ UI การจัดการบนเว็บ คล้ายกับแดชบอร์ด Clash และ Surge API เปิดเผยสถานะเคอร์เนล ทราฟฟิก การเชื่อมต่อ DNS การควบคุมนโยบาย และการจัดการการกำหนดค่าผ่านปลายทาง REST
external-http-controller (ค่าเริ่มต้น: ปิดใช้งาน)
external-http-controller = 127.0.0.1:9090
ที่อยู่และพอร์ตสำหรับเซิร์ฟเวอร์ควบคุม HTTP ใช้ 127.0.0.1 สำหรับการเข้าถึงเฉพาะในเครื่อง การผูกกับ 0.0.0.0 หรือที่อยู่ที่ไม่ใช่ loopback เปิดใช้งานการเข้าถึงระยะไกลและต้องการ external-http-secret ที่ไม่ว่างเปล่า
external-http-secret (ค่าเริ่มต้น: ว่าง)
external-http-secret = your-secret-token
โทเค็น Bearer ที่ใช้สำหรับการตรวจสอบสิทธิ์ API คำขอต้องรวมส่วนหัว Authorization: Bearer <secret> จำเป็นต้องระบุเมื่อคอนโทรลเลอร์ถูกผูกกับที่อยู่ที่ไม่ใช่ loopback หรือเมื่อต้องการการเข้าถึงระยะไกล
external-http-ui (ค่าเริ่มต้น: true)
external-http-ui = true
เมื่อเปิดใช้งาน Chute ให้บริการ Web UI ในตัวที่ที่อยู่คอนโทรลเลอร์ Web UI มีแดชบอร์ดภาพรวม การจัดการการเชื่อมต่อ การตรวจสอบ DNS การตรวจสอบทราฟฟิก การควบคุมนโยบาย และการแก้ไขการกำหนดค่า ตั้งค่าเป็น false เพื่อให้ API เปิดใช้งานในขณะที่ปิดใช้งาน UI
external-http-cors (ค่าเริ่มต้น: false)
external-http-cors = true
เปิดใช้งานส่วนหัว CORS (Cross-Origin Resource Sharing) ในการตอบกลับ API มีประโยชน์เมื่อ Web UI หรือเครื่องมือบุคคลที่สามต้องการเข้าถึง API จากต้นทางที่แตกต่างกัน
ปลายทาง API:
| เมธอด | ปลายทาง | คำอธิบาย |
|---|---|---|
GET |
/api/status |
สถานะรันไทม์ พอร์ต เวลาทำงาน |
GET |
/api/traffic |
ตัวนับทราฟฟิกส่วนกลางและต่อนโยบาย |
GET |
/api/connections |
การเชื่อมต่อที่ใช้งานปัจจุบัน |
DELETE |
/api/connections/:id |
ปิดการเชื่อมต่อ |
GET |
/api/connections/history |
ระเบียนการเชื่อมต่อในอดีต |
GET |
/api/dns |
ระเบียนแคช DNS |
DELETE |
/api/dns/cache |
ล้างแคช DNS |
GET |
/api/config |
การกำหนดค่าปัจจุบัน |
PUT |
/api/config |
โหลดการกำหนดค่าใหม่ |
GET |
/api/policies |
กลุ่มนโยบายและการเลือกปัจจุบัน |
PUT |
/api/policies/:group |
เปลี่ยนการเลือกกลุ่มนโยบาย |
PUT |
/api/mode |
ตั้งค่าโหมดขาออก |
GET |
/api/features |
สถานะสวิตช์คุณสมบัติ |
PUT |
/api/features/mitm |
สลับ MITM |
PUT |
/api/features/record-traffic |
สลับการบันทึกทราฟฟิก |
หมายเหตุ: คุณสมบัตินี้ถูกปิดใช้งานโดยค่าเริ่มต้น API ใช้การตอบกลับ JSON ด้วยรูปแบบ
{"ok": true, "data": {...}}สำหรับความสำเร็จและ{"ok": false, "error": {"code": "...", "message": "..."}}สำหรับข้อผิดพลาด