Chute Mac 릴리스 노트

Version 1.1.5 (233)

새로운 기능:

  • 프록시 체이닝 추가: 정책에 「상위 프록시」(underlying-proxy)를 지정하면 그 프록시를 거쳐 서버에 연결할 수 있고, 정책 그룹은 모든 멤버를 하나의 업스트림을 거쳐 내보낼 수 있으며, 「일반」 → 「고급」에 새로 생긴 「프런트 프록시」 설정(global-underlying-proxy)은 자체 업스트림을 지정하지 않은 모든 노드에 같은 처리를 적용합니다. Tailscale을 제외한 모든 전송 방식을 체이닝할 수 있습니다. 스트림 프로토콜은 업스트림의 스트림을 타고, Hysteria2, TUIC, MASQUE와 HTTP/3 기반 XHTTP는 업스트림의 UDP 릴레이를 고정 1280바이트 패킷으로 타며, WireGuard와 AmneziaWG는 내부 MTU를 1280바이트로 두고 업스트림을 통해 터널링하고, SSH와 AnyTLS 세션은 업스트림 위에서 열립니다. 정책 편집기는 이 모든 프로토콜에서 이 필드를 제공합니다. 순환하거나, 16단계보다 깊게 중첩되거나, 존재하지 않는 정책을 가리키는 체인은 거부되며 절대 직접 연결로 나가지 않습니다
  • 릴레이 그룹 추가(relay, Clash 및 mihomo와 동일): 멤버가 작성된 순서대로 체이닝됩니다. 첫 번째 멤버는 직접 연결하고, 이후의 각 멤버는 앞선 멤버들을 거쳐 연결하며, 마지막 멤버가 목적지에 연결합니다. 그룹 편집기에서 유형으로 Relay를 선택할 수 있으며, 멤버를 그 순서대로 유지하고 최소 두 개의 멤버를 요구합니다
  • 무작위 그룹 추가(random, Shadowrocket과 동일): 연결마다 멤버를 무작위로 고르며, UDP는 UDP를 지원하는 멤버 중에서만 고릅니다. 무작위 그룹에는 바꿀 선택 항목이 없으므로 메뉴 막대와 「프록시」 탭에서는 제외되며, 그룹 편집기에서도 무작위 그룹으로 유지됩니다
  • 연결 상세 창과 웹 콘솔에 프록시 체인 추가: 모든 홉이 이름으로 표시되고(Airport/HK-01 → Landing), 「세부 정보 복사」에도 담기며, 연결 검색에서도 체인으로 찾을 수 있고, HAR 내보내기에도 경로가 기록됩니다
  • 규칙 제공자와 프록시 제공자에 policy= 추가: 해당 정책을 거쳐 목록을 다운로드하며, 존재하지 않는 정책 이름을 지정하면 직접 다운로드하지 않고 다운로드가 실패합니다. Mac 편집기에는 아직 이 필드가 없지만, 저장해도 값이 유지됩니다
  • Shadowsocks 편집기에 UDP over TCP(udp-over-tcp, 버전 1 또는 2) 추가: 프록시의 UDP를 TCP 연결 안에 실어 보내므로, 업스트림이 UDP를 지원하지 않는 체인을 거쳐도 동작합니다
  • VMess와 VLESS에 UDP 지원 추가: 이전에는 둘 중 어느 쪽으로 보낸 UDP든 그대로 거부되었지만(udp-policy-not-supported-behaviour를 따랐으며 기본값은 REJECT), 이제 mihomo, sing-box, Shadowrocket처럼 목적지마다 연결 하나로 전달됩니다
  • 본문 재작성에 jq 추가: http-request-jq와 http-response-jq가 JSON 본문에 실제 jq 프로그램을 실행하며, 편집기에 「요청 jq」와 「응답 jq」 유형, 그리고 「JQ 프로그램」 필드가 추가되었습니다. 잘못된 프로그램은 오류로 보고되고 해당 규칙은 건너뛰며, JSON이 아닌 본문, 실행에 실패한 프로그램, 빈 출력의 경우에는 모두 본문을 그대로 둡니다
  • 범용 스크립트 추가: type=generic 스크립트는 자동 트리거가 없으며, 스크립트 편집기의 「실행」 버튼이나 GET /api/scripts와 POST /api/scripts/run을 통해 요청할 때만 실행됩니다. 스크립트 편집기에는 「이벤트 이름」 필드도 추가되었습니다. 이벤트 스크립트는 network-changed, engine-started, profile-reloaded를 받으며, 다른 이벤트를 지정한 스크립트는 로그에 기록되고 실행되지 않습니다
  • 전용 DNS 풀 추가: direct-dns-server는 규칙이 DIRECT로 보내는 도메인을, proxy-dns-server는 프록시 서버 자체의 호스트 이름을 해석하고, fallback-dns-server는 주 서버가 응답하지 않을 때 조회됩니다. 각 풀은 전역 서버로 폴백하며, DNS 설정에 각각의 필드가 있습니다
  • DNS 업스트림에 #proxy / #proxy=<policy> 추가(DoQ와 DoH3 포함): QUIC 리졸버는 정책의 UDP 릴레이를 타고, UDP를 지원하지 않는 정책은 해당 서버를 직접 조회하지 않고 건너뛰며, 정책을 거쳐 보내는 일반 리졸버는 DNS over TCP로 전환됩니다. 또한 DNS over UDP를 차단하는 경로를 위해 평문 tcp:// 업스트림도 받아들입니다
  • encrypted-dns-follow-outbound-mode, allow-dns-svcb(켜지 않으면 HTTPS와 SVCB 질의에 빈 응답을 반환) 및 서버별 #h3, #skip-cert-verify, #disable-ipv4, #disable-ipv6, #disable-qtype= 추가
  • 로컬 DNS 매핑 기능 확장: [Host] 항목이 나열한 모든 서버를 유지하고 병렬로 조회하며, 하나의 도메인을 여러 주소에 매핑하고, 규칙 세트(RULE-SET:<url>)를 키로 사용할 수 있고, 해당 도메인에 대해 type=dns 스크립트(script:<name>)를 실행하며, 네트워크별 매핑을 위한 ssid:<name>도 받습니다. 편집기에서 스크립트를 연결할 수 있고, 항목의 모든 주소와 서버를 유지합니다
  • 「일반」에 「시스템 hosts 파일(/etc/hosts) 읽기」 추가(read-etc-hosts, mihomo의 use-system-hosts에서 가져옴): /etc/hosts에 있는 이름에 Chute의 DNS가 응답합니다
  • 규칙 알림 추가: FINAL을 포함한 모든 규칙에 notification-text=와 notification-interval=을 지정할 수 있으며, 규칙이 일치하면 알림을 보냅니다(규칙마다 간격당 최대 한 번). 규칙 편집기에서 둘 다 설정할 수 있으며, 알림은 Chute의 알림 스위치를 따릅니다
  • FINAL,<policy>,dns-failed 추가: 이름을 해석할 수 없을 때 연결을 닫지 않고, FINAL 정책으로 원격 해석을 사용해 연결합니다. 규칙 편집기에서도 선택할 수 있습니다
  • REJECT 계열을 실제 정책으로 추가(REJECT-DROP, REJECT-NO-DROP, REJECT-TINYGIF, REJECT-IMG, REJECT-DICT, REJECT-ARRAY, REJECT-200, REJECT-VIDEO): 각각 문서에 명시된 본문으로 HTTP 요청에 응답하며, 30초 안에 50회를 넘게 거부된 호스트는 REJECT-DROP으로 격상됩니다. 규칙 편집기의 정책 메뉴에 PROXY와 함께 이들이 표시됩니다
  • 인라인 규칙 세트 추가: [Ruleset Name] 섹션을 RULE-SET,<name>으로 참조합니다. 인라인 규칙 세트끼리의 참조도 가능하며, 최대 8단계까지 중첩할 수 있고 순환 참조는 거부됩니다
  • SSID 관련 기능 추가: [SSID Setting] DNS 재정의가 네트워크별로 적용되고(이름, BSSID:, TYPE:WIFI / CELLULAR / WIRED(Mac에서는 이더넷), ROUTER:, 따옴표로 묶은 이름과 와일드카드 이름), 네트워크가 바뀌면 이전 리졸버의 캐시를 비웁니다. ssid와 subnet 정책 그룹은 현재 네트워크에 따라 멤버를 고르고, SUBNET 규칙도 현재 네트워크와 대조됩니다. 이제 Mac에서도 suspend=true가 적용됩니다. 해당 네트워크에서는 Chute가 시스템 프록시를 끄고 향상 모드를 해제하며, 메뉴 막대에 그 상태가 표시되고, 일시 중단과 해제 모두 알림으로 알려 주며, 프록시를 직접 전환하면 일시 중단이 끝납니다. 그룹 편집기와 [SSID Setting] 편집기에 「일치 기준」 메뉴(SSID, BSSID, TYPE, ROUTER)가 추가되었고, 항목을 작성한 순서대로 유지하며 각 항목의 DNS 재정의를 표시합니다. 이제 네트워크 변경이 60초 주기가 아니라 발생하는 즉시 엔진에 전달되며, 구성이 Wi-Fi 네트워크를 지정하면 Chute가 위치 권한을 한 번 요청합니다. macOS 14 이상에서는 이 권한이 있어야 네트워크 이름을 알 수 있습니다
  • DEST-PORT, SRC-PORT, IN-PORT 범위와 비교(80-81, >=50000, / 목록), HOSTNAME-TYPE 값 IPv4, IPv6, DOMAIN, SIMPLE을 추가했으며, IN-TYPE과 IN-USER 규칙이 제대로 동작합니다. 이 규칙들은 이제 시험 실행에서만이 아니라 실제 트래픽과도 대조됩니다
  • MitM 제어 추가: HTTP/2 복호화(h2), HTTP/3가 복호화를 우회하지 못하도록 복호화 대상 호스트로 가는 QUIC 차단(auto-quic-block), 복호화 대상에서 호스트 제외, 호스트 목록 키워드 <ipv4-address>, <ipv6-address>, <simple-hostname> 대조. 앞의 세 가지는 MitM 설정에 있습니다
  • 향상 모드에 도메인 기준 QUIC 라우팅 추가: 프로토콜 스니핑을 켜면 클라이언트의 QUIC Initial에서 이름을 읽고, 여러 Initial에 나뉜 ClientHello를 재조립하며, 이름을 알아낼 때까지 흐름을 보류하므로 IP 주소로 직접 향하는 HTTP/3 연결도 DOMAIN 규칙으로 라우팅됩니다
  • icmp-auto-reply 추가(기본 켜짐): 향상 모드에서 ping에 시간 초과 없이 IPv4와 IPv6 모두 로컬에서 응답합니다
  • 가져오기 범위 확장: mihomo GEOSITE와 카테고리 GEOIP 규칙이 실제로 동작하는 규칙 세트로 확장되고, .mrs와 .srs 제공자는 공개된 원본 목록을 가리키도록 바뀌며, policy-path 그룹은 update-interval, 필터, 포함 목록을 갖춘 제공자로 합성되고, mihomo SUB-RULE은 AND 규칙으로 확장됩니다. sing-box detour와 mihomo dialer-proxy는 프록시 체이닝으로 가져오며, WireGuard allowed-ips는 컴파일·적용되므로(WireGuard 편집기에 「허용 IP」 필드 추가) 분할 터널이 더 이상 모든 목적지를 삼키지 않습니다
  • 구성 지시문과 전송 방식 추가: #!include와 include =로 다른 파일을 불러오고, #!MACOS-ONLY, #!IOS-ONLY, #!TVOS-ONLY로 줄을 한 플랫폼에만 적용하며, 둘 다 저장해도 유지됩니다. Shadowsocks에 v2ray-plugin WebSocket 전송이 추가되었고, UUID가 아닌 VLESS나 VMess id는 엔진을 멈추게 하는 대신 Xray와 mihomo처럼 UUIDv5로 UUID에 매핑됩니다
  • 정책 편집기에 「송신 인터페이스」와 「다른 인터페이스 허용」 추가(interface=, allow-other-interface=): 정책의 TCP 연결을 하나의 네트워크 인터페이스에 고정합니다. network-framework = false일 때 적용되며, macOS 기본값인 Network.framework에서는 아직 적용되지 않습니다
  • 스크립트 API 확장: $httpAPI는 소켓을 열지 않고 엔진 자체 라우트를 호출하고, $httpClient는 policy를 따르며, $event.name은 실제로 발생한 이벤트를 보고합니다
  • 재작성 옵션 추가: Map Local이 data-type, status-code, 헤더를 받고, 헤더 재작성에 header-replace-regex가, URL 재작성에 reject-array와 reject-tinygif가 추가되었으며, 본문 재작성 한 줄에 정규식/대체 문자열 쌍을 여러 개 담을 수 있습니다. 편집기에서도 새 유형과 필드를 제공합니다
  • 메뉴 막대에 「웹 콘솔 열기」와 「웹 콘솔 토큰 복사」 추가(구성이 콘솔을 제공할 때 표시): 「웹 콘솔 열기」는 토큰으로 바로 로그인하고, 「웹 콘솔 토큰 복사」는 다른 기기의 브라우저에서 쓰기 위한 것이며, 리스너가 실행 중이 아니거나 external-http-ui가 꺼져 있으면 비활성화된 항목에 그 이유가 표시됩니다. 웹 콘솔에는 현재/기록 탭, 연결 상세 보기(일치한 규칙, 규칙 출처, 정책, 어댑터, DNS 출처, 프로세스, 종료 사유, 요청과 응답 본문), 어떤 재작성 규칙이 실행됐는지 보여주는 규칙 페이지, 진단 페이지, 불러오지 못한 규칙 세트 목록이 추가되었으며, 콘솔은 이제 9개 언어를 모두 완전히 지원합니다
  • HTTP 제어 API 엔드포인트 추가: /api/health, /api/events, /api/tailscale, /api/diagnostics/ 아래의 프로브, /api/connections/export?format=har, /api/diagnostics/bundle, /api/scripts, /api/rewrites와 /api/mitm/hosts를 통한 재작성 규칙 및 MitM 호스트 관리, 규칙 테이블에 요청을 시험 대조하는 POST /api/rules/match, 재로드 없이 로그 수준을 바꾸는 GET|PUT /api/loglevel, 프로필을 적용하지 않고 검사하는 POST /api/config/validate
  • 메뉴 막대에 「진단 번들 저장…」 추가: 구성, 상태, 이번 실행의 이벤트, 로드된 규칙과 정책, DNS, 트래픽, 로그 샤드를 민감 정보를 지운 아카이브로 담으며, 제어 API 없이 Chute 안에서 만들어집니다. Chute가 멈춘 뒤에도 제공되므로 마지막 실행의 로그가 필요할 때 쓸 수 있습니다
  • HAR 내보내기 추가: 엔진이 기록된 프레임으로부터 만들므로 상태 코드, 타임스탬프, 타이밍이 실제 값이며, 각 항목에는 _kl 아래에 선택된 정책, 일치한 규칙, 재작성 적중이 담깁니다. 웹 콘솔과 /api/connections/export?format=har에서 사용할 수 있습니다
  • 연결 상세 창에 재작성 출처 추가: 요청을 바꾼 첫 번째 URL 재작성, 헤더 재작성, 본문 재작성 또는 모의 응답과 실행된 개수를 표시하고, 「세부 정보 복사」에는 그 전부가 담기며, 「요청 및 기록」을 누르면 본문과 종료된 연결을 볼 수 있는 웹 콘솔이 열립니다
  • 출구 IP 변경을 대체하는 「네트워크 주소 변경」 알림 추가: 이 Mac이 가진 IPv4와 IPv6를 주소 체계별로 한 줄씩 보여주고, NAT 뒤에 있는 IPv4는 그렇게 표시합니다. NAT 안의 IPv4일 때만 STUN 요청을 한 번 보냅니다
  • 「네트워크가 트래픽을 전달하지 않음」 알림 추가(별도 스위치, 기본 켜짐): 연결은 되지만 데이터가 흐르지 않는 링크를 보고하며, macOS 자체가 네트워크에 연결할 수 없다고 보고하는 동안에는 알리지 않습니다
  • 내장 언어에 프랑스어 추가, 언어 메뉴의 각 언어 옆에 국기 표시

