☰
别再折腾ngrok了!轻量级工具Slim如何让localhost秒变正规HTTPS域名
2026/10/8 13:08:30 网站建设 项目流程

别再折腾ngrok了!轻量级工具Slim如何让localhost秒变正规HTTPS域名

【免费下载链接】slimGive your localhost a local or public URL项目地址: https://gitcode.com/gh_mirrors/slim30/slim

Slim是一款轻量级命令行工具,一条命令就能为 localhost 项目生成带真实证书的正规 HTTPS 本地域名(如https://myapp.test),还能把本地端口一键暴露成公网 URL,堪称 ngrok 的极简替代品。无需复杂配置,macOS 和 Linux 开箱即用,让本地开发体验瞬间接近生产环境。

为什么选择 Slim 替代 ngrok?

很多新手做前端或 API 开发时,都会遇到这些痛点:

  • 浏览器地址栏里写着http://127.0.0.1:3000,复制给别人根本打不开;
  • 想上 HTTPS(调试 cookie、摄像头、地理定位等),得自己折腾证书;
  • 想用 ngrok 做内网穿透,却要注册、配置 token,免费版域名每次还都不一样。

Slim 用本地代理 + 自建根证书的方式,把上面三件事都变成了一条命令的事:

对比项传统方式ngrokSlim
本地 HTTPS 域名手动装证书需要客户端slim start一条命令
公网分享 URL端口映射需账号 tokenslim share一条命令
初始化成本多多首次运行自动完成

它的核心思路很简单:在本地起一个轻量守护进程做反向代理,自动签发并信任证书,把myapp.test这样的域名指向 127.0.0.1。首次运行时,Slim 会自动完成三件"脏活"(源码见 internal/setup/setup.go):

  1. 生成本地根 CA;
  2. 将 CA 加入系统信任(可能提示输入一次系统密码);
  3. 配置端口转发,把 80/443 端口转发到代理端口(80→10080,443→10443)。

之后每次使用都是秒级响应,不再有弹窗和配置。

一键安装步骤

方式一:安装脚本(推荐新手)

在终端执行官方安装脚本,自动检测系统架构并下载对应版本:

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

脚本会自动识别 macOS / Linux 与 amd64 / arm64 架构,下载最新版并校验完整性,完整逻辑可参考 install.sh。

方式二:源码构建

本地已有 Go 1.25+ 环境的话,可以克隆仓库自己构建:

git clone https://gitcode.com/gh_mirrors/slim30/slim cd slim make build make install

项目入口见 main.go,最终产物就是一个零运行时依赖的单一二进制文件。

30秒上手:slim start 命令生成 HTTPS 域名

安装完成后,进入项目目录执行:

slim start myapp --port 3000

完成!现在浏览器访问https://myapp.test,就等同于访问localhost:3000,而且证书合法,地址栏直接显示🔒安全锁。

命令的核心逻辑位于 cmd/start.go,它会自动写入/etc/hosts映射、为域名签发证书、确保守护进程与端口转发就位,最后打印出所有可用地址。

💡小贴士:不确定后端是否已启动时,加上--wait参数,命令会等待上游端口就绪后才返回,避免"域名通了但服务没起"的尴尬。

进阶玩法:任意后缀域名与路径路由

想用别的后缀?直接写完整域名

不指定后缀时默认使用.test;想更个性化,直接写完整域名即可:

slim start app.loc --port 3000 # https://app.loc → localhost:3000 slim start my.demo --port 4000 # https://my.demo → localhost:4000

⚠️ 注意避免.local后缀,它被 mDNS 保留使用,会导致 macOS/Linux 上 DNS 解析变慢。

一个域名,多个后端服务

前端、后端、WebSocket 各占一个端口?用--route把不同路径分流到不同端口:

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

这样https://myapp.test/api转发到 8080,/ws转发到 9000,主路径仍走 3000——等于在浏览器里拥有一个"多合一"的正规域名。

团队协作:.slim.yaml 一键拉起整个项目

多人协作时,把项目里的所有服务写进项目根目录的.slim.yaml,队友拿到代码后一条命令全部启动:

services: - domain: myapp port: 3000 routes: - path: /api port: 8080 - domain: dashboard port: 5173 log_mode: minimal cors: true
slim up # 启动配置中的全部服务 slim down # 全部停止

cmd/up.go 会自动在当前目录及父目录中查找.slim.yaml,为每个服务生成域名与证书,并统一注册到守护进程。

公网分享:slim share 秒变可访问的在线地址

需要给同事演示,或者用真机调试 H5?slim share通过隧道把本地端口暴露到公网,得到一个https://xxx.slim.show地址:

slim login # 首次使用需登录一次 slim share --port 3000 # 生成随机子域名的公网 URL

常用参数一览(实现见 cmd/share.go):

参数作用
--subdomain demo指定固定子域名 demo.slim.show
--password secret给隧道加密码保护
--ttl 30m限时隧道,30 分钟自动过期
--domain myapp.example.com绑定你自己的域名

命令会实时打印每个请求的方法、路径、状态码和耗时,按Ctrl+C即可断开隧道。

日常运维命令速查表

命令用途
slim list查看当前所有域名与代理状态(支持--json)
slim logs --follow myapp实时跟踪某个域名的访问日志
slim stop myapp停止单个域名(不带参数则全部停止)
slim doctor一键体检:证书、CA 信任、端口转发、hosts 全查一遍
slim update升级到最新版本
slim uninstall彻底卸载:CA、证书、hosts 条目、转发规则一网打尽

其中slim doctor的输出非常直观,形如:

✓ CA certificate valid, expires 2035-02-28 ✓ CA trust trusted by OS ✓ Port forwarding active (80→10080, 443→10443) ✓ Hosts: myapp.test present in /etc/hosts

诊断逻辑位于 cmd/doctor.go,遇到"域名打不开"时先跑一遍,基本都能快速定位问题。

写在最后

Slim 用"一条命令"的极致体验证明:本地开发上正规 HTTPS 域名,不需要注册第三方服务、不需要手写证书。日常开发用slim start,演示分享用slim share,团队项目用.slim.yaml——从此告别127.0.0.1的时代。

【免费下载链接】slimGive your localhost a local or public URL项目地址: https://gitcode.com/gh_mirrors/slim30/slim

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询