บันทึกการอัปเดต Chute tvOS

เวอร์ชัน 1.5.1 (90)

คุณสมบัติใหม่:

  • เพิ่มการเชื่อมโยงพร็อกซีเป็นลูกโซ่ในตัวแก้ไข: ตอนนี้ทุกประเภทพร็อกซีมีช่อง underlying-proxy การเชื่อมต่อของนโยบายจึงถูกต่อออกผ่านนโยบายที่ระบุชื่อไว้ — โปรโตคอลแบบสตรีมวิ่งบนสตรีมของอัปสตรีม ส่วน Hysteria2, TUIC, MASQUE และ XHTTP บน HTTP/3 วิ่งบน UDP relay ของอัปสตรีม อุโมงค์ WireGuard และ AmneziaWG วิ่งผ่านอัปสตรีม และเซสชัน SSH กับ AnyTLS เปิดผ่านอัปสตรีม — ส่วนลูกโซ่ที่วนซ้ำ ลึกเกิน 16 ชั้น หรือระบุชื่อนโยบายที่ไม่มีอยู่จะถูกปฏิเสธตั้งแต่ตอนโหลด แทนที่จะเชื่อมต่อออกโดยตรง ทุกประเภทพร็อกซียกเว้น Tailscale เชื่อมโยงเป็นลูกโซ่ได้ และนโยบาย TUIC, Hysteria2, WireGuard, AmneziaWG และ ShadowTLS จะถูกเขียนกลับตรงตามที่อ่านมาเหมือนเดิม
  • เพิ่มพร็อกซีต้นทางระดับกลุ่ม: ตัวแก้ไขกลุ่มเขียน underlying-proxy= เพียงครั้งเดียว — โดยใส่เครื่องหมายคำพูดเมื่อชื่อมีเครื่องหมายจุลภาคหรือช่องว่าง — สมาชิกทุกตัวของกลุ่มนั้นจึงเข้าถึงเซิร์ฟเวอร์ของตนผ่านนโยบายเดียวที่ระบุไว้ตรงนั้น
  • เพิ่มแถว «พร็อกซีด่านหน้า» ภายใต้ «ขั้นสูง»: แถวนี้เขียน global-underlying-proxy โดยเลือกจาก «ไม่มี» กับนโยบายและกลุ่มของโปรไฟล์ และครอบคลุมทุกโหนดที่ไม่ได้ตั้งพร็อกซีต้นทางของตัวเอง; close-if-proxy-chain-missing ไม่มีแถวและถูกเก็บไว้ตรงตามที่เขียน
  • เพิ่ม «ดาวน์โหลดผ่าน» ในตัวแก้ไขผู้ให้บริการกฎและผู้ให้บริการพร็อกซี: policy= ดึงรายการนั้นผ่านนโยบายที่เลือก และ «ไม่มี» จะดาวน์โหลดโดยตรง; ตัวแก้ไขผู้ให้บริการพร็อกซียังเก็บ underlying-proxy ของผู้ให้บริการไว้ด้วย
  • เพิ่ม «UDP ผ่าน TCP» ในตัวแก้ไข Shadowsocks: สวิตช์ udp-over-tcp และเมื่อเปิดอยู่จะมีตัวเลือก «เวอร์ชัน UoT» (1 หรือ 2; หากไม่ได้เขียนเวอร์ชันไว้จะใช้ 2) UDP ของพร็อกซีนี้จึงวิ่งอยู่ภายในการเชื่อมต่อ TCP ของตัวเอง และยังใช้งานได้ผ่านอัปสตรีมที่ไม่รับส่ง UDP เซิร์ฟเวอร์ต้องรองรับ UoT และ mihomo ใช้เวอร์ชัน 1 เวอร์ชันที่ตัวเลือกแสดงไม่ได้จะถูกเก็บไว้ตามที่เขียน จนกว่าคุณจะเลือกเวอร์ชันอื่น
  • เพิ่มแถว «เชนพร็อกซี» ในรายละเอียดการเชื่อมต่อ: การเชื่อมต่อที่ผ่านสายต่อพ่วงจะแสดงทุกฮอป — Airport/HK-01 → Landing — ไว้ข้างนโยบายที่กำหนดเส้นทางให้; รายละเอียดคำขอและรายการ UDP ในคอนโซลเว็บก็แสดงเส้นทางเดียวกัน และไฟล์ HAR ที่ส่งออกก็มีเส้นทางนี้ด้วย
  • เพิ่มกลุ่มรีเลย์ (relay แบบเดียวกับใน Clash และ mihomo): สมาชิกถูกต่อพ่วงกันตามลำดับที่เขียนไว้ — ตัวแรกเชื่อมต่อโดยตรง ตัวถัด ๆ ไปเข้าถึงผ่านตัวที่อยู่ก่อนหน้า และตัวสุดท้ายเชื่อมต่อไปยังปลายทาง ตัวเลือกประเภทกลุ่มมี Relay; กลุ่มรีเลย์แสดง «ชื่อ» «ประเภทกลุ่ม» และ «ซ่อน» เก็บสมาชิกตามลำดับนั้น และคงพารามิเตอร์ของกลุ่มไว้เมื่อบันทึก ส่วนกลุ่มที่มีสมาชิกน้อยกว่าสองตัวและไม่มีแหล่งสมาชิกแบบไดนามิกจะถูกปฏิเสธพร้อมข้อความเฉพาะ
  • เพิ่มกลุ่มสุ่ม (random แบบเดียวกับใน Shadowrocket): ทุกการเชื่อมต่อจะสุ่มเลือกสมาชิกหนึ่งตัว โดย UDP จะสุ่มเฉพาะจากสมาชิกที่รับส่ง UDP ได้ กลุ่มสุ่มไม่มีตัวเลือกให้เปลี่ยน จึงไม่ปรากฏในจุดที่ใช้เลือกนโยบายของกลุ่ม และตัวแก้ไขกลุ่มจะคงให้เป็นกลุ่มสุ่มไว้
  • เพิ่ม UDP ให้ VMess และ VLESS: เมื่อก่อน UDP ที่ส่งไปยังโปรโตคอลทั้งสองจะถูกปฏิเสธทันที (โดยเป็นไปตาม udp-policy-not-supported-behaviour ซึ่งค่าเริ่มต้นคือ REJECT) ตอนนี้ UDP จะวิ่งผ่านการเชื่อมต่อแยกหนึ่งเส้นต่อหนึ่งปลายทาง เหมือนใน mihomo, sing-box และ Shadowrocket
  • เพิ่มการแสดงเหตุผลให้ผู้ให้บริการที่โหลดชุดกฎไม่สำเร็จ — การดาวน์โหลดที่ไม่เคยสำเร็จ หรือเพย์โหลดที่เกินขีดจำกัดขนาด — เป็นสีแดงบนแถวของผู้ให้บริการนั้น; เมื่อก่อนผู้ให้บริการแบบนี้ดูเหมือนตัวที่ทำงานปกติทุกประการ ทั้งที่ทุกกฎที่อ้างถึงมันไม่จับคู่อะไรเลย
  • ตัวแก้ไขไม่ทิ้งสิ่งที่แสดงไม่ได้อีกต่อไป: กฎเก็บตัวเลือกที่ไม่มีแถวรองรับ (notification-text, no-resolve, update-interval และอื่น ๆ) เขียน pre-matching ต่อจากนโยบายและเฉพาะกับ REJECT โหลด KEY:value ของกฎ SUBNET แยก SYSTEM, LAN, ผู้ให้บริการ และ URL ออกจากกันใน RULE-SET และสร้างกฎย่อย AND / OR / NOT ที่แยกวิเคราะห์ได้; กลุ่มโหลดสมาชิกที่ประกาศไว้ ซ่อนผู้ให้บริการที่ policy-path สร้างขึ้น และเก็บตัวกรอง, include-*, default=, interrupt-exist-connections และพารามิเตอร์ที่ไม่รู้จักไว้ตามลำดับเดิม; รายการโฮสต์เก็บรายการเซิร์ฟเวอร์ทั้งหมดพร้อม #proxy และคอมเมนต์ แสดงค่า DoH / DoT / DoQ / DoH3 และมีประเภท «สคริปต์» เพิ่ม; Map Local เก็บเนื้อหาแบบไบนารี ชนิดข้อมูล และรหัสสถานะไว้ และเก็บส่วนหัวแบบ Surge ที่ค่ามีเครื่องหมายทวิภาคไว้ด้วย; โมดูลเก็บบรรทัด #!system_version และบรรทัดของแพลตฟอร์มอื่นไว้
  • เพิ่มแถวสำหรับการตั้งค่าที่ตัวแก้ไขเคยแสดงไม่ได้: DoT / DoQ / DoH3, DNS เฉพาะทางสำหรับการเชื่อมต่อตรง / เซิร์ฟเวอร์พร็อกซี / สำรอง, SVCB, DNS แบบเข้ารหัสที่ทำตามกฎและข้ามการตรวจสอบใบรับรองได้, UDP ที่ไม่มีรีเลย์, proxy-test-url / internet-test-url / test-timeout, MitM สำหรับ HTTP/2 และการบล็อก QUIC พร้อมชื่อโฮสต์ที่ยกเว้น, โหมดตัวกรองของ Replica, ตระกูล REJECT และ PROXY ในตัวในตัวเลือกนโยบาย, dns-failed บน FINAL และ IPv6 แบบตัวเลขตรง ๆ เป็นโฮสต์ของนโยบาย; Header Rewrite มี «แทนที่ส่วนหัว (Regex)» เพิ่ม, URL Rewrite มี «ปฏิเสธ (อาร์เรย์)» และ «ปฏิเสธ (GIF ขนาดเล็ก)» เพิ่ม, สคริปต์มีประเภท generic และชื่อเหตุการณ์เพิ่ม และช่วงพอร์ต, HOSTNAME-TYPE, PROTOCOL และรูปแบบของผู้ให้บริการมีข้อความตัวอย่างที่บอกว่ารับค่าแบบใดได้
  • เพิ่ม tun-included-routes: CIDR ที่ระบุจะถูกเพิ่มเข้าในเส้นทางของอุโมงค์ต่อจากเส้นทางเริ่มต้น ช่วงที่อยู่ที่ปกติจะถูกซับเน็ตของอินเทอร์เฟซเครือข่ายเองแย่งไป — เพราะระบบเลือกเส้นทางที่เจาะจงกว่า — จึงวิ่งผ่าน Chute แทน รายการที่จะทำให้อุโมงค์ถูกตัดขาด (loopback, ซับเน็ตของอุโมงค์เอง, link-local, multicast, broadcast, ความยาวพรีฟิกซ์ 0) จะถูกปฏิเสธพร้อมบันทึกเหตุผลไว้ในบันทึก ช่วงที่อยู่ส่วนตัวใช้ได้แต่มีคำเตือน และรายการที่แก้ไขจะมีผลเมื่อโหลดร้อน (hot reload) โดยไม่ต้องเริ่มอุโมงค์ใหม่
  • เพิ่ม jq ใน Body Rewrite: http-request-jq และ http-response-jq ที่เขียนไว้ในไฟล์การกำหนดค่าจะรันโปรแกรม jq จริงกับเนื้อหา JSON (ตัวแก้ไข Body Rewrite บน Apple TV ไม่มีตัวเลือกเหล่านี้); โปรแกรมที่ไม่ถูกต้องจะถูกรายงานและกฎนั้นจะถูกข้าม ส่วนเนื้อหาที่ไม่ใช่ JSON โปรแกรมที่ทำงานล้มเหลว หรือผลลัพธ์ที่ว่างเปล่า จะปล่อยเนื้อหาไว้ตามเดิมทั้งหมด
  • เพิ่มสคริปต์ทั่วไป: สคริปต์ type=generic ไม่มีตัวกระตุ้นอัตโนมัติและทำงานเฉพาะเมื่อสั่งเท่านั้น ผ่าน GET /api/scripts และ POST /api/scripts/run
  • เพิ่มพูล DNS เฉพาะทาง: direct-dns-server แปลงชื่อโดเมนที่กฎส่งไป DIRECT, proxy-dns-server แปลงชื่อโฮสต์ของเซิร์ฟเวอร์พร็อกซีของคุณเอง และ fallback-dns-server จะถูกถามเมื่อเซิร์ฟเวอร์หลักไม่ให้คำตอบ; แต่ละพูลใช้เซิร์ฟเวอร์ส่วนกลางเป็นตัวสำรอง
  • เพิ่ม #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>)
  • เพิ่ม 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
  • เพิ่มชุดกฎแบบอินไลน์: ส่วน [Ruleset Name] ในไฟล์การกำหนดค่าอ้างอิงได้ด้วย RULE-SET,<name> รวมถึงการอ้างอิงระหว่างกันเอง — ลึกได้ถึงแปดชั้น และปฏิเสธการวนซ้ำ; รายการผู้ให้บริการกฎแสดงชุดกฎเหล่านี้ แต่การแก้ไขต้องทำในไฟล์การกำหนดค่า
  • เพิ่มช่วงและการเปรียบเทียบของ DEST-PORT, SRC-PORT และ IN-PORT (80-81, >=50000, รายการแบบ /), ค่าของ HOSTNAME-TYPE ได้แก่ IPv4, IPv6, DOMAIN และ SIMPLE และกฎ IN-TYPE, IN-USER และ IN-NAME ที่ใช้งานได้จริง ซึ่งตอนนี้จับคู่กับทราฟฟิกจริง ไม่ใช่แค่ในการทดลองรัน
  • เพิ่มตัวควบคุม MitM: ถอดรหัส HTTP/2 (h2), บล็อก QUIC ไปยังโฮสต์ที่ถอดรหัสเพื่อไม่ให้ HTTP/3 เลี่ยงการถอดรหัส (auto-quic-block), ยกเว้นโฮสต์จากการถอดรหัส และจับคู่คีย์เวิร์ดของ Host List อย่าง <ipv4-address>, <ipv6-address> และ <simple-hostname>
  • เพิ่มการกำหนดเส้นทาง QUIC ตามโดเมน: ชื่อจะถูกอ่านจาก QUIC Initial ของไคลเอนต์ ClientHello ที่ถูกแบ่งอยู่ในหลาย Initial จะถูกประกอบกลับ และโฟลว์จะถูกพักไว้จนกว่าจะรู้ชื่อ กฎ DOMAIN จึงกำหนดเส้นทางการเชื่อมต่อ HTTP/3 ที่ทำไปยังที่อยู่ IP ตรง ๆ ได้
  • เพิ่ม icmp-auto-reply ซึ่งเปิดเป็นค่าเริ่มต้น: ping ภายในอุโมงค์จะได้รับการตอบกลับจากในเครื่อง ทั้งบน IPv4 และ IPv6 แทนที่จะหมดเวลา
  • เพิ่มความสามารถในการนำเข้า: กฎ GEOSITE และกฎ GEOIP แบบหมวดหมู่ของ mihomo ขยายเป็นชุดกฎที่ใช้งานได้จริง กลุ่ม policy-path สร้างผู้ให้บริการพร้อม update-interval ตัวกรอง และรายการ include, SUB-RULE ของ mihomo ขยายเป็นกฎ AND, detour ของ sing-box และ dialer-proxy ของ mihomo นำเข้าเป็นการต่อพ่วง, allowed-ips ของ WireGuard ถูกคอมไพล์และบังคับใช้ อุโมงค์แบบแยกเส้นทางจึงไม่กลืนทุกปลายทางอีกต่อไป และ interface= / allow-other-interface= ของนโยบายจะตรึงการเชื่อมต่อของนโยบายไว้กับอินเทอร์เฟซเครือข่ายเดียว
  • เพิ่มความสามารถของ API สคริปต์: $httpAPI เรียกเส้นทางของเอนจินเองได้โดยไม่ต้องเปิดซ็อกเก็ต, $httpClient ทำตาม policy ที่ระบุ, read-etc-hosts ป้อนไฟล์ hosts ให้ DNS และ $event.name รายงานเหตุการณ์ที่เกิดขึ้นจริง