개선 사항:

  • 구성에 external-http-secret이 없으면 HTTP 제어 API가 더 이상 인증 없이 열리지 않습니다. 엔진이 토큰을 생성하며, 메뉴 막대에서 복사할 수 있습니다. external-http-secret = none은 루프백 주소에서만 익명 접근을 유지하며, 와일드카드 수신 주소는 더 이상 루프백으로 취급되지 않습니다
  • 큰 목록에서 규칙 매칭이 훨씬 빨라졌습니다: 도메인 규칙만으로 이루어진 규칙 테이블은 해시 플랜으로 대조하고, 미리 로드되지 않은 RULE-SET과 DOMAIN-SET 페이로드는 연결마다 읽는 대신 다운로드할 때 색인됩니다
  • UDP 흐름은 한 번만 대조합니다: 흐름의 판정을 60초 동안 기억하므로 이후 데이터그램은 두 번의 매칭 패스와 그 사이의 DNS 조회를 건너뜁니다
  • 네트워크 전환 후 복구 개선: 업스트림 출발지 주소가 어떤 인터페이스에도 더 이상 없는 터널은 유휴 시간 초과까지 앱을 붙잡지 않고 바로 닫힙니다
  • 규칙 제공자를 차례대로 다운로드하므로 다운로드 대기열이 가득 차도 더 이상 거부되지 않으며, 변환에 드는 메모리가 크게 줄었습니다
  • 로그가 8 MB 샤드로 기록됩니다(실행당 최대 8개, 가장 오래된 것부터 삭제). 각 샤드는 실행을 밝히는 헤더로 시작하며, 「로그」 탭은 모든 샤드를 순서대로 따라갑니다. 엔진은 이전 실행이 정상 종료됐는지 강제 종료됐는지도 로그 헤더, /api/status, 진단 번들에 기록하며, loglevel = info에서 1 MiB 이상을 옮긴 대용량 흐름은 종료 시 어디에서 기다렸는지를 한 줄로 기록합니다
  • 이제 모든 구조화 편집기가 표시하지 않는 내용도 보존합니다: 정책 그룹은 제공자, policy-path, include-*, 필터, 알 수 없는 파라미터를 유지하고, 기본값인 url= / timeout=은 비워 두어 그룹이 proxy-test-url / test-timeout을 따르게 합니다. 규칙은 나머지 옵션을, [Host] 항목은 모든 주소를, 본문 재작성 줄은 뒤쪽의 쌍을, 스크립트는 폼에 표시되지 않는 키를 유지하며, WireGuard와 AmneziaWG 섹션도 AmneziaWG의 난독화 파라미터를 포함해 자신의 키를 유지합니다. 따라서 구성을 열었다가 저장해도 더 이상 내용이 바뀌지 않습니다
  • 「적용 중인 규칙」이 매처가 실제로 훑는 테이블(앞에 삽입된 규칙, 모듈, 프로필, FINAL)을 보여 주며, 「규칙 테스트」는 캐시를 읽는 대신 엔진의 시험 실행을 수행합니다
  • 게시된 프로필을 가져와도 더 이상 라우팅이 사라지지 않습니다: 형식은 주소가 실제로 내려주는 내용으로 판단하므로, Clash 구성을 내려주는 .conf 구독도 변환됩니다. dns-server가 암호화 DNS URL을 받아들이고, 리스너 줄에 비밀번호를 쓸 수 있으며, 따옴표로 묶인 그룹 멤버가 유지되고, PASS 멤버는 REJECT가 되는 대신 제거되며, 지원하지 않는 프로토콜이나 그룹 유형은 그룹 전체를 무너뜨리는 대신 경고만 남깁니다. 변환한 프로필은 .conf로 저장되고, 이미 쓰는 이름이면 번호를 붙입니다
  • 지연 시간 테스트가 올바른 대상을 사용합니다: 그룹의 test-url과 test-timeout, 프로필의 proxy-test-url, 멤버 자체의 test-url과 expected-status가 모두 반영되며, 체이닝된 노드는 직접이 아니라 체인을 통해 측정됩니다
  • 숨긴 정책 그룹은 사용 중이 아니면 메뉴 막대와 「프록시」 탭에 나타나지 않습니다. 제어 API가 글로벌을 select 그룹으로 지정하면 메뉴 막대가 그 그룹을 나열하고 체크 표시하며, 프로필을 다시 로드하면 웹 콘솔에서 런타임에 추가한 규칙이 제거됩니다
  • ShadowTLS가 이제 sni=가 지정된 경우 sing-box처럼 가림용 사이트의 인증서를 검사합니다. skip-cert-verify=true로 검사를 끌 수 있고, sni=가 없으면 경고와 함께 검사를 건너뜁니다
  • 경로로 작성한 PROCESS-NAME이 Surge 매뉴얼이 허용하는 대로 그 경로나 번들 접두사와 일치하며, mihomo의 PROCESS-NAME-WILDCARD와 PROCESS-PATH-WILDCARD 규칙도 버려지지 않고 가져옵니다
  • Network.framework 연결을 통한 대용량 업로드가 더 이상 메인 스레드가 해제할 때까지 데이터를 메모리에 붙잡아 두지 않습니다
  • 「Wi-Fi 접근 허용」 체크박스가 이제 무엇을 하는지 알려 줍니다. 켜져 있는 동안 두 로컬 프록시 리스너가 모든 인터페이스에서 연결을 받으며, 그동안 인터페이스 필드에는 0.0.0.0이 표시되고 입력해 둔 주소는 끌 때를 위해 보존됩니다
  • 향상 모드 안내가 이제 엔진의 실제 동작을 설명합니다: Chute가 DNS 재정의를 직접 설정하고 중지할 때 복원하며, UDP는 일치한 정책을 통해 릴레이되고, ping에는 로컬에서 응답합니다
  • 내장 업데이터를 2.x 보안 수정이 포함된 Sparkle 2.9.6으로 업데이트했습니다. 실행 시 업데이트 확인은 이제 자동 업데이트 확인이 켜져 있을 때만 실행됩니다
  • 일본어, 한국어, 독일어, 태국어, 러시아어에서 약 850개 문자열이 더 이상 영어로 표시되지 않으며, 네트워크 확장 프로그램의 승인 안내가 자리 표시자 대신 번역되어 표시되고, 모든 언어가 iOS 앱과 이 매뉴얼의 용어를 사용합니다

