v1.17.0
Breaking Changes
Binary file name changes to mihomo
, along with most of the const such as default config path, check and update these file/path before update to this version.
What's Changed
- feat(sniffer): add quic sniffer by @5aaee9
- feat: Add outbound sing-mux tcp-brutal support by @H1JK
- feat: add reload signal support (#780) by @andrei Shevchuk
- feat: Add v2ray httpupgrade fast open support by @H1JK
- feat: add
certificate
andprivate-key
to vmess listener by @wwqgtxx - feat: add
include-all-providers
to proxy-groups by @xishang0128 - feat: add
override
to proxy-providers by @Larvan2 - feat: add
skip-auth-prefixes
by @wwqgtxx - feat: add
v2ray-http-upgrade
support by @wwqgtxx - feat: add
ws-path
to vmess listener by @wwqgtxx - feat: cancel RULE-SET nested SUB-RULE restrictions by @Skyxim
- feat: share more code from android branch by @Steve Johnson
- feat: support ARC for DNS cache by @Larvan2
- feat: support clash premium's structured log stream (#735) by @NyaMisty
- feat: support REJECT-DROP by @Larvan2
- feature: add environs startup option support (#2909) by @septs
- feature: add xdg base support (#2913) by @septs
- Merge pull request #810 from 5aaee9/Alpha by @Larvan2
BUG & Fix
- fix: avoid tls panic by @wwqgtxx
- fix: BBR bandwidth estimation edge case by @wwqgtxx
- fix: BBR memory leak by @wwqgtxx
- fix: build error by @wwqgtxx
- fix: dhcp not working on windows by @wwqgtxx
- fix: DNS NCACHE TTL and OPT RRs (#2900) by @jiahao Lu
- fix: fix android-arm64 build by @Steve Johnson
- fix: fix package name rules match by @Steve Johnson
- fix: gvisor panic by @wwqgtxx
- fix: gVisor UDP 6to4 check by @wwqgtxx
- fix: health check at startup by @Skyxim
- fix: health check available for 'selector' if configured by @Larvan2
- fix: hy2/tuic inbound cert isn't path by @Larvan2
- fix: improve feature check and add missing patches by @Steve Johnson
- fix: method in vmess http-opts is not used by @sduoduo233
- fix: Mux missing sing logger & initializing race by @H1JK
- fix: only force health check compatible providers by @Skyxim
- fix: parsing override by @Larvan2
- fix: Pool panic when putting small buffer by @H1JK
- fix: quic-go min MTU by @wwqgtxx
- fix: reality panic by @wwqgtxx
- fix: remote logic rules cannot be parsed (#837) by @HolgerHuo
- Fix: should check all ips need to fallback (#2915) by @yaling888
- fix: sing listener panic by @wwqgtxx
- fix: socks5 udp associate by @Dreamacro
- fix: ssr panic by @wwqgtxx
- fix: Trojan websocket header panic by @H1JK
- fix: unmap 4in6 ip by @wwqgtxx
- fix: v2ray http upgrade
Hosts
header not working by @wwqgtxx
Maintenance
- chore: add android feature and patch by @Steve Johnson
- chore: add CMFA auto update-dependencies trigger by @Steve Johnson
- chore: add labels to issue template by @Steve Johnson
- chore: add new bbr implementation by @wwqgtxx
- chore: add route exclude support by @wwqgtxx
- chore: add SetupContextForConn for common/net by @wwqgtxx
- chore: add some warning log by @wwqgtxx
- chore: better atomic using by @wwqgtxx
- chore: better bufio.Reader warp by @wwqgtxx
- chore: better dns batchExchange by @wwqgtxx
- chore: better tls handshake by @wwqgtxx
- chore: Cleanup code by @H1JK
- chore: cleanup error using of dialer.DefaultInterface by @wwqgtxx
- chore: code cleanup by @wwqgtxx
- chore: decrease goroutine used in core tunnel by @wwqgtxx
- chore: decrease memory copy in quic sniffer by @wwqgtxx
- chore: decrease memory copy in sing listener by @wwqgtxx
- chore: direct append data to bufio.Reader's internal buffer as much as possible by @wwqgtxx
- chore: do websocket client upgrade directly instead of gobwas/ws by @wwqgtxx
- chore: fix bbr bugs by @wwqgtxx
- chore: fix sniffer log error by @xishang0128
- chore: fix subscription_info by @xishang0128
- chore: geo link replaced with github by @xishang0128
- chore: improve subscription userinfo parsing (#781) by @septs
- chore: inMemoryAuthenticator unneed sync map by @wwqgtxx
- chore: listeners can set
mux-option
by @wwqgtxx - chore: merge some quic-go fix by @wwqgtxx
- chore: migrate from gorilla/websocket to gobwas/ws by @wwqgtxx
- chore: modify configuration fields by @xishang0128
- chore: modify some fields by @xishang0128
- chore: modify ua by @xishang0128
- chore: NameServerPolicy will match inorder by @wwqgtxx
- chore: netip.Prefix should not using pointer by @wwqgtxx
- chore: Pool allocate arrays instead of slices by @H1JK
- chore: print colored log by @Larvan2
- chore: reduce memory alloc by @Larvan2
- chore: reduce string split immediately after string concat (#773) by @kiva
- chore: reorder atomic TypedValue see: https://gfw.go101.org/article/unofficial-faq.html#final-zero-size-field by @wwqgtxx
- chore: Replace stack collection with list by @H1JK
- chore: revert default global ua by @Steve Johnson
- chore: share dnsClient in NewResolver by @wwqgtxx
- chore: share some code by @wwqgtxx
- chore: Shrink allocator pool range by @H1JK
- chore: simplify fast open code by @wwqgtxx
- chore: support reject proxy type by @wwqgtxx
- chore: support relative path for hy2/tuic inbound cert by @Larvan2
- chore: support v2ray http upgrade server too by @wwqgtxx
- chore: system resolver can autoupdate by @wwqgtxx
- chore: temporary seal by @Larvan2
- chore: Update dependencies by @H1JK
- chore: update dependencies by @Larvan2
- chore: Update dependencies by @wwqgtxx
- chore: update gvisor by @wwqgtxx
- chore: update quic-go to 0.39.0 by @wwqgtxx
- chore: Update quic-go to v0.40.0 by @wwqgtxx
- chore: update sing-tun by @wwqgtxx
- chore: upgrade xsync to v3 by @wwqgtxx
- chore: using wk8/go-ordered-map/v2 replace internal StringMapSlice by @wwqgtxx
- docs: support reload in service by @Larvan2
- docs: update about quic sniffer by @5aaee9
- docs: update readme.md by @Larvan2
Full Changelog: v1.16.0...v1.17.0