การปรับปรุง:

  • ทุกสตริงที่แอปแสดงมีครบทั้งแปดภาษาแล้ว: ป้ายกำกับแปดรายการที่เคยแสดงเป็นภาษาอังกฤษ รวมถึงแถวของ Tailscale ได้รับการแปลแล้ว และข้อความ 88 รายการที่ถ้อยคำในตัวแอปไม่ตรงกับไฟล์ภาษาของแอปก็ตรงกันแล้ว
  • คำศัพท์ตรงกันทั่วทั้งแอป Chute แล้ว: ตัวกรองระดับความรุนแรงของบันทึกและป้ายทั้งเจ็ดใช้ชื่อระดับเดียวกับเอนจิน ป้ายกำกับ load-balance ทำตาม Chute Mac และคอนโซลเว็บ การดักจับทราฟฟิก การตอบกลับจำลอง การกำหนด DNS เฉพาะที่ และ HTTP Control API ใช้ชื่อสอดคล้องกันภายในแต่ละภาษาทั้งแปดภาษา
  • การนำเข้าโปรไฟล์ที่เผยแพร่ไม่ทำให้การกำหนดเส้นทางสูญหายอีกต่อไป: dns-server รองรับ URL ของ DNS แบบเข้ารหัส บรรทัดตัวรับฟังรองรับรหัสผ่าน สมาชิกกลุ่มที่อยู่ในเครื่องหมายคำพูดไม่หายไป กฎตรรกะของ sing-box แปลงตามที่เอกสารระบุ สมาชิก PASS ถูกตัดออกแทนที่จะกลายเป็น REJECT และโปรโตคอลหรือประเภทกลุ่มที่ไม่รองรับจะแสดงคำเตือนแทนที่จะทำให้ทั้งกลุ่มใช้งานไม่ได้ — ในโปรไฟล์ mihomo ที่นำเข้า กฎที่ไม่มีวันจับคู่ได้ลดลงจากส่วนใหญ่ของรายการจนแทบไม่เหลือ
  • ชุดกฎใช้หน่วยความจำน้อยลงมาก: ผู้ให้บริการดาวน์โหลดทีละรายการต่อกันไป แทนที่จะล้มเหลวไปเลยหลังรายการที่ 35 การใช้หน่วยความจำสูงสุดขณะแปลงลดลง 62–73% การเชื่อมต่อดัชนีถูกจำกัดจำนวนและถูกปล่อยคืนเมื่อหน่วยความจำตึงตัว และเพย์โหลดที่ใหญ่เกินไปสำหรับ Apple TV จะถูกปฏิเสธ พร้อมแสดงเหตุผลบนแถวของผู้ให้บริการนั้น
  • การจำกัดทรัพยากรป้องกันไม่ให้การกำหนดค่าที่ใหญ่เกินไปดันส่วนขยายอุโมงค์จนเกินขีดจำกัดหน่วยความจำ: ที่เก็บใบรับรอง MitM ข้อมูลดักจับที่ค้างอยู่ ขนาดและจำนวนสคริปต์ งบคำขอของคอนโซล เพียร์ Tailscale และแคช DNS ล้วนมีเพดานบน Apple TV
  • การทดสอบความหน่วงใช้เป้าหมายที่ถูกต้อง: test-url และ test-timeout ของกลุ่ม, proxy-test-url ของโปรไฟล์ และ test-url กับ expected-status ของสมาชิกเอง ล้วนถูกนำมาใช้ และโหนดที่ต่อพ่วงอยู่จะถูกทดสอบผ่านสายต่อพ่วงของมันแทนที่จะทดสอบโดยตรง
  • คอนโซลเว็บและ control API: กฎที่เพิ่มขณะทำงานจะไม่ค้างอยู่หลังโหลดโปรไฟล์เดิมซ้ำอีกต่อไป และเคอร์เซอร์ของบันทึกเดินหน้าทางเดียว การโพลล์จึงไม่ข้ามรายการใดเลย
  • ShadowTLS ตรวจสอบใบรับรองของเว็บไซต์บังหน้าแล้วเมื่อมีการเขียน sni= เหมือนที่ sing-box ทำ; skip-cert-verify=true จะปิดการตรวจสอบนี้ (เมื่อก่อนตัวเลือกนี้ถูกละเลย และไม่มีการตรวจใบรับรองเลย) และหากไม่มี sni= การตรวจสอบจะถูกข้ามพร้อมคำเตือน