버그 수정:

  • 「VIF 포함 라우트」(tun-included-routes)가 효과가 없던 문제 수정: 이제 향상 모드 유형이 Helper utun이든 PacketTunnel이든 나열한 CIDR이 터널의 라우트에 추가되므로, 원래라면 물리 인터페이스 자체의 서브넷이나 다른 VPN이 가져갈 대역도 Chute를 거치게 됩니다. 터널을 끊어 버릴 항목(루프백, 터널 자체의 서브넷, 링크 로컬, 멀티캐스트, 브로드캐스트, 현재 기본 게이트웨이, 프리픽스 길이 0)은 거부되고 로그에 기록되며, 사설 대역은 경고와 함께 허용됩니다. 이를 위해 권한 도우미가 업데이트되었으므로 macOS가 한 번 승인을 요청합니다
  • 향상 모드의 MitM 수정: MitM 규칙에 일치한 호스트가 시간 초과까지 멈춰, HTTPS 재작성, 모의 응답, 복호화 캡처가 앱 트래픽에 전혀 적용되지 않았습니다. 또한 64 KB보다 큰 복호화된 요청이나 응답이 멈추던 문제도 수정했으며, 이 문제는 시스템 프록시를 거칠 때도 발생했습니다
  • allow-wifi-access가 효과가 없던 문제 수정: 로컬 HTTP와 SOCKS5 리스너가 루프백에 머물러 네트워크의 다른 기기가 접근할 수 없었습니다. 이제 이 플래그(그리고 가져오기 시 sing-box의 allow-lan)가 두 리스너를 넓히고, 끄면 다시 바인딩합니다
  • 재작성 문제 수정: MitM HTTP/1.1에서 응답 헤더 재작성이 적용된 것으로 기록되면서도 클라이언트는 원래 헤더를 받았고, 평문 HTTP에서는 경로만 대조해 전체 URL로 작성한 패턴이 한 번도 일치하지 않았습니다. 모의 응답이 요청 헤더로 응답을 만들었고, Map Local의 status-code=가 HTTP/2에서 무시되었으며, 다시 직렬화된 HTTP/1.1 응답의 사유 구문이 비어 있었습니다
  • 규칙 매칭 문제 수정: 스니핑이 이름을 제공하면 no-resolve IP 규칙이 IP 리터럴로 향하는 연결을 건너뛰었고, RULE-SET 페이로드에서 내용 뒤에 옵션이 붙은 줄이 버려졌으며, RULE-SET,<name>,<policy>,no-resolve가 no-resolve를 잃었고, HOSTNAME-TYPE이 한 번도 일치하지 않았습니다. 또한 AND / OR / NOT 안의 RULE-SET과 DOMAIN-SET은 항상 거짓으로, SCRIPT는 항상 참으로 평가되었고, GEOIP와 IP-ASN의 UNKNOWN이 한 번도 일치하지 않았으며, 논리 규칙으로 프록시에 라우팅된 도메인이 여전히 실제로 해석되었고, Host 헤더의 대괄호 IPv6 리터럴이 호스트 이름으로 읽혔습니다
  • PROTOCOL,TCP와 PROTOCOL,UDP가 한 번도 일치하지 않던 문제 수정: 이제 AND 규칙으로 QUIC을 차단하는 일반적인 방법이 동작합니다. 또한 PROTOCOL,HTTP가 로컬 HTTP 프록시를 거치는 평문 요청에도 일치하며, 시스템 프록시 트래픽은 바로 이 경로로 들어옵니다
  • block-quic이 Surge의 값 중 하나만 받아들이고, 다른 값으로는 QUIC 차단이 전혀 이루어지지 않던 문제 수정
  • IP-ASN 규칙이 전혀 동작하지 않던 문제 수정: ~/Chute/Content에 있는 GeoLite2 데이터베이스가 무시되었고, Chute에는 자체 ASN 데이터베이스가 포함되어 있지 않았습니다. 이제 포함됩니다
  • 규칙 세트 안의 PROCESS-NAME과 PROCESS-PATH 줄이 소문자로 바뀌어, Chrome을 지정한 규칙이 한 번도 일치하지 않던 문제 수정
  • select 그룹이 첫 번째 멤버가 아닌 항목으로 설정된 상태에서 Chute를 시작하면 「정책 그룹 전환」 알림이 뜨고, 이후의 재구성이 플래핑 경고를 유발하던 문제 수정. 기억된 선택이 없는 그룹은 이제 프로필의 default=를 따릅니다
  • 스크립트 API 수정: $klne.getPolicyGroups()와 selectPolicy()가 처음 사용할 때 더 이상 예외를 던지지 않고, reloadConfiguration()은 실제로 다시 로드하며, getActiveConnections()는 실제 호스트, 포트, id를 보고하고, closeConnection()은 실제로 연결을 닫으며, startURLTest()는 테스트를 시작하고, requires-body가 있는 before-send 스크립트가 본문을 받습니다
  • [Replica] hide-crashlytics-request가 구문 분석만 되고 적용되지 않던 문제, keyword-filter가 키워드 포함 여부를 확인하지 않고 호스트 이름 전체와 비교하던 문제, external-http-controller = *:9090과 :::9090이 거부되던 문제, optimistic-dns = false인데도 만료된 레코드를 제공하던 문제 수정
  • XHTTP가 높은 부하에서 충돌하고 첫 쓰기 이후 멈춰 그 위의 TLS 핸드셰이크가 끝나지 않던 문제와, HTTP/1.1에서의 stream-up 패딩 문제 수정
  • Hysteria2가 QUIC DATAGRAM 프레임 하나에 담기지 않는 UDP 데이터그램을 모두 버려 앱의 HTTP/3가 TCP로 되돌아가던 문제와, Hysteria2 멤버가 있는 url-test 그룹이 충돌하던 문제 수정
  • 향상 모드를 재시작하면 이전 실행의 첫 로컬 포트와 TCP 시퀀스 번호를 재사용해, 이전 연결을 아직 유지하던 WireGuard 피어가 리셋으로 응답하던 문제 수정
  • WireGuard가 두 곳에서 동시에 시작될 때 충돌하던 문제, Shadowsocks 2022가 응답의 끝부분을 잃던 문제, SSH가 30초 동안 멈추고 유휴 상태에서 CPU 코어 하나를 계속 점유하던 문제, REALITY / uTLS 연결이 잘못된 레코드를 받은 뒤 닫히지 않고 손상된 다운로드를 그대로 넘기던 문제 수정
  • Tailscale 문제 수정: 같은 네트워크에 인터페이스가 두 개인 Mac에서 다른 주소로 응답된 핸드셰이크가 끝내 완료되지 않았고, Tailscale이 멈춘 뒤에는 연결이 멈춘 채로 남았습니다
  • 다시 로드한 뒤 두 로컬 리스너가 내려간 채로 남던 문제(이제 예기치 않게 멈춘 리스너는 다시 시작됩니다), HTTP 프록시가 인증되지 않은 요청에 407과 Proxy-Authenticate로 응답하지 않던 문제, 레거시 XTLS의 교착 상태, WebSocket 전송이 Ping과 Close를 무시하던 문제 수정
  • macOS 10.15에서 엔진이 시작될 때 충돌하던 문제 수정
  • 쉼표가 들어 있는 스크립트 값(0 8,20 * * * 같은 cron이나 JSON 인수)이 스크립트 편집기에서 저장할 때 첫 쉼표에서 잘리던 문제와, 이름에 공백이나 쉼표가 있는 정책 그룹 멤버가 따옴표 없이 저장되던 문제 수정
  • 다양한 안정성 및 성능 개선

