hostc

什么是内网穿透

开发服务监听在 localhost 上,只有你自己的电脑能访问。内网穿透(也叫隧道)给它一个公网地址,手机、同事或者 Stripe 这样的服务都能访问到它,你不用部署任何东西。

隧道是怎么工作的

你的电脑通常在路由器或防火墙后面,接收不到来自公网的连接。所以隧道反过来做:

  1. 电脑上的一个小程序主动向公网服务器发起一条连接。
  2. 服务器给你一个公网地址。
  3. 有人打开这个地址时,服务器把请求从这条已经建立的连接发回来。
  4. 小程序把请求转给 localhost,再把响应送回去。

你的电脑不需要能从公网访问,路由器和防火墙也不用改。

什么时候需要

  • Webhook:Stripe、GitHub、Slack 只能调用公网地址。见在本地调试 Webhook。
  • 真机调试:走 HTTPS,不限网络。见在手机上调试 localhost。
  • 展示开发中的功能:部署之前先给同事或客户看。
  • OAuth 回调,以及其他需要外部服务访问你的流程。

需要注意什么

地址是公开的。除非隧道有访问控制,否则拿到链接的人都能访问你的服务。不要暴露数据库、管理后台或任何含有密钥的服务,用完就停掉。

隧道适合临时分享,别人要长期使用的东西还是要正式部署。

Vite 和 Next.js 会拦截陌生域名的请求,有些隧道要你把它们的域名加进配置。hostc 改写请求头来解决这个问题。

隧道、端口转发还是部署?

隧道不是唯一的分享方式。这篇文章比较了隧道、局域网 IP、端口转发和预览部署。简单说:要展示的东西正在你电脑上跑,就用隧道;别人要在你不在时也能用,就部署。

常见问题

内网穿透安全吗? 访客到隧道服务器之间是加密的,你的电脑也不接受外部连接。风险在于你暴露了什么:拿到链接的人都能使用你的应用,包括它的漏洞。

电脑要一直开着吗? 要。隧道转发到你的电脑,电脑休眠或隧道停止,链接就失效了。

和 VPN 一样吗? 不一样。VPN 让设备加入一个私有网络;隧道把一个本地服务发布到公网。

该选哪个工具? 见内网穿透工具怎么选。

试一下

npx hostc@latest 3000

hostc 免费开源,不用注册。如果你在比较工具,可以看看各种替代方案的对比。

一条命令拿到公网地址,免费,不用注册

npx hostc@latest 3000

更多文章