内网穿透服务器怎么选?配置、带宽、流量和公网 IP 怎么挑
准备照着 FRP 或 EasyTier 教程搭一套远程访问,打开服务器购买页,往往先看到几核、几 G,再看到 5M、10M、100M 带宽。有些套餐还有月流量限制,有些便宜很多,却写着 NAT 型。
如果用途是出门访问家里的 NAS,这几项该怎么取舍?只是偶尔连一下远程桌面,和每天传几十 GB 文件,需要买同一种机器吗?
先把自己要传什么、数据从哪里经过弄清楚,再选套餐,会容易得多。下面用一次实际 FRP 转发测试,把几个容易混淆的参数拆开说。
[post cid="29" /]
先确认:你的数据会不会经过云服务器
常见的普通 FRP TCP 转发,是从外面访问云服务器上的端口,再由它转到家里的设备。例如手机访问 NAS,文件会先到云服务器,再传给手机。这里的中间这一跳,要用到云服务器的带宽。
EasyTier 等组网工具还会尝试让两台设备直接连接。直连成功时,大文件可以直接在两端之间传输;连不成时,才可能通过中转节点。不能只看软件已经“连接成功”,就认定文件正在走哪条路。
FRP 也有 XTCP 等打洞模式,不能把它的所有功能都归成普通中转。这里先比较最容易理解的两种情况:
当前连接方式购买前先看什么两端已经直连家里宽带的上传速度、访问端网络,以及两端之间的连接质量文件经过云服务器中转两端到服务器的网络、服务器带宽和流量额度还不知道走哪条路先查客户端里的连接方式,或查看传文件时中转节点的流量变化如果已经在使用 EasyTier,先看设备连接信息及实际路由,区分直连和中继。具体界面按安装版本查看。测速度时也留意云服务器的出站流量;文件传输时流量明显增长,能帮助判断它是否承担了中转,但还要排除其他业务的流量。
还没部署的,可以先收藏对应的EasyTier 教程或FRP 教程。先确定自己需要公网入口、组网,还是固定中转,再继续选机器。
5M 带宽,为什么下载只有几百 KB/s
服务器套餐上的 5M、10M,一般说的是 Mbps;下载工具里的 MB/s 则是另一个单位。8 bit 等于 1 byte,先除以 8,就能估算不考虑额外开销时的传输速度。
套餐带宽换算后的理论速度传完一个 1 GB 文件的理论时间5 Mbps0.625 MB/s约 26 分 40 秒10 Mbps1.25 MB/s约 13 分 20 秒100 Mbps12.5 MB/s约 1 分 20 秒表中的 GB、MB 按十进制计算,即 1 GB = 1000 MB。实际还会有协议开销,也可能受到家里上传速度、丢包和线路拥堵影响。
[scode type="lblue"]
这样看,5 Mbps 的中转服务器下载只有五六百 KB/s,本身不算离谱。加 CPU 和内存,也不会把这个 5 Mbps 的出口变成 100 Mbps。
[/scode]
用同一个文件传一遍
这次在 Docker Desktop 的 Linux 容器里运行 FRP 0.68.0。家里的网页服务和访问端放在不同 Docker 网络,访问端通过 frps、frpc 取文件。frpc 开启 TLS,不启用代理压缩。
用 Linux 的 tc 分别把 FRP 服务端出口限制为 5、10、100 Mbps,每档下载同一个 32 MiB 文件,也就是 33,554,432 字节。结果如下:
三次实际下载的记录保存为文本,在浏览器中打开。
三次接收文件的 SHA-256 都与原文件一致。这是本机受控限速实验,用来观察带宽对转发速度的影响;没有测某家云厂商的真实公网线路,也没有模拟家庭宽带的 NAT 打洞。
测试后的 FRP 管理页:一个客户端、一个 TCP 代理。累计流量还包含后面的连续下载测试。
如果家里上传只有 20 Mbps,云服务器买到 100 Mbps,也不会让家里上传的文件自动达到 100 Mbps。反过来,家里上传够快,但中转出口只有 5 Mbps,大文件传输也会受到这个出口限制。
两个人同时下载时,还要共享可用出口。前面的单文件结果,不能直接当成每个人都能拿到的速度。
CPU 和内存到底买多少
以前几篇教程给过 1 核、1 G 的起步配置,但它不是任何负载都适用的标准答案。这次也顺手看了 FRP 本身的占用。
给 frps 容器设置最多 1 CPU、1 GiB 内存,在 100 Mbps 限速下连续下载,取了六组 docker stats 采样:服务端 CPU 显示 1.31%~4.18%,内存显示 32.5~45.09 MiB。
六组 docker stats 采样记录,同样保存为文本后截图。
宿主机使用 Intel Core Ultra 7 270K Plus。这是这台电脑上、一个代理连续传文件时的采样,容器里没有数据库、网站或其他程序,不能把它换算成“任意 1 核云服务器都能跑满 100M”。不过,对这个小例子来说,FRP 进程的内存占用确实不大。
实际选购时,我会这样区分:
- 只跑穿透服务,少量设备使用:可以从支持短期试用或按月购买的小配置开始,先测实际用途。
- 同机还装网站、数据库、面板等程序:把这些程序的需求一起算进去,不能只按 FRP 的占用购买。
- 连接很多,或启用额外压缩、加密处理:在真实并发下看占用,再决定是否升级。
- 用云服务器直接运行游戏服务端:按游戏本身选 CPU 和内存。只转发游戏流量,与实际运行游戏世界,是两种负载。
已经有服务器的,可以先看一眼现状。Docker 部署时执行:
docker stats --no-stream它会列出各容器的 CPU、内存和网络用量。注意分清 frps 和其他容器。
直接安装在 Linux 上的,可以用 top 看对应进程,再用下面这条看整机内存:
free -h重点看 available,也就是当前大致还能提供给程序使用的内存。升级前最好在自己实际传文件、远程桌面或多人同时连接的时候观察,空闲时占用很低,不能说明忙起来也够用。
NAT 型服务器便宜,能不能用
先看产品是否提供你需要的端口映射。NAT 型服务器通常通过共享的公网地址加指定外部端口访问,外部端口与系统里监听的端口可以不同。
假设某个产品允许创建下面两条 TCP 映射:
公网入口服务器内部端口用途公网IP:410007000frpc 连接 frps公网IP:4208018080外部访问转发出来的网页这只是说明对应关系的例子,端口要按自己产品实际分配的填写。
在这种设置下,家里 frpc 连接的是外部 41000,所以 serverPort 填 41000;代理配置的 remotePort 则是 frps 在服务器内部监听的 18080。外面访问网页时,用的是公网的 42080。
[scode type="yellow"]
三个数字的用途不同,不能因为最终要访问 42080,就把 frpc 的 remotePort 也全部改成 42080。
[/scode]
下单前至少确认:
- 能映射几个端口,能不能修改内部目标端口。
- 需要的 TCP、UDP 是否都支持;两种协议不能互相代替。
- 端口范围是否满足软件要求,是否允许所需的公网入口。
- 共享带宽、流量额度和超额后的处理方式。
普通 TCP 转发能用,不代表 UDP 打洞、所有游戏协议、80/443 网站入口也都能照搬。需要固定公网端口、较多服务入口,又希望少处理一层映射时,独立公网 IPv4 通常更省配置上的麻烦。
如果已经有可用的 IPv6,还可以先确认访问端是否同样具备 IPv6,以及设备防火墙和服务认证是否合适。两端条件满足时,有些远程访问需求可以直接解决,不必为了“没有公网 IPv4”立刻购买中转。
带宽和月流量,要分开算
带宽影响当前能传多快;月流量额度则关系到这个月能传多少。100 Mbps 的入口,如果每月只包含很少的流量,也不适合长时间传大文件。
先做一个简单的用途估算:
每天下载 10 GB × 30 天 = 每月 300 GB 文件内容或者按持续速率估算:
10 Mbps ÷ 8 × 3600 秒 = 每小时约 4.5 GB
每天持续传 1 小时 × 30 天 = 每月约 135 GB这些都只是文件内容的估算,正式使用还要留出协议和其他业务的用量。
中转时,一个文件既会流入服务器,也会从服务器流出。但这不等于每个套餐都要按两倍收费。比如腾讯云 CVM 的公网计费说明区分入网和出网,入网流量不收费;具体到轻量服务器、NAT 产品或其他厂商,仍要看对应产品的套餐条款。
购买页没有写清楚,就查计费说明或询问客服:
- 流量额度扣出站、入站,还是两者相加?
- 用完以后是停网、限速,还是继续扣费?
- 流量什么时候重置,多余部分能不能结转?
也不要把 FRP 仪表盘里的流量,直接当成云厂商的计费流量。前者用于观察代理业务,后者以厂商的网络计量和账单规则为准。
地区和线路,怎样在购买前判断
先选离自己主要访问地点合适的地区,再测实际连接。只看“国内”“香港”或某个线路名称,还不能知道自己家宽带用起来如何。
如果商家提供测试地址,可以在 Windows PowerShell 里执行:
ping -n 30 测试地址
Test-NetConnection 测试地址 -Port 测试端口地址和端口要使用商家提供的值。第一条粗看延迟和丢包,第二条测试 TCP 端口是否能建立连接,不能用它来证明 UDP 已经可用。
有的测试地址不响应 ping,所以 ping 不通也要结合 TCP 测试和厂商说明判断。
真正用于远程桌面或游戏时,再在常用时段试一次实际程序。晚上使用,就在晚上测。下载速度、操作延迟和画面是否卡顿,最好分别看,不能靠一次测速把这些问题都判断完。
云服务器在中间转发时,两端到它的网络都要考虑。家里到服务器很顺,但出门使用的手机网络到服务器不稳定,实际体验仍然可能不好。
按自己的用途缩小选择范围
用途先确认什么购买或升级时主要看什么偶尔访问家中网页、SSH是否需要固定公网入口所需端口、稳定性和低负载下的使用成本NAS 大文件、看高码率视频是否直连,家里上传够不够中转带宽、月流量和两段网络远程桌面办公常用时段是否卡顿延迟、抖动、丢包,以及画质设置下的带宽朋友联机,服务端放家里游戏协议与所需端口UDP 支持、网络质量和并发时的实际用量游戏服务端直接放云上游戏及整合包的运行要求游戏需要的 CPU、内存、存储与网络选套餐时,可以把自己的需求先写成一句话。例如:“两个人偶尔远程办公,能接受安装客户端”;或者“每天从 NAS 下载约 10 GB 文件,要求有固定公网入口”。有了这个前提,再看套餐表,就知道哪些便宜配置可以试,哪些参数不能省。
需要查具体产品时,可以对照博客现有的VPS/云服务器推荐,按本篇确定的带宽、端口和流量要求筛选;购买操作可以参考雨云购买与配置教程。价格、活动和续费条件以当时购买页为准,初次尝试尽量选能先测试的方案。
服务器准备好以后,再按对应的 FRP、EasyTier、NPS或 ZeroTier 教程完成部署。
想复现本文的实验
[button color="info" url="https://www.xiaotiewinner.com/usr/uploads/2026/10/3290348783.zip"]下载实验配置与原始记录(ZIP,约 7 KB)[/button]
配套包包含 Compose、FRP 配置、原始 JSON 记录和完整操作说明。没有打包 frp 二进制与大文件,README 会从官方发布页下载固定的 0.68.0 版,再生成自己的测试文件。准备命令适用于 Linux/WSL 的 Shell,演示二进制为 Linux amd64。
[collapse status="false" title="复现命令与清理方法(点击展开)"]
核心测量命令是:
docker compose exec -T relay tc qdisc replace dev eth0 root tbf rate 5mbit burst 64kb latency 400ms
docker compose exec -T visitor curl -f --max-time 180 -sS -o /tmp/received.bin -w 'bytes=%{size_download} seconds=%{time_total} bytes_per_second=%{speed_download}\n' http://relay:18080/payload.bin这两条在配套实验目录、容器启动后执行。第一条只调整演示 relay 容器的出口,第二条通过 FRP 下载文件。改成 10mbit、100mbit 可以继续比较。文件接收完,再比较两端的校验值。
结束时在同一目录执行 docker compose down,移除本项目容器和网络。自己的配置、生成的测试文件和记录仍留在目录里。
[/collapse]
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »