内网穿透

frp 内网穿透自建:459 元的机器,第四条映射才划算

自己搭 frp 做内网穿透,一台腾讯云轻量 459 元一年。但那 3 Mbps 是整机共享,不是每条映射各有——机器、带宽、备案与安全责任逐笔算完,也写清什么时候自建更划算。

蜻蜓映射团队
阅读 12 分钟
frp 内网穿透自建:459 元的机器,第四条映射才划算

我们自己的一台机器中过勒索病毒。

那台机器开了 3389 端口做远程办公。密码八位,数字加小写字母。不到一天,所有文件变成密文,桌面上多了一封英文信,要我们付比特币才给解密。有一部分资料同步在坚果云上,救回来了;剩下的重装系统。

从这件事上学到的不是「密码要设复杂一点」。是只要一个服务直接开在公网上、又没有东西拦住那些扫描器,密码强度只决定它多久被撞开,不决定会不会被撞开。八位混合密码买到的时间,是不到一天。

自己搭一套 frp 做内网穿透,你要做的恰好是同一件事:把一个端口开到公网上。

这篇写自建这条路要付的账——机器、带宽、域名、备案,还有那份顺手接管过来的安全责任。我们做的是内网穿透托管(蜻蜓映射),所以这笔账我们算得偏;每个数字的出处都会摆出来,你可以自己验。

搭起来其实不难:两个二进制,两边各写一份配置,跑起来,内网的服务就出去了。一个下午的事。

难的是这个下午之后。

面板口令你知道该改,打算以后再改;开机自启你知道该配,想着下次重启前配;域名备案你知道跑不掉,等真要用自己的域名了再说;版本升级——等它出问题了再说。这些「以后」不会消失,它们只是排在那里等着。

自建的账,大半在「以后」那一栏。

自建 frp,你往公网上开了几个口子

至少两类,性质不一样。

一类是 frps 自己的监听端口,frpc 从内网连上来靠它。另一类是每条映射对外的端口——映射一个 SSH,就得有一个公网端口指向它。这两类是设计如此,关掉就没得用了。

面板是第三个,它的默认值值得单独说:官方文档里 webServer.addr 默认是 127.0.0.1,只监听本机,公网打不开。要从外面看面板,你得主动改成 0.0.0.0。很多人改了,因为不改就看不到。改完之后,那是一个挂在公网上的登录框,认证方式是 HTTP BasicAuth——官方的配置项里,这块只有用户名、密码和可选的 HTTPS 三项。

但面板不是最大的那个靶子。你映射出去的服务本身才是。

我们那台中招的机器没有用 frp,是直接开的 3389。可就算当时用 frp 把 3389 映射出去,公网上的扫描器看到的还是同一个 RDP 登录框——frp 做的是中间那一段转发,它把服务送到公网,不改变服务本身被暴露的程度。八位混合密码撑不到一天这件事,跟中间隔没隔一层转发无关。

好消息是 frpc 那侧不用开任何端口,它是主动连出去的。自建这条路上省心的地方不多,这是其中一个。

自建内网穿透的第一笔钱,是那台公网机器

开源省的是软件授权费,不是服务器的钱。frp 本身不要钱,但它得跑在一台有公网 IP 的机器上,而那台机器要钱。

腾讯云轻量应用服务器最入门那档(2026 年 9 月查的价):2 核 2GB、40 GB SSD、3 Mbps 带宽、200 GB 月流量包,45 元一个月,产品页上直接标着 459 元一年(85 折年付)。

这个数不算高。所以「自己搭更便宜」听起来天经地义:一年不到五百块,配置文件里想写几条映射写几条,不像买服务那样按条数掏钱。

先别急着算这笔账。上面那行套餐里有一个数,它的含义和你以为的很可能不是同一回事——3 Mbps

那 3 Mbps 是整台机器的,不是每条映射的

套餐里那个 3 Mbps 是整台机器的出网上限,不是每条映射各有 3 Mbps——这是自建这条路上最容易算错的一个数。

轻量服务器套餐里的带宽,腾讯云官方文档写得很清楚:

轻量应用服务器实例所使用套餐中的带宽默认为公网出网带宽上限,即从轻量应用服务器流出的带宽。

整台机器的上限。你在那台机器上跑一条映射,它能吃满 3 Mbps;跑四条,四条一起分这 3 Mbps,平均每条 0.75 Mbps;跑十条,每条 0.3 Mbps。

而托管这边的口径是每条映射各自 3 Mbps——定价页上这一项写的是「3 Mbps / 条」,对比表里那一行的名字就叫「单条映射带宽」——条数不影响单条速度,月流量额度是「不限」。

同一份文档里还有一句,第一眼读起来像好消息:

用户购买套餐的带宽小于 10Mbps 时,腾讯云会为实例分配 10Mbps 公网入方向带宽。

买 3 Mbps 送 10 Mbps 入网,上传看着比下载宽裕三倍多。但在中转这条路上,这 10 Mbps 你一点都用不到——因为数据不管往哪个方向走,都要从那台服务器「流出」一次:

  • 外面的人下载你内网的文件:frpc 把数据送给 frps 走的是入网,frps 再送给访客走的是出网
  • 外面的人往你内网传东西:访客送给 frps 走入网,frps 转给 frpc 走的还是出网

两条路径的最后一跳都撞在那 3 Mbps 上。入网那 10 Mbps 只是让数据更快地排到这个瓶颈前面。

所以下次看到两个「3 Mbps」并排摆着,先问一句:这是每条的,还是一共的。

临界点在第四条,但第四条不是你想要的那个

自建那边价格是固定的:一台 459 元的机器,你在上面开一条还是十条,机器还是 459 元。托管这边按条数走——专业版含 2 条,往上每条 120 元(当前价格见定价页)。

两条线交在哪,算得很干净:

要几条映射自建(一台轻量)托管(专业版加购)
1–2 条459 元300 元
3 条459 元420 元
4 条459 元540 元
5 条459 元660 元
6 条459 元780 元

临界点是第四条。三条以内托管一直更便宜;从第四条起自建才在价格上翻过来,一年省 81 块。

但那 81 块买到的是什么,值得掰开看:自建的四条共享那 3 Mbps,各分 0.75;托管的四条各有 3 Mbps。同样的钱,带宽差四倍。

要让自建的四条也各跑 3 Mbps,机器得有 12 Mbps 出网。产品页上 12 Mbps 是这一档:4 核 8GB、180 GB SSD、12 Mbps、2000 GB 月流量,245 元一个月,2499 元一年

托管那边四条各 3 Mbps,是 540 元。

那条带宽曲线值得看一眼有多陡(同一张产品页,2026 年 9 月查):3 Mbps 45 元、4 Mbps 50 元、7 Mbps 100 元、12 Mbps 245 元。带宽翻两番,价格翻五倍多。买机器省下的钱,全在带宽这一栏还回去了。

所以「映射越多自建越划算」这句话是有条件的:只在你默认这些映射不会同时跑满的时候成立。

备案跟你自己搭还是买服务没关系

按目前备案系统的实际要求,它只跟三件事有关:机器在不在国内、用不用你自己的域名、走不走网页服务。三条同时成立才要备案,少一条就不用。这是实践口径,不是某一条法规的原文——真要动手前,以你的域名服务商和当地通信管理局的答复为准。

自己搭一套 frp,用国内的机器、绑自己的域名做网站——三条全中。换成托管也一样,只要绑的是自有域名、用的是国内节点。反过来,两条路也都有不触发这一关的走法:用服务端分配的域名,或者只做 SSH、远程桌面这类非网页的 TCP 映射。

那「自己搭能免备案」这个印象是从哪来的?多半来自两处。一处是免费的 frp 托管给你一个它自己的域名,那个域名是备的案——你用的是别人的备案,不是不用备案。另一处是把机器放到境外——备案管的是境内服务器,机器不在境内,这一关按实践是绕开了。代价是两跳都要出境的延迟,以及一个你得自己判断的合规问题。

我们这边把它做成了一个必勾项:绑自有域名时要勾「我承诺该域名已完成 ICP 备案」,旁边写明未备案域名将被自动拦截、仅在选择国内节点时适用。

蜻蜓映射客户端绑定自有域名时,必须勾选「我承诺该域名已完成 ICP 备案」,并提示未备案域名在国内节点会被自动拦截

备案本身在你的域名服务商那边办,官方口径见工信部 ICP 备案管理系统;具体要过哪几关、顺序怎么排,网站上线那一篇写了,这里不重复。

你手上那份配置,可能已经过期了

frp 在 v0.52.0 换过一次配置格式,而且是不兼容的换法。官方 release notes 写得很直白:

We now support TOML, YAML, and JSON for configuration. Please note that INI is deprecated and will be removed in future releases. New features will only be available in TOML, YAML, or JSON.

同一版还有一条破坏性变更:TOML / YAML / JSON 不再支持 range ports 那种一行写一段端口的映射。

v0.52.0 是 2023 年 10 月的事;到 2026 年 9 月,最新版是 v0.71.0。中间隔着的不只是版本号——一套按旧格式写的 frp,想升到今天的版本,配置得重写。

判断你手上那份是哪个时代的,看两个特征:文件名是 .ini 还是 .toml;字段是 bind_port 这样的下划线,还是 bindPort 这样的驼峰。前者是 v0.52.0 之前的写法——它还能跑,但新特性不会再加到它上面,而且两种写法混在同一份配置里是跑不起来的。

托管这边,版本不是你要操心的东西。客户端自己更新,服务端在我们手里;你在工具箱里看得到后台服务和本地客户端的运行状态与版本号,但你不需要为它们做什么。

