- 版本统一到 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>
中文说明:
- 在 GitHub Actions 构建产物中生成 README_PACKAGE.md,补充 IPK/APK 包用途、安装顺序、手动上传和常见问题说明。
- 优化 EasyTier 日志页面布局,改进移动端显示,并将自动刷新按钮调整为开关控件。
- 调整 Web 控制台配置页为更紧凑的响应式布局。
- 为 proxy_network 启动参数增加引用,避免包含特殊字符时被 shell 拆分。
English summary:
- Generate README_PACKAGE.md in GitHub Actions artifacts with package roles, install order, manual upload notes, and troubleshooting for IPK/APK packages.
- Improve the EasyTier log page layout, mobile rendering, and replace the auto-refresh button with a switch control.
- Make the web console settings page more compact and responsive.
- Quote proxy_network startup arguments to avoid shell word splitting when values contain special characters.
Co-authored-by: GPT-5 Codex <noreply@openai.com>