การแก้ไขข้อบกพร่อง:

  • แก้ไขรายการการกำหนดค่าที่หายไปหลังอัปเดตแอป: การกำหนดค่าเก็บอยู่ในโฟลเดอร์ Caches ของแอป — ที่เดียวที่ tvOS ให้แอปเขียนได้ และเป็นโฟลเดอร์ที่ระบบล้างทิ้งได้ทุกเมื่อที่ต้องการพื้นที่คืน — การอัปเกรดจึงอาจทิ้งรายการว่างเปล่าไว้โดยไม่มีอะไรบนหน้าจออธิบายสาเหตุ ตั้งแต่เวอร์ชันนี้เป็นต้นไป การกำหนดค่าทุกรายการจะถูกเก็บไว้ในที่เก็บการตั้งค่าของแอปด้วย ซึ่งระบบไม่ล้างทิ้ง (เก็บข้อความของการกำหนดค่าเมื่อยาวไม่เกิน 256 KB ส่วนที่อยู่การสมัครสมาชิกและช่วงเวลารีเฟรชเก็บเสมอ); ไฟล์ที่หายไปจะถูกเขียนกลับตอนเปิดแอปและตอนที่แอปกลับมาอยู่เบื้องหน้า การกำหนดค่าที่เหลือเพียงที่อยู่จะถูกดาวน์โหลดใหม่ และหน้าจอหลักจะแจ้งว่า «กู้คืนการตั้งค่าแล้ว N รายการ» การกำหนดค่าที่คุณลบจะถูกลืม จึงไม่กลับมาอีก ระบบกู้คืนการกำหนดค่าที่หายไปก่อนเปิดเวอร์ชันนี้เป็นครั้งแรก หรือการกำหนดค่าที่ใหญ่เกิน 256 KB และไม่ได้มาจากที่อยู่ใด ๆ ไม่ได้ และหากเริ่มอุโมงค์จาก Control Center ก่อนที่จะเคยเปิดแอปเลย ก็จะไม่มีอะไรถูกกู้คืน
  • แก้ไขการตั้งค่า SSID บน Apple TV: การเปิด «ระงับตาม SSID» เกิดข้อผิดพลาดกับทุกรายการที่ไม่มี SSID (TYPE:, BSSID: หรือ ROUTER:) รายการเขียน [SSID Setting] ใหม่ทุกครั้งที่เข้าไปดู และตัวแก้ไข SSID กับซับเน็ตทิ้งสมาชิกที่ไม่มีแถวรองรับ ตอนนี้รายการแสดงเฉพาะรายการแบบง่าย "<name>" suspend=true และเก็บอย่างอื่นไว้ที่เดิม ตัวแก้ไขกลุ่ม ssid เก็บสมาชิกตามลำดับที่ประกาศไว้พร้อมตัวเลือก «จับคู่ตาม» และเมื่อบันทึกการตั้งค่าเหล่านี้ แอปจะแจ้งว่าใช้ไม่ได้บน Apple TV และบันทึกไว้เพื่อใช้บน iOS และ macOS
  • แก้ไขปัญหาที่ตัวแก้ไขทำให้รายการที่แสดงได้ไม่ครบเสียหาย: รายการ [Host] ที่มีหลายที่อยู่ถูกตัดเหลือแค่ที่อยู่แรกทันทีที่เปิด ค่า [Script] ที่มีเครื่องหมายจุลภาค (cron 0 8,20 * * *, อาร์กิวเมนต์ JSON) ถูกตัดสั้นทุกครั้งที่บันทึก บรรทัด [Body Rewrite] สูญเสียคู่ regex ส่วนเกิน บรรทัดของกฎ กลุ่ม โฮสต์ Map Local หรือ header-rewrite สูญเสียตัวเลือกที่ไม่มีแถวรองรับ และ «ขั้นสูง» ตัดช่องว่างภายในรายการของตัวเองทิ้งทุกครั้งที่เข้าไปดู โปรไฟล์ที่บันทึกโดยไม่ได้เปิดรายการนั้นไม่เคยได้รับผลกระทบ ปัญหานี้จึงไม่มีใครสังเกตเห็น
  • แก้ไขการดาวน์โหลดที่ปนกัน: ตอนนี้การดาวน์โหลดแต่ละครั้งเขียนลงไฟล์ชั่วคราวของตัวเอง ซึ่งถูกลบเมื่ออ่านเสร็จ และถูกลบด้วยเมื่อการดาวน์โหลดหรือการอ่านล้มเหลว การรีเฟรชแบบมีการจัดการจึงไม่อ่านไฟล์จากการดาวน์โหลดครั้งแรกซ้ำไปเรื่อย ๆ อีก และสองที่อยู่ที่มีชื่อแนะนำเหมือนกันก็ไม่เขียนทับกันอีกต่อไป — และชื่อไฟล์ที่เซิร์ฟเวอร์แนะนำก็ไม่สามารถกำหนดได้อีกว่าไฟล์จะถูกเขียนไว้ที่ใด
  • แก้ไขการตัดสินรูปแบบจากชื่อไฟล์: «ดาวน์โหลดจาก URL» และการรีเฟรชการกำหนดค่าแบบมีการจัดการตัดสินจากเนื้อหาว่าที่อยู่นั้นให้ไฟล์แบบใด ที่อยู่ .conf ที่ให้ไฟล์ Clash จึงถูกแปลงตอนเพิ่ม และการรีเฟรชที่พบไฟล์แบบนั้นจะปล่อยไฟล์ไว้ตามเดิม; การแปลงเกิดขึ้นก่อนใส่ส่วนหัว MANAGED-CONFIG ใด ๆ การแปลงที่ล้มเหลวจะแสดงข้อผิดพลาดแรก และหมายเหตุจากการแปลงจะถูกนับบนหน้าจอและเขียนลงบันทึก
  • แก้ไขการอัปโหลดและดาวน์โหลดของหน้า Wi-Fi: /up แปลง Clash และ sing-box เหมือนที่ /upload ทำ ทั้งคู่บันทึกเป็น <name>.conf ชื่อที่การกำหนดค่าอื่นใช้อยู่จะถูกปฏิเสธ /download ไม่สร้าง .conf.conf อีกต่อไปและส่ง filename* แบบเข้ารหัสแล้ว และ /delete เปรียบเทียบชื่อในรูปแบบ NFC โดยจับคู่แบบตรงทุกตัวก่อน — การกำหนดค่าที่ใช้งานอยู่จึงไม่ถูกลบ และไม่หลุดรอดการตรวจสอบว่ากำลังใช้งานอยู่ ด้วยชื่อเดียวกันที่เขียนในรูปแบบ Unicode อื่น
  • แก้ไขการบันทึกทับการกำหนดค่าชื่อเดียวกันที่เกิดขึ้นเงียบ ๆ: ตอนนี้ตัวแก้ไขและ «ดาวน์โหลดจาก URL» จะถามก่อน และการเขียนทับการกำหนดค่าที่อุโมงค์กำลังใช้งานอยู่จะโหลดการกำหนดค่านั้นใหม่
  • แก้ไขกลุ่มนโยบายที่ซ่อนไว้ซึ่งปรากฏในรายการกลุ่มและรายการ «สากล» ของอุโมงค์; กลุ่มที่ซ่อนไว้แต่กำลังใช้งานอยู่ยังคงแสดง และ «สากล» ที่ชี้ไปยังกลุ่ม select จะถูกแสดง ทำเครื่องหมาย และกู้คืนตามชื่อ
  • แก้ไขการส่งต่อผ่าน QR ของหน้าอัปโหลดผ่าน Wi-Fi: การส่งต่อด้วย chute://tv?url= กลับมาอยู่ในหน้าเว็บโดยตรง การสแกนจึงเปิดแอป Chute iOS ขึ้นมาอย่างที่หน้าเว็บบอกไว้; iPad ก็ส่งต่อได้เช่นกัน เพราะ iPadOS รายงานตัวเองเป็นเบราว์เซอร์เดสก์ท็อป ซึ่งการตรวจแบบเฉพาะโทรศัพท์มองข้ามไป; และเบราว์เซอร์ที่ไม่ยอมเปิดสคีมแบบกำหนดเองหากไม่มีการแตะจะได้ปุ่ม «เปิดใน Chute» ซึ่งแปลไว้ในทั้งเก้าภาษาของหน้าเว็บ
  • แก้ไขการขัดข้องหลายจุด: ใน «การตั้งค่า › เซสชัน», ในตัวแก้ไขการกำหนดค่าสำหรับโปรไฟล์ที่ตั้ง loglevel = none, กับเซสชันที่อุโมงค์เขียนค้างไว้ครึ่งทาง (ซึ่งหลังจากนั้นจะเปิดไม่ได้อีกเลย), ทุกครั้งที่เปิดแอปหลังได้รับคำตอบที่ไม่คาดคิดจากเซิร์ฟเวอร์ใบอนุญาต, ตอนเปิดแอปและใน «ดูใบอนุญาต» เมื่ออ่านใบอนุญาตไม่ได้ และทุกครั้งที่เข้ารายการการกำหนดค่าเมื่อโฟลเดอร์ที่แชร์มีไฟล์ระบบหลงเข้ามา ตอนนี้การล้างช่องในการตั้งค่าจะล้างค่าจริง ๆ
  • แก้ไขการรีเฟรชการสมัครสมาชิกที่ถึงกำหนด ซึ่งทำให้รายการการกำหนดค่าและการบันทึกการแก้ไขต้องรอนานถึง 30 วินาที; ตอนนี้การรีเฟรชจะทำงานต่อเมื่อการดาวน์โหลดของตัวเองเสร็จ โดยไม่ทำให้สิ่งใดต้องรอ
  • แก้ไขการขัดข้องที่เกิดจากสองเธรดเปลี่ยนข้อมูลเดียวกันพร้อมกัน — ระหว่างการเปิดแอปแบบเย็น ระหว่างการอ่านบันทึกของเซสชัน และระหว่างการรีเฟรชรายการเซสชัน
  • แก้ไขอุโมงค์ที่เริ่มใหม่แล้วใช้พอร์ตโลคัลแรกและหมายเลขลำดับ TCP ซ้ำกับรอบก่อนหน้า ซึ่งเพียร์ WireGuard ที่ยังถือการเชื่อมต่อเดิมอยู่ตอบกลับด้วยการรีเซ็ต; ตอนนี้สแต็ก TCP ของอุโมงค์ตั้งค่าเริ่มต้นจากแหล่งสุ่มของระบบ และเลือกหมายเลขลำดับเริ่มต้นตามที่ RFC 6528 อธิบาย
  • แก้ไข XHTTP ที่ค้างในอุโมงค์หลังแอปเขียนข้อมูลครั้งแรก ทำให้ TLS handshake ไม่เคยเสร็จและการอัปโหลดส่งได้เพียงก้อนเดียว; ตอนนี้การเขียนแต่ละครั้งเสร็จสมบูรณ์ตามลำดับ และเมื่อมีข้อมูลรออัปโหลดเกิน 1 MB การเขียนครั้งถัดไปจะรอจนกว่าข้อมูลนั้นจะถูกส่งออกไป
  • แก้ไข PROTOCOL,TCP และ PROTOCOL,UDP ที่ไม่เคยจับคู่: ตอนนี้การเชื่อมต่อขาเข้าทุกรายการตัดสินการขนส่งของตัวเอง วิธีปกติในการบล็อก QUIC ด้วยกฎ AND จึงใช้ได้
  • แก้ไข RULE-SET และ DOMAIN-SET ภายใน AND / OR / NOT ที่ประเมินเป็นเท็จเสมอ — ทำให้ NOT,((RULE-SET,…)) ปฏิเสธทราฟฟิกในประเทศไปด้วย — และ SCRIPT ภายในกฎตรรกะที่ประเมินเป็นจริงเสมอ
  • แก้ไข RULE-SET,<name>,<policy>,no-resolve ที่สูญเสีย no-resolve เมื่อเขียนด้วยชื่อ, GEOIP และ IP-ASN UNKNOWN ที่ไม่เคยจับคู่, status-code= ของ Map Local ที่ถูกละเลยบน HTTP/2 และ Header Rewrite ฝั่งการตอบกลับบน HTTP ธรรมดาที่จับคู่เฉพาะพาธ ทำให้รูปแบบที่เขียนสำหรับ URL เต็มไม่มีทางจับคู่ได้
  • แก้ไข block-quic ที่ยอมรับค่าของ Surge เพียงค่าเดียว โดยค่าอื่นทั้งหมดหมายถึงไม่บล็อก QUIC เลย
  • แก้ไข API สคริปต์: $klne.getPolicyGroups() และ selectPolicy() ไม่โยนข้อผิดพลาดในการเรียกใช้ครั้งแรกอีกต่อไป, reloadConfiguration() โหลดใหม่จริง, getActiveConnections() รายงานโฮสต์ พอร์ต และ id จริง, closeConnection() ปิดจริง และสคริปต์ before-send ที่มี requires-body ได้รับเนื้อหาเสียที
  • แก้ไข [Replica] keyword-filter ที่เปรียบเทียบกับชื่อโฮสต์ทั้งชื่อ แทนที่จะตรวจว่าชื่อโฮสต์มีคีย์เวิร์ดนั้นอยู่หรือไม่ ทำให้ keyword-filter = google ไม่ครอบคลุม www.google.com
  • แก้ไขกฎ PROCESS-PATH และ PROCESS-NAME-REGEX ที่ถูกตรวจบน Apple TV กับชื่อที่ไม่ใช่ชื่อโปรเซส; เช่นเดียวกับ PROCESS-NAME กฎเหล่านี้ใช้ได้เฉพาะบน macOS และไม่มีวันจับคู่บน Apple TV
  • ปรับปรุงความเสถียรและประสิทธิภาพต่าง ๆ

