让你的隧道地址从a3x9k2-yisheld.apps.yishield.com变成myapp.apps.yishield.com。痛点随机地址不好用使用 Shield CLI 暴露本地服务时系统会自动分配一个随机的子域名作为公网访问地址。虽然功能上没有任何问题但在实际使用中你可能会遇到这些场景给客户演示——发一个a3x9k2.apps.yishield.com的链接看起来不够专业团队协作——多个服务同时运行随机地址难以区分哪个是哪个反复调试——每次重新建立隧道地址都变了文档和配置中的链接全部失效Webhook 回调——第三方服务配置了回调地址隧道重建后地址变更导致回调失败解决方案--site-name参数从 v0.3.9 开始Shield CLI 支持通过--site-name参数自定义域名前缀shield http8000--site-name myapp执行后你的服务将通过myapp.apps.yishield.com访问而不是一串随机字符。连接成功后可以看到隧道已建立分配的地址正是你指定的前缀两种设置方式方式一命令行参数最直接的方式在启动命令中指定# 暴露本地 8000 端口自定义域名前缀为 testshield http8000--site-nametest# 暴露 SSH 服务shieldssh10.0.0.5 --site-name devserver# 暴露 React 开发服务器shield http3000--site-name frontend方式二Web UI 编辑如果你已经通过shield start启动了 Web 管理界面也可以在编辑应用时设置 Site Name。展开ADVANCED配置区域在Site Name字段中填入你想要的域名前缀设置完成后应用卡片上会直接显示你的自定义域名命名规则Site Name 不是随意填写的需要遵循以下规则规则说明仅限小写字母和数字myapp123✅My-App❌必须以字母开头app1✅1app❌长度 3 ~ 63 个字符ab❌abc✅不允许连字符myapp✅my-app❌如果输入不符合规则无论是命令行还是 Web UI 都会给出明确的错误提示命令行同样会校验$ shield http8000--site-name test-bad Error: invalid site name:test-bad实用场景客户演示shield http3000--site-name demo# 访问地址demo.apps.yishield.com发给客户一个干净的链接比随机字符串专业得多。多服务区分# 终端 1前端shield http3000--site-name frontend# 终端 2后端 APIshield http8080--site-name api# 终端 3管理后台shield http9090--site-name admin一目了然不用再猜哪个地址对应哪个服务。Webhook / 回调地址shield http8000--site-name webhook# 访问地址webhook.apps.yishield.com在第三方平台配置好回调地址后即使本地重启隧道只要使用相同的--site-name地址不变回调不断。快速上手# 1. 安装或升级到最新版brew tap fengyily/tap brewinstallshield-cli# 或brew upgrade shield-cli# 或curl-fsSLhttps://raw.githubusercontent.com/fengyily/shield-cli/main/install.sh|sh# 2. 验证版本 0.3.8shield--version# 3. 使用自定义域名前缀启动shield http3000--site-name myapp# 4. 浏览器访问 myapp.apps.yishield.com相关链接Shield CLI 官方文档GitHub 仓库HTTP/HTTPS 协议文档