Files
github-actions[bot]andClaude Opus 5.5 9c51d3f8d2 feat: 适配 EasyTier 2.7.0(破坏性参数迁移、新参数补齐、连接信息加载优化与完整中文 i18n)
- 版本统一到 2.7.0:version.mk、easytier/easytier-noweb/luci-app-easytier 的 PKG_VERSION、
  download.sh 与 init.d 的兜底 tag、upload.htm 占位符与前端兜底值,全部由 2.6.x 改为 v2.7.0。
  luci-app-easytier/Makefile 新增 PKG_PO_VERSION:=$(PKG_VERSION),使 i18n 语言包 ipk 的
  文件名跟随插件版本号,而不是 LuCI feed 的 git 时间戳版本(git-YY.DDD.SSSSS-hash)。

- VPN Portal 破坏性变更适配:2.7.0 起 --vpn-portal 只接受 wg://主机:端口,客户端必须用
  --vpn-portal-client 名称=网段 逐个枚举,且门户必须有私钥,否则实例启动即退出。
  init.d 按新格式拆分拼接并做格式/私钥校验,遇到旧写法(URL path 带网段)或缺私钥时
  跳过门户启动并写入中文日志提示;CBI 新增 VPN 门户客户端列表(DynamicList)与门户私钥
  (password,经 ET_VPN_PORTAL_PRIVATE_KEY 环境变量下发,避免出现在进程命令行);
  config.toml 增加新版 [vpn_portal_config] 注释示例,并说明顶层 rpc_portal 会被静默忽略
  (RPC 端口只能由 -r 指定)。

- 补齐 2.7.0 常用新参数(CBI 表单 + get_etconfig 读取 + 命令行拼接):
  --disable-upnp、--lazy-p2p、--need-p2p、--disable-relay-quic、
  --enable-relay-foreign-network-quic、--tld-dns-zone、--instance-recv-bps-limit、
  --socket-mark、--stun-servers、--tcp-stun-servers;--multi-thread 改为始终显式传
  true/false,避免 2.7.0 默认值变化导致界面勾选与实际运行不一致。

- easytier-web 新增参数:--heartbeat-min-response-ms、--heartbeat-timeout-ms、
  --gateway-peer-url、--gateway-relay-data(init.d 拼接 + controller 读写 +
  easytier_web.htm 表单字段)。

- 配置文件模式容错:check_config 改为同步执行 --check-config 并检查退出码,校验失败时把
  2.7.0 更严格的解析规则(旧 [vpn_portal_config] client_cidr、[flags] 未知键)写入日志提示。

- 进程守护:core 与 web 的 procd respawn 显式设为 3600 5 20(存活满 1 小时归零,
  1 小时内崩溃超过 20 次才判定为崩溃循环并放弃拉起),避免参数配置错误时无限重启刷日志。

- 连接信息卡片加载优化:改为按标签页按需拉取(parts 参数),CLI 结果在
  /tmp/easytier_conninfo 缓存 3 秒,只刷新当前标签页,移除每 5 秒全量 XHR.poll 与重复请求;
  前端改为 10 秒自动刷新、页面隐藏时跳过,XHR 增加 20 秒超时与失败提示,改善低性能设备体验。

- Web 服务器地址文案:说明 EasyTier 2.7.0 起必须填写完整 URL
  (udp://config-server.easytier.cn:22020/账户名),帮助文案与占位符同步更新。

- i18n 补全:新增统计指标(traffic_*、peer_rpc_errors、tcp_proxy_connect、
  udp_broadcast_relay_*、vpn_portal_* 等)与 ACL 规则统计(字段名、动作/协议/连接状态等取值)
  的中文翻译,po/templates 同步更新,cli.htm 增加 ACL 与统计输出的翻译映射。

feat: adapt to EasyTier 2.7.0 (breaking CLI/config migration, new flags, faster
connection-info loading, complete Chinese i18n)

- Bump every version string to 2.7.0 (version.mk, easytier/easytier-noweb/
  luci-app-easytier Makefiles, download.sh and init.d fallbacks, upload.htm placeholders),
  and set PKG_PO_VERSION:=$(PKG_VERSION) so the i18n ipk filename follows the plugin
  version instead of the LuCI feed git timestamp (git-YY.DDD.SSSSS-hash).
- Handle the breaking VPN Portal changes in 2.7.0: --vpn-portal now accepts only
  wg://host:port, clients must be enumerated via --vpn-portal-client NAME=CIDR and a
  private key is required, otherwise the instance exits on startup. init.d validates and
  splits accordingly and skips the portal with a Chinese log hint on legacy values or a
  missing key; CBI gains a client list (DynamicList) and a private-key field (password,
  passed via the ET_VPN_PORTAL_PRIVATE_KEY environment variable so it stays out of the
  process command line); config.toml documents the new [vpn_portal_config] layout and the
  silently ignored top-level rpc_portal (RPC port is only settable through -r).
- Add commonly used new flags: --disable-upnp, --lazy-p2p, --need-p2p,
  --disable-relay-quic, --enable-relay-foreign-network-quic, --tld-dns-zone,
  --instance-recv-bps-limit, --socket-mark, --stun-servers, --tcp-stun-servers;
  --multi-thread is now always passed explicitly as true/false.
- Add new easytier-web options: --heartbeat-min-response-ms, --heartbeat-timeout-ms,
  --gateway-peer-url, --gateway-relay-data (init.d, controller and easytier_web.htm).
- Run --check-config synchronously in check_config and check its exit code, logging the
  stricter 2.7.0 parsing rules (legacy [vpn_portal_config] client_cidr, unknown [flags]
  keys) on failure.
- Set procd respawn to 3600 5 20 for both core and web (counter reset after one hour of
  uptime; give up only after more than 20 crashes within an hour) to avoid endless
  restart loops on misconfiguration.
- Speed up the connection-info card: per-tab on-demand fetching with a 3-second
  server-side cache, refresh only the active tab, drop the 5-second full XHR.poll;
  the front end now refreshes every 10 seconds, skips while the page is hidden, and uses
  a 20-second XHR timeout with proper error handling.
- Document that the Web server address requires a full URL since EasyTier 2.7.0.
- Complete Chinese translations for stats metrics and ACL rule output.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 15:11:00 +08:00

6 lines
198 B
Makefile

# EasyTier Version Configuration
# This file is the single source of truth for the EasyTier version
# Used by: easytier/Makefile, luci-app-easytier/Makefile, init.d/easytier
EASYTIER_VERSION=2.7.0