本地建站与 Web 上线

HTTP 内网穿透:本地网站上线公网要过的三关

本机跑着 WordPress、宝塔面板或 Hugo,想发给别人打开?HTTP 内网穿透把本地端口开到公网,系统域名建完就能用;自有域名要过 ICP 备案、DNS 解析、HTTPS 证书三关。

站已经跑起来了,本机浏览器打开一切正常——现在要让别人也能打开。它可能是宝塔面板里那个 WordPress、一个 Hugo 博客、一个给客户看的 Demo,或者自建的 Gitea。HTTP 内网穿透做的就是这一件事:把本机某个端口上的网页,变成一条能发出去的链接。这一页讲中间那几步——地址从哪来、要不要用自己的域名、证书谁配、几个站怎么同时开。

浏览器打开映射分配的域名,本地宝塔里跑着的 WordPress 站正常显示
做完之后就是这样:站跑在一台家用机器的宝塔里,链接发出去谁都能打开
这一步决定了后面要做多少事

HTTP 内网穿透的两种地址:系统分配域名与自有域名

两种地址指向同一个本地服务,区别只在这个链接看起来像谁的,以及你愿意先付出多少配置。

系统分配域名:建完就能用

新建映射时选「网站 HTTP」这个预设,本地地址填 127.0.0.1、端口填你那个站在跑的端口,公网访问方式保持默认,服务端就会分配一个域名。创建完当场能打开,HTTPS 也已经在了——不必有自己的域名、不必配 DNS、不必等审核。

适合:自己看的服务、发给同事的 Demo、临时给客户演示。微信公众号和小程序的本地调试也走这条——那些后台要求填一个公网可达的地址,localhost 是填不进去的,而这个域名当场就有。

自有域名:链接是你自己的

想让别人看到的是 blog.你的域名.com,就在建映射时切到「绑定自有域名」把它填进去。这条路要多做三件事——ICP 备案、DNS 解析、等证书,下一节逐个说。

适合:真的要对外的站——个人博客、作品集、公司的对外服务。属于专业版及以上的能力,各版本差异见价格页

桌面客户端新建映射弹窗,选中「网站 HTTP」预设,本地端口 8080,公网访问停在「系统分配域名」
第一种长这样:填本地端口,公网访问那一栏不动,创建完域名就有了
不看你用什么建站,只看它在哪个端口

宝塔、WordPress、Hugo:本地跑的站怎么接进来

映射认的是「本机 IP + 端口」,不认你用什么工具搭的站。所以这一步真正要回答的是:你那个站现在跑在几号端口上。

本机跑着什么典型本地端口映射填什么
宝塔面板托管的站80 / 443站点的端口,不是面板的
WordPress(Docker 起的)容器映到宿主机那个口宿主机上的端口
静态博客(Hugo)13131313
自建 Git(Gitea)30003000
后端 API各自的端口每个端口各一条

宝塔这里最容易填错。 宝塔面板自己占一个端口(装完那条命令里给你的登录地址就是它),它托管的网站另占 80 / 443。要开出去的是网站那个端口——面板是后台,把它开到公网等于把服务器管理权摆到门口,真要远程管面板,看本页后面那节的收窄办法。

如果本机已经有 Nginx 或 Apache 在做反向代理、按域名把请求分给几个站,那就只映射反代那一个端口,分流仍旧由它自己做,不必一个站建一条。

装 WordPress 之前,先把域名定下来。 WordPress、Nextcloud、Discourse 这类程序有个共同习惯:安装那一刻它会把你当时用的地址记进数据库,此后页面里所有的图片、样式、跳转都按那个地址生成。

你在本机用 localhost:8080 装的,它记住的就是 localhost:8080。等别人用你的映射域名打开,浏览器拿到的页面里,CSS 和图片全指向 localhost:8080——那是访客自己的电脑,什么都加载不出来,站看上去就是一堆没有样式的文字;有的还会直接把人跳回 localhost,页面根本打不开。

顺序反过来就没这回事:先建好映射拿到域名,再用那个域名去装。已经装好了也能救,WordPress 在 wp-config.php 里加两行:

define('WP_HOME', 'https://你的映射域名');
define('WP_SITEURL', 'https://你的映射域名');

别的程序找它配置里的「站点地址 / Site URL / 外部访问地址」,改成同一个域名,道理一样。

三件事顺序固定,跳不过去

绑自有域名的三关:ICP 备案、DNS 解析、HTTPS 证书

按这个顺序做,卡住时也容易判断卡在哪一关。

① ICP 备案

建映射时有一个必勾项:「我承诺该域名已完成 ICP 备案」,旁边写着未备案域名将被自动拦截,仅在选择国内节点时适用。这是国内公网服务的合规要求,不是可以绕的一步。备案在你的域名服务商那边办,与蜻蜓映射无关,官方口径见 工信部 ICP 备案管理系统

② 两条 CNAME

一条管访问与归属,一条是 _acme-challenge 开头的证书委托记录。主机记录与记录值都能一键复制,去域名服务商的控制台添上即可。第二条要长期留着——后面的证书续期依赖它,删了证书就续不上。

③ 等证书签发

