Skip to content

v3.9.0

Choose a tag to compare

@github-actions github-actions released this 01 Apr 20:37
· 45 commits to main since this release

Release v3.9.0

feat: harden TUN/MIXED stability, fix APK config overwrite

clash-rules:

  • Add configurable TUN stack (system/gvisor/mixed) with preflight check
  • Add self-healing for policy routing: validate + repair on respawn
  • Register fw4 include hook so clash-tun firewall rules survive fw4 reload
  • Add INPUT accept rule for clash-tun (nft + iptables)
  • Add ip rule pref 1000/1001 to avoid conflicts with Tailscale/other policy routing
  • Disable bridge-nf-call-iptables when TPROXY active and kmod-br-netfilter loaded
  • Fix ip rule regex matching for various fwmark formats (0x3, 3, 0x0003/0xffffffff)
  • Use unbounded while loop in teardown to remove all duplicate ip rules
  • Suppress repetitive log messages via CLASH_RULES_QUIET env

init.d/clash:

  • Wait up to 30s for clash-tun interface in service_started()
  • Call repair_forward_rules after tun_route_setup on respawn

hotplug.d/net/99-clash-tun:

  • New hotplug script: reacts to clash-tun device add, runs tun_route_setup

settings.js:

  • Add TUN Stack selector (visible only when TUN or MIXED mode selected)
  • Wire tunStack into config.yaml generation

Makefile:

  • Install 99-clash-tun hotplug script
  • Fix APK config overwrite on OpenWrt 25: add protected_paths.d/ssclash.list
  • Add preinst/postinst backup/restore for transitional APK upgrades
  • Conditional install of protected_paths.d (ifdef CONFIG_USE_APK)