บันทึกการอัปเดต 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-ASNUNKNOWNที่ไม่เคยจับคู่,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)
- การเปิดตัวครั้งแรก
หน้านี้เป็นฉบับแปลจากเวอร์ชันภาษาอังกฤษ หากเนื้อหาไม่ตรงกัน ให้ยึดเวอร์ชันภาษาอังกฤษเป็นหลัก