你有没有遇到过这种情况:在本地电脑上开发了一个网站,想让朋友或客户看看效果,但又不能直接上传到服务器?这时候,很多人会想到用 IP 地址加端口的方式分享,比如 http://192.168.1.100:8080。看起来凑合,但不够专业,而且一旦网络变动,IP 就失效了。
内网穿透解决访问难题
内网穿透技术就是为了解决这类问题而生的。它能把你在家里或公司局域网中运行的服务,通过一个公网服务器“转发”出去,让外网用户也能访问。常见的工具有 frp、ngrok、花生壳、cpolar 等。它们能生成一个临时的公网地址,比如 https://abc123.ngrok.io,指向你本地启动的 Web 服务。
为什么还要绑定自己的域名?
虽然工具自带的域名能用,但总归是随机的、难记的,也不利于品牌展示。如果你有自己的域名,比如 demo.yourcompany.com,把它绑定到内网穿透服务上,别人看到链接就知道是你官方提供的预览环境,信任感立马不一样。
绑定过程其实不复杂
以使用 cpolar 为例,假设你已经有一个域名 yourdomain.com,并且在 DNS 服务商(如阿里云、腾讯云 DNSPod)那里管理着解析记录。
第一步,在你的内网穿透工具配置中指定要使用的域名。比如在 cpolar 的配置文件 cpolar.yml 中添加:
subdomain: demo
proto: http
local_port: 8080
然后在公网服务端配置对应的域名支持。如果你用的是自建 frp 服务,可以在服务端配置:
[common]
vhost_http_port = 80
subdomain_host = yourdomain.com
接着去域名控制台,添加一条 CNAME 记录:
主机记录:demo
记录类型:CNAME
记录值:frp-server-public-domain.com
这条记录的意思是,把 demo.yourdomain.com 指向你内网穿透服务提供的公网入口地址。等 DNS 生效后,访问 http://demo.yourdomain.com,实际上就会被转发到你本地电脑的 8080 端口。
实际应用场景
比如你是做企业官网定制的,每次改完页面,不用再打包发给客户,直接说:“您看下这个链接:http://project2024.yourwork.com,是我本地正在调试的版本。” 客户打开一看,地址清清楚楚,体验就好很多。
再比如团队内部搭建的测试 API 服务,原本只能靠 IP + 端口共享,现在统一用 api-test.internal.yourtools.com,接口文档也好写,新人接手也方便。
注意几个细节
HTTPS 是现代浏览器的基本要求。大多数内网穿透服务会自动为你申请并配置 SSL 证书,只要域名正确指向,访问时就能自动走 HTTPS。如果自己搭服务,可以用 Let's Encrypt 配合 Nginx 实现。
另外,确保本地服务一直处于运行状态。如果你的电脑休眠或者关机,外网访问自然就断了。建议用一台常开的小主机,比如树莓派或旧笔记本跑这些服务。
还有就是防火墙和路由器设置。确认本地机器的防火墙允许对应端口的入站连接,虽然穿透服务通常是主动外连,但本地服务监听的地址要是 0.0.0.0 而不是 127.0.0.1,否则外部请求进不来。