เวอร์ชัน 1.4 (75)

คุณสมบัติใหม่:

  • เพิ่มแถว «ที่อยู่คอนโซลเว็บ» ในแผงควบคุม: จะปรากฏเมื่อตัวรับฟังของคอนโซลทำงานจริงแล้ว และเมื่อเปิดจะแสดง QR โค้ดที่ URL พาโทเคนการเข้าถึงไปด้วย — สแกนด้วยโทรศัพท์ก็ลงชื่อเข้าใช้ได้ทันที ไม่ต้องคัดลอกที่อยู่และเลขฐานสิบหก 32 ตัวด้วยรีโมท
  • เพิ่ม «ชุดข้อมูลวินิจฉัยออฟไลน์» ในการตั้งค่า ซึ่งแอปสร้างเองโดยไม่ต้องมีอุโมงค์ทำงาน: รายละเอียดอุปกรณ์และแอป โปรไฟล์ VPN ตามที่ tvOS เก็บไว้ สรุปการกำหนดค่าที่เลือกและข้อผิดพลาดในการแยกวิเคราะห์ ส่วนของเครือข่าย (การเข้าถึงได้ ชนิดของลิงก์ เซิร์ฟเวอร์ DNS ที่อยู่และอินเทอร์เฟซในเครื่อง) ส่วนต้นของการกำหนดค่าที่ลบข้อมูลอ่อนไหวแล้ว วิธีที่รอบก่อนหน้าจบลง ชาร์ดบันทึกของเซสชันล่าสุด และรายงานการขัดข้องที่รอส่ง เนื่องจาก tvOS ไม่มีแผงแชร์ ไฟล์เก็บถาวรจึงถูกให้บริการโดยเซิร์ฟเวอร์ HTTP ในเครื่องแบบใช้ครั้งเดียวบนพาธที่เดาไม่ได้ และแสดงเป็น QR โค้ด ลิงก์จะใช้ไม่ได้ทันทีเมื่อออกจากหน้านี้
  • เพิ่มตัวกรองตามระดับความรุนแรงในบันทึกเซสชัน — ทั้งหมด, Notify+, Warning+, Fatal — «ขอดูเฉพาะคำเตือน» จึงเป็นแค่การกดครั้งเดียว แทนการพิมพ์ค้นหาบนแป้นพิมพ์บนหน้าจอ; บรรทัดที่ตัวแยกวิเคราะห์จัดระดับไม่ได้จะไม่ถูกซ่อนเลย
  • เพิ่มการระบุที่มาของการเขียนใหม่ในรายละเอียดเซสชัน: ส่วน «REWRITES» จะแสดงกฎ URL Rewrite, Header Rewrite, Body Rewrite หรือการตอบกลับจำลองที่แก้ไขคำขอ ไว้ข้างกฎและนโยบายที่กำหนดเส้นทางให้คำขอนั้น
  • เพิ่มแถว «อนุญาตการเข้าถึงผ่าน Wi-Fi» ในตัวแก้ไขการกำหนดค่า — คีย์ที่เกิดขึ้นเมื่อนำเข้า http-listen = 0.0.0.0:… ของ Surge หรือ allow-lan ของ sing-box และเป็นสถานะที่ตัวแก้ไขเดิมแสดงไม่ได้เลย; ขณะที่เปิดอยู่ แถวตัวรับฟังทั้งสองจะแสดงว่าเปิดและถูกล็อกไว้ เพราะเอนจินขยายตัวรับฟังทั้งสองเอง
  • เพิ่มภาษาฝรั่งเศสเป็นภาษาในตัว และประกาศภาษาในตัวทั้งแปดภาษาต่อ App Store
  • เพิ่มแท็บ «ปัจจุบัน» และ «ประวัติ», มุมมองตรวจสอบ (กฎที่ตรง แหล่งที่มาของกฎ นโยบาย อะแดปเตอร์ แหล่งที่มาของ DNS เหตุผลที่ปิด เนื้อหาคำขอและการตอบกลับ), หน้า «กฎ» ที่แสดงว่ากฎการเขียนใหม่ใดถูกเรียกใช้แล้ว และหน้า «การวินิจฉัย» (หน่วยความจำที่ใช้ CPU เวลาทำงาน จำนวนโฟลว์ วิธีที่รอบก่อนหน้าจบลง จำนวนการปฏิเสธ บันทึกเหตุการณ์ ภาพรวม Tailscale และการตรวจสอบ ping / DNS / ขาออก / ทดสอบ URL) ให้คอนโซลเว็บ ซึ่งตอนนี้รองรับครบทั้งเก้าภาษา — และเนื่องจากตัวทีวีเองไม่มีที่เก็บไฟล์ ผู้ใช้ tvOS จึงดาวน์โหลดชุดข้อมูลวินิจฉัยขณะทำงานและไฟล์ HAR จากคอนโซลนี้เช่นกัน
  • เพิ่มปลายทางของ HTTP Control API: /api/health, /api/events, /api/tailscale, การตรวจสอบภายใต้ /api/diagnostics/, /api/connections/export?format=har, /api/diagnostics/bundle, การจัดการกฎการเขียนใหม่และโฮสต์ MitM ภายใต้ /api/rewrites และ /api/mitm/hosts, POST /api/rules/match สำหรับทดลองจับคู่คำขอกับตารางกฎ (รายงานทั้งสองรอบของ DNS), GET|PUT /api/loglevel สำหรับเปลี่ยนระดับบันทึกและส่วนของระบบย่อยโดยไม่ต้องโหลดใหม่ และ POST /api/config/validate สำหรับตรวจสอบโปรไฟล์โดยไม่นำไปใช้

