Slim | 把 localhost 变成 HTTPS 本地域名与公网 URL 的 Go CLI

Slim 是 nilbuild/slim 仓库维护的 Go 命令行工具,目标是把 localhost 端口映射成带 HTTPS 的本地域名,并在需要时通过 slim.show 创建可分享的公网 URL。它适合本地开发、跨服务联调和临时演示,不是生产环境的反向代理替代品。当前仓库最新正式 Release 为 v0.9.3,官方 README 要求 Go 1.25 或更高版本进行源码构建,安装脚本面向 macOS 与 Linux;项目许可证是 PolyForm Shield 1.0.0,使用和再分发不能忽略其竞品限制。

Slim 本地 HTTPS 与公网隧道工作流封面

截至 2026 年 9 月 2 日核对,GitHub 仓库页面约有 2,093 个 stars 和 136 个 forks,默认分支为 main,主要语言为 Go,最近一次推送记录为 2026 年 6 月 21 日;最新 Release v0.9.3 发布于同日。仓库已经从 kamranahmedse/slim 迁移到 nilbuild/slim,但部分模块路径、安装脚本和官网链接仍保留旧 owner,这个迁移痕迹需要在源码构建和自动化安装时留意。

Slim 把本地端口变成可读的 HTTPS 域名

最直接的用法是给本地服务起一个域名:slim start myapp --port 3000 会将本机 3000 端口映射到 https://myapp.test。不指定 TLD 时默认使用 .test,也可以把完整域名写成 app.locmy.demo。官方文档特别提醒不要使用 .local,因为它由 mDNS 保留,在 macOS 和 Linux 上可能引起 DNS 解析变慢。

Slim 官方本地 HTTPS 与公网隧道界面示意
Slim 官方功能图,展示本地 localhost:3000、HTTPS 与 slim.show 公网地址之间的关系;来源:https://github.com/nilbuild/slim/blob/main/docs/public/og-img.png

多服务项目用路径路由和 .slim.yaml 统一管理

一个域名分流到多个上游端口

Slim 的路径路由适合前端、API 和 WebSocket 服务分开监听的项目。例如下面的命令让根路径继续指向 3000 端口,同时把 /api/ws 分别转发到 8080 与 9000:

slim start myapp --port 3000 --route /api=8080 --route /ws=9000

这类配置的价值不在于减少端口数量,而是让浏览器始终访问同一个本地域名,减少跨域和回调地址在开发环境中的反复修改。站点介绍还列出 WebSocket、HMR、CORS 头和访问日志等本地开发相关能力,但是否需要额外配置取决于具体项目和代理链。

把项目服务写入 .slim.yaml

服务较多时,可以在项目根目录创建 .slim.yaml,把域名、端口和路径规则放进版本化配置:

services:
  - domain: myapp
    port: 3000
    routes:
      - path: /api
        port: 8080
  - domain: dashboard
    port: 5173
  - domain: app.loc
    port: 4000
log_mode: minimal  # full | minimal | off
cors: true

slim up 会启动配置中的全部服务,slim down 负责停止项目服务;也可以用 --config 指定另一份配置文件。配置文件适合与团队共享,但其中不应写入密码、Token 或内部生产地址。

公网分享是独立的 tunnel 流程

需要让同事或客户临时访问本地项目时,先运行 slim login,再执行 slim share --port 3000,Slim 会分配一个 slim.show 公网地址。README 还提供了固定子域名、密码保护、自动过期和自定义域名参数:

slim share --port 3000
slim share --port 3000 --subdomain demo
slim share --port 3000 --password secret --ttl 30m
slim share --port 3000 --domain myapp.example.com

--password--ttl 只能降低临时分享的暴露面,不能把公网 URL 当作访问控制系统。分享前应确认页面没有调试入口、后台凭据或真实用户数据;项目的公网隧道、账号和域名服务也属于 Slim 代码仓库之外的服务边界,使用前应单独查看其当前条款。

自动证书、Hosts 和端口转发由单一 CLI 负责

官方站点对内部流程的概括是:Slim 创建本地开发 CA,为每个映射域名签发证书,更新 /etc/hosts 指向 127.0.0.1,将 80/443 转发到自身监听端口,再用反向代理处理 HTTP/2、WebSocket 升级和 CORS。这样浏览器看到的是规范的 HTTPS 域名,而应用仍然运行在原来的 localhost 端口。

遇到域名、证书或守护进程问题,可以先用只读诊断命令定位状态:

slim list
slim list --json
slim logs --follow myapp
slim doctor