Version 1.1.3 (230)

새로운 기능:

  • 설정 도우미 추가: 첫 실행에서 아무것도 없는 상태에서 동작하는 구성까지 안내합니다 — 구독이나 공유 링크 가져오기, 서버 정보 직접 입력, 또는 이미 가지고 있는 구성 파일 지정 — 이어서 권한 helper를 설치하고 선택한 트래픽 처리 방식을 적용하며 마치기 전에 연결을 검증합니다. 이후에도 메뉴에서 언제든 다시 열 수 있습니다
  • 공유 링크 가져오기 추가(vmess://, ss://, ssr://, trojan://, vless://, hysteria2://, shadowtls://): 링크는 로컬에서 변환되며, 공유 링크 목록(base64로 감싼 목록 포함)을 반환하는 구독도 받아들입니다
  • 가져오기 시트에 클립보드 감지 추가: 클립보드에서 찾은 링크는 조용히 채워지지 않고 "사용" 버튼으로 제안됩니다
  • chute:// URL 스킴 추가. 웹 페이지의 가져오기 링크를 Chute에서 바로 열 수 있으며, 주소는 형식을 확인하고 사용자의 승인을 받은 뒤에야 요청됩니다
  • AmneziaWG 프로토콜 지원 추가. 난독화 파라미터(Jc/Jmin/Jmax, S1–S4, H1–H4, I1–I5) 편집기를 포함합니다
  • 정책 편집기에 Trojan, VMess, VLESS용 XHTTP 전송 추가 — mode, path, host, 요청 헤더와 패딩, post 크기 및 간격 상한, 네 가지 XMUX 경계, 그리고 별도의 다운로드 엔드포인트
  • 정책 편집기에 gRPC 전송 추가. service name과 multi-mode를 설정할 수 있습니다
  • TLS 정책에 ECH(Encrypted Client Hello) 설정 추가: 활성화 스위치, 고정된 ech-config, ech-public-name 커버 이름 재정의
  • 정책별 클라이언트 지문(uTLS)과 일반 설정의 프로필 전체 기본값 추가
  • Shadowsocks 암호화 방식에 AEGIS-128L과 AEGIS-256 추가
  • TLS 1.3용 X25519MLKEM768 포스트 양자 하이브리드 키 교환 추가
  • VMess 암호화 방식 선택, MASQUE 인증서 지문 고정, 정책별 UDP 해제 스위치, 그리고 HTTP 계열, Shadowsocks, ShadowsocksR, Trojan, ShadowTLS, Hysteria2의 다중화 스위치 추가
  • Tailscale 출구 노드 및 서브넷 라우터 제공 추가: 이 Mac과 그 뒤의 네트워크를 광고하고, 메뉴 막대에서 제공을 전환하며, 관리자가 승인하면 알림을 받고, 트래픽을 처리하는 동안 Mac을 깨어 있게 유지하도록 선택할 수 있습니다
  • 프로필 목록에 삭제 추가: Chute가 관리하는 프로필은 휴지통으로 이동하고, 제자리에서 가져온 파일은 등록만 해제되고 원래 위치에 남습니다
  • 구성 오류 보고서 창 추가 — 줄 번호, 심각도, 오류 내용, 원본 줄을 담은 크기 조절 가능한 목록으로, 행 ⌘C 복사와 "모두 복사" 버튼을 지원 — 화면보다 길어질 수 있던 기존 알림을 대체합니다
  • [URL Rewrite]에 Map Remote 추가: header 유형 규칙이 요청 줄과 상위 호스트를 다시 쓰며 캡처 그룹 확장을 지원합니다
  • 모듈 인수(#!arguments) 추가. 같은 모듈을 다른 값으로 재사용할 수 있습니다

개선 사항:

  • 정책 편집기를 프로토콜별 폼으로 재구성: 각 프로토콜이 자신의 필드를 소유하며 무관한 프로토콜과 입력란을 공유하지 않고, 프로토콜을 추가해도 아래 유형의 번호가 밀리지 않습니다
  • 저장할 때 정책 편집기가 자신에게 해당 필드가 없는 옵션(ECH, ALPN, 인증서 고정, test-url, udp-relay, tfo)을 보존합니다
  • TUIC, Hysteria2, MASQUE, AnyTLS, SSH에서 TCP Fast Open 스위치를 제거했습니다. 해당 어댑터는 이 옵션을 읽지 않습니다. 이미 tfo를 가진 정책은 그대로 유지됩니다
  • 공개된 Clash, sing-box, Surge 구성의 가져오기를 개선했습니다. Surge의 MitM/Panel/Ponte 섹션, 각종 REJECT 표기, 모듈 줄, [SSID Setting] 선택자를 지원합니다
  • macOS가 권한을 요청하기 전에 Chute가 권한 helper의 역할을 먼저 설명합니다. 시스템 대화상자가 아무 맥락 없이 뜨는 일이 없어집니다
  • 첫 실행 화면의 순서를 정리했습니다: 창을 표시하기 전에 라이선스를 읽고, 알림 권한 요청은 설정 도우미가 닫힐 때까지 기다립니다
  • 아무것도 구성되지 않았을 때 메뉴 막대가 파일 선택기 하나만이 아니라 환경설정, 메인 창, 가져오기 진입점을 제공합니다. 대시보드 스위치는 1분 뒤에 실패를 알리는 대신 무엇이 없는지 바로 말해 주며, 이런 설치는 새 메인 창으로 시작합니다
  • 프로필 빈 상태와 URL 가져오기 항목이 공유 링크를 명시하고, 도움말 창은 프록시가 동작하기까지 실제로 무엇이 필요한지 설명합니다
  • 데이터 경로, 규칙 매칭, UDP 처리의 처리량과 CPU 효율을 개선
  • Mac이 네트워크를 전환한 뒤 대체된 이전 경로의 연결을 재사용하지 않습니다

버그 수정:

  • 재부팅 후 유효한 라이선스가 불법으로 판정되던 문제 수정. 일시적인 검증 실패 한 번으로 프록시가 멈추고 라이선스 창이 열렸습니다
  • "라이선스 취소" 확인을 눌러도 아무 일도 일어나지 않던 문제 수정
  • 구성 오류 알림에서 취소를 눌러도 잘못된 구성이 로드되어 시작되던 문제와, 폐기 동작이 기본 버튼에 놓여 있던 문제 수정
  • REALITY가 켜져 있을 때 VLESS flow가 사라지던 문제를 수정하고, 광고만 하던 XTLS Vision 프레이밍을 실제로 구현했습니다
  • 편집기가 표시할 수 없는 유형의 정책이 저장 시 HTTP로 다시 쓰이던 문제 수정
  • 구성 섹션을 참조하는 WireGuard 및 AmneziaWG 정책에 포트 0이 기록되던 문제 수정
  • WebSocket 스위치가 꺼져 있어도 ws-path와 ws-headers가 기록되던 문제 수정
  • 인터페이스 설정 페이지가 스크롤되지 않던 문제 수정
  • Shadowsocks obfs=http가 잘못된 요청 줄을 보내 터널은 연결되었지만 아무것도 전달되지 않던 문제 수정
  • Shadowsocks 2022에서 페이로드가 여러 번의 읽기로 나뉠 때 동기화를 잃던 문제를 수정하고 chacha20-poly1305의 UDP 형식을 바로잡았습니다
  • [Host] 별칭이 전혀 일치하지 않던 문제 수정. 별칭 이름에 대한 A 조회가 상위 서버로 넘어가 NXDOMAIN을 받았습니다
  • QUIC 연결 마이그레이션이 PROTOCOL,QUIC 규칙과 block-quic 옵션을 빠져나가던 문제 수정
  • WireGuard가 세션 재수립 중 대기열에 들어간 패킷을 버리던 문제 수정
  • 모듈의 #!arguments 설명 줄이 바로 옆 인수 기본값을 덮어쓰던 문제 수정
  • 다양한 안정성 및 성능 개선

Version 1.1.2 (210)

새로운 기능:

  • Tailscale 내장 프록시 유형 추가: Chute 내에서 Tailscale 계정을 직접 설정하고 tailnet에 참여하여 Tailscale 노드를 통해 트래픽을 전달할 수 있습니다. 별도 클라이언트가 필요하지 않습니다
  • Tailscale 설정 창 추가: auth key를 안전하게 입력하고 연결을 검증하며 tailnet 노드를 나열하고 출구 노드를 전환할 수 있습니다
  • 대시보드에 Tailscale 상태 위젯을 추가하고 메뉴 막대에서 출구 노드를 전환하는 바로가기 추가
  • 프록시 진단 시스템 알림 추가: 끊어진 정책 참조, 이그레스 IP 변경, Tailscale 이벤트를 알림으로 전달하며 설정에서 유형별로 켜고 끌 수 있습니다
  • 정책 편집기에 MASQUE 프록시 유형 추가
  • simple-hostnames를 기본값으로 하고 no_proxy를 자동 내보내는 bypass-list 표 편집기 추가
  • 트래픽 패널에서 연결을 응용프로그램별로 그룹화하여 표시
  • 지원하는 macOS 최소 버전을 10.14(Mojave)로 상향

개선 사항:

  • macOS의 TUN 처리량 향상
  • 권한 helper, 시스템 프록시, DNS/TUN 수명 주기의 안정성 향상
  • Tailscale 및 WireGuard의 연결 안정성과 처리량 향상
  • 시스템 확장과 VPN 자동 계속의 신뢰성 향상
  • 일시적인 서버 오류를 취소로 잘못 판단하지 않도록 라이선스 검증 개선
  • 구성 파일명을 정제하여 잘못된 경로 문자로 인한 로드 실패 방지

버그 수정:

  • helper가 이미 실행 중인 VPN 터널에 다시 연결되는 문제 수정
  • 동시 언어 전환으로 인한 충돌 수정
  • VPN 터널이 두 번째 시작에서 실패하는 문제 수정
  • 업로드 속도 스파크라인이 다운로드 데이터를 표시하던 문제 수정
  • 각종 안정성 및 성능 개선

Version 1.1.1 (202)

  • Dashboard가 포함된 새 메인 UI: 글래스 모피즘 디자인, 실시간 속도 스파크라인 차트, 사용자 정의 위젯 카드 및 마이크로 인터랙션 애니메이션이 특징인 재설계된 4탭 창 (Dashboard, Traffic, Config, Log)
  • 새 Dashboard 위젯: 프록시 상태, TUN 모드, 가동 시간, 활성 연결, 다운로드/업로드 처리량 및 현재 구성 프로필
  • 구성 프로필 전환 및 구성을 위한 새 프로필 관리 탭
  • 향상된 세션 필터링 및 로그 보기가 포함된 업그레이드된 트래픽 인스펙터
  • 새 VPN 향상 모드: 환경설정에서 선택 가능한 레거시 도우미 utun과 함께 PacketTunnel 시스템 확장 옵션
  • 권한 있는 도우미 데몬을 SMJobless에서 SMAppService로 마이그레이션 (macOS 13 이상)
  • OSSystemExtensionRequest 활성화 흐름을 사용하여 네트워크 확장을 시스템 확장으로 마이그레이션
  • Body Rewrite, Script, Module 및 WireGuard 섹션용 구성 편집기 추가
  • Rules DNS 진단 도구 추가
  • 주요 기능 확장으로 KLNEKit 커널 업데이트
  • 다중 레이어 패딩 난독화가 포함된 AnyTLS 프로토콜 지원 추가
  • TUIC 프로토콜 지원 추가 (QUIC 기반 다중화 TCP/UDP 릴레이)
  • Brutal 혼잡 제어가 포함된 Hysteria2 프로토콜 지원 추가
  • WireGuard 프로토콜 지원 추가 (인라인 및 섹션 기반 구성)
  • TLS 지문 위장이 포함된 ShadowTLS 프로토콜 지원 추가
  • VLESS REALITY 검열 방지 지원 추가
  • Shadowsocks 2022 암호화 메서드 추가 (2022-blake3-aes-128/256-gcm, chacha20-poly1305)
  • VMess 및 VLESS 프로토콜용 gRPC 전송 추가
  • DNS-over-TLS (DoT), DNS-over-QUIC (DoQ) 및 DNS-over-HTTP/3 (DoH3) 지원 추가
  • 로컬 DNS 매핑에서 도메인별 DoT/DoQ/DoH3 할당 추가
  • JavaScript 스크립팅 시스템 추가 (7가지 스크립트 유형: rule, dns, request, response, generic, scheduled, dns-ttl)
  • 본문 재작성 추가: 정규식(캡처 그룹 포함) 또는 JSONPath를 통한 HTTP 요청/응답 본문 검색 및 교체
  • 모의 응답 추가: 일치하는 요청에 모의 데이터 또는 Map Local 콘텐츠 반환
  • 프로토콜 스니핑 추가: 실제 연결 프로토콜 감지 및 그에 따른 규칙 적용
  • 5가지 이벤트 유형의 알림 보고 추가 (connection-failure, proxy-unavailable, traffic-surge, config-update-failure, policy-group-switch)
  • 런타임 모니터링 및 관리를 위한 HTTP 제어 API 및 내장 웹 UI 추가
  • 모듈식 구성을 위한 모듈 시스템 (.sgmodule) 추가
  • 동적 프록시 목록 업데이트를 위한 프록시 제공자 추가
  • 라운드로빈, 일관된 해싱 및 고정 세션 전략이 포함된 로드밸런스 정책 그룹 추가
  • 폴백 정책 그룹 지원 추가
  • IP-ASN 규칙 유형 추가 (내장 MaxMind GeoLite2 ASN 데이터베이스)
  • 논리 조합 규칙 추가: AND, OR, NOT
  • 고급 매칭 규칙 추가: SUBNET, HOSTNAME-TYPE, IN-TYPE, IN-USER, IN-NAME
  • 새 도메인 기반 규칙 유형 추가: DOMAIN-WILDCARD, DOMAIN-REGEX, DOMAIN-SET
  • PROTOCOL 규칙 유형 추가 (감지된 프로토콜별 매칭: HTTP, HTTPS, TLS, TCP, UDP, QUIC, STUN, DNS, DOH, DOQ)
  • JavaScript 기반 사용자 정의 매칭을 위한 SCRIPT 규칙 유형 추가
  • 새 프로세스 규칙 유형 추가: PROCESS-PATH, PROCESS-NAME-REGEX
  • SRC-PORT 규칙 유형 추가
  • 규칙에 extended-matching 및 requires-resolve 옵션 추가
  • URL 재작성 거부 모드 추가: reject-200, reject-img, reject-dict
  • 헤더 재작성 응답 방향 지원 추가 (header-response-add/del/replace)
  • URL 재작성 Map Local 템플릿 변수 지원 추가
  • 선택적 트래픽 기록을 위한 Replica 지원 추가
  • 자동 업데이트 간격이 포함된 관리형 설정 지원 추가
  • exclude-simple-hostnames 옵션 추가
  • 지정된 IP 범위를 직접 라우팅하기 위한 Bypass TUN 옵션 추가
  • interrupt-exist-connections 전역 옵션 추가
  • network-framework 옵션 추가
  • disable-db-record 옵션 추가
  • 정책 그룹 옵션 확장: expected-status, hidden, idle-timeout, lazy
  • 6개에서 37개 규칙 유형으로 규칙 시스템 확장
  • TUN 처리량 최적화 (UTUN_OPT_MAX_PENDING_PACKETS)
  • IPv6 기본값 수정 (false → true)
  • 로그 레벨 기본값 수정, none 및 fatal 레벨 추가
  • Shadowsocks/ShadowsocksR 명명 일관성 수정
  • 다양한 안정성 및 성능 개선

Version 1.0.7 (163)

  • KLNEKit 업데이트
  • SSH 정책 지원 추가
  • UDP 문제 수정
  • 버그 수정

Version 1.0.5 (155)

  • KLNEKit 업데이트
  • IPv4 내부 주소 문제를 피하기 위해 TUN 네트워크를 198.18.0.0/15로 변경
  • 메뉴 아이콘에 도움말 기능 추가
  • TUN용 IPv6 지원 구현
  • TUN용 ping 지원 활성화
  • Dock 메뉴 사라짐 문제 수정
  • Chute 종료 후 프록시 구성이 복원되지 않는 문제 수정
  • TUN 네트워크 수정
  • 앱 업데이트 구성 요소 수정
  • 버그 수정

Version 1.0.4 (145)

  • VLESS 프로토콜 지원 추가
  • VLESS용 XTLS 추가
  • 로컬 IP 표시 추가
  • Chute Dashboard용 UDP 터널 지원 추가
  • 내장 DNS 서버 개선
  • FINAL 규칙 처리 수정
  • UDP 터널 수정
  • 버그 수정

Version 1.0.3 (132)

  • macOS 10.13 지원 (Network.framework 지원 없음)
  • Config Windows Proxy 섹션 로드 수정
  • HTTP 요청 오류 수정
  • 버그 수정

Version 1.0.2 (102)

  • DNS 서버 재구축
  • 확장 설치 재구축
  • 버그 수정

Version 1.0.0 (88)

  • 첫 릴리스 버전
  • TUN 지원 추가

[Beta] Version 0.4.9 (53)

  • 규칙 순서 수정.
  • 화면에서 QR 코드 스캔 지원 추가.
  • 정책 그룹 수정.

[Beta] Version 0.4.5 (32)

  • 버그 수정.

[Beta] Version 0.3.5 (25)

  • 버그 수정.

[Beta] Version 0.3.0 (20)

  • 버그 수정.

[Beta] Version 0.2.0 (8)

  • 첫 릴리스.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-10-01 17:39:45

이 페이지는 영어판의 번역본입니다. 내용이 다를 경우 영어판이 우선합니다.

results matching ""

    No results matching ""