两条记录生效后证书自动签发,页面上有进度可看。你不用碰业务代码,也不用自己续期——本地那个站还是跑在 HTTP 上,加密发生在公网这一段。

新建映射弹窗切到「绑定自有域名」,下方是 ICP 备案的承诺勾选项
第一关在这里:填完域名,下面那个备案承诺是必勾的
自有域名的 DNS 指引:访问 CNAME、证书委托 CNAME 与证书签发进度三步
第二、三关在同一屏:两条记录照抄过去,签发进度就在下面

这三关不必一次过完。 映射创建的那一刻系统分配的域名就已经可用了,站当时就能打开;备案、解析、证书是在这之后慢慢做的,做完自有域名再接上去。所以「等备案」不等于「站开不了」。

一台机器上不止一个站

几个本地服务同时开出去,要建几条映射

按端口分,一个端口一条。它们共用同一台机器上的同一个客户端。

同一台机器上装一次客户端,几条映射一起管,不必为每个服务各装一遍。要注意的是映射条数按套餐计,具体几条看价格页

客户端映射列表里三条映射同时在线,分别是网站、远程桌面和 NAS,顶部显示映射条数、带宽与本月流量
三条映射共用一个客户端。注意地址那一列:HTTP 那条拿到的是一个域名,TCP 那条后面跟着端口号

只有 HTTP/HTTPS 映射能绑自有域名,TCP/UDP 映射不能,后者拿到的一定是「域名:端口」形式的入口。原因在协议本身:HTTP 请求头里带着 Host,服务端一个入口就能按域名把流量分给不同的站;TCP 那一层没有域名这个概念,只能靠端口区分。所以要开的是数据库或远程桌面,走的就是带端口那条路,这一页讲的域名与证书对它们都不适用。

搜到的教程多半绕不开这个问题

都要一台服务器了,为什么不直接把站部署上去

网上大多数 HTTP 穿透教程的第一步是「准备一台有公网 IP 的云服务器」。走到这一步,这个疑问是合理的。

先说结论站能挪就挪,挪不动才映射

如果你的站本来就能跑在云上——纯静态、或者只依赖它自己——那把它直接部署到那台服务器上更直接,少一层链路,也少一个要维护的东西。公网映射解决的不是「我没有服务器」,而是「这个站必须留在这台机器上」。

它依赖本地的东西

素材库在 NAS 上、数据库在局域网另一台机器、要读一块插在本机的采集卡。把站挪上云,这些依赖跟不过去。

数据不能出内网

客户资料、内部系统、还没脱敏的测试数据。站可以给外面看,数据得留在自己机器上。

你就是在本机改

改一行代码就要在外部环境看一眼效果,微信的接口回调、支付网关的异步通知,都要打到你正在改的这份代码上——部署一次看一次,节奏是断的。

顺带说清代价这一边:自建那条路要你买一台有公网 IP 的服务器、在上面装服务端、自己申请证书、自己写续期任务,而且服务器本身还要打补丁、要付月费。托管式映射的前置条件只有一条——一台能上网的机器,装个客户端就完了,证书那部分是自动的。省掉的不是技术难度,是一份长期运维。

站开出去了,就会有人来敲门

对外的站,比内部服务更需要收一收

一个公开的网站本来就是给人看的,所以这里要收的不是访问本身,而是后台与流量。

后台入口单独收窄

WordPress 的 wp-admin、宝塔面板、Gitea 的管理页——这类入口没必要对全网开。把它拆成单独一条映射,在访问规则里开 IP 限制、选「白名单(仅允许)」,只放行你自己的出口 IP。

动作:给后台那条映射加访问规则

流量是会被看光的

公开的站意味着流量不由你控制:被搜索引擎抓、被人下载大文件、被扫描器反复敲,都算进月流量里。客户端首页就有「本月流量」这个计数,别等超了才看。

动作:上线前按月流量算一遍

客户端访问规则的 IP 限制页,白名单模式下放行一条办公网出口 IP
白名单模式:清单里的放行,其余一律拒绝

如果你的出口 IP 是会变的(家宽拨号、在外面换网络),IP 白名单反而会把自己关在门外。这种情况用同一页里的「访问口令」更实用——多一道口令,不必跟着 IP 跑。两项可以同时开,完整清单见安全指南;开出去的如果是远程桌面而不是网站,加固口径不一样,见 RDP 暴露公网安全吗

诚实地说

什么时候别选它

这几种情况,换个做法更省心。

  • 正经的对外生产站点 —— 该买云服务器或托管平台。公网映射的可用性取决于你家那台机器和那条宽带,机器一关站就没了。
  • 流量吃得很凶(图床、网盘、视频站)—— 先按套餐月流量算一遍,多半不划算。
  • 只是想让同事看一眼本地改的效果 —— 建一条用系统分配域名的映射就好,别急着上自有域名那三关。
  • 要开的不是网页 —— 数据库、远程桌面、SSH 走的是 TCP 映射,这一页讲的域名与证书对它们都不适用。

把本地服务创建为公网映射

免费版包含 1 条映射、1 Mbps 和 1 GB/月流量

免费开始
在线客服在线客服