slim doctor 会检查 CA 证书、系统信任、端口转发、Hosts 条目和守护进程;slim uninstall 则用于移除 CA、证书、Hosts 条目、端口转发规则和配置。涉及系统证书、Hosts 或端口权限时,建议先确认影响范围,并保留必要的备份或还原路径。

安装与源码构建:先看平台,再处理仓库迁移痕迹

官方安装脚本和预编译包

官网提供的一键安装入口是 https://slim.sh/install.sh。脚本会识别 macOS/Linux 和 amd64/arm64,读取最新 Release,下载压缩包与 checksums.txt,校验后把二进制安装到 /usr/local/bin/slim。当前 v0.9.3 Release 提供 darwin amd64、darwin arm64、linux amd64 和 linux arm64 四类压缩包;没有看到 Windows 构建或 Windows 安装分支,不应把它写成 Windows 可用工具。

curl -sL https://slim.sh/install.sh | sh
slim version

源码构建与旧 owner 路径

源码构建需要 Go 1.25 或更高版本,当前仓库地址可写为:

git clone https://github.com/nilbuild/slim.git
cd slim
make build
make install

需要注意,仓库当前的 go.mod 模块名仍是 github.com/kamranahmedse/sliminstall.sh 的 Release owner 也仍是 kamranahmedse/slim;GitHub 目前会将该旧地址重定向到 nilbuild/slim,所以现成脚本通常仍可找到仓库,但二次开发、镜像缓存和供应链审计应固定具体 Release 或 commit,并核对重定向是否仍然存在。

PolyForm Shield 不是“可随意改名售卖”的开源许可

Slim 仓库附带 PolyForm Shield License 1.0.0。许可证允许在保留版权和许可声明的前提下使用、修改和分发软件或衍生作品,但明确禁止使用该软件提供与许可方软件或服务竞争的产品或服务;分发衍生作品时还必须一并提供许可证文本。它不是 OSI 意义上的常见宽松开源许可,因此“仓库公开可读”不能直接推导出“可以做竞品 SaaS”或“可以无条件商用”。

许可证同时按“现状”提供软件,不承诺适销性、特定用途适用性或不侵权。若准备把 Slim 嵌入商业开发环境、重新打包,或围绕其公网隧道做服务,应让法务逐条核对竞品限制、署名和再分发要求;个人本地开发则仍应遵守同样的许可文本和第三方依赖条款。

适合的场景与不适合替代的工具

如果团队需要稳定的本地域名、HTTPS、HMR、路径分流和一份可共享的本地服务配置,Slim 的单二进制 CLI 和 .slim.yaml 能把这些动作收拢到同一套命令里;需要临时演示时,slim share 还提供了带过期时间和密码的公网入口。相反,生产流量入口、长期运行的零信任接入、复杂身份认证、企业审计和高可用隧道,仍应选择经过评估的专业网关或隧道服务,不要把本地开发工具直接当成生产基础设施。

综合来看,Slim 的关键价值是把“本地端口—可读域名—HTTPS—可选公网分享”串成一条短路径,而不是提供完整的应用部署平台。使用前最值得核对的三件事是:目标系统是否属于 macOS/Linux、Go 版本是否满足 1.25+(源码构建时)、以及 PolyForm Shield 的竞品限制是否适用于你的分发方式。

相关链接

  • GitHub 仓库:https://github.com/nilbuild/slim
  • 最新 Release(v0.9.3):https://github.com/nilbuild/slim/releases/tag/v0.9.3
  • Slim 官方网站:https://slim.sh
  • 官方安装脚本:https://slim.sh/install.sh
  • 官方功能图原图:https://github.com/nilbuild/slim/blob/main/docs/public/og-img.png
  • PolyForm Shield 许可证:https://github.com/nilbuild/slim/blob/main/LICENSE
  • PolyForm Shield 官方文本:https://polyformproject.org/licenses/shield/1.0.0
Slim | 把 localhost 变成 HTTPS 本地域名与公网 URL 的 Go CLI - 杂货喵
Slim | 把 localhost 变成 HTTPS 本地域名与公网 URL 的 Go CLI
此内容为免费资源,请登录后查看
M币0
发布平台GitHub
编码语言Go
运行方式CLI
项目版本v0.9.3
项目许可PolyForm Shield 1.0.0
支持系统macOS/Linux
免费资源
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像 - 杂货喵
欢迎您留下宝贵的见解!
提交
头像 - 杂货喵

昵称

取消
昵称图片快捷回复

    暂无评论内容