自建的版本升级不是「要不要升」的问题,是「什么时候不得不升」。而不得不升的那天,你要处理的是一份按旧格式写的配置,和一个不再认它的新版本。

出了问题,你手上有什么

一条映射打不开的时候,真正的难处不是修,是判断断在哪一层

这条链路至少有四段:外面的人能不能连到公网端口、服务端有没有在转发、内网的客户端在不在线、本地那个服务本身起没起。自建的时候你手上有两份日志——frps 一份、frpc 一份——而它们各自只知道自己那一段。frps 说客户端连上了,frpc 说我连上了,访客那边还是打不开,这种情况下两份日志都没说谎,它们只是都不知道第四段发生了什么。

于是排查变成一件挺费时间的事:登服务器、翻日志、改配置、重启、换台设备再试一次。这个循环每出一次问题走一遍。

托管这边把这一段做成了工具:客户端诊断逐项列出后台服务、本地客户端、连接服务器的状态,网络诊断和 Ping 各管一段,运行日志在同一个面板里翻。

蜻蜓映射客户端的诊断页逐项列出后台服务、本地客户端与服务器连接状态,底部可一键导出诊断包或联系客服

但真正的差别不在那几个诊断按钮上,在这张图的最下面一行:导出诊断包,联系客服。

自建那侧没有这一栏。不是说自建就查不出来——你多半查得出来,只是那个晚上得你自己过。

那两条教训,现在写在产品里

我们那台中了勒索病毒的机器,事后反省出来的原因只有两条:密码太简单;服务暴露在公网上,然后任由扫描器爆破而不做任何阻止。

第一条是我们自己的疏忽。第二条不是——没有任何东西在替你拦那些扫描器,这件事本身就是缺口,跟密码设多复杂没关系。

所以客户端里现在有两样东西。一样是爆破防护,默认就在跑:撞库的来源会被挡下来,防护日志里能看到发生过什么,确认可信的来源可以加进放行名单。

蜻蜓映射客户端的爆破防护页,默认随映射一起运行,可查看防护日志并把可信来源加入放行名单

另一样是访问规则:按 IP 限制、按时段限制、给映射加一层访问口令,三类可以叠加。

这两样对所有用户免费,不分套餐。它们不是「想要更安全」的加购项,是把一个端口开到公网之前就该有的东西。我们自己少了它,赔的是一整台机器的资料。

自己搭 frp 的话,这一层得你自己搭:改口令、限制来源、装一个防爆破的东西——然后记得它也要维护。又一件排进「以后」的事。

什么时候自建确实是对的

有四种情况,自己搭确实比买托管划算。不写出来这篇就成了软文。

手上已经有一台闲着的公网机器,这条最直接:那台机器的钱(入门档一年 459 元)你已经花过了,frp 的边际成本是零。这种情况下自建几乎总是划算的,剩下的只是你愿不愿意花时间。

要 P2P 直连。frp 有 xtcp / stcp,能让两端直接打洞、流量不经过中转服务器。我们没有这个能力,所有流量都走中转。所以传大文件、吃带宽、又能接受打洞不一定成功的场景,自建在结构上就更优——这跟价格没关系,是能力上的差别。

映射条数多,而且不在意每条能跑多快。第四条起自建在价格上翻过来——459 元对 540 元,一年省 81 块。如果这些映射是零星使用、不会同时跑满,共享 3 Mbps 完全够用,那 81 块钱就是真省下来的。

你愿意也有能力扛运维。这不是一句客气话——它意味着升级你来做、出问题你来查、防护你来配,而且这些事会在你没准备好的时候发生。有人享受这个过程,那是真的享受,不是将就。

反过来,这几种情况自建大概率会亏:只有一两条映射(托管一年便宜一百多);服务要一直在线但没人值守;要绑自有域名做网站(备案、解析、证书是同一笔工序,自己搭一样躲不掉);以及出问题那天你身边没有可问的人。

判断其实可以收成三个问题:这些映射会不会同时用、会不会一直用、出事那天谁扛。

三个答案如果是「不会、不会、我自己扛」,自建是划算的,而且你会拿到配置全在自己手里的那种自由——这是买服务换不来的。

有一个答案是反的,那笔账就要重算。重算的时候别忘了把「以后」那一栏也填上:口令、自启、备案、升级、还有出问题的那个晚上。真正贵的从来不是那台机器。

如果重算下来决定不自建,怎么挑一家是另一篇的事——那篇给的是一套你能拿去验证任何一家的口径,包括验证我们。

标签:内网穿透

蜻蜓映射团队

蜻蜓映射技术团队,专注于内网穿透与远程访问的实践分享。

两分钟,让你的内网走向世界

完成实名认证,安装客户端,创建第一条公网映射。

在线客服在线客服