การปรับปรุง:

  • HTTP Control API จะไม่เปิดให้เข้าถึงโดยไม่ยืนยันตัวตนอีกต่อไปเมื่อการกำหนดค่าไม่ได้ระบุ external-http-secret: เอนจินจะสร้างโทเคน ซึ่ง QR โค้ดของ «ที่อยู่คอนโซลเว็บ» พาไปด้วย หากต้องการคงการเข้าถึงแบบไม่ระบุตัวตน ให้ตั้ง external-http-secret = none และที่อยู่รับฟังแบบไวลด์การ์ดจะไม่ถูกถือเป็น loopback อีกต่อไป
  • การจับคู่กฎกับรายการขนาดใหญ่เร็วขึ้นมาก: เนื้อหาของ RULE-SET และ DOMAIN-SET จะถูกทำดัชนีเมื่อดาวน์โหลดหรือกู้คืน แทนการอ่านสตรีมทั้งไฟล์ทุกการเชื่อมต่อ และตารางกฎที่มีแต่กฎโดเมนจะจับคู่ผ่านแผนแบบแฮช — รายการ 50,000 บรรทัดใช้เวลาต่อการค้นหาจากราว 94 ms เหลือไม่ถึง 2 ms โดยใช้หน่วยความจำราว 100 KB ต่อดัชนี
  • โฟลว์ UDP จับคู่เพียงครั้งเดียว: ผลการตัดสินของโฟลว์จะถูกจำไว้ 60 วินาที ดาต้าแกรมถัดไปจึงข้ามการจับคู่ทั้งสองรอบและการสอบถาม DNS ระหว่างนั้น
  • ฟื้นตัวหลังเปลี่ยนเครือข่ายได้ดีขึ้น: อุโมงค์ที่ที่อยู่ต้นทางฝั่งอัปสตรีมไม่มีอยู่บนอินเทอร์เฟซใดแล้วจะถูกปิดทันที แทนที่จะปล่อยให้แอปค้างจนหมดเวลาว่าง และเส้นทางที่รับการเชื่อมต่อได้แต่ไม่มีข้อมูลไหลจะถูกรายงานเป็นหลุมดำ
  • บันทึกเซสชันเขียนเป็นชาร์ดขนาด 8 MB (สูงสุดแปดชาร์ดต่อรอบ ลบชาร์ดเก่าสุดก่อน); หน้าบันทึกจะดึงชาร์ดใหม่สุดรวมกันไม่เกินหนึ่งชาร์ด แทนการอ่านทั้งรอบเข้าหน่วยความจำ พร้อมแจ้งเมื่อละชาร์ดที่เก่ากว่าไว้ และยังติดตามชาร์ดที่กำลังเขียนอยู่ต่อเนื่องข้ามการหมุนไฟล์
  • เอนจินเก็บเครื่องหมายการทำงานไว้ระหว่างทำงาน และเมื่อเริ่มครั้งถัดไปจะรายงานว่ารอบก่อนหน้าหยุดตามปกติหรือถูกบังคับปิด — ในส่วนหัวของบันทึก /api/status และชุดข้อมูลวินิจฉัยทั้งสองแบบ
  • การส่งออก HAR ตอนนี้สร้างโดยเอนจินจากเฟรมที่บันทึกไว้ รหัสสถานะ การประทับเวลา และเวลาที่ใช้จึงเป็นค่าจริง และแต่ละรายการมีนโยบายที่เลือก กฎที่ตรง และการเขียนใหม่ที่เกิดขึ้นอยู่ใต้ _kl
  • มีเพียงสามคุณสมบัติที่หน้าซื้อจำหน่ายเท่านั้นที่ต้องใช้ใบอนุญาต — การกำหนดค่าหลายชุด การควบคุมเซิร์ฟเวอร์พร็อกซีท้องถิ่น และเครื่องบันทึกการรับส่งข้อมูล; สวิตช์ HTTP API และคอนโซลเว็บ, การดมกลิ่นโปรโตคอล, Optimus DNS, ล้างแคช DNS และแถว «ที่อยู่คอนโซลเว็บ» ไม่ต้องใช้ใบอนุญาตอีกต่อไป และผู้ใช้ที่ยังไม่ซื้อซึ่งอุโมงค์ยังไม่ทำงานจะได้รับคำแนะนำให้เริ่มอุโมงค์ แทนที่จะเห็นหน้าซื้อ
  • คอนโซลที่ผูกกับที่อยู่ loopback จะบอกว่าเปิดได้เฉพาะบน Apple TV เครื่องนี้และควรตั้งค่าอะไรแทน แทนที่จะเสนอ QR โค้ดที่เปิดไม่ได้; โทเคนการเข้าถึงก็ไม่ถูกแสดงบนจอที่ทั้งห้องมองเห็นอีกต่อไป
  • ข้อความการซื้อระบุแล้วว่าการซื้อหนึ่งครั้งครอบคลุม Apple TV สามเครื่องและ iPhone หรือ iPad สามเครื่อง; เมื่อ «กู้คืนการซื้อ IAP» ไม่พบอะไร กล่องแจ้งเตือนจะเสนอ «ดูคู่มือ» และแสดง QR โค้ดของคำแนะนำเรื่องใบอนุญาตข้ามแพลตฟอร์มในภาษาของแอป
  • ที่ loglevel = info โฟลว์ขนาดใหญ่ที่ส่งข้อมูลอย่างน้อย 1 MiB จะบันทึกหนึ่งบรรทัดตอนปิด บอกว่ารอฝั่งระยะไกลและฝั่งแอปนานเท่าใด

