抢先体验 — 开源 CLI

localhost 应用
提供即时安全预览。

用公共 HTTPS 网址暴露你的本地应用,检查传入请求,无需部署到预发布环境即可调试 webhook。

无需部署默认 HTTPSwebhook 就绪开源 CLI
兼容
  • Stripe
  • GitHub
  • Shopify
  • Twilio
  • Slack
  • Discord

仅为集成示例 — 与这些提供商无关联或背书关系。

terminal — portpreview
$npx portpreview 3000
ConnectedURL:https://jjm5s.portpreview.devCopy
ForwardingTarget:http://localhost:3000
滚动以探索

本地开发不应该需要预发布部署。

每个部署周期都会拖慢你。PortPreview 消除了这个鸿沟。

webhook 无法到达 localhost

Stripe、GitHub 等服务无法调用 127.0.0.1。你需要一个公共网址来接收回调。

客户无法预览你的工作

分享 localhost 网址毫无用处。预发布环境在代码和反馈之间增加了摩擦。

移动端测试很痛苦

localhost 在手机上无法使用。每次移动端预览都需要部署或复杂的 VPN 配置。

调试没有历史记录

webhook 失败时,你没有任何请求日志。你只能在没有检查手段的黑暗中调试。

一条隧道。完整的请求可见性。

每项功能都为重度依赖 webhook 的开发流程而设计。

面向 localhost 的公共 HTTPS 网址

获得一个转发到本地服务器的安全公共网址。无需 DNS、无需 SSL 配置、无需反向代理。

webhook 请求检查器

查看每个传入请求:方法、请求头、请求体、耗时。准确检查外部服务向你的应用发送了什么。

重放已捕获的请求

将任意已捕获的请求重新发送到本地服务器。反复测试应用如何处理完全相同的载荷。

将请求复制为 cURL

一键将任意请求复制为 cURL 命令。在终端重放、加入测试或分享给团队。

密码保护的预览 计划中

用密码保护你的预览网址。仅与获授权的客户或团队成员分享。

保留子域名 Pro

占用一个永久子域名,如 <code>myapp.portpreview.dev</code>。你的预览网址每次会话都保持不变。

团队共享 计划中

与团队共享隧道和请求历史。实时协作调试 webhook。

出站 WebSocket。零配置。

无需更改路由器、无需防火墙规则、无需公网 IP。

浏览器 / Webhook外部调用方
PortPreview 网关云边缘
WebSocket加密隧道
PortPreview CLI你的机器
localhost:3000你的应用

CLI 建立一条出站 WebSocket 连接,因此无需任何路由器或防火墙配置。流量在网关与你的本地机器之间端到端加密。

StripeGitHubTwilioSlackSendGridPipedream

重度 webhook开发而生。

适用于任何发送 HTTP 回调的服务。

POST/webhooks/stripe200124ms刚刚
1.2 KB
Content-Type:application/json
User-Agent:Stripe/1.0 (+https://stripe.com)
Stripe-Signature:t=1625000000,v1=abc123...
Accept:*/*
{
  "id": "evt_3Lm2NnF8Zq",
  "type": "payment_intent.succeeded",
  "data": {
    "object": {
      "id": "pi_3Lm2NnF8Zq",
      "amount": 2999,
      "currency": "usd",
      "status": "succeeded"
    }
  }
}
POST /webhooks/stripe HTTP/1.1
Content-Type: application/json
User-Agent: Stripe/1.0
Stripe-Signature: t=1625000000,v1=abc123...

{"id":"evt_3Lm2NnF8Zq","type":"payment_intent.succeeded"}
"id": "evt_3Lm2NnF8Zq""type": "payment_intent.succeeded""data": {...}

从本地到上线,一条命令

在本地测试 Stripe webhook

将 Stripe 的 webhook 端点指向你的 PortPreview 网址,实时接收事件。

与客户共享 localhost

生成一个公共网址并发送给客户。他们能立即看到你正在进行的工作。

在手机上打开本地应用

在任意手机或平板上访问你的公共网址。测试响应式布局和移动端交互。

调试 API 回调

检查 API 收到的每个回调。查看每个请求的请求头、载荷和耗时。

省去临时的预发布部署

消除为快速评审而做的一次性部署。直接从本地环境预览。

发布前对本地构建做 QA

给 QA 一个公共网址,在合并前测试你的本地构建。尽早发现问题。

开源客户端。托管云端。

开源

  • CLI 客户端
  • 本地转发代理
  • 协议类型
  • 示例

托管云端

  • 网关
  • 仪表盘
  • 请求历史
  • 重放
  • 团队
  • 计费
  • 滥用防护

CLI 客户端是开源的,开发者可以验证它只代理所选的本地端口,不读取文件、环境变量或密钥。

简单定价。没有意外。

免费
$0永久
  • 1 条活动隧道
  • 随机子域名
  • 最近 20 个请求
  • 2 小时会话
  • 无需登录
加入等候名单
团队
免费*前 6 个月免费

每用户,最少 3 个席位

  • Pro 全部,外加:
  • 共享隧道
  • 团队工作区
  • 访问控制
  • 审计日志
联系我们

Pro 和团队版在你使用的前 6 个月免费。无需信用卡。开始计费前我们会通知你——随时可取消。

价格相关问题

Pro 何时开始计费?

在你使用 Pro 的前 6 个月之后。我们至少提前 14 天通知你计费开始,你可以在此之前取消。

什么算作一个会话?

一个会话就是一次 CLI 运行。关闭 CLI 即结束会话。免费会话在 2 小时后自动过期;Pro 会话只要 CLI 在运行就保持开启。

我以后可以切换套餐吗?

可以。升级立即生效,降级在计费周期结束时生效。套餐变更后,你保留的子域名和请求历史都会保留。

你们提供退款吗?

如果在 Pro 上线后的前 30 天内你不满意,我们全额退款。给我们发邮件即可。

这与 ngrok 或 Cloudflare Tunnel 有何不同?

我们专注于 webhook 开发循环:捕获、检查并重放每个请求,无需重新触发事件。完整对比请见我们的对比文章。

常见问题。

CLI 真的是开源的吗?

是的。CLI 采用 Apache-2.0 许可证,源码在 GitHub 上。你可以准确审计它所做的事——代理所选的本地端口,仅此而已。它不读取文件、环境变量或密钥。

这与 ngrok 有何不同?

PortPreview 针对 webhook 调试做了优化:每个传入请求都会被捕获,包含完整的请求头、请求体和耗时,你可以一键将任意请求重放到本地处理器。ngrok 也能用,但捕获和重放是付费功能或需要外部工具。

我的隧道网址在会话之间保持不变吗?

免费隧道每次会话都获得随机子域名。Pro 套餐包含保留子域名,因此像 myapp.portpreview.dev 这样的网址永久不变——对于只想配置一次的 webhook 设置很有用。

支持哪些端口和协议?

任意 HTTP/HTTPS 端口。WebSocket 升级会被正确转发,因此实时应用、HMR 和签名事件服务都无需额外配置即可工作。

把 localhost 暴露到互联网安全吗?

隧道只将流量转发到你选择的特定本地端口。你机器上的其他任何东西都无法访问。Pro 套餐增加了密码保护和访问控制,让你更加安心。

PortPreview 何时公开发布?

我们现在正在进行开放的抢先体验计划。加入等候名单获取邀请——大多数注册者会在几天内获得访问权限。

一条命令开始。

$npx portpreview 3000

提交即表示你同意我们的 隐私政策,并同意我们存储你的邮箱。