Skip to content

feat: HTTP 隧道支持最多三层泛域名与域名占用隔离 - #90

Merged
zsio merged 4 commits into
mainfrom
feature/http-wildcard-domains
Sep 10, 2026
Merged

zsio merged 4 commits into
mainfrom
feature/http-wildcard-domains

Conversation

@zsio

@zsio zsio commented Sep 5, 2026 •

Copy link
Copy Markdown
Owner

HTTP 隧道原先只接受单个完整域名,无法将一组子域名转发到同一隧道。本 PR 实现 #83 的泛域名需求。

支持 *.x.com、*.a.b.com、*.*.x.com 和 *.*.*.x.com:最多三个连续前导 *,每个只匹配一个非空标签。精确域名优先,其次选择固定后缀最长的泛域名;向目标服务保留实际请求的 Host 和 X-Forwarded-Host。

域名占用在 SQLite 保存事务中统一检查:相同规范化规则全局唯一,同一用户允许重叠覆盖,不同用户禁止规则交集。暂停、离线、出错及重启保留占用;选中的具体隧道不可用、鉴权被拒绝或代理失败时不会回退到更宽规则。成功删除或修改域名才释放相应占用。配置的管理地址和内部控制/数据通道保持优先。

新增 21 组后端测试,覆盖:

  • 语法、三层限制、DNS 长度边界、大小写、末尾点、端口和非法 Host。
  • 用具体域名集合独立验证规则交集,以及精确/泛域名优先级。
  • 同名与跨用户冲突、同用户不同客户端覆盖、并发抢占、修改失败回滚和删除释放。
  • 不可用状态、重启恢复、历史末尾点占用键和存储故障。
  • 真实 yamux 代理、实际 Host 保留、认证/来源限制/后端失败不回退、WebSocket 和 SSE。
  • API 创建与编辑、旧请求格式和前端编辑回填。

同步中英文表单说明和 docs/http-wildcard-domains.md。DNS 配置及 HTTPS 证书签发不在本次功能范围内。

验证已完成:最新提交 979a28d 的 CI #426 全部通过,包括前端 lint/构建/测试、Go vet/全量测试/竞态检测、golangci-lint、govulncheck、Nginx/Caddy 系统测试、Playwright、跨版本连接冒烟测试和三种 Linux 架构构建。

完整竞态运行触及原有服务端包 20 分钟时限,因此将 make test-race 的包级超时调整为 25 分钟,保留全部测试和竞态检查。最终服务端包竞态测试通过,用时 1237.582 秒(约 20 分 38 秒)。本地 git diff --check 通过,工作区与分支提交一致。

Refs #83

@zsio
zsio marked this pull request as ready for review September 10, 2026 03:22
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 10, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-10T03:29:31.269334Z 9aca086 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@zsio
zsio merged commit e189cf1 into main Sep 10, 2026
11 checks passed
@zsio
zsio deleted the feature/http-wildcard-domains branch September 10, 2026 03:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant