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

เวอร์ชัน 1.2.2 (382)

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

  • เพิ่มการต่อพ่วงพร็อกซี: นโยบายระบุ 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 ได้ กลุ่มสุ่มไม่มีตัวเลือกให้เปลี่ยน จึงไม่ปรากฏในจุดที่ใช้เลือกนโยบายของกลุ่ม และตัวแก้ไขกลุ่มจะคงให้เป็นกลุ่มสุ่มไว้
  • เพิ่มเชนพร็อกซีในแดชบอร์ดและคอนโซลเว็บ: รายละเอียดคำขอและรายการ UDP แสดงทุกฮอป (Airport/HK-01 → Landing) และไฟล์ HAR ที่ส่งออกก็มีเส้นทางนี้ด้วย
  • เพิ่ม «ดาวน์โหลดผ่าน» ในตัวแก้ไขผู้ให้บริการกฎและผู้ให้บริการพร็อกซี: policy= จะดึงรายการนั้นผ่านนโยบายที่เลือก และหากระบุชื่อนโยบายที่ไม่มีอยู่ การดาวน์โหลดจะล้มเหลวแทนที่จะออกไปโดยตรง
  • เพิ่ม «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»; โปรแกรมที่ไม่ถูกต้องจะถูกรายงานและกฎนั้นจะถูกข้าม ส่วนเนื้อหาที่ไม่ใช่ JSON โปรแกรมที่ทำงานล้มเหลว หรือผลลัพธ์ที่ว่างเปล่า จะปล่อยเนื้อหาไว้ตามเดิมทั้งหมด
  • เพิ่มสคริปต์ทั่วไป: สคริปต์ type=generic ไม่มีตัวกระตุ้นอัตโนมัติและทำงานเฉพาะเมื่อสั่งเท่านั้น — จากปุ่ม «เรียกใช้» ในตัวแก้ไขของสคริปต์ หรือผ่าน GET /api/scripts และ POST /api/scripts/run นอกจากนี้ตัวแก้ไขสคริปต์ยังมีช่อง «ชื่อเหตุการณ์» เพิ่มขึ้น: ระบบส่งเฉพาะเหตุการณ์ network-changed เท่านั้น สคริปต์เหตุการณ์ที่ระบุเหตุการณ์อื่นจึงไม่มีวันทำงาน
  • เพิ่มพูล 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> สำหรับการแมปเฉพาะเครือข่าย
  • เพิ่มการแจ้งเตือนจากกฎ: กฎใดก็ได้รวมถึง FINAL รองรับ notification-text= และ notification-interval= และจะแสดงการแจ้งเตือนเมื่อจับคู่ได้ โดยแต่ละกฎแจ้งเตือนได้ไม่เกินหนึ่งครั้งต่อช่วงเวลาที่กำหนด; การแจ้งเตือนเป็นไปตามสวิตช์ «อนุญาตการแจ้งเตือน» ของแอป และการแตะการแจ้งเตือนจะเปิด URL ที่แนบมา
  • เพิ่ม 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; ตัวเลือกนโยบายมีนโยบายเหล่านี้ให้เลือก เขียนโทเคน DIRECT / REJECT / PROXY ในตำแหน่งที่เคยเขียนป้ายชื่อแบบแปลภาษา และซ่อมป้ายชื่อที่บิลด์เก่าทิ้งไว้
  • เพิ่มชุดกฎแบบอินไลน์: ส่วน [Ruleset Name] แสดงแยกต่างหากในตัวแก้ไขการกำหนดค่า แก้ไขได้ทีละบรรทัด และอ้างอิงได้ด้วย RULE-SET,<name> รวมถึงการอ้างอิงระหว่างกันเอง — ลึกได้ถึงแปดชั้น และปฏิเสธการวนซ้ำ
  • เพิ่มตระกูล SSID: การแทนที่ DNS ใน [SSID Setting] มีผลแยกตามเครือข่าย — ชื่อ, BSSID:, TYPE:WIFI / CELLULAR / WIRED, ROUTER:, ชื่อในเครื่องหมายคำพูดและชื่อแบบไวลด์การ์ด — และล้างแคชของตัวแปลงชื่อเดิมเมื่อเปลี่ยนเครือข่าย; กลุ่มนโยบาย ssid และ subnet เลือกสมาชิกตามเครือข่ายที่ใช้อยู่จริง กฎ SUBNET จับคู่กับเครือข่ายนั้น และ suspend=true หยุดอุโมงค์ได้แล้ว: ชื่อเครือข่ายหรือรายการ TYPE: จะกลายเป็นกฎตัดการเชื่อมต่อแบบ on-demand รายการ BSSID:, ROUTER: หรือแบบไวลด์การ์ดจะถูกระงับโดยส่วนขยายเอง และส่วนขยายจะแจ้งให้ทราบเมื่อ «เปิดตลอดเวลา» จะทำให้อุโมงค์กลับมาทำงาน
  • เพิ่มช่วงและการเปรียบเทียบของ 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 แทนที่จะหมดเวลา
  • เพิ่ม tun-included-routes: CIDR ที่ระบุจะถูกเพิ่มเข้าในเส้นทางของอุโมงค์ต่อจากเส้นทางเริ่มต้น ช่วงที่อยู่ที่ปกติจะถูกซับเน็ตของอินเทอร์เฟซ Wi-Fi เองหรือ VPN อื่นแย่งไป — เพราะระบบเลือกเส้นทางที่เจาะจงกว่า — จึงวิ่งผ่าน Chute แทน รายการที่จะทำให้อุโมงค์ถูกตัดขาด (loopback, ซับเน็ตของอุโมงค์เอง, link-local, multicast, broadcast, ความยาวพรีฟิกซ์ 0) จะถูกปฏิเสธและมีข้อความในบันทึก ช่วงที่อยู่ส่วนตัวใช้ได้แต่มีคำเตือน และรายการที่แก้ไขจะมีผลเมื่อโหลดการกำหนดค่าใหม่ โดยไม่ต้องเริ่มอุโมงค์ใหม่
  • เพิ่มความสามารถในการนำเข้า: กฎ 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 รายงานเหตุการณ์ที่เกิดขึ้นจริง
  • เพิ่มตัวควบคุมของ «การตอบกลับจำลอง» — เนื้อหาเป็นข้อความ ไฟล์ base64 หรือ GIF ขนาด 1×1 ก็ได้ พร้อมรหัสสถานะและการตรวจสอบความถูกต้อง — และตารางประเภทของ URL Rewrite และ Header Rewrite พร้อมโหมดนิพจน์ทั่วไปสำหรับแทนที่ค่าของส่วนหัว

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

  • ตอนนี้ Chute ต้องใช้ iOS 15 ขึ้นไป
  • ตัวแก้ไขแบบมีโครงสร้างทุกตัวเก็บสิ่งที่ไม่ได้แสดงไว้แล้ว: ตัวสร้างแต่ละตัวจะคงคีย์ที่ตนไม่ได้แสดงไว้ — ตัวเลือกที่เหลือของกฎ กฎย่อยของ AND / OR / NOT ที่อยู่อื่น ๆ ของรายการ [Host] บรรทัดอื่น ๆ ของส่วนหัวโมดูล — การเปิดแล้วบันทึกการกำหนดค่าจึงไม่เขียนเนื้อหาใหม่อีกต่อไป และรายการที่ตัวแก้ไขไม่รู้จักประเภทจะถูกแก้ไขเป็นข้อความ
  • ตัวแก้ไข Body Rewrite, Header Rewrite, URL Rewrite, Map Local, การตอบกลับจำลอง และสคริปต์ เขียนสิ่งที่เอนจินอ่านได้จริง: สคริปต์ถูกบันทึกพร้อม type= ของมัน ค่า JSONPath คงชนิดเดิมไว้ และ Map Local เก็บ status-code, data-type และส่วนหัวไว้
  • การนำเข้าโปรไฟล์ที่เผยแพร่ไม่ทำให้การกำหนดเส้นทางสูญหายอีกต่อไป: dns-server รองรับ URL ของ DNS แบบเข้ารหัส บรรทัดตัวรับฟังรองรับรหัสผ่าน สมาชิกกลุ่มที่อยู่ในเครื่องหมายคำพูดไม่หายไป กฎตรรกะของ sing-box แปลงตามที่เอกสารระบุ สมาชิก PASS ถูกตัดออกแทนที่จะกลายเป็น REJECT และโปรโตคอลหรือประเภทกลุ่มที่ไม่รองรับจะแสดงคำเตือนแทนที่จะทำให้ทั้งกลุ่มใช้งานไม่ได้ — ในโปรไฟล์ mihomo ที่นำเข้า กฎที่ไม่มีวันจับคู่ได้ลดลงจากส่วนใหญ่ของรายการจนแทบไม่เหลือ
  • ชุดกฎใช้หน่วยความจำน้อยลงมาก: ผู้ให้บริการดาวน์โหลดทีละรายการต่อกันไป แทนที่จะล้มเหลวไปเลยหลังรายการที่ 35 การใช้หน่วยความจำสูงสุดขณะแปลงลดลง 62–73% การเชื่อมต่อดัชนีถูกจำกัดจำนวนและถูกปล่อยคืนเมื่อหน่วยความจำตึงตัว และเพย์โหลดที่ใหญ่เกินไปสำหรับอุปกรณ์จะถูกปฏิเสธ พร้อมแสดงเหตุผลในสถานะของชุดกฎ
  • การจำกัดทรัพยากรป้องกันไม่ให้การกำหนดค่าที่ใหญ่เกินไปดันส่วนขยายอุโมงค์จนเกินขีดจำกัดหน่วยความจำ: ที่เก็บใบรับรอง MitM ข้อมูลดักจับที่ค้างอยู่ ขนาดและจำนวนสคริปต์ งบคำขอของคอนโซล เพียร์ Tailscale และแคช DNS ล้วนมีเพดานบน iOS
  • การทดสอบความหน่วงใช้เป้าหมายที่ถูกต้อง: test-url และ test-timeout ของกลุ่ม, proxy-test-url ของโปรไฟล์ และ test-url กับ expected-status ของสมาชิกเอง ล้วนถูกนำมาใช้ และโหนดที่ต่อพ่วงอยู่จะถูกทดสอบผ่านสายต่อพ่วงของมันแทนที่จะทดสอบโดยตรง
  • คอนโซลเว็บและ control API: กฎที่เพิ่มขณะทำงานจะไม่ค้างอยู่หลังโหลดโปรไฟล์เดิมซ้ำอีกต่อไป เคอร์เซอร์ของบันทึกเดินหน้าทางเดียว การโพลล์จึงไม่ข้ามรายการใดเลย และรายละเอียดการเชื่อมต่อแสดงเชนพร็อกซี
  • ShadowTLS ตรวจสอบใบรับรองของเว็บไซต์บังหน้าแล้วเมื่อมีการเขียน sni= เหมือนที่ sing-box ทำ; skip-cert-verify=true จะปิดการตรวจสอบนี้ (เมื่อก่อนตัวเลือกนี้ถูกละเลย และไม่มีการตรวจใบรับรองเลย) และหากไม่มี sni= การตรวจสอบจะถูกข้ามพร้อมคำเตือน
  • การดาวน์โหลดและการสมัครสมาชิก: การดาวน์โหลดแต่ละครั้งเขียนลงไฟล์ของตัวเอง และตัดสินรูปแบบจากเนื้อหา การรีเฟรชจึงไม่อ่านไฟล์จากการดาวน์โหลดครั้งแรกซ้ำ หรือนำโปรไฟล์ของที่อยู่อื่นมาใช้อีก; โปรไฟล์ที่แปลงจาก Clash หรือ sing-box จะถูกบันทึกเป็น .conf และตั้งชื่อแบบเดียวกับที่แอป Chute ทุกตัวใช้; ชื่อที่ซ้ำกับที่มีอยู่จะถูกเติมหมายเลขแทนการบันทึกทับ
  • การจัดการการกำหนดค่า: การบันทึกด้วยชื่ออื่นจะถามก่อน โหลดอุโมงค์ใหม่เมื่อเขียนทับไฟล์ที่กำลังใช้งาน และไม่ลบไฟล์ต้นทางที่ใช้เปิดการกำหนดค่าอีกต่อไป; «ซิงค์จาก iCloud» นับการกำหนดค่าที่ติดตั้งอยู่แล้วรวมในขีดจำกัดของใบอนุญาต; กลุ่มนโยบายที่ซ่อนไว้จะไม่ปรากฏในรายการ «สากล» และ select ขณะที่เอนจินยังเข้าถึงได้; «สากล» แสดงกลุ่มที่กำลังใช้งานอยู่เสมอ
  • หน้าอัปโหลดผ่าน Wi-Fi คงนามสกุลของไฟล์ที่ได้รับ ปฏิเสธชื่อที่ถูกใช้อยู่พร้อมบอกเหตุผล และส่งชื่อที่ไม่ใช่ ASCII ตามที่ RFC 6266 กำหนด ไฟล์ 上传的配置.conf จึงมาถึงด้วยชื่อนั้นตรงตัว
  • การตั้งค่า ข้อความ และการแจ้งเตือนใหม่มีครบทั้งแปดภาษาในตัว และการแจ้งเตือนของอุโมงค์บอกเหตุผลที่อุโมงค์หยุดทำงาน

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

  • แก้ไข Hysteria2 ที่ทิ้งดาต้าแกรม UDP ทุกตัวที่ใหญ่เกินกว่าจะใส่ในเฟรม QUIC DATAGRAM เดียว ซึ่งทำให้ HTTP/3 ของแอปผ่านไปไม่ได้และต้องถอยกลับไปใช้ TCP; ตอนนี้ดาต้าแกรมขนาดใหญ่จะถูกแบ่งตอนส่งออก และการตอบกลับที่เซิร์ฟเวอร์แบ่งมาจะถูกประกอบกลับ
  • แก้ไขอุโมงค์ที่เริ่มใหม่แล้วใช้พอร์ตโลคัลแรกและหมายเลขลำดับ 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-NAME, PROCESS-PATH และ PROCESS-NAME-REGEX ที่จับคู่ทราฟฟิกของเบราว์เซอร์บน iOS ซึ่งชื่อที่ใช้เปรียบเทียบคือชื่อผลิตภัณฑ์ของเบราว์เซอร์ ไม่ใช่ชื่อโปรเซส; กฎเหล่านี้ใช้ได้เฉพาะบน macOS และจะไม่จับคู่อะไรบน iOS อีกต่อไป
  • แก้ไขโปรไฟล์แดชบอร์ดที่บันทึกไว้ถูกอ่านกลับมาเป็นประเภทผิด ทำให้แอปขัดข้องทุกครั้งที่แตะ; แถวที่ถูกลากหรือลบในรายการที่มีข้อมูลซ้ำทำให้ตารางไม่ตรงกับข้อมูลของตาราง; และการขัดข้องเมื่อหน้าจอที่ปิดไปแล้วถูกเรียกกลับ
  • แก้ไขการรีเฟรชการสมัครสมาชิกอัตโนมัติที่บล็อกเธรดหลักนาน 30 วินาที ซึ่งทำให้แอปถูก watchdog สั่งปิดเมื่อแอปถูกสลับไปเบื้องหลังระหว่างรีเฟรช; สวิตช์ใน Control Center ที่ล้มเหลวเสมอเพราะวิดเจ็ตไม่มีสิทธิ์ควบคุม VPN, «ภาพซ้อนภาพ» ที่ถูกแสดงสองครั้ง และ continuation ของวิดเจ็ตที่ถูกเรียกต่อสองครั้ง
  • แก้ไขการดาวน์โหลดและชื่อไฟล์: ไฟล์ดาวน์โหลดที่เก็บไว้ถูกอ่านซ้ำในการรีเฟรชครั้งถัดไป, ที่อยู่หนึ่งได้โปรไฟล์ของอีกที่อยู่หนึ่งเมื่อทั้งคู่เสนอชื่อเดียวกัน, การนำเข้าหรือการคัดลอกลบไฟล์ต้นทางใน iCloud ทิ้ง, ไฟล์ที่อัปโหลดสูญเสียทุกอย่างหลังจุดแรกของชื่อ, การสมัครสมาชิกที่ที่อยู่ลงท้ายด้วยนามสกุลอย่างเดียวถูกบันทึกเป็นไฟล์ซ่อน และการแก้ไขถูกบันทึกทับการกำหนดค่าที่อ่านได้โดยไม่ถามก่อน
  • แก้ไขลิงก์ chute:// — เช่น จากระบบอัตโนมัติของคำสั่งลัด — ที่ไม่ทำงานเมื่อ Chute ยังไม่ได้เปิดอยู่; ตอนนี้การเปิดแอปแบบเย็น (cold launch) ก็จัดการลิงก์นี้ได้ด้วย
  • ปรับปรุงความเสถียรและประสิทธิภาพต่าง ๆ

