npm install -g sealtun其他方式:npx 临时运行(npx sealtun@latest login)、GitHub Releases 直接下载各平台二进制、源码 make build。
sealtun login # 1. 浏览器授权登录(无浏览器环境:sealtun login --qr 手机扫码)
sealtun up # 2. 交互式创建隧道(自动发现本地端口)
sealtun tunnel list # 3. 查看隧道公网 URL 在创建输出中直接给出。不习惯命令行?sealtun ui 打开 Web 控制台,全部功能可视化操作(见下文)。
sealtun login # 交互选择 region,浏览器完成设备授权
sealtun login gzg # 指定 region 登录
sealtun login gzg --qr # 无浏览器环境:终端出二维码,手机扫码授权
sealtun login gzg --profile gzg-main # 保存为命名 profile
sealtun profile list / use / delete # profile 管理
sealtun region list / current # region 查询(切换用 login <region>)
sealtun status # 当前登录状态内置 region:gzg(广州)、hzh(杭州)、bja(北京)、cloud(国际站)、usw(美西)。凭据保存在 ~/.sealtun,profile 保存在 ~/.sealtun/profiles/<name>。凭证过期或集群 CA 轮换会自动用 refresh token 续期。
同一 region 下可能有多个 workspace(团队空间),新隧道建在哪个 workspace 由当前选择决定:
sealtun workspace list # 列出我有权限的 workspace
sealtun workspace current # 查看当前 workspace
sealtun workspace use ns-xxx # 切换(切换前会探测访问权限)sealtun ui # 打开本地 Web 控制台(浅色 Sealos 风格)控制台覆盖 CLI 的全部能力:隧道创建(含本地端口发现、路由、TTL、Basic Auth、限流、域名)、启停/删除、请求日志与重放、访问策略、分享链接、诊断、profile/workspace 切换、登录(可选区域、可选保存为 profile)。只监听 127.0.0.1,随机端口 + 随机会话 token,浏览器之外无法访问。
HTTPS(默认):本地端口或远端 HTTP upstream 转公网 URL。
sealtun expose 3000 # 本地端口
sealtun expose --target http://10.0.0.12:8080 # 远端 HTTP upstream
sealtun expose 3000 --qr # 终端打印公网 URL 二维码,手机扫码即开
sealtun expose 3000 --route /api=8080 # 多服务路由:/api 前缀转发到 8080,其余走 3000路由适用边界(真机验证结论):推荐「前端/SPA 放主目标(隧道根路径),API 服务挂 routes 前缀」——此形态包括 Vite HMR 在内完整可用。不要反过来把 SPA 自己挂到子路径前缀:前端产物引用的是根绝对路径资源(如 /src/main.js),请求会跳出前缀落到主服务,框架的 base 配置与前缀剥离语义互相冲突。响应体(HTML/JSON)内的绝对路径内容不会被改写;Location 重定向头会自动补回前缀。
sealtun up # 交互引导(推荐日常使用,默认建议 2 小时自动删除,避免忘关计费)
sealtun expose 3000 --ttl 2h # 脚本化创建也可以显式加自动过期SSH / 通用 TCP:expose 22 --protocol tcp / expose 5432 --protocol tcp(数据库、队列、MQTT 等),输出 <public-host>:<node-port>;端口 22 会自动附赠 ssh <user>@<public-host> -p <node-port> 提示。--protocol ssh 仍兼容但已弃用,SSH 就是纯 TCP。
SSH/TCP 走 NodePort 直连,不支持 HTTPS 的认证、域名和策略功能。
up 是 expose 的智能入口:复用项目 .sealtun/state.json、自动发现本地端口、支持 --template(https/ssh/tcp/mysql/postgres/redis/mongodb/mqtt)、--guided 强制引导。--target 仅 HTTPS;私有自签名 upstream 用 --target-insecure-skip-verify。
# Basic Auth(推荐环境变量方式)
export SEALTUN_BASIC_AUTH_PASSWORD='change-me'
sealtun expose 3000 --basic-auth-user admin --basic-auth-password-env SEALTUN_BASIC_AUTH_PASSWORD
# Bearer Token
sealtun expose 3000 --bearer-token-env SEALTUN_BEARER_TOKEN
# IP 白/黑名单
sealtun expose 3000 --ip-allowlist 203.0.113.10 --ip-denylist 198.51.100.9
# 限流与审计
sealtun expose 3000 --rate-limit 60/m --audit认证在 Sealtun server 代理层执行,只保护公网业务流量,不影响控制通道。token 只存 SHA-256 hash。
临时分享链接(创建后 URL 只显示一次):
sealtun tunnel share create <tunnel-id> --name review --ttl 1h
sealtun tunnel share rotate / revoke <tunnel-id> review策略管理:
sealtun tunnel access show / set <tunnel-id> --rate-limit 60/m --audit
sealtun tunnel access audit <tunnel-id> --since 10m轮换 server secret:sealtun tunnel rotate-secret <tunnel-id> --server-secret(新 secret 只显示一次)。
sealtun tunnel domain plan <tunnel-id> app.example.com # 查看需要配置的 DNS
# 在你的 DNS 服务商处配置: CNAME app.example.com -> <sealos-host>
sealtun tunnel domain add <tunnel-id> app.example.com --wait # 绑定并等待证书
sealtun tunnel domain verify / status / clear <tunnel-id>CNAME 验证通过后才写入 Ingress 并创建 cert-manager 证书。tunnel domain status --verbose 输出详细 DNS/Ingress/证书诊断。
sealtun tunnel list / --check / --watch # 列表、本地探活、持续刷新
sealtun tunnel inspect <id> # 单隧道详情
sealtun tunnel inspect <id> --remote # + 远端 K8s 诊断和事件
sealtun tunnel inspect <id> --metrics # + 指标(旧镜像降级为 warning)
sealtun tunnel inspect <id> --resources # + 资源清单(Secret 脱敏)
sealtun tunnel logs <id> --tail 200 --follow # 远端 Pod 日志
sealtun doctor [--fix --dry-run] [--fix] # 诊断与保守修复
sealtun tunnel stop / start / cleanup <id> # 停止(可恢复)/ 恢复 / 删除
sealtun tunnel requests <id> [--follow] # 查看公网请求日志(webhook 调试)
sealtun tunnel requests replay <id> <seq> # 把捕获的请求重放到本地服务# sealtun.yaml
version: v1
tunnels:
- name: web
localPort: 3000
protocol: https
routes: # 可选:多服务路由,前缀会被剥离
- { path: /api, port: 8080 } # /api/users -> localhost:8080/users
domain: app.example.com
ttl: 2h
basicAuth:
credential: admin:change-me
accessPolicy:
bearerTokenEnv: SEALTUN_BEARER_TOKEN
rateLimit: 60/m
audit: { enabled: true }
resources:
requests: { cpu: 20m, memory: 64Mi }
limits: { cpu: 300m, memory: 256Mi }sealtun apply -f sealtun.yaml --dry-run # 执行计划预览(无需登录)
sealtun apply -f sealtun.yaml --dry-run --format diff # 与本地 session 的字段级对比
sealtun apply -f sealtun.yaml # 创建/更新name 即稳定 tunnel ID,重复 apply 幂等更新。资源调整只能通过 YAML resources + apply,默认 requests 10m/32Mi、limits 200m/128Mi。
命令兼容:v0.0.42 起隧道操作统一收进 sealtun tunnel(如 tunnel share、tunnel access、tunnel domain、tunnel rotate-secret)。旧写法(sealtun share、sealtun policy、sealtun list 等)保留为兼容别名,行为不变但会打印弃用提示,建议迁移到新写法。
Codex Skill:仓库内置 skills/sealtun,供 Codex 类 AI agent 理解 Sealtun CLI:npx skills add https://github.com/gitlayzer/sealtun。
环境变量:SEALTUN_SERVER_IMAGE 可覆盖远端 Pod 镜像(开发用);SEALTUN_HOME 可覆盖 ~/.sealtun 配置目录。
详细排障:见 skills/sealtun/references/troubleshooting.md。
MIT License.