บันทึกการอัปเดต 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-ASN UNKNOWN ไม่เคยจับคู่; โดเมนที่กฎตรรกะกำหนดเส้นทางไปพร็อกซียังถูกแปลงชื่อจริง; และ 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)

  • การเปิดตัวครั้งแรก
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-10-01 17:39:45

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

results matching ""

    No results matching ""