การแก้ไขข้อบกพร่อง:

  • แก้ไข MitM ในโหมด TUN: โฮสต์ที่ตรงกับกฎ MitM ค้างจนหมดเวลา ทำให้ Header Rewrite, Body Rewrite, การตอบกลับจำลอง และการจับข้อมูลที่ถอดรหัสของ HTTPS ไม่เคยมีผลกับทราฟฟิกของแอปเลย (ทราฟฟิกผ่านพร็อกซี HTTP/SOCKS5 ท้องถิ่นไม่ได้รับผลกระทบ)
  • แก้ไข allow-wifi-access ที่ไม่มีผล: ตัวรับฟัง HTTP และ SOCKS5 ท้องถิ่นยังคงอยู่บน loopback ทำให้อุปกรณ์อื่นบน Wi-Fi เข้าถึงไม่ได้; ตอนนี้ตัวเลือกนี้ (และ allow-lan ของ sing-box เมื่อนำเข้า) จะขยายตัวรับฟังทั้งสอง และเมื่อปิดจะผูกใหม่
  • แก้ไขการสลับสวิตช์ใด ๆ ในส่วนที่สองของแผงควบคุมทำให้แอปขัดข้อง หลังจากที่แถว «ที่อยู่คอนโซลเว็บ» สามารถปรากฏได้ เพราะจำนวนแถวของตารางเปลี่ยนไปขณะโหลดใหม่ทีละแถว
  • แก้ไขหน้าเซสชันที่แสดงเพียงช่วงใดช่วงหนึ่งของรอบการทำงาน และเซสชันที่สูญเสียวันที่หลังการหมุนไฟล์ครั้งที่แปด นับตั้งแต่เอนจินเริ่มหมุนบันทึกตามขนาดคงที่; ชาร์ดถูกเรียงตามหมายเลขแล้ว และมุมมองแบบเรียลไทม์ก็ไม่ค้างที่จุดหมุนไฟล์อีก
  • แก้ไขหน้าบันทึกที่อ่านชาร์ดทั้งหมดของเซสชันเข้าหน่วยความจำพร้อมกัน — มากถึง 64 MB ของข้อความบน Apple TV — และตัวกรองระดับความรุนแรงที่ปล่อยบรรทัดต่อเนื่องของรายการหลายบรรทัดผ่านไป ทั้งที่ซ่อนรายการต้นทางไว้แล้ว
  • แก้ไข Header Rewrite ฝั่งการตอบกลับผ่าน MitM HTTP/1.1 ที่ถูกบันทึกว่านำไปใช้แล้วแต่ไคลเอนต์ยังได้รับส่วนหัวเดิม และไม่เคยตรงกับกฎที่เขียนตาม URL เต็ม
  • แก้ไข Mock Response ที่สร้างการตอบกลับจากส่วนหัวคำขอ — บรรทัดคำขออยู่ในตำแหน่งบรรทัดสถานะ ส่วนหัวคำขอถูกส่งต่อไปด้วย Content-Length ผิด — และบน HTTP ธรรมดายังส่งส่วนหัวของเซิร์ฟเวอร์ต้นทางนำหน้าไปก่อน
  • แก้ไขกฎ IP ที่มี no-resolve (IP-CIDR, GEOIP, IP-ASN) ข้ามการเชื่อมต่อไปยัง IP ตรง ๆ เมื่อการดมกลิ่นโปรโตคอลให้ส่วนหัว Host หรือชื่อจาก reverse DNS มา; IP ตรง ๆ ที่ได้จากการดมกลิ่นจะไม่ตรงกับกฎ DOMAIN อีกต่อไป
  • แก้ไขบรรทัดใน RULE-SET ที่มีตัวเลือกตามหลังเนื้อหา (GEOIP,CN,no-resolve, DOMAIN,example.com,force-remote-dns) ถูกทิ้งหรือไม่ตรงกับอะไรเลย และกฎย่อยของ AND/OR/NOT ที่สูญเสีย no-resolve
  • แก้ไข HOSTNAME-TYPE ที่ไม่เคยตรงเลย: ประเภทระเบียนตอนนี้เป็น A สำหรับการเชื่อมต่อผ่าน IPv4 และ AAAA ผ่าน IPv6 ข้อความตัวอย่างของกฎนี้ในตัวแก้ไขเคยเขียนว่า http | https ซึ่งเป็นของ PROTOCOL ส่วน IN-TYPE เขียนว่า TCP | UDP; ตอนนี้ทั้งสองบอกค่าที่กฎรับจริง
  • แก้ไข IPv6 ในวงเล็บเหลี่ยมในส่วนหัว Host ที่ดมกลิ่นได้ ([2001:db8::1]:8080) ถูกอ่านเป็นชื่อโฮสต์ [2001
  • แก้ไขการเริ่มอุโมงค์ขณะที่กลุ่ม select ตั้งค่าไว้ที่สมาชิกอื่นที่ไม่ใช่ตัวแรก ซึ่งส่งการแจ้งเตือน «กลุ่มนโยบายถูกสลับ» และการสร้างใหม่หลังเริ่มทำให้เกิดคำเตือนการแกว่ง; กลุ่มที่ไม่มีตัวเลือกที่จำไว้จะทำตาม default= ในโปรไฟล์ แทนที่จะถูกบังคับไปที่สมาชิกตัวแรก
  • แก้ไข external-http-controller = *:9090 และ :::9090 — สองรูปแบบที่มีในเอกสาร — ถูกปฏิเสธ ทำให้ตัวควบคุมไม่เริ่มทำงานโดยไม่แจ้ง
  • แก้ไขการขัดข้องเป็นครั้งคราวของการขนส่ง XHTTP ภายใต้โหลดสูง
  • แก้ไขหน้าใบอนุญาตที่แสดงใบรับรองของผลิตภัณฑ์อื่นเป็นชุด Chute; สิ่งที่แอปนี้ถือโดยชอบไม่ได้จะแสดงเป็น «ไม่ทราบ» และเพิ่มป้าย Android แล้ว
  • แก้ไข QR โค้ด «Chute iOS» ในหน้า «เกี่ยวกับ» ที่ชี้ไปยัง App Store ID ที่ใช้ไม่ได้ และ «ให้คะแนน» ที่เปิดหน้าเวอร์ชัน iOS แทนที่จะเป็นแอปนี้
  • แก้ไขการจัดวางของหน้าอัปโหลดผ่าน Wi-Fi
  • แก้ไขชื่อภาษาจีนและภาษาไทยของตระกูลการเขียนใหม่ ให้ตรงกับคู่มือและชื่อส่วนในไฟล์การกำหนดค่าเอง
  • ปรับปรุงความเสถียรและประสิทธิภาพต่าง ๆ

เวอร์ชัน 1.3 (62)

คุณสมบัติใหม่:

  • เพิ่มการขนส่ง XHTTP ในตัวแก้ไขนโยบาย — สวิตช์เปิด/ปิด โหมด (auto, packet-up, stream-up, stream-one) พาธ และโฮสต์ — สำหรับ Trojan, VMess และ VLESS
  • เพิ่มวิธีการเข้ารหัส Shadowsocks AEGIS-128L และ AEGIS-256
  • เพิ่มวิธีการเข้ารหัส Shadowsocks 2022 (SS2022) ที่ขาดหายไป: 2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm และ 2022-blake3-chacha20-poly1305
  • เพิ่มการตั้งค่า ECH (Encrypted Client Hello) สำหรับนโยบาย TLS — สวิตช์เปิด/ปิด การตั้งค่า ECH แบบตรึง (ech-config) และการแทนที่ชื่อกำบัง (ech-public-name)
  • เพิ่มลายนิ้วมือไคลเอนต์ (uTLS) ต่อนโยบาย พร้อมค่าเริ่มต้นทั่วทั้งโปรไฟล์
  • เพิ่มการรองรับโปรโตคอล AmneziaWG ซึ่งเป็น WireGuard รูปแบบหนึ่งที่มีการอำพรางทราฟฟิก
  • เพิ่มหน้าจอรายงานข้อผิดพลาดการกำหนดค่าที่รองรับการนำทางโฟกัสของ tvOS แทนที่การแจ้งเตือนที่ขัดจังหวะการใช้งาน
  • เพิ่มการแลกเปลี่ยนคีย์ไฮบริดแบบต้านควอนตัม X25519MLKEM768 สำหรับ TLS 1.3

การปรับปรุง:

  • เมื่อบันทึก ตัวแก้ไขนโยบายจะเก็บออปชันเดิมที่ไม่สามารถแก้ไขได้ในหน้าจอปัจจุบัน (ECH, ALPN, การปักหมุดใบรับรอง, test-url, udp-relay)

การแก้ไขข้อบกพร่อง:

  • แก้ไขอุโมงค์ขัดข้องจากกฎ IP-CIDR ที่ผิดรูปแบบ
  • แก้ไขการตั้งค่า SSH idle-timeout และ REALITY spiderx ที่เขียนด้วยคีย์ผิดและถูกทิ้งเมื่อบันทึก
  • แก้ไขการขัดข้องเมื่อสลับภาษา
  • แก้ไขปัญหาการแสดงผลของตัวควบคุมบนหน้าจอ
  • การปรับปรุงความเสถียรและประสิทธิภาพหลายด้าน

เวอร์ชัน 1.2 (45)

คุณสมบัติใหม่:

  • เพิ่ม Tailscale เป็นประเภทพร็อกซีในตัว: กำหนดค่าบัญชี Tailscale เข้าร่วม tailnet และส่งทราฟฟิก Apple TV ผ่านโหนด Tailscale — โดยไม่ต้องใช้ไคลเอนต์แยกต่างหาก
  • เพิ่มแผงควบคุม Tailscale ที่แสดงสถานะโหนดแบบเรียลไทม์ (ออนไลน์/ออฟไลน์, IP, เห็นล่าสุด) และสลับ exit node ได้จากรีโมต
  • เพิ่มมุมมอง Dashboard และ Sessions แบบเต็มหน้าจอพร้อมบันทึกเซสชันแบบเข้มแยกระดับ
  • เพิ่มแผงรายละเอียดอุโมงค์สำหรับตรวจสอบอุโมงค์ที่ใช้งานอยู่
  • เพิ่มประเภทพร็อกซี MASQUE ในตัวแก้ไขนโยบาย

การปรับปรุง:

  • ปรับปรุงปริมาณงาน TUN บน Apple TV
  • ปรับปรุงความเสถียรของการเชื่อมต่อและปริมาณงานของ Tailscale และ WireGuard
  • ปรับการนำทางโฟกัสบนหน้าจอหลักข้ามรายการ ปุ่มเปิด/ปิด และแถว About ให้คาดเดาได้ง่ายขึ้น
  • จัดวางเลย์เอาต์การตั้งค่าให้สอดคล้องกับ iOS (นำรายการ Always On ออก, Twitter→X, ขัดเกลาแถว APNs, Rate และ Language)
  • แสดง IP ของอุปกรณ์ในรายการด้านขวาของหน้าหลักเฉพาะเมื่อ VPN ปิดอยู่

การแก้ไขข้อบกพร่อง:

  • แก้ไขสถานะ "VPN ไม่ทำงาน" ที่ไม่ถูกต้องและป้าย "กำลังทำงาน" ที่ค้างอยู่บนแดชบอร์ด
  • แก้ไขการสูญเสียโฟกัสและการกระโดดเมื่อเปิด Dashboard/Sessions และเมื่อกลับจากรายการโหนด Tailscale
  • แก้ไขพฤติกรรมปุ่ม Menu ให้ปิดรายการได้เชื่อถือได้และคืนโฟกัสอย่างถูกต้อง
  • แก้ไขข้อความส่วนท้ายของรายการเซสชันจาก "ปัดเพื่อลบ" เป็น "กดค้างเพื่อลบ"
  • การปรับปรุงความเสถียรและประสิทธิภาพหลายด้าน

เวอร์ชัน 1.0 (35)

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

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

results matching ""

    No results matching ""