เวอร์ชัน 1.2.0 (351)

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

  • เพิ่มที่อยู่ของคอนโซลเว็บในแผงควบคุม: แถว «คอนโซลเว็บ» แสดงโฮสต์ และเมื่อแตะจะมีตัวเลือก เปิด, คัดลอกที่อยู่ และคัดลอกโทเคนการเข้าถึง — «เปิด» จะพาโทเคนไปใน URL จึงลงชื่อเข้าใช้ได้โดยไม่ต้องพิมพ์
  • เพิ่ม «ชุดข้อมูลวินิจฉัยขณะทำงาน» เป็นแถวสุดท้ายของส่วน «พร็อกซีท้องถิ่น» ในแผงควบคุม: เอนจินที่กำลังทำงานสร้างไฟล์เก็บถาวรที่ลบข้อมูลอ่อนไหวแล้ว (การกำหนดค่า ภาพรวมสุขภาพ เหตุการณ์ของรอบนี้ กฎและนโยบายที่โหลดไว้ DNS ทราฟฟิก และชาร์ดบันทึก) แล้วส่งให้แผงแชร์ ต้องมีอุโมงค์เชื่อมต่ออยู่ แต่ไม่ต้องใช้ external-http-controller
  • เพิ่ม «ชุดข้อมูลวินิจฉัยออฟไลน์» ในการตั้งค่า → ส่วน «การวินิจฉัย» ซึ่งแอปสร้างเองโดยไม่ต้องมีอุโมงค์ทำงาน: รายละเอียดอุปกรณ์และแอป โปรไฟล์ VPN ตามที่ iOS เก็บไว้ สรุปการกำหนดค่าที่เลือกและข้อผิดพลาดในการแยกวิเคราะห์ หน้าวินิจฉัยทั้งสามในรูปข้อความ ส่วนต้นของการกำหนดค่าที่ลบข้อมูลอ่อนไหวแล้ว วิธีที่รอบก่อนหน้าจบลง ส่วนท้ายบันทึกของเซสชันล่าสุด และรายงานการขัดข้องที่รอส่ง
  • เพิ่ม «แชร์บันทึก» ในหน้าเซสชัน ซึ่งเสนอชาร์ดทั้งหมดของบันทึกในเซสชันนั้น
  • เพิ่มการระบุที่มาของการเขียนใหม่ในรายละเอียดเซสชัน: ส่วน «นโยบาย» จะแสดงกฎ URL Rewrite, Header Rewrite, Body Rewrite หรือการตอบกลับจำลองที่แก้ไขคำขอ ไว้ข้างกฎและนโยบายที่กำหนดเส้นทางให้คำขอนั้น
  • เพิ่มการแจ้งเตือน «ที่อยู่เครือข่ายเปลี่ยนแปลง» แทน «IP ขาออกเปลี่ยนแปลง»: แสดง IPv4 และ IPv6 ของอุปกรณ์นี้เองบนลิงก์กายภาพ บรรทัดละหนึ่งตระกูล และระบุ IPv4 ที่อยู่หลัง NAT; IPv6 และ IPv4 ที่กำหนดเส้นทางได้อ่านจากเครื่องโดยตรง มีเพียง IPv4 หลัง NAT เท่านั้นที่ต้องส่งคำขอ STUN หนึ่งครั้ง
  • เพิ่มภาษาฝรั่งเศสเป็นภาษาในตัว
  • เพิ่มหน้าอัปโหลดผ่าน Wi-Fi ที่ออกแบบใหม่ในสไตล์เดียวกับคอนโซลเว็บ รองรับเก้าภาษา
  • เพิ่มแท็บ «ปัจจุบัน» และ «ประวัติ», มุมมองตรวจสอบ (กฎที่ตรง แหล่งที่มาของกฎ นโยบาย อะแดปเตอร์ แหล่งที่มาของ DNS โปรเซส เหตุผลที่ปิด เนื้อหาคำขอและการตอบกลับ), หน้า «กฎ» ที่แสดงว่ากฎการเขียนใหม่ใดถูกเรียกใช้แล้ว และหน้า «การวินิจฉัย» (หน่วยความจำที่ใช้ CPU เวลาทำงาน จำนวนโฟลว์ วิธีที่รอบก่อนหน้าจบลง จำนวนการปฏิเสธ บันทึกเหตุการณ์ ภาพรวม Tailscale และการตรวจสอบ ping / DNS / ขาออก / ทดสอบ URL) ให้คอนโซลเว็บ ซึ่งตอนนี้รองรับครบทั้งเก้าภาษา
  • เพิ่มปลายทางของ 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: เอนจินจะสร้างโทเคน ซึ่งแผงควบคุมแสดงและคัดลอกได้ หากต้องการคงการเข้าถึงแบบไม่ระบุตัวตน ให้ตั้ง 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; «ส่งออก HAR» บนแดชบอร์ดและรายละเอียดการเชื่อมต่อใช้ตัวส่งออกนี้ทั้งคู่
  • มีเพียงสามคุณสมบัติที่หน้าซื้อจำหน่ายเท่านั้นที่ต้องใช้ใบอนุญาต — การควบคุมเซิร์ฟเวอร์ขั้นสูง MitM และเครื่องบันทึกการรับส่งข้อมูล; การดมกลิ่นโปรโตคอล Optimus DNS การเข้าถึงภายนอก HTTP API คอนโซลเว็บ และล้างแคช DNS ไม่ต้องใช้ใบอนุญาตอีกต่อไป
  • แผงควบคุมติดตามสถานะอุโมงค์: รีเซ็ตสถานะเมื่ออุโมงค์หยุด สอบถามใหม่เมื่อเชื่อมต่ออีกครั้ง และแสดงที่อยู่คอนโซลเฉพาะเมื่อหน้านั้นเปิดให้บริการจริง
  • ตัวแก้ไขการกำหนดค่าจะล็อกสวิตช์ตัวรับฟังทั้งสองไว้ขณะที่ allow-wifi-access เปิดอยู่ (เพราะเอนจินขยายตัวรับฟังทั้งสองเอง) และคืนค่าอินเทอร์เฟซที่กำหนดไว้เมื่อปิดตัวเลือกนี้
  • เมื่อ «กู้คืนการซื้อ IAP» ไม่พบอะไร กล่องแจ้งเตือนจะเสนอ «ดูคู่มือ» ซึ่งเปิดคำแนะนำเรื่องใบอนุญาตข้ามแพลตฟอร์มในภาษาของแอป; ข้อความการซื้อระบุแล้วว่าการซื้อหนึ่งครั้งครอบคลุม iPhone หรือ iPad สามเครื่องและ Apple TV สามเครื่อง
  • รายการโหนด Tailnet มีหน้าตาเหมือนรายการอื่นแล้ว — จัดกลุ่มแบบ inset และมีแถว «ไม่มีรายการ» สำหรับส่วนที่ว่าง — และสอบถามสถานะโหนดใหม่ทุกครั้งที่แสดง
  • ที่ 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 เมื่อนำเข้า) จะขยายตัวรับฟังทั้งสอง และเมื่อปิดจะผูกใหม่
  • แก้ไข 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 และข้อความตัวอย่างในตัวแก้ไขกฎก็บอกเช่นนั้น
  • แก้ไขโดเมนที่ถูกกฎ AND/OR/NOT ที่มีกฎย่อยโดเมนกำหนดเส้นทางไปพร็อกซี แต่เซิร์ฟเวอร์ DNS ยังแก้ชื่อจริง ทำให้คำตอบ DNS กับการตัดสินเส้นทางไม่สอดคล้องกัน
  • แก้ไข IPv6 ในวงเล็บเหลี่ยมในส่วนหัว Host ที่ดมกลิ่นได้ ([2001:db8::1]:8080) ถูกอ่านเป็นชื่อโฮสต์ [2001
  • แก้ไขการเริ่มอุโมงค์ขณะที่กลุ่ม select ตั้งค่าไว้ที่สมาชิกอื่นที่ไม่ใช่ตัวแรก ซึ่งส่งการแจ้งเตือน «กลุ่มนโยบายถูกสลับ» และการสร้างใหม่หลังเริ่มทำให้เกิดคำเตือนการแกว่ง; กลุ่มที่ไม่มีตัวเลือกที่จำไว้จะทำตาม default= ในโปรไฟล์ แทนที่จะถูกบังคับไปที่สมาชิกตัวแรก
  • แก้ไขแผงควบคุมทำให้แอปค้างที่ CPU 100% และหน่วยความจำเพิ่มขึ้นเรื่อย ๆ เมื่อเปิดหลังจากอุโมงค์ทำงานมาระยะหนึ่ง
  • แก้ไขการส่งออก HAR ที่เขียนรหัสสถานะผิดและการประทับเวลาเป็นปี 1970 และการส่งออกจากรายละเอียดการเชื่อมต่อที่สร้างไฟล์ซึ่งไม่มีตัวอ่าน HAR ใดเปิดได้
  • แก้ไข [Replica] hide-crashlytics-request ที่ถูกแยกวิเคราะห์แต่ไม่เคยนำไปใช้กับการจับข้อมูล
  • แก้ไข external-http-controller = *:9090 และ :::9090 — สองรูปแบบที่มีในเอกสาร — ถูกปฏิเสธ ทำให้ตัวควบคุมไม่เริ่มทำงานโดยไม่แจ้ง
  • แก้ไข $klne.startURLTest() ที่ไม่เคยเรียกการทดสอบความหน่วง และการทดสอบ URL กับนโยบายที่ไม่มีอยู่ที่รายงานความล้มเหลวที่ดูสมเหตุสมผลแทนที่จะเป็นข้อผิดพลาด
  • แก้ไขการขัดข้องเป็นครั้งคราวของการขนส่ง XHTTP ภายใต้โหลดสูง
  • แก้ไขการตอบกลับ HTTP/1.1 ที่จัดเรียงใหม่ถูกส่งออกไปโดยไม่มีวลีเหตุผล
  • แก้ไขหน้าใบอนุญาตที่แสดงใบอนุญาตซึ่งออกให้ tvOS หรือ Android เป็น «ไม่ทราบ» และแสดงใบรับรองที่แอปนี้ถือไม่ได้เป็นชุด iOS & macOS & tvOS
  • แก้ไขลิงก์ App Store ที่ใช้ไม่ได้ในหน้า «เกี่ยวกับ»; «ให้คะแนน» เปิดแผงรีวิวโดยตรงแล้ว
  • ปรับปรุงความเสถียรและประสิทธิภาพต่าง ๆ

เวอร์ชัน 1.1.9 (322)

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

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

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

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

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

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

เวอร์ชัน 1.1.8 (300)

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

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

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

  • ปรับปรุงปริมาณงาน TUN บน iOS
  • ปรับปรุงความเสถียรของการเชื่อมต่อและปริมาณงานของ Tailscale และ WireGuard
  • ปรับปรุงความเสถียรของอุโมงค์ UDP และความแม่นยำของสถิติทราฟฟิก
  • ปรับปรุงความเสถียรเมื่อหยุด VPN ลดกรณีที่ระบบสิ้นสุดการเชื่อมต่ออย่างผิดปกติ
  • ปรับปรุงความน่าเชื่อถือของการสลับภาษา
  • ปรับชื่อไฟล์การกำหนดค่าให้ถูกต้องเพื่อป้องกันการโหลดล้มเหลวจากอักขระเส้นทางที่ไม่ถูกต้อง

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

  • แก้ไขปัญหาที่กฎ on-demand อาจไม่สอดคล้องกันระหว่างการเริ่มและหยุด VPN
  • แก้ไขการขัดข้องที่เกิดขึ้นน้อยครั้งจากการสลับภาษาพร้อมกัน
  • แก้ไขการจัดการการเปลี่ยนแปลงเครือข่ายเพื่อหลีกเลี่ยงการเชื่อมต่อ VPN ซ้ำที่ไม่จำเป็น
  • การปรับปรุงความเสถียรและประสิทธิภาพหลายด้าน

เวอร์ชัน 1.1.7 (290)

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

  • เพิ่มระบบ JavaScript Scripting: รันสคริปต์ที่กำหนดเองสำหรับการแก้ไขคำขอ/การตอบกลับ, การแปลง DNS, การจับคู่กฎที่กำหนดเอง และงานตามกำหนดเวลา
  • เพิ่ม Body Rewrite: ค้นหาและแทนที่เนื้อหาคำขอ/การตอบกลับ HTTP โดยใช้ regex (พร้อมการรองรับกลุ่มจับคู่) หรือ JSONPath expressions
  • เพิ่มการรองรับโปรโตคอล ShadowTLS
  • เพิ่มการขนส่ง gRPC สำหรับโปรโตคอล VMess และ VLESS
  • เพิ่มการรองรับ DNS-over-QUIC (DoQ) และ DNS-over-HTTP/3 (DoH3)
  • เพิ่มการรองรับ DNS-over-TLS (DoT)
  • เพิ่ม HTTP Control API และ Web UI สำหรับการตรวจสอบและควบคุมรันไทม์ของพร็อกซี
  • เพิ่มระบบโมดูล (.sgmodule) สำหรับการจัดการการกำหนดค่าแบบโมดูลาร์
  • เพิ่ม Proxy Provider สำหรับการอัปเดตรายการพร็อกซีแบบไดนามิก
  • เพิ่ม Notification Reporting: ตรวจจับความล้มเหลวในการเชื่อมต่อ, ความไม่พร้อมใช้งานของพร็อกซี, การเพิ่มขึ้นของทราฟฟิก, ความล้มเหลวในการอัปเดตการกำหนดค่า และการสลับกลุ่มนโยบาย; ส่งเหตุการณ์สำหรับการแจ้งเตือนของระบบ
  • เพิ่ม Mock Response: ส่งคืนข้อมูลจำลองไปยังคำขอที่ตรงกันโดยไม่ต้องเข้าถึงเซิร์ฟเวอร์จริง
  • เพิ่มกลุ่มนโยบาย LoadBalance พร้อมกลยุทธ์ round-robin, consistent-hashing และ sticky-sessions
  • เพิ่มโหมดใหม่ของ URL Rewrite: reject-200, reject-img, reject-dict
  • เพิ่มการรองรับทิศทางการตอบกลับของ Header Rewrite
  • เพิ่มประเภทกฎ PROTOCOL พร้อมค่าประเภทโปรโตคอล 10 ค่า
  • เพิ่มประเภทกฎ SCRIPT สำหรับการจับคู่ที่กำหนดเองด้วย JavaScript
  • เพิ่มตัวเลือก extended-matching และ requires-resolve สำหรับกฎ
  • เพิ่ม AnyTLS multi-layer padding scheme
  • เพิ่มเมธอดการเข้ารหัส SS2022 (2022-blake3-aes-128/256-gcm, chacha20-poly1305)
  • เพิ่มการรองรับ Managed Configuration
  • เพิ่มการรองรับ Replica สำหรับการจำลองการกำหนดค่า
  • เพิ่ม UI การกำหนดค่า WireGuard
  • เพิ่มตัวเลือกส่วนกลาง interrupt-exist-connections

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

  • กลุ่มนโยบายตอนนี้รองรับตัวเลือก expected-status, hidden, idle-timeout และ lazy
  • ปรับปรุง URL Rewrite ด้วยการรองรับตัวแปรเทมเพลตในรูปแบบ Map Local
  • ปรับปรุงเซิร์ฟเวอร์ DNS ด้วยการรองรับโปรโตคอล DoQ, DoH3 และ DoT
  • ขยายระบบกฎจาก 6 เป็น 30+ ประเภทกฎพร้อมความครอบคลุมเต็มรูปแบบ

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

  • แก้ไขค่าเริ่มต้นของ IPv6 (false → true)
  • แก้ไขค่าเริ่มต้นของระดับบันทึก (notify → warning), เพิ่มระดับ none และ fatal
  • แก้ไขความสอดคล้องของชื่อ Shadowsocks/ShadowsocksR ทั่วทั้งเอกสาร
  • การปรับปรุงเสถียรภาพและประสิทธิภาพต่างๆ

เวอร์ชัน 1.1.6 (256)

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

  • เพิ่มการรองรับโปรโตคอล Hysteria2
  • เพิ่มการรองรับโปรโตคอล WireGuard
  • เพิ่มการรองรับโปรโตคอล VLESS REALITY
  • เพิ่มการดมกลิ่นโปรโตคอลสำหรับทราฟฟิก TUN
  • เพิ่มการรองรับกฎ IP-ASN
  • เพิ่มการรองรับกฎตรรกะ AND/OR/NOT

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

  • แก้ไขปัญหาเกี่ยวกับหน่วยความจำของอะแดปเตอร์ UDP
  • ปรับปรุงประสิทธิภาพการจับคู่ Rule-Set และ Domain-Set
  • แก้ไขข้อบกพร่องเล็กน้อยและปัญหาความเสถียรอื่นๆ
  • แก้ไขการหยุดทำงานของมุมมองใบอนุญาต

เวอร์ชัน 1.1.5 (245)

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

  • เพิ่มการรองรับโปรโตคอล TUIC
  • เพิ่มการรองรับ Shadowsocks 2022 (SS2022)
  • นำเสนอการกำหนดค่าอุโมงค์
  • ปรับปรุงการแสดงผลบันทึกในเซสชัน

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

  • แก้ไขปัญหาอะแดปเตอร์ UDP
  • ปรับปรุงประสิทธิภาพการจับคู่ Rule-Set และ Domain-Set
  • แก้ไขข้อบกพร่องเล็กน้อยและปัญหาความเสถียรอื่นๆ

เวอร์ชัน 1.1.2 (231)

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

  • UI iOS 26

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

  • แก้ไขการตอบกลับ DNS IPv6 สำหรับ Gemini App
  • RULE-SET รองรับเนื้อหาคอมเมนต์
  • แก้ไขสถานะปุ่มสลับของ Widget center

เวอร์ชัน 1.1.1 (218)

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

  • รองรับนโยบาย AnyTLS
  • รองรับ Domain-Set
  • รองรับ Remote Rule-set

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

  • สร้างอุโมงค์ใหม่เพื่อประสิทธิภาพที่ดีขึ้น
  • ทดสอบอุโมงค์ UDP อย่างเต็มรูปแบบ

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

  • แก้ไขการรั่วไหลของหน่วยความจำ

เวอร์ชัน 1.1.0 (210)

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

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

เวอร์ชัน 1.0.9 (199)

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

  • ปุ่มสวิตช์ Control Center ของ iOS 18

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

  • TUN พร้อม IPv6 ตอนนี้เปลี่ยนเส้นทางไปยังอุโมงค์ IPv6 เพื่อแก้ไขปัญหาบริการบางอย่าง

เวอร์ชัน 1.0.8 (188)

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

  • รองรับนโยบาย SSH
  • เพิ่มการเชื่อมต่อแดชบอร์ดระยะไกล

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

  • เปลี่ยนเครือข่าย TUN เป็น 198.18.0.0/15 เพื่อหลีกเลี่ยงปัญหาที่อยู่ภายใน IPv4
  • อัปเดตข้อความบางส่วน

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

  • แก้ไขปัญหา DNS

เวอร์ชัน 1.0.7 (167)

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

  • โหมด PIP
  • ซิงค์ iCloud สำหรับไฟล์การกำหนดค่า
  • เพิ่มตัวจัดการการกำหนดค่าระยะไกล tvOS

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

  • แก้ไข Vmess กับ WebSocket

เวอร์ชัน 1.0.6 (160)

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

  • UI ใหม่
  • เพิ่มการอัปโหลดการกำหนดค่าผ่าน Wi-Fi
  • เพิ่ม Network Diagnosis และ Proxy Diagnosis
  • เพิ่มฟังก์ชันรีเซ็ตการกำหนดค่า VPN
  • เพิ่มการรองรับแพ็กเก็ต ICMP (Ping)
  • เพิ่มการตรวจสอบสถานะ VPN

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

  • ปรับปรุง UI/UX การแก้ไขการกำหนดค่า
  • อัปเดต MTU เป็น 4000

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

  • การแก้ไขข้อบกพร่อง
  • แก้ไขการตั้งค่า IPv6 TUN

เวอร์ชัน 1.0.5 (147)

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

  • เพิ่มการรองรับโปรโตคอล VLESS
  • เพิ่มการรองรับ XTLS กับ VLESS
  • เพิ่ม Session Viewer เพื่อตรวจสอบเซสชันและบันทึกของพร็อกซี
  • คุณสามารถตรวจสอบการเชื่อมต่อ UDP ของคุณด้วยแอป Chute Dashboard macOS

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

  • ปรับปรุงการแก้ไขการกำหนดค่า
  • ปรับปรุงเซิร์ฟเวอร์ DNS ในเครื่องเพื่อหลีกเลี่ยง DNS pollution
  • ปรับปรุง UDP relay

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

  • แก้ไขการแสดงผล IPv6
  • แก้ไขเซิร์ฟเวอร์ DNS

เวอร์ชัน 1.0.4 (143)

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

  • รองรับเซิร์ฟเวอร์พร็อกซี HTTP/Socks5 ในเครื่อง
  • รองรับ IPv6 เต็มรูปแบบ
  • เพิ่มการรองรับ syslib สำหรับเซิร์ฟเวอร์ DNS

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

  • ปรับปรุงการแก้ไขการกำหนดค่า
  • เพิ่มสวิตช์ Optimistic DNS
  • ปรับปรุงเซิร์ฟเวอร์ DNS ในเครื่อง

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

  • แก้ไขที่อยู่เซิร์ฟเวอร์พร็อกซีในเครื่อง iOS ที่อาจหยุดแอปพลิเคชันไม่ให้เข้าถึงเครือข่าย
  • แก้ไขเซิร์ฟเวอร์ DNS

เวอร์ชัน 1.0.3 (138)

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

  • Fake IP เพื่อหลีกเลี่ยง DNS cache poisoning
  • ดาวน์โหลดไฟล์การกำหนดค่าจากอินเทอร์เน็ตหรือ QR code

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

  • แก้ไขปัญหาแก้ไขกฎ FINAL

เวอร์ชัน 1.0.2 (130)

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

  • รองรับ iPad
  • รองรับ chute:// scheme และ x-callback-url
  • การกระทำ Dashboard
  • รองรับ iPhone 12
  • สร้างเซิร์ฟเวอร์ DNS ใหม่เพื่อประสิทธิภาพและเสถียรภาพที่ดีขึ้น

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

  • ปรับปรุงเสถียรภาพ TCP
  • สร้าง TCP lock ใหม่เพื่อปรับปรุงประสิทธิภาพ
  • ปรับปรุงเสถียรภาพ UDP
  • แก้ไขการหยุดทำงานของการกำหนดค่า

เวอร์ชัน 1.0.1 (111)

  • แก้ไขความล้มเหลวของ WeChat Share Extension
  • แก้ไขการรองรับ IPv6
  • อัปเดตการตรวจสอบ HTTP complete

เวอร์ชัน 1.0.0 (101)

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

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

results matching ""

    No results matching ""