บันทึกการอัปเดต Chute Mac
เวอร์ชัน 1.1.5 (233)
คุณสมบัติใหม่:
- เพิ่มการต่อพ่วงพร็อกซี: นโยบายระบุ "พร็อกซีต้นทาง" (
underlying-proxy) เพื่อเชื่อมต่อไปยังเซิร์ฟเวอร์ของตนผ่านพร็อกซีนั้นได้ กลุ่มนโยบายส่งสมาชิกทุกตัวผ่านอัปสตรีมเดียวกันได้ และการตั้งค่า "พร็อกซีด่านหน้า" ใหม่ใน "ทั่วไป" → "ขั้นสูง" (global-underlying-proxy) ทำแบบเดียวกันให้กับทุกโหนดที่ไม่ได้กำหนดอัปสตรีมของตัวเอง การขนส่งทุกแบบยกเว้น Tailscale ต่อพ่วงได้ — โปรโตคอลแบบสตรีมวิ่งบนสตรีมของอัปสตรีม; Hysteria2, TUIC, MASQUE และ XHTTP บน HTTP/3 วิ่งผ่าน UDP relay ของอัปสตรีมด้วยแพ็กเก็ตขนาดคงที่ 1280 ไบต์; อุโมงค์ WireGuard และ AmneziaWG ลอดผ่านอัปสตรีมด้วย MTU ภายใน 1280 ไบต์; เซสชัน SSH และ AnyTLS เปิดผ่านอัปสตรีม — และตัวแก้ไขนโยบายมีช่องนี้ให้กับทุกโปรโตคอลเหล่านั้น สายต่อพ่วงที่วนเป็นวง ซ้อนกันลึกเกิน 16 ชั้น หรือระบุนโยบายที่ไม่มีอยู่จะถูกปฏิเสธ และจะไม่มีวันถูกส่งออกไปโดยตรง - เพิ่มกลุ่มรีเลย์ (
relayแบบเดียวกับใน Clash และ mihomo): สมาชิกถูกต่อพ่วงกันตามลำดับที่เขียนไว้ — ตัวแรกเชื่อมต่อโดยตรง ตัวถัด ๆ ไปเข้าถึงผ่านตัวที่อยู่ก่อนหน้า และตัวสุดท้ายเชื่อมต่อไปยังปลายทาง ตัวแก้ไขกลุ่มมีประเภท Relay ให้เลือก เก็บสมาชิกตามลำดับนั้น และกำหนดให้มีสมาชิกอย่างน้อยสองตัว - เพิ่มกลุ่มสุ่ม (
randomแบบเดียวกับใน Shadowrocket): ทุกการเชื่อมต่อจะสุ่มเลือกสมาชิกหนึ่งตัว โดย UDP จะสุ่มเฉพาะจากสมาชิกที่รับส่ง UDP ได้ กลุ่มสุ่มไม่มีตัวเลือกให้เปลี่ยน จึงไม่ปรากฏในแถบเมนูและแท็บ "พร็อกซี" และตัวแก้ไขกลุ่มจะคงให้เป็นกลุ่มสุ่มไว้ - เพิ่มเชนพร็อกซีในหน้าต่างรายละเอียดการเชื่อมต่อและคอนโซลเว็บ: แสดงทุกฮอป (
Airport/HK-01 → Landing) "คัดลอกรายละเอียด" มีเชนนี้รวมอยู่ด้วย การค้นหาการเชื่อมต่อค้นเจอจากเชนนี้ได้ และไฟล์ HAR ที่ส่งออกก็บันทึกเส้นทางนี้ไว้ - เพิ่ม
policy=ให้ผู้ให้บริการกฎและผู้ให้บริการพร็อกซี: รายการจะถูกดาวน์โหลดผ่านนโยบายนั้น และหากระบุชื่อนโยบายที่ไม่มีอยู่ การดาวน์โหลดจะล้มเหลวแทนที่จะออกไปโดยตรง ตัวแก้ไขบน Mac ยังไม่มีช่องสำหรับตัวเลือกนี้ แต่การบันทึกจะคงค่านี้ไว้ - เพิ่ม "UDP ผ่าน TCP" ในตัวแก้ไข Shadowsocks —
udp-over-tcpเวอร์ชัน 1 หรือ 2 — เพื่อให้ UDP ของพร็อกซีวิ่งอยู่ภายในการเชื่อมต่อ TCP ของตัวเอง และใช้งานได้แม้ผ่านสายต่อพ่วงที่อัปสตรีมไม่รับส่ง UDP - เพิ่ม UDP ให้ VMess และ VLESS: เมื่อก่อน UDP ที่ส่งไปยังโปรโตคอลทั้งสองจะถูกปฏิเสธทันที (โดยเป็นไปตาม
udp-policy-not-supported-behaviourซึ่งค่าเริ่มต้นคือ REJECT) ตอนนี้ UDP จะวิ่งผ่านการเชื่อมต่อแยกหนึ่งเส้นต่อหนึ่งปลายทาง เหมือนใน mihomo, sing-box และ Shadowrocket - เพิ่ม jq ใน Body Rewrite:
http-request-jqและhttp-response-jqรันโปรแกรม jq จริงกับเนื้อหา JSON และตัวแก้ไขมีประเภท "jq ของคำขอ" และ "jq ของการตอบกลับ" พร้อมช่อง "โปรแกรม JQ"; โปรแกรมที่ไม่ถูกต้องจะถูกรายงานและกฎนั้นจะถูกข้าม ส่วนเนื้อหาที่ไม่ใช่ JSON โปรแกรมที่ทำงานล้มเหลว หรือผลลัพธ์ที่ว่างเปล่า จะปล่อยเนื้อหาไว้ตามเดิมทั้งหมด - เพิ่มสคริปต์ทั่วไป: สคริปต์
type=genericไม่มีตัวกระตุ้นอัตโนมัติและทำงานเฉพาะเมื่อสั่งเท่านั้น — จากปุ่ม "เรียกใช้" ในตัวแก้ไขสคริปต์ หรือผ่านGET /api/scriptsและPOST /api/scripts/runนอกจากนี้ตัวแก้ไขสคริปต์ยังมีช่อง "ชื่อเหตุการณ์" เพิ่มขึ้น: สคริปต์เหตุการณ์จะได้รับnetwork-changed,engine-startedและprofile-reloadedส่วนสคริปต์ที่ระบุเหตุการณ์อื่นจะมีข้อความแจ้งในบันทึกและไม่มีวันทำงาน - เพิ่มพูล DNS เฉพาะทาง:
direct-dns-serverแปลงชื่อโดเมนที่กฎส่งไป DIRECT,proxy-dns-serverแปลงชื่อโฮสต์ของเซิร์ฟเวอร์พร็อกซีของคุณเอง และfallback-dns-serverจะถูกถามเมื่อเซิร์ฟเวอร์หลักไม่ให้คำตอบ; แต่ละพูลใช้เซิร์ฟเวอร์ส่วนกลางเป็นตัวสำรอง และการตั้งค่า DNS มีช่องสำหรับแต่ละพูล - เพิ่ม
#proxy/#proxy=<policy>ให้อัปสตรีม DNS รวมถึง DoQ และ DoH3: ตัวแปลงชื่อแบบ QUIC จะวิ่งบน UDP relay ของนโยบาย นโยบายที่รับส่ง UDP ไม่ได้จะข้ามเซิร์ฟเวอร์นั้นแทนที่จะถามเซิร์ฟเวอร์โดยตรง ตัวแปลงชื่อแบบธรรมดาที่ส่งผ่านนโยบายจะเปลี่ยนไปใช้ DNS over TCP และรองรับอัปสตรีมแบบtcp://ธรรมดาสำหรับเส้นทางที่ทิ้ง DNS over UDP - เพิ่ม
encrypted-dns-follow-outbound-mode,allow-dns-svcb— คำขอ HTTPS และ SVCB จะได้คำตอบว่างหากไม่ได้เปิดตัวเลือกนี้ — และตัวเลือกรายเซิร์ฟเวอร์#h3,#skip-cert-verify,#disable-ipv4,#disable-ipv6และ#disable-qtype= - เพิ่มความสามารถให้ "การกำหนด DNS เฉพาะที่": รายการ
[Host]เก็บเซิร์ฟเวอร์ทุกตัวที่ระบุไว้และสอบถามทุกตัวพร้อมกัน แมปโดเมนเดียวไปยังหลายที่อยู่ ใช้ชุดกฎเป็นคีย์ (RULE-SET:<url>) รันสคริปต์type=dnsสำหรับโดเมนนั้น (script:<name>) และรองรับssid:<name>สำหรับการแมปเฉพาะเครือข่าย; ตัวแก้ไขผูกสคริปต์ได้ และเก็บที่อยู่และเซิร์ฟเวอร์ทุกตัวของรายการไว้ - เพิ่ม "อ่านไฟล์ hosts ของระบบ" ในส่วน "ทั่วไป" (
read-etc-hostsซึ่งนำเข้าจากuse-system-hostsของ mihomo): DNS ของ Chute จะตอบชื่อที่อยู่ใน/etc/hosts - เพิ่มการแจ้งเตือนจากกฎ: กฎใดก็ได้รวมถึง FINAL รองรับ
notification-text=และnotification-interval=และจะแสดงการแจ้งเตือนเมื่อจับคู่ได้ โดยแต่ละกฎแจ้งเตือนได้ไม่เกินหนึ่งครั้งต่อช่วงเวลาที่กำหนด; ตัวแก้ไขกฎตั้งค่าได้ทั้งสองอย่าง และการแจ้งเตือนเป็นไปตามสวิตช์การแจ้งเตือนของ Chute - เพิ่ม
FINAL,<policy>,dns-failed: เมื่อแปลงชื่อไม่ได้ การเชื่อมต่อจะถูกเปิดบนนโยบาย FINAL โดยให้แปลงชื่อที่ฝั่งรีโมต แทนที่จะถูกปิด; ตัวแก้ไขกฎมีตัวเลือกนี้ให้ - เพิ่มตระกูล REJECT เป็นนโยบายเต็มรูปแบบ — REJECT-DROP, REJECT-NO-DROP, REJECT-TINYGIF, REJECT-IMG, REJECT-DICT, REJECT-ARRAY, REJECT-200 และ REJECT-VIDEO — แต่ละตัวตอบคำขอ HTTP ด้วยเนื้อหาตามที่เอกสารระบุ และโฮสต์ที่ถูกปฏิเสธเกิน 50 ครั้งใน 30 วินาทีจะถูกยกระดับเป็น REJECT-DROP; เมนูนโยบายในตัวแก้ไขกฎแสดงนโยบายเหล่านี้พร้อมกับ PROXY
- เพิ่มชุดกฎแบบอินไลน์: ส่วน
[Ruleset Name]อ้างอิงได้ด้วยRULE-SET,<name>รวมถึงการอ้างอิงระหว่างกันเอง — ลึกได้ถึงแปดชั้น และปฏิเสธการวนซ้ำ - เพิ่มตระกูล SSID: การแทนที่ DNS ใน
[SSID Setting]มีผลแยกตามเครือข่าย — ชื่อ,BSSID:,TYPE:WIFI/CELLULAR/WIRED(บน Mac คือ Ethernet),ROUTER:, ชื่อในเครื่องหมายคำพูดและชื่อแบบไวลด์การ์ด — และล้างแคชของตัวแปลงชื่อเดิมเมื่อเปลี่ยนเครือข่าย; กลุ่มนโยบายssidและsubnetเลือกสมาชิกตามเครือข่ายที่ใช้อยู่จริง และกฎ SUBNET จับคู่กับเครือข่ายนั้น ตอนนี้suspend=trueมีผลบน Mac แล้ว: บนเครือข่ายนั้น Chute จะปิดพร็อกซีระบบและถอดโหมดขั้นสูงออก แถบเมนูแสดงสถานะนี้ให้เห็น มีการแจ้งเตือนทั้งตอนเริ่มและตอนสิ้นสุดการระงับ และการสลับพร็อกซีด้วยตนเองจะยุติการระงับนั้น ตัวแก้ไขกลุ่มและตัวแก้ไข [SSID Setting] มีเมนู "จับคู่ตาม" (SSID, BSSID, TYPE, ROUTER) เพิ่มขึ้น เก็บรายการตามลำดับที่เขียนไว้ และแสดงการแทนที่ DNS ของแต่ละรายการ การเปลี่ยนเครือข่ายตอนนี้ไปถึงเอนจินทันทีที่เกิดขึ้น แทนที่จะรอรอบทุก 60 วินาที และ Chute จะขอสิทธิ์ตำแหน่งที่ตั้งหนึ่งครั้งเมื่อการกำหนดค่าระบุชื่อเครือข่าย Wi-Fi ซึ่ง macOS 14 ขึ้นไปกำหนดให้ต้องมีก่อนจึงจะเปิดเผยชื่อเครือข่าย - เพิ่มช่วงและการเปรียบเทียบของ DEST-PORT, SRC-PORT และ IN-PORT (
80-81,>=50000, รายการแบบ/), ค่าของHOSTNAME-TYPEได้แก่IPv4,IPv6,DOMAINและSIMPLEและกฎ IN-TYPE และ IN-USER ที่ใช้งานได้จริง ซึ่งตอนนี้จับคู่กับทราฟฟิกจริง ไม่ใช่แค่ในการทดลองรัน - เพิ่มตัวควบคุม MitM: ถอดรหัส HTTP/2 (
h2), บล็อก QUIC ไปยังโฮสต์ที่ถอดรหัสเพื่อไม่ให้ HTTP/3 เลี่ยงการถอดรหัส (auto-quic-block), ยกเว้นโฮสต์จากการถอดรหัส และจับคู่คีย์เวิร์ดของ Host List อย่าง<ipv4-address>,<ipv6-address>และ<simple-hostname>; สามอย่างแรกอยู่ในการตั้งค่า MitM - เพิ่มการกำหนดเส้นทาง QUIC ตามโดเมนในโหมดขั้นสูง: เมื่อเปิดการดมกลิ่นโปรโตคอล ชื่อจะถูกอ่านจาก QUIC Initial ของไคลเอนต์ ClientHello ที่ถูกแบ่งอยู่ในหลาย Initial จะถูกประกอบกลับ และโฟลว์จะถูกพักไว้จนกว่าจะรู้ชื่อ กฎ DOMAIN จึงกำหนดเส้นทางการเชื่อมต่อ HTTP/3 ที่ทำไปยังที่อยู่ IP ตรง ๆ ได้
- เพิ่ม
icmp-auto-replyซึ่งเปิดเป็นค่าเริ่มต้น: ในโหมดขั้นสูง ping จะได้รับการตอบกลับจากในเครื่อง ทั้งบน IPv4 และ IPv6 แทนที่จะหมดเวลา - เพิ่มความสามารถในการนำเข้า: กฎ GEOSITE และกฎ GEOIP แบบหมวดหมู่ของ mihomo ขยายเป็นชุดกฎที่ใช้งานได้จริง ผู้ให้บริการ
.mrsและ.srsถูกชี้ไปยังรายการต้นฉบับที่เผยแพร่ไว้ กลุ่มpolicy-pathสร้างผู้ให้บริการพร้อมupdate-intervalตัวกรอง และรายการ include,SUB-RULEของ mihomo ขยายเป็นกฎ AND,detourของ sing-box และdialer-proxyของ mihomo นำเข้าเป็นการต่อพ่วง และallowed-ipsของ WireGuard ถูกคอมไพล์และบังคับใช้ — ตัวแก้ไข WireGuard มีช่อง "IP ที่อนุญาต" เพิ่มขึ้น — อุโมงค์แบบแยกเส้นทางจึงไม่กลืนทุกปลายทางอีกต่อไป - เพิ่มไดเรกทีฟการกำหนดค่าและการขนส่ง:
#!includeและinclude =ดึงไฟล์อื่นเข้ามา,#!MACOS-ONLY,#!IOS-ONLYและ#!TVOS-ONLYจำกัดบรรทัดไว้สำหรับแพลตฟอร์มเดียว และทั้งสองแบบยังคงอยู่หลังการบันทึก; Shadowsocks รองรับการขนส่ง WebSocket ของ v2ray-plugin; และ id ของ VLESS หรือ VMess ที่ไม่ใช่ UUID จะถูกแมปเป็น UUID ด้วย UUIDv5 เหมือนที่ Xray และ mihomo ทำ แทนที่จะทำให้เอนจินล่ม - เพิ่ม "อินเทอร์เฟซขาออก" และ "อนุญาตอินเทอร์เฟซอื่น" ในตัวแก้ไขนโยบาย (
interface=,allow-other-interface=) ซึ่งตรึงการเชื่อมต่อ TCP ของนโยบายไว้กับอินเทอร์เฟซเครือข่ายเดียว ตัวเลือกทั้งสองมีผลเมื่อใช้network-framework = false; ภายใต้ Network.framework ซึ่งเป็นค่าเริ่มต้นของ macOS ยังไม่มีการนำไปใช้ - เพิ่มความสามารถของ API สคริปต์:
$httpAPIเรียกเส้นทางของเอนจินเองได้โดยไม่ต้องเปิดซ็อกเก็ต,$httpClientทำตามpolicyที่ระบุ และ$event.nameรายงานเหตุการณ์ที่เกิดขึ้นจริง - เพิ่มตัวเลือกการเขียนใหม่: Map Local รองรับ
data-type,status-codeและส่วนหัว, Header Rewrite รองรับheader-replace-regex, URL Rewrite รองรับreject-arrayและreject-tinygifและ Body Rewrite บรรทัดเดียวมีคู่ regex/การแทนที่ได้หลายคู่; ตัวแก้ไขมีประเภทและช่องใหม่เหล่านี้ให้ - เพิ่ม "เปิดคอนโซลเว็บ" และ "คัดลอกโทเคนคอนโซลเว็บ" ในแถบเมนู ซึ่งแสดงเมื่อการกำหนดค่าเปิดให้บริการคอนโซล: "เปิด" จะลงชื่อเข้าใช้ด้วยโทเคน "คัดลอก" มีไว้สำหรับเบราว์เซอร์บนเครื่องอื่น และรายการที่ถูกปิดใช้งานจะบอกเหตุผลเมื่อตัวรับฟังไม่ได้ทำงานหรือ
external-http-uiปิดอยู่ คอนโซลได้รับแท็บ "ปัจจุบัน" และ "ประวัติ", มุมมองตรวจสอบ (กฎที่ตรง แหล่งที่มาของกฎ นโยบาย อะแดปเตอร์ แหล่งที่มาของ DNS โปรเซส เหตุผลที่ปิด เนื้อหาคำขอและการตอบกลับ), หน้า "กฎ" ที่แสดงว่ากฎการเขียนใหม่ใดถูกเรียกใช้แล้ว, หน้า "การวินิจฉัย" และรายการชุดกฎที่โหลดไม่สำเร็จ และตอนนี้รองรับครบทั้งเก้าภาษา - เพิ่มปลายทางของ HTTP Control API:
/api/health,/api/events,/api/tailscale, การตรวจสอบภายใต้/api/diagnostics/,/api/connections/export?format=har,/api/diagnostics/bundle,/api/scripts, การจัดการกฎการเขียนใหม่และโฮสต์ MitM ภายใต้/api/rewritesและ/api/mitm/hosts,POST /api/rules/matchสำหรับทดลองจับคู่คำขอกับตารางกฎ,GET|PUT /api/loglevelสำหรับเปลี่ยนระดับบันทึกโดยไม่ต้องโหลดใหม่ และPOST /api/config/validateสำหรับตรวจสอบโปรไฟล์โดยไม่นำไปใช้ - เพิ่ม "บันทึกชุดข้อมูลวินิจฉัย…" ในแถบเมนู: ไฟล์เก็บถาวรที่ลบข้อมูลอ่อนไหวแล้ว ประกอบด้วยการกำหนดค่า สถานะสุขภาพ เหตุการณ์ของรอบนี้ กฎและนโยบายที่โหลดไว้ DNS ทราฟฟิก และชาร์ดบันทึก ซึ่งสร้างภายใน Chute โดยไม่ต้องใช้ control API — และยังมีให้ใช้หลังจาก Chute หยุดทำงานแล้วด้วย สำหรับกรณีที่สิ่งที่คุณต้องการคือบันทึกของรอบล่าสุด
- เพิ่มการส่งออก HAR ที่เอนจินสร้างจากเฟรมที่บันทึกไว้: รหัสสถานะ การประทับเวลา และเวลาที่ใช้เป็นค่าจริง และแต่ละรายการมีนโยบายที่เลือก กฎที่ตรง และการเขียนใหม่ที่เกิดขึ้นอยู่ใต้
_kl; ใช้ได้ในคอนโซลเว็บและที่/api/connections/export?format=har - เพิ่มการระบุที่มาของการเขียนใหม่ในหน้าต่างรายละเอียดการเชื่อมต่อ: แสดง URL Rewrite, Header Rewrite, Body Rewrite หรือการตอบกลับจำลองตัวแรกที่แก้ไขคำขอ และจำนวนที่ถูกเรียกใช้ทั้งหมด "คัดลอกรายละเอียด" มีทุกรายการรวมอยู่ด้วย และ "คำขอและประวัติ" จะเปิดคอนโซลเว็บเพื่อดูเนื้อหาและการเชื่อมต่อที่ปิดไปแล้ว
- เพิ่มการแจ้งเตือน "ที่อยู่เครือข่ายเปลี่ยนแปลง" แทน "IP ขาออกเปลี่ยนแปลง": แสดง IPv4 และ IPv6 ของ Mac เครื่องนี้เอง บรรทัดละหนึ่งตระกูล และระบุ IPv4 ที่อยู่หลัง NAT; มีเพียง IPv4 หลัง NAT เท่านั้นที่ต้องส่งคำขอ STUN หนึ่งครั้ง
- เพิ่มการแจ้งเตือน "เครือข่ายไม่ส่งข้อมูล" พร้อมสวิตช์ของตัวเองซึ่งเปิดเป็นค่าเริ่มต้น: รายงานลิงก์ที่รับการเชื่อมต่อได้แต่ไม่มีข้อมูลไหล และจะเงียบไว้ขณะที่ macOS เองรายงานว่าเครือข่ายเข้าถึงไม่ได้
- เพิ่มภาษาฝรั่งเศสเป็นภาษาในตัว และธงข้างแต่ละภาษาในเมนูภาษา
การปรับปรุง:
- HTTP Control API จะไม่เปิดให้เข้าถึงโดยไม่ยืนยันตัวตนอีกต่อไปเมื่อการกำหนดค่าไม่ได้ระบุ
external-http-secret: เอนจินจะสร้างโทเคน ซึ่งคัดลอกได้จากแถบเมนู;external-http-secret = noneจะคงการเข้าถึงแบบไม่ระบุตัวตนไว้เฉพาะบนที่อยู่ loopback และที่อยู่รับฟังแบบไวลด์การ์ดจะไม่ถูกถือเป็น loopback อีกต่อไป - การจับคู่กฎกับรายการขนาดใหญ่เร็วขึ้นมาก: ตารางกฎที่มีแต่กฎโดเมนจะจับคู่ผ่านแผนแบบแฮช และเนื้อหาของ RULE-SET และ DOMAIN-SET ที่ไม่ได้โหลดล่วงหน้าจะถูกทำดัชนีเมื่อดาวน์โหลด แทนการอ่านใหม่ทุกการเชื่อมต่อ
- โฟลว์ UDP จับคู่เพียงครั้งเดียว: ผลการตัดสินของโฟลว์จะถูกจำไว้ 60 วินาที ดาต้าแกรมถัดไปจึงข้ามการจับคู่ทั้งสองรอบและการสอบถาม DNS ระหว่างนั้น
- ฟื้นตัวหลังเปลี่ยนเครือข่ายได้ดีขึ้น: อุโมงค์ที่ที่อยู่ต้นทางฝั่งอัปสตรีมไม่มีอยู่บนอินเทอร์เฟซใดแล้วจะถูกปิดทันที แทนที่จะปล่อยให้แอปค้างจนหมดเวลาว่าง
- ผู้ให้บริการกฎดาวน์โหลดทีละรายการต่อกันไป แทนที่จะถูกปฏิเสธเมื่อคิวดาวน์โหลดเต็ม และการแปลงใช้หน่วยความจำน้อยลงมาก
- บันทึกเขียนเป็นชาร์ดขนาด 8 MB (สูงสุดแปดชาร์ดต่อรอบ ลบชาร์ดเก่าสุดก่อน) แต่ละชาร์ดเริ่มด้วยส่วนหัวที่ระบุรอบ และแท็บ "บันทึก" ติดตามทุกชาร์ดตามลำดับ; เอนจินยังบันทึกด้วยว่ารอบก่อนหน้าหยุดตามปกติหรือถูกบังคับปิด — ในส่วนหัวของบันทึก
/api/statusและชุดข้อมูลวินิจฉัย — และที่loglevel = infoโฟลว์ขนาดใหญ่ที่ส่งข้อมูลอย่างน้อย 1 MiB จะบันทึกหนึ่งบรรทัดตอนปิด บอกว่ารออยู่ที่ฝั่งใด - ตัวแก้ไขแบบมีโครงสร้างทุกตัวเก็บสิ่งที่ไม่ได้แสดงไว้แล้ว: กลุ่มนโยบายคงผู้ให้บริการ,
policy-path,include-*, ตัวกรอง และพารามิเตอร์ที่ไม่รู้จักไว้ และเว้นurl=/timeout=ที่เป็นค่าเริ่มต้นไว้ว่าง กลุ่มจึงทำตามproxy-test-url/test-timeout; กฎคงตัวเลือกอื่น ๆ ของตนไว้; รายการ[Host]เก็บทุกที่อยู่; บรรทัด Body Rewrite เก็บคู่ที่ตามมาไว้; สคริปต์เก็บคีย์ที่ฟอร์มไม่ได้แสดง; ส่วน WireGuard และ AmneziaWG ก็เก็บคีย์ของตนไว้ รวมถึงพารามิเตอร์การพรางข้อมูลของ AmneziaWG — การเปิดแล้วบันทึกจึงไม่เขียนการกำหนดค่าใหม่อีกต่อไป - "กฎที่มีผล" แสดงตารางที่ตัวจับคู่ไล่ตรวจจริง — กฎในส่วน "ด้านหน้า" โมดูล โปรไฟล์ และ FINAL — และ "ทดสอบกฎ" ใช้การทดลองรันของเอนจินแทนการอ่านจากแคช
- การนำเข้าโปรไฟล์ที่เผยแพร่ไม่ทำให้การกำหนดเส้นทางสูญหายอีกต่อไป: รูปแบบจะถูกตัดสินจากสิ่งที่ที่อยู่นั้นส่งมาจริง การสมัครสมาชิก
.confที่ส่ง Clash มาจึงถูกแปลง;dns-serverรองรับ URL ของ DNS แบบเข้ารหัส บรรทัดตัวรับฟังรองรับรหัสผ่าน สมาชิกกลุ่มที่อยู่ในเครื่องหมายคำพูดไม่หายไป สมาชิกPASSถูกตัดออกแทนที่จะกลายเป็น REJECT และโปรโตคอลหรือประเภทกลุ่มที่ไม่รองรับจะแสดงคำเตือนแทนที่จะทำให้ทั้งกลุ่มใช้งานไม่ได้; โปรไฟล์ที่แปลงแล้วจะถูกบันทึกเป็น.confและชื่อที่ซ้ำกับที่มีอยู่จะถูกเติมหมายเลข - การทดสอบความหน่วงใช้เป้าหมายที่ถูกต้อง:
test-urlและtest-timeoutของกลุ่ม,proxy-test-urlของโปรไฟล์ และtest-urlกับexpected-statusของสมาชิกเอง ล้วนถูกนำมาใช้ และโหนดที่ต่อพ่วงอยู่จะถูกทดสอบผ่านสายต่อพ่วงของมันแทนที่จะทดสอบโดยตรง - กลุ่มนโยบายที่ซ่อนไว้จะไม่ปรากฏในแถบเมนูและแท็บ "พร็อกซี" เว้นแต่กำลังถูกใช้งาน; เมื่อ control API ชี้ "สากล" ไปยังกลุ่ม select แถบเมนูจะแสดงกลุ่มนั้นและทำเครื่องหมายเลือกไว้; และการโหลดโปรไฟล์ใหม่จะล้างกฎที่เพิ่มจากคอนโซลเว็บขณะทำงาน
- ShadowTLS ตรวจสอบใบรับรองของเว็บไซต์บังหน้าแล้วเมื่อมีการเขียน
sni=เหมือนที่ sing-box ทำ;skip-cert-verify=trueจะปิดการตรวจสอบนี้ และหากไม่มีsni=การตรวจสอบจะถูกข้ามพร้อมคำเตือน - PROCESS-NAME ที่เขียนเป็นพาธจะจับคู่กับพาธนั้นหรือพรีฟิกซ์ของบันเดิล ตามที่คู่มือของ Surge อนุญาต และกฎ PROCESS-NAME-WILDCARD และ PROCESS-PATH-WILDCARD ของ mihomo นำเข้าได้แทนที่จะถูกทิ้ง
- การอัปโหลดขนาดใหญ่ผ่านการเชื่อมต่อ Network.framework ไม่ค้างข้อมูลไว้ในหน่วยความจำจนกว่าเธรดหลักจะว่างมาปล่อยคืนอีกต่อไป
- ช่องทำเครื่องหมาย "อนุญาตการเข้าถึงผ่าน Wi-Fi" บอกแล้วว่าทำอะไร — ขณะที่เปิดอยู่ ตัวรับฟังพร็อกซีท้องถิ่นทั้งสองจะรับการเชื่อมต่อบนทุกอินเทอร์เฟซ — และระหว่างนั้นช่องอินเทอร์เฟซจะแสดง 0.0.0.0 โดยเก็บที่อยู่ของคุณไว้ใช้เมื่อปิดตัวเลือกนี้
- ประกาศของโหมดขั้นสูงอธิบายสิ่งที่เอนจินทำจริงแล้ว: Chute ตั้งการแทนที่ DNS เองและคืนค่าเมื่อหยุด UDP ถูกส่งต่อผ่านนโยบายที่ตรงกัน และ ping ได้รับการตอบกลับจากในเครื่อง
- อัปเดตตัวอัปเดตในตัวเป็น Sparkle 2.9.6 ซึ่งรวมการแก้ไขด้านความปลอดภัยของรุ่น 2.x; การตรวจหาอัปเดตตอนเปิดแอปจะทำงานเฉพาะเมื่อเปิดการตรวจหาอัปเดตอัตโนมัติไว้เท่านั้น
- ภาษาญี่ปุ่น เกาหลี เยอรมัน ไทย และรัสเซีย ไม่แสดงข้อความภาษาอังกฤษในราว 850 สตริงอีกต่อไป คำขออนุมัติของส่วนขยายเครือข่ายได้รับการแปลแทนที่จะแสดงข้อความตัวยึดตำแหน่ง และทุกภาษาใช้คำศัพท์เดียวกับแอป iOS และคู่มือนี้
การแก้ไขข้อบกพร่อง:
- แก้ไขปัญหา "เส้นทางที่รวม VIF" (
tun-included-routes) ไม่มีผล: ตอนนี้ไม่ว่าจะใช้โหมดขั้นสูงประเภทใด — Helper utun หรือ PacketTunnel — CIDR ที่ระบุจะถูกเพิ่มเข้าในเส้นทางของอุโมงค์ ช่วงที่อยู่ที่ปกติจะถูกซับเน็ตของอินเทอร์เฟซกายภาพเองหรือ VPN อื่นแย่งไปจึงวิ่งผ่าน Chute แทน รายการที่จะทำให้อุโมงค์ถูกตัดขาด — loopback, ซับเน็ตของอุโมงค์เอง, link-local, multicast, broadcast, เกตเวย์เริ่มต้นปัจจุบัน, ความยาวพรีฟิกซ์ 0 — จะถูกปฏิเสธและมีข้อความในบันทึก และช่วงที่อยู่ส่วนตัวใช้ได้แต่มีคำเตือน ตัวช่วยที่มีสิทธิ์พิเศษได้รับการอัปเดตสำหรับการแก้ไขนี้ macOS จึงจะขอให้อนุมัติหนึ่งครั้ง - แก้ไข MitM ในโหมดขั้นสูง: โฮสต์ที่ตรงกับกฎ MitM ค้างจนหมดเวลา ทำให้การเขียนใหม่ของ HTTPS การตอบกลับจำลอง และการจับข้อมูลที่ถอดรหัสไม่เคยมีผลกับทราฟฟิกของแอปเลย; และคำขอหรือการตอบกลับที่ถอดรหัสซึ่งมีขนาดเกิน 64 KB ค้าง แม้จะผ่านพร็อกซีระบบก็ตาม
- แก้ไข
allow-wifi-accessที่ไม่มีผล: ตัวรับฟัง HTTP และ SOCKS5 ท้องถิ่นยังคงอยู่บน loopback ทำให้อุปกรณ์อื่นบนเครือข่ายเข้าถึงไม่ได้; ตอนนี้ตัวเลือกนี้ (และallow-lanของ sing-box เมื่อนำเข้า) จะขยายตัวรับฟังทั้งสอง และเมื่อปิดจะผูกใหม่ - แก้ไขการเขียนใหม่: Header Rewrite ฝั่งการตอบกลับผ่าน MitM HTTP/1.1 ถูกบันทึกว่านำไปใช้แล้วแต่ไคลเอนต์ยังได้รับส่วนหัวเดิม และบน HTTP ธรรมดาจับคู่เฉพาะพาธ ทำให้รูปแบบที่เขียนสำหรับ URL เต็มไม่เคยจับคู่ได้; การตอบกลับจำลองสร้างการตอบกลับจากส่วนหัวคำขอ;
status-code=ของ Map Local ถูกละเลยบน HTTP/2; และการตอบกลับ HTTP/1.1 ที่จัดเรียงใหม่ถูกส่งออกไปโดยไม่มีวลีเหตุผล - แก้ไขการจับคู่กฎ: กฎ IP ที่มี
no-resolveข้ามการเชื่อมต่อไปยัง IP ตรง ๆ เมื่อการดมกลิ่นให้ชื่อของ IP นั้นมาแล้ว; บรรทัดเนื้อหาของ RULE-SET ที่มีตัวเลือกตามหลังเนื้อหาถูกทิ้ง;RULE-SET,<name>,<policy>,no-resolveสูญเสียno-resolve; HOSTNAME-TYPE ไม่เคยจับคู่; RULE-SET และ DOMAIN-SET ภายใน AND / OR / NOT ประเมินเป็นเท็จเสมอ และ SCRIPT ประเมินเป็นจริงเสมอ; GEOIP และ IP-ASNUNKNOWNไม่เคยจับคู่; โดเมนที่กฎตรรกะกำหนดเส้นทางไปพร็อกซียังถูกแปลงชื่อจริง; และ IPv6 ในวงเล็บเหลี่ยมในส่วนหัว Host ถูกอ่านเป็นชื่อโฮสต์ - แก้ไข
PROTOCOL,TCPและPROTOCOL,UDPที่ไม่เคยจับคู่ วิธีปกติในการบล็อก QUIC ด้วยกฎ AND จึงใช้ได้; ตอนนี้PROTOCOL,HTTPยังจับคู่คำขอธรรมดาที่ผ่านพร็อกซี HTTP ท้องถิ่นด้วย ซึ่งเป็นช่องทางที่ทราฟฟิกจากพร็อกซีระบบเข้ามา - แก้ไข
block-quicที่ยอมรับค่าของ Surge เพียงค่าเดียว โดยค่าอื่นทั้งหมดหมายถึงไม่บล็อก QUIC เลย - แก้ไขกฎ IP-ASN ที่ไม่เคยทำงาน: ฐานข้อมูล GeoLite2 ใน
~/Chute/Contentถูกละเลย และ Chute ไม่มีฐานข้อมูล ASN ของตัวเองมาให้; ตอนนี้มีมาให้แล้ว - แก้ไขบรรทัด PROCESS-NAME และ PROCESS-PATH ภายในชุดกฎถูกแปลงเป็นตัวพิมพ์เล็ก ทำให้กฎที่ระบุ
Chromeไม่เคยจับคู่ได้ - แก้ไขการเริ่ม Chute ขณะที่กลุ่ม select ตั้งค่าไว้ที่สมาชิกอื่นที่ไม่ใช่ตัวแรก ซึ่งส่งการแจ้งเตือน "กลุ่มนโยบายถูกสลับ" และการสร้างใหม่ในภายหลังทำให้เกิดคำเตือนการแกว่ง; ตอนนี้กลุ่มที่ไม่มีตัวเลือกที่จำไว้จะทำตาม
default=ในโปรไฟล์ - แก้ไข API สคริปต์:
$klne.getPolicyGroups()และselectPolicy()ไม่โยนข้อผิดพลาดในการเรียกใช้ครั้งแรกอีกต่อไป,reloadConfiguration()โหลดใหม่จริง,getActiveConnections()รายงานโฮสต์ พอร์ต และ id จริง,closeConnection()ปิดจริง,startURLTest()เริ่มการทดสอบจริง และสคริปต์ before-send ที่มีrequires-bodyได้รับเนื้อหา - แก้ไข
[Replica] hide-crashlytics-requestที่ถูกแยกวิเคราะห์แต่ไม่เคยนำไปใช้,keyword-filterที่เปรียบเทียบกับชื่อโฮสต์ทั้งชื่อ แทนที่จะตรวจว่าชื่อโฮสต์มีคีย์เวิร์ดนั้นอยู่หรือไม่,external-http-controller = *:9090และ:::9090ที่ถูกปฏิเสธ และoptimistic-dns = falseที่ยังให้ระเบียนที่หมดอายุแล้ว - แก้ไข XHTTP ที่ขัดข้องภายใต้โหลดสูงและค้างหลังการเขียนครั้งแรก ทำให้ TLS handshake ที่ผ่าน XHTTP ไม่เคยเสร็จ และแก้ padding ของ stream-up บน HTTP/1.1
- แก้ไข Hysteria2 ที่ทิ้งดาต้าแกรม UDP ทุกตัวที่ใหญ่เกินกว่าจะใส่ในเฟรม QUIC DATAGRAM เดียว ซึ่งทำให้ HTTP/3 ของแอปต้องถอยกลับไปใช้ TCP และกลุ่ม url-test ที่มีสมาชิก Hysteria2 ขัดข้อง
- แก้ไขการเริ่มโหมดขั้นสูงใหม่แล้วใช้พอร์ตโลคัลแรกและหมายเลขลำดับ TCP ซ้ำกับรอบก่อนหน้า ซึ่งเพียร์ WireGuard ที่ยังถือการเชื่อมต่อเดิมอยู่ตอบกลับด้วยการรีเซ็ต
- แก้ไข WireGuard ที่ขัดข้องเมื่อถูกเริ่มจากสองที่พร้อมกัน, Shadowsocks 2022 ที่สูญเสียส่วนท้ายของการตอบกลับ, SSH ที่ค้าง 30 วินาทีและใช้ CPU เต็มหนึ่งคอร์ขณะว่าง และการเชื่อมต่อ REALITY / uTLS ที่ส่งต่อข้อมูลดาวน์โหลดที่เสียหายหลังได้รับระเบียนที่ผิดพลาด แทนที่จะปิดการเชื่อมต่อ
- แก้ไข Tailscale: บน Mac ที่มีสองอินเทอร์เฟซอยู่ในเครือข่ายเดียวกัน handshake ที่ได้รับคำตอบจากอีกที่อยู่หนึ่งไม่เคยเสร็จสมบูรณ์ และการเชื่อมต่อค้างหลังจาก Tailscale หยุดทำงาน
- แก้ไขตัวรับฟังท้องถิ่นทั้งสองที่ไม่กลับมาทำงานหลังการโหลดใหม่ — ตอนนี้ตัวรับฟังที่หยุดโดยไม่คาดคิดจะถูกเริ่มใหม่ — พร็อกซี HTTP ที่ไม่ตอบคำขอที่ไม่ได้ยืนยันตัวตนด้วย 407 และ
Proxy-Authenticate, deadlock ใน XTLS แบบดั้งเดิม และการขนส่ง WebSocket ที่ละเลย Ping และ Close - แก้ไขการขัดข้องเมื่อเอนจินเริ่มทำงานบน macOS 10.15
- แก้ไขค่าของสคริปต์ที่มีเครื่องหมายจุลภาค — เช่น cron อย่าง
0 8,20 * * *หรืออาร์กิวเมนต์ JSON — ถูกตัดที่จุลภาคแรกเมื่อบันทึกจากตัวแก้ไขสคริปต์ และสมาชิกกลุ่มนโยบายที่ชื่อมีช่องว่างหรือจุลภาคถูกบันทึกโดยไม่มีเครื่องหมายคำพูด - การปรับปรุงความเสถียรและประสิทธิภาพต่าง ๆ
เวอร์ชัน 1.1.3 (230)
คุณสมบัติใหม่:
- เพิ่มตัวช่วยตั้งค่า: เมื่อเปิดใช้ครั้งแรกจะพาคุณจากศูนย์ไปจนได้การกำหนดค่าที่ใช้งานได้ — นำเข้าการสมัครสมาชิกหรือลิงก์แชร์ กรอกข้อมูลเซิร์ฟเวอร์เอง หรือชี้ไปยังไฟล์การกำหนดค่าที่คุณมีอยู่แล้ว — จากนั้นติดตั้ง helper ที่มีสิทธิพิเศษ ใช้โหมดรับทราฟฟิกที่คุณเลือก และตรวจสอบการเชื่อมต่อก่อนจบขั้นตอน สามารถเปิดซ้ำได้ทุกเมื่อจากเมนู
- เพิ่มการนำเข้าลิงก์แชร์ (
vmess://,ss://,ssr://,trojan://,vless://,hysteria2://,shadowtls://): ลิงก์จะถูกแปลงในเครื่อง และการสมัครสมาชิกที่ส่งคืนรายการลิงก์แชร์ (รวมถึงที่ห่อด้วย base64) ก็รองรับเช่นกัน - เพิ่มการตรวจจับคลิปบอร์ดในหน้าต่างนำเข้า: ลิงก์ที่พบในคลิปบอร์ดจะถูกเสนอผ่านปุ่ม "ใช้" แทนที่จะเติมให้เงียบ ๆ
- เพิ่ม URL scheme
chute://เพื่อให้ลิงก์นำเข้าบนหน้าเว็บเปิดใน Chute ได้ โดยจะตรวจรูปแบบของที่อยู่และให้คุณยืนยันก่อนจึงจะดึงข้อมูล - เพิ่มการรองรับโปรโตคอล AmneziaWG พร้อมตัวแก้ไขพารามิเตอร์การพรางข้อมูล (Jc/Jmin/Jmax, S1–S4, H1–H4, I1–I5)
- เพิ่มการขนส่ง XHTTP ในตัวแก้ไขนโยบายสำหรับ Trojan, VMess และ VLESS — mode, path, host, ส่วนหัวคำขอและ padding, ขีดจำกัดขนาด post และช่วงเวลา, ขอบเขต XMUX ทั้งสี่ค่า และจุดปลายทางดาวน์โหลดแยกต่างหาก
- เพิ่มการขนส่ง gRPC ในตัวแก้ไขนโยบาย พร้อม service name และ multi-mode
- เพิ่มการตั้งค่า ECH (Encrypted Client Hello) สำหรับนโยบาย TLS: สวิตช์เปิดใช้งาน,
ech-configแบบตรึงค่า และการแทนที่ชื่อบังหน้าด้วยech-public-name - เพิ่มลายนิ้วมือไคลเอนต์ (uTLS) รายนโยบาย พร้อมค่าเริ่มต้นระดับโปรไฟล์ในการตั้งค่าทั่วไป
- เพิ่มวิธีการเข้ารหัส Shadowsocks แบบ AEGIS-128L และ AEGIS-256
- เพิ่มการแลกเปลี่ยนกุญแจไฮบริดหลังควอนตัม X25519MLKEM768 สำหรับ TLS 1.3
- เพิ่มตัวเลือกวิธีเข้ารหัสของ VMess, การตรึงลายนิ้วมือใบรับรองของ MASQUE, สวิตช์ปิด UDP รายนโยบาย และสวิตช์ multiplexing สำหรับตระกูล HTTP, Shadowsocks, ShadowsocksR, Trojan, ShadowTLS และ Hysteria2
- เพิ่มการทำหน้าที่เป็น exit node และ subnet router ของ Tailscale: ประกาศ Mac เครื่องนี้และเครือข่ายที่อยู่ด้านหลัง สลับการให้บริการจากแถบเมนู รับการแจ้งเตือนเมื่อผู้ดูแลระบบอนุมัติ และเลือกให้ Mac ไม่เข้าสู่โหมดพักขณะกำลังรับส่งทราฟฟิกได้
- เพิ่มการลบโปรไฟล์ในรายการโปรไฟล์: โปรไฟล์ที่ Chute จัดการจะถูกย้ายไปถังขยะ ส่วนไฟล์ที่นำเข้าจากตำแหน่งเดิมจะเพียงถูกยกเลิกการลงทะเบียนและยังคงอยู่ที่เดิม
- เพิ่มหน้าต่างรายงานข้อผิดพลาดของการกำหนดค่า — รายการที่ปรับขนาดได้ แสดงหมายเลขบรรทัด ระดับความรุนแรง ข้อความ และบรรทัดต้นฉบับ พร้อมรองรับ ⌘C ที่แถวและปุ่ม "คัดลอกทั้งหมด" — แทนที่กล่องแจ้งเตือนที่อาจสูงเกินหน้าจอ
- เพิ่ม Map Remote ใน [URL Rewrite]: กฎชนิด
headerจะเขียนบรรทัดคำขอและโฮสต์ต้นทางใหม่ พร้อมรองรับการขยาย capture group - เพิ่มอาร์กิวเมนต์ของโมดูล (
#!arguments) ทำให้ใช้โมดูลเดียวกันซ้ำด้วยค่าที่ต่างกันได้
การปรับปรุง:
- ปรับโครงสร้างตัวแก้ไขนโยบายใหม่เป็นฟอร์มแยกตามโปรโตคอล: แต่ละโปรโตคอลมีช่องกรอกของตนเองแทนที่จะใช้ช่องข้อความร่วมกับโปรโตคอลที่ไม่เกี่ยวข้อง และการเพิ่มชนิดใหม่จะไม่ทำให้ลำดับของชนิดที่อยู่ถัดไปเลื่อน
- เมื่อบันทึก ตัวแก้ไขนโยบายจะรักษาตัวเลือกที่ไม่มีช่องกรอกไว้ (ECH, ALPN, การตรึงใบรับรอง,
test-url,udp-relay,tfo) - นำสวิตช์ TCP Fast Open ออกจาก TUIC, Hysteria2, MASQUE, AnyTLS และ SSH ซึ่งอะแดปเตอร์เหล่านี้ไม่เคยอ่านค่าดังกล่าว นโยบายที่มี
tfoอยู่แล้วจะยังคงเก็บค่าไว้ - ปรับปรุงการนำเข้าโปรไฟล์ Clash, sing-box และ Surge ตามที่เผยแพร่จริง รวมถึงส่วน MitM/Panel/Ponte ของ Surge, รูปแบบ REJECT ต่าง ๆ, บรรทัดโมดูล และตัวเลือก [SSID Setting]
- Chute จะอธิบายหน้าที่ของ helper ที่มีสิทธิพิเศษก่อนที่ macOS จะขออนุญาต แทนที่จะปล่อยให้กล่องโต้ตอบของระบบปรากฏขึ้นโดยไม่มีบริบท
- จัดลำดับหน้าจอเมื่อเปิดใช้ครั้งแรก: อ่านใบอนุญาตก่อนแสดงหน้าต่างใด ๆ และคำขอสิทธิ์การแจ้งเตือนจะรอจนกว่าตัวช่วยตั้งค่าจะปิดลง
- เมื่อยังไม่ได้กำหนดค่าใด ๆ แถบเมนูจะมีการตั้งค่า หน้าต่างหลัก และช่องทางนำเข้า แทนที่จะมีเพียงตัวเลือกไฟล์ สวิตช์บนแดชบอร์ดจะบอกว่าขาดอะไร แทนที่จะแจ้งความล้มเหลวหลังผ่านไปหนึ่งนาที และการติดตั้งลักษณะนี้จะเริ่มต้นที่หน้าต่างหลักแบบใหม่
- สถานะว่างของรายการโปรไฟล์และเมนูนำเข้าด้วย URL ระบุถึงลิงก์แชร์แล้ว และหน้าต่างช่วยเหลืออธิบายว่าต้องทำอะไรบ้างก่อนที่ทราฟฟิกจะผ่านพร็อกซีจริง
- ปรับปรุงปริมาณงานและการใช้ CPU ในเส้นทางข้อมูล การจับคู่กฎ และการจัดการ UDP
- หลังจาก Mac เปลี่ยนเครือข่าย การเชื่อมต่อจะไม่ถูกนำกลับมาใช้บนเส้นทางเครือข่ายที่ถูกแทนที่ไปแล้ว
การแก้ไขข้อบกพร่อง:
- แก้ไขปัญหาใบอนุญาตที่ถูกต้องถูกตัดสินว่าไม่ถูกต้องหลังรีบูต โดยความล้มเหลวชั่วคราวเพียงครั้งเดียวทำให้พร็อกซีหยุดและเปิดหน้าต่างใบอนุญาต
- แก้ไขปัญหาการยืนยัน "เพิกถอนใบอนุญาต" แล้วไม่มีอะไรเกิดขึ้น
- แก้ไขปัญหาการกดยกเลิกในกล่องแจ้งข้อผิดพลาดของการกำหนดค่าแล้วยังโหลดและเริ่มการกำหนดค่าที่เสียหาย และปัญหาที่การทิ้งค่าอยู่บนปุ่มเริ่มต้น
- แก้ไขปัญหา
flowของ VLESS หายไปเมื่อเปิด REALITY และทำให้ไคลเอนต์ใช้การจัดเฟรมแบบ XTLS Vision จริง ไม่ใช่เพียงประกาศไว้ - แก้ไขปัญหานโยบายที่ตัวแก้ไขแสดงชนิดไม่ได้ถูกเขียนทับเป็น HTTP เมื่อบันทึก
- แก้ไขปัญหานโยบาย WireGuard และ AmneziaWG ที่อ้างถึงส่วนการกำหนดค่าแล้วได้พอร์ตเป็นค่า 0
- แก้ไขปัญหาการเขียน
ws-pathและws-headersทั้งที่สวิตช์ WebSocket ปิดอยู่ - แก้ไขปัญหาหน้าการตั้งค่าอินเทอร์เฟซเลื่อนไม่ได้
- แก้ไขปัญหา Shadowsocks
obfs=httpส่งบรรทัดคำขอที่ผิดรูปแบบ ทำให้อุโมงค์เชื่อมต่อได้แต่ไม่มีข้อมูลผ่าน - แก้ไขปัญหา Shadowsocks 2022 เสียการซิงค์เมื่อ payload ถูกแบ่งข้ามการอ่านหลายครั้ง และแก้รูปแบบ UDP ของ chacha20-poly1305
- แก้ไขปัญหานามแฝงใน
[Host]ไม่เคยตรงกัน ทำให้คำขอ A สำหรับชื่อนามแฝงตกไปยังต้นทางและได้ NXDOMAIN กลับมา - แก้ไขปัญหาการย้ายการเชื่อมต่อของ QUIC เล็ดลอดผ่านกฎ
PROTOCOL,QUICและตัวเลือก block-quic - แก้ไขปัญหา WireGuard ทิ้งแพ็กเก็ตที่รออยู่ในคิวระหว่างการสร้างเซสชันใหม่
- แก้ไขปัญหาบรรทัดคำอธิบาย
#!argumentsของโมดูลเขียนทับค่าเริ่มต้นของอาร์กิวเมนต์ที่อยู่ข้างเคียง - การปรับปรุงความเสถียรและประสิทธิภาพต่าง ๆ
เวอร์ชัน 1.1.2 (210)
คุณสมบัติใหม่:
- เพิ่ม Tailscale เป็นประเภทพร็อกซีในตัว: กำหนดค่าบัญชี Tailscale ได้โดยตรงใน Chute เข้าร่วม tailnet และส่งทราฟฟิกผ่านโหนด Tailscale — โดยไม่ต้องใช้ไคลเอนต์แยกต่างหาก
- เพิ่มบานหน้าต่างการตั้งค่า Tailscale: กรอก auth key อย่างปลอดภัย ตรวจสอบการเชื่อมต่อ แสดงรายการโหนด tailnet และสลับ exit node
- เพิ่มวิดเจ็ตสถานะ Tailscale บนแดชบอร์ดและทางลัดที่แถบเมนูสำหรับสลับ exit node
- เพิ่มการแจ้งเตือนระบบสำหรับการวินิจฉัยพร็อกซี รวมถึงการอ้างอิงนโยบายที่ค้างอยู่ การเปลี่ยนแปลง egress IP และเหตุการณ์ Tailscale พร้อมสวิตช์เปิด/ปิดแยกตามประเภทในการตั้งค่า
- เพิ่มประเภทพร็อกซี MASQUE ในตัวแก้ไขนโยบาย
- เพิ่มตัวแก้ไขตาราง bypass-list โดยค่าเริ่มต้นเป็น simple-hostnames และส่งออก no_proxy อัตโนมัติ
- เพิ่มการจัดกลุ่มการเชื่อมต่อตามแอปพลิเคชันในแผงทราฟฟิก
- ยกเวอร์ชัน macOS ขั้นต่ำที่รองรับเป็น 10.14 (Mojave)
การปรับปรุง:
- ปรับปรุงปริมาณงาน TUN บน macOS
- ปรับปรุงความเสถียรของ helper ที่มีสิทธิพิเศษ พร็อกซีระบบ และวงจรชีวิต DNS/TUN
- ปรับปรุงความเสถียรของการเชื่อมต่อและปริมาณงานของ Tailscale และ WireGuard
- ปรับปรุงความน่าเชื่อถือของส่วนขยายระบบและการทำงานต่ออัตโนมัติของ VPN
- ปรับปรุงการตรวจสอบใบอนุญาตเพื่อไม่ให้ถือว่าข้อผิดพลาดเซิร์ฟเวอร์ชั่วคราวเป็นการเพิกถอน
- ปรับชื่อไฟล์การกำหนดค่าให้ถูกต้องเพื่อป้องกันการโหลดล้มเหลวจากอักขระเส้นทางที่ไม่ถูกต้อง
การแก้ไขข้อบกพร่อง:
- แก้ไขปัญหาที่ helper อาจแนบกับอุโมงค์ VPN ที่กำลังทำงานอยู่แล้วซ้ำ
- แก้ไขการขัดข้องที่เกิดจากการสลับภาษาพร้อมกัน
- แก้ไขปัญหาที่อุโมงค์ VPN อาจล้มเหลวเมื่อเริ่มครั้งที่สอง
- แก้ไขปัญหาที่กราฟ sparkline ความเร็วอัปโหลดแสดงข้อมูลดาวน์โหลดแทน
- การปรับปรุงความเสถียรและประสิทธิภาพหลายด้าน
เวอร์ชัน 1.1.1 (202)
- UI หลักใหม่พร้อม Dashboard: ออกแบบหน้าต่าง 4 แท็บใหม่ (Dashboard, Traffic, Config, Log) ที่มีการออกแบบ glass-morphism, กราฟ sparkline ความเร็วเรียลไทม์, การ์ดวิดเจ็ตที่ปรับแต่งได้ และเอฟเฟกต์ micro-interaction
- วิดเจ็ต Dashboard ใหม่: สถานะพร็อกซี, โหมด TUN, เวลาทำงาน, การเชื่อมต่อที่ใช้งาน, ปริมาณการดาวน์โหลด/อัปโหลด และโปรไฟล์การกำหนดค่าปัจจุบัน
- แท็บจัดการโปรไฟล์ใหม่สำหรับการสลับและจัดระเบียบโปรไฟล์การกำหนดค่า
- Traffic Inspector ที่อัปเกรดพร้อมการกรองเซสชันและการดูบันทึกที่ปรับปรุง
- โหมด VPN Enhanced ใหม่: ตัวเลือก PacketTunnel system extension ควบคู่กับ helper utun ดั้งเดิม เลือกได้ใน Preferences
- ย้าย privileged helper daemon จาก SMJobless เป็น SMAppService (macOS 13+)
- ย้าย Network Extension เป็น System Extension พร้อมโฟลว์การเปิดใช้งาน OSSystemExtensionRequest
- เพิ่มตัวแก้ไขการกำหนดค่าสำหรับส่วน Body Rewrite, Script, Module และ WireGuard
- เพิ่มเครื่องมือวินิจฉัย Rules DNS
- อัปเดตเคอร์เนล KLNEKit ด้วยการขยายคุณสมบัติหลัก
- เพิ่มการรองรับโปรโตคอล AnyTLS พร้อมการอำพราง padding หลายชั้น
- เพิ่มการรองรับโปรโตคอล TUIC (การส่งต่อ TCP/UDP แบบมัลติเพล็กซ์บน QUIC)
- เพิ่มการรองรับโปรโตคอล Hysteria2 พร้อมการควบคุมความแออัด Brutal
- เพิ่มการรองรับโปรโตคอล WireGuard (การกำหนดค่าในบรรทัดและแบบอิงส่วน)
- เพิ่มการรองรับโปรโตคอล ShadowTLS พร้อมการอำพรางลายนิ้วมือ TLS
- เพิ่มการรองรับ VLESS REALITY ต่อต้านการเซ็นเซอร์
- เพิ่มเมธอดการเข้ารหัส Shadowsocks 2022 (2022-blake3-aes-128/256-gcm, chacha20-poly1305)
- เพิ่มการขนส่ง gRPC สำหรับโปรโตคอล VMess และ VLESS
- เพิ่มการรองรับ DNS-over-TLS (DoT), DNS-over-QUIC (DoQ) และ DNS-over-HTTP/3 (DoH3)
- เพิ่มการกำหนด DoT/DoQ/DoH3 ต่อโดเมนใน Local DNS Mapping
- เพิ่มระบบ JavaScript Scripting (7 ประเภทสคริปต์: rule, dns, request, response, generic, scheduled, dns-ttl)
- เพิ่ม Body Rewrite: ค้นหาและแทนที่เนื้อหาคำขอ/การตอบกลับ HTTP ผ่าน regex (พร้อมกลุ่มจับคู่) หรือ JSONPath
- เพิ่ม Mock Response: ส่งคืนข้อมูลจำลองหรือเนื้อหา Map Local ไปยังคำขอที่ตรงกัน
- เพิ่ม Protocol Sniffing: ตรวจจับโปรโตคอลการเชื่อมต่อจริงและใช้กฎตามนั้น
- เพิ่ม Notification Reporting พร้อม 5 ประเภทเหตุการณ์ (connection-failure, proxy-unavailable, traffic-surge, config-update-failure, policy-group-switch)
- เพิ่ม HTTP Control API และ Web UI ในตัวสำหรับการตรวจสอบและจัดการรันไทม์
- เพิ่มระบบโมดูล (.sgmodule) สำหรับการจัดการการกำหนดค่าแบบโมดูลาร์
- เพิ่ม Proxy Provider สำหรับการอัปเดตรายการพร็อกซีแบบไดนามิก
- เพิ่มกลุ่มนโยบาย LoadBalance พร้อมกลยุทธ์ round-robin, consistent-hashing และ sticky-sessions
- เพิ่มการรองรับกลุ่มนโยบาย Fallback
- เพิ่มประเภทกฎ IP-ASN (ฐานข้อมูล MaxMind GeoLite2 ASN ในตัว)
- เพิ่มกฎผสมทางตรรกะ: AND, OR, NOT
- เพิ่มกฎการจับคู่ขั้นสูง: SUBNET, HOSTNAME-TYPE, IN-TYPE, IN-USER, IN-NAME
- เพิ่มประเภทกฎตามโดเมนใหม่: DOMAIN-WILDCARD, DOMAIN-REGEX, DOMAIN-SET
- เพิ่มประเภทกฎ PROTOCOL (จับคู่ตามโปรโตคอลที่ตรวจพบ: HTTP, HTTPS, TLS, TCP, UDP, QUIC, STUN, DNS, DOH, DOQ)
- เพิ่มประเภทกฎ SCRIPT สำหรับการจับคู่ที่กำหนดเองด้วย JavaScript
- เพิ่มประเภทกฎกระบวนการใหม่: PROCESS-PATH, PROCESS-NAME-REGEX
- เพิ่มประเภทกฎ SRC-PORT
- เพิ่มตัวเลือก extended-matching และ requires-resolve สำหรับกฎ
- เพิ่มโหมดปฏิเสธของ URL Rewrite: reject-200, reject-img, reject-dict
- เพิ่มการรองรับทิศทางการตอบกลับของ Header Rewrite (header-response-add/del/replace)
- เพิ่มการรองรับตัวแปรเทมเพลต URL Rewrite Map Local
- เพิ่มการรองรับ Replica สำหรับการบันทึกทราฟฟิกแบบเลือก
- เพิ่มการรองรับ Managed Configuration พร้อมช่วงอัปเดตอัตโนมัติ
- เพิ่มตัวเลือก exclude-simple-hostnames
- เพิ่มตัวเลือก Bypass TUN สำหรับการจัดเส้นทางตรงช่วง IP ที่ระบุ
- เพิ่มตัวเลือกส่วนกลาง interrupt-exist-connections
- เพิ่มตัวเลือก network-framework
- เพิ่มตัวเลือก disable-db-record
- ขยายตัวเลือกกลุ่มนโยบาย: expected-status, hidden, idle-timeout, lazy
- ขยายระบบกฎจาก 6 เป็น 37 ประเภทกฎ
- ปรับปรุงปริมาณงาน TUN (UTUN_OPT_MAX_PENDING_PACKETS)
- แก้ไขค่าเริ่มต้นของ IPv6 (false → true)
- แก้ไขค่าเริ่มต้นของระดับบันทึก, เพิ่มระดับ none และ fatal
- แก้ไขความสอดคล้องของชื่อ Shadowsocks/ShadowsocksR
- การปรับปรุงเสถียรภาพและประสิทธิภาพต่างๆ
เวอร์ชัน 1.0.7 (163)
- อัปเดต KLNEKit
- เพิ่มการรองรับนโยบาย SSH
- แก้ไขปัญหา UDP
- การแก้ไขข้อบกพร่อง
เวอร์ชัน 1.0.5 (155)
- อัปเดต KLNEKit
- เปลี่ยนเครือข่าย TUN เป็น 198.18.0.0/15 เพื่อหลีกเลี่ยงปัญหาที่อยู่ภายใน IPv4
- เพิ่มฟังก์ชันช่วยเหลือสำหรับไอคอนเมนู
- ติดตั้งการรองรับ IPv6 สำหรับ TUN
- เปิดใช้งานการรองรับ ping สำหรับ TUN
- แก้ไขปัญหาเมนู Dock หายไป
- แก้ไขการกำหนดค่าพร็อกซีไม่คืนค่าหลังจาก Chute ถูกปิด
- แก้ไขเครือข่าย TUN
- แก้ไขส่วนประกอบการอัปเดตแอป
- การแก้ไขข้อบกพร่อง
เวอร์ชัน 1.0.4 (145)
- เพิ่มการรองรับโปรโตคอล VLESS
- เพิ่ม XTLS สำหรับ VLESS
- เพิ่มการแสดงผล IP ในเครื่อง
- เพิ่มการรองรับ UDP Tunnel สำหรับ Chute Dashboard
- ปรับปรุงเซิร์ฟเวอร์ DNS ในตัว
- แก้ไขกระบวนการกฎ FINAL
- แก้ไข UDP Tunnel
- การแก้ไขข้อบกพร่อง
เวอร์ชัน 1.0.3 (132)
- รองรับ macOS 10.13 (ไม่มีการรองรับ Network.framework)
- แก้ไขการโหลดส่วนพร็อกซีในหน้าต่าง Config
- แก้ไขข้อผิดพลาด HTTP Request
- การแก้ไขข้อบกพร่อง
เวอร์ชัน 1.0.2 (102)
- สร้างเซิร์ฟเวอร์ DNS ใหม่
- สร้างการติดตั้ง Extension ใหม่
- การแก้ไขข้อบกพร่อง
เวอร์ชัน 1.0.0 (88)
- เวอร์ชันเปิดตัวครั้งแรก
- เพิ่มการรองรับ TUN
[Beta] เวอร์ชัน 0.4.9 (53)
- แก้ไขลำดับกฎ
- เพิ่มการรองรับการสแกน QR code บนหน้าจอ
- แก้ไขกลุ่มนโยบาย
[Beta] เวอร์ชัน 0.4.5 (32)
- การแก้ไขข้อบกพร่อง
[Beta] เวอร์ชัน 0.3.5 (25)
- การแก้ไขข้อบกพร่อง
[Beta] เวอร์ชัน 0.3.0 (20)
- การแก้ไขข้อบกพร่อง
[Beta] เวอร์ชัน 0.2.0 (8)
- การเปิดตัวครั้งแรก
หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก