1. 先搞清楚“永久20M带宽”到底意味着什么看到“永久20M带宽远程访问群晖”这个标题很多人的第一反应是找到了一个免费、高速、稳定的内网穿透终极方案。但作为折腾过各种穿透工具的老手我得先泼点冷水“永久”和“20M带宽”这两个词在公网穿透领域通常需要打上引号。这里的“永久”大概率不是指服务商提供永久免费的午餐而是指通过自建服务端比如在云服务器上部署frp服务端获得一个理论上可以长期稳定使用的通道。只要你的云服务器不欠费这个通道就一直存在。而“20M带宽”则高度依赖于你购买的云服务器出口带宽。如果你买的服务器带宽是1Mbps那你的穿透速度上限就是1Mbps不可能凭空变成20Mbps。所以这篇文章的核心价值不是教你找一个“一键免费提速”的魔法而是手把手带你搭建一个完全由自己掌控的内网穿透体系。它的优势在于自主可控服务端在自己手里不用担心第三方服务商跑路、限速或突然收费。配置灵活端口、域名、协议TCP/UDP/HTTP/HTTPS完全自定义。成本透明主要成本就是一台云服务器的月租费带宽大小丰俭由人。如果你手头有一台群晖NAS并且希望获得一个比第三方免费穿透工具更稳定、速度上限更高的远程访问方案那么自建frp是值得投入时间学习的。下面我就从环境准备到实战配置拆解一遍整个流程。2. 环境准备云服务器、域名与本地NAS在开始敲命令之前你需要准备好三样东西。缺一不可这是整个方案能跑起来的基础。2.1 一台具有公网IP的云服务器服务端这是整个架构的核心。你需要购买一台云服务器国内可选阿里云、腾讯云等国外可选Vultr、Linode等。选购时重点关注以下几点地域尽量选择离你主要使用地比如你家网络延迟较低的区域。配置对于frp服务端CPU和内存要求极低1核1G足够。核心是带宽。带宽这直接决定了你的穿透速度上限。标题里的“20M”指的就是你购买服务器时选择的公网带宽例如1Mbps、5Mbps或20Mbps。请根据你的预算和需求选择。对于轻度文件访问5Mbps也够用如果想流畅播放NAS里的高清视频建议至少10Mbps起步。系统推荐安装最新的稳定版Ubuntu Server或CentOS Stream本文以Ubuntu为例。2.2 一个域名非必须但强烈推荐没有域名也能用但只能通过“服务器IP:端口”的方式访问不便于记忆且部分应用如WebDAV over HTTPS支持不好。有一个域名会方便很多。购买域名在阿里云、腾讯云等平台购买一个便宜的域名比如.xyz后缀的一年也就几十块钱。解析域名将域名解析到你的云服务器公网IP。例如将nas.yourdomain.com的A记录指向你的服务器IP。2.3 你的群晖NAS客户端确保你的群晖NAS已经安装好并且能在局域网内正常访问。我们将在这台NAS上运行frp的客户端程序。3. 在云服务器上部署frp服务端服务端部署是一次性的工作完成之后基本不用再动。我们通过SSH连接到你的云服务器进行操作。3.1 下载并安装frps首先通过SSH登录你的云服务器。然后去frp的GitHub发布页查看最新版本。假设最新版本是v0.52.3。# 切换到临时目录 cd /tmp # 下载frp压缩包注意根据你的服务器CPU架构选择x86_64是amd64 wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz # 解压 tar -zxvf frp_0.52.3_linux_amd64.tar.gz # 进入解压后的目录 cd frp_0.52.3_linux_amd64 # 服务端程序是frps客户端是frpc。我们把服务端文件复制到系统目录 sudo cp frps /usr/local/bin/ # 创建配置文件目录 sudo mkdir -p /etc/frp # 复制服务端配置文件样例 sudo cp frps.toml /etc/frp/注意frp从v0.51.0版本开始配置文件格式从.ini改为了.toml。如果你在网上找到的教程还在用.ini那可能是旧版本请以官方最新文档为准。3.2 配置frps服务端现在来编辑服务端配置文件/etc/frp/frps.toml。这是最关键的一步。sudo nano /etc/frp/frps.toml一个最基础、安全的配置如下# frps.toml bindPort 7000 auth.method “token” auth.token “your_strong_password_here” # 请务必修改成一个强密码 # 如果你有域名并想通过HTTP/HTTPS访问NAS的Web界面需要配置这个 webServer.addr “0.0.0.0” webServer.port 7500 webServer.user “admin” webServer.password “another_strong_password” # 管理界面密码也要改 # 虚拟主机配置用于通过域名访问NAS的DSM页面如 nas.yourdomain.com vhostHTTPPort 8080 vhostHTTPSPort 8443参数解释bindPortfrp服务端监听的端口客户端通过这个端口连接服务端。默认7000可以不改但建议在云服务器防火墙放行此端口。auth.token客户端连接时必须提供的令牌这是最重要的安全措施防止他人随意连接你的服务器。必须修改webServerfrp服务端自带一个监控面板通过http://你的服务器IP:7500访问可以查看连接状态。用户名密码也要改。vhostHTTPPort和vhostHTTPSPort当你想用域名如nas.yourdomain.com直接访问群晖DSM时需要用到这两个端口。它们负责接收外部的HTTP/HTTPS请求并转发给内网的NAS。3.3 设置系统服务并启动为了让frps在服务器重启后能自动运行我们把它配置成systemd服务。创建服务文件sudo nano /etc/systemd/system/frps.service写入以下内容[Unit] DescriptionFrp Server Service Afternetwork.target [Service] Typesimple Usernobody Restarton-failure RestartSec5s ExecStart/usr/local/bin/frps -c /etc/frp/frps.toml [Install] WantedBymulti-user.target然后启动并设置开机自启# 重载systemd配置 sudo systemctl daemon-reload # 启动frps服务 sudo systemctl start frps # 设置开机自启 sudo systemctl enable frps # 查看服务状态确认运行正常 sudo systemctl status frps如果状态显示active (running)说明服务端已经成功启动。别忘了去云服务器的防火墙/安全组规则里放行你配置中用到的端口如7000, 7500, 8080, 8443。4. 在群晖NAS上配置frp客户端服务端搭好了现在轮到客户端也就是你的群晖NAS。有两种主流方式通过Docker安装或直接使用第三方社区套件。我更推荐Docker方式因为版本更新更快控制更灵活。4.1 方案一通过Docker部署推荐打开群晖的“套件中心”搜索并安装“Docker”。打开Docker在“注册表”中搜索snowdreamtech/frpc下载最新版本镜像。在“映像”中找到下载好的frpc镜像双击启动它来创建容器。在创建容器的“高级设置”中存储空间添加一个文件夹映射。例如将NAS本地文件夹/docker/frpc映射到容器内的/etc/frp。这个文件夹用来存放客户端的配置文件。网络选择与宿主机NAS使用相同的网络通常是“host”模式这样最省事。创建容器并不要立即启动。先去NAS的File Station在你刚才映射的本地文件夹如/docker/frpc里创建一个名为frpc.toml的配置文件。现在来编写客户端的核心配置文件frpc.toml# frpc.toml serverAddr “你的云服务器公网IP” serverPort 7000 auth.method “token” auth.token “your_strong_password_here” # 必须和服务端配置的token一致 [[proxies]] name “dsm-https” type “https” localIP “192.168.1.100” # 你的群晖NAS在局域网内的IP地址 localPort 5001 # 群晖DSM默认的HTTPS端口 customDomains [“nas.yourdomain.com”] # 你的域名 [[proxies]] name “dsm-http” type “http” localIP “192.168.1.100” localPort 5000 # 群晖DSM默认的HTTP端口 customDomains [“nas.yourdomain.com”] [[proxies]] name “webdav-https” type “tcp” localIP “192.168.1.100” localPort 5006 # 群晖WebDAV服务的HTTPS端口 remotePort 5006 # 在服务器上暴露的端口可以改成其他未被占用的端口 # 你可以继续添加其他服务比如 # [[proxies]] # name “photo-station” # type “http” # localIP “192.168.1.100” # localPort 80 # customDomains [“photo.yourdomain.com”]配置要点serverAddr和serverPort必须指向你部署好的frp服务端。auth.token必须和服务端设置的完全一致。localIP一定要填你NAS的局域网固定IP建议在路由器里为NAS设置DHCP静态分配。对于DSM Web界面我们同时配置了https和http两种类型的代理指向不同的本地端口5001和5000。type “https”和type “http”用于子域名访问需要配置服务端的vhostHTTPPort。这意味着你可以用https://nas.yourdomain.com:8443来访问DSM。type “tcp”用于端口直连。比如WebDAV我们让服务端的5006端口直接转发到NAS的5006端口。外网访问时就用服务器IP:5006。保存好frpc.toml文件后回到Docker启动刚才创建的frpc容器。查看容器日志如果显示login to server success之类的字样说明连接成功。4.2 方案二使用第三方套件如“Frpc”在群晖的“套件中心” - “社群”里有时可以找到名为“Frpc”的第三方套件。安装后它通常会提供一个图形界面让你填写服务器地址、端口、token和代理规则。优点图形化对新手友好。缺点套件版本可能更新不及时配置灵活性不如Docker有时兼容性有问题。我个人更倾向于Docker方案虽然前期配置稍微复杂一点但一次配好后期维护和迁移都更方便。5. 域名解析与最终访问测试客户端配置好并成功连接后我们来进行最后的访问测试。5.1 配置域名解析如果使用域名登录你的域名控制台添加两条记录A记录主机记录填nas记录值填你的云服务器公网IP。这样nas.yourdomain.com就指向了服务器。可选CNAME记录如果你还想用photo.yourdomain.com访问Photo Station就再添加一条。5.2 测试访问根据你的配置有以下几种访问方式通过域名访问DSM推荐在浏览器输入https://nas.yourdomain.com:8443如果一切正常你会看到群晖DSM的登录界面。注意端口是8443这是服务端vhostHTTPSPort指定的端口。这种方式最优雅看起来就像直接访问一个网站。通过IP端口访问特定服务对于配置了type “tcp”的服务如WebDAV你可以使用你的服务器IP:远程端口来访问。例如在电脑上添加一个WebDAV网络位置服务器地址填你的服务器IP:5006。这种方式简单直接不需要域名。5.3 速度测试与验证现在来验证标题里提到的“带宽”。你自建frp的最终速度取决于两个瓶颈的最小值你的家庭宽带上行带宽通常较小比如30Mbps。你的云服务器公网出口带宽你购买的大小比如5Mbps或20Mbps。测试方法从外网比如用手机4G/5G网络通过frp连接你的NAS。在DSM的File Station里上传或下载一个几十兆的文件。观察传输速度。速度MB/s ≈ 带宽Mbps / 8。例如如果测速达到2.5MB/s左右那说明实际穿透带宽在20Mbps上下说明你的服务器带宽和家宽上行都达到了这个水平。6. 安全加固、排错与进阶配置基础功能跑通只是第一步要让这个通道安全、稳定地长期运行还需要做一些加固和优化。6.1 安全加固措施修改所有默认密码和令牌服务端的auth.token、webServer.password以及群晖DSM本身的密码都必须设置为强密码。限制访问IP可选但推荐在云服务器的安全组/防火墙中可以设置只允许你常用的公网IP比如公司IP访问frp的服务端口7000和管理端口7500。对于转发端口如8080, 8443, 5006可以允许所有IP访问因为你需要从任意地方连接。启用HTTPS尽量通过https://访问DSM。frp的type “https”代理本身不提供加密它只是转发流量。加密是由你NAS上的DSM提供的端口5001。确保你的DSM证书是有效的。定期更新关注frp的GitHub发布页定期更新服务端和客户端的版本修复潜在安全漏洞。6.2 常见问题排查当连接失败或访问不了时按这个顺序排查检查客户端日志在Docker的frpc容器日志里找错误信息。最常见的错误是token mismatch令牌不匹配或connection refused连接被拒绝。检查服务端状态访问http://你的服务器IP:7500用设置的管理员密码登录查看是否有客户端成功连接。如果这里都看不到客户端说明根本就没连上。检查端口连通性在本地电脑用telnet 你的服务器IP 7000命令测试是否能连通frp服务端端口。如果连不通肯定是云服务器的防火墙/安全组没放行。检查域名解析在本地电脑ping nas.yourdomain.com看解析出的IP是不是你的服务器IP。检查NAS本地服务确保在局域网内直接用https://NAS内网IP:5001可以正常访问DSM。如果内网都访问不了问题出在NAS本身。检查代理配置确认frpc.toml里的localIP和localPort是否正确无误。6.3 进阶配置建议使用自定义域名和HTTPS证书如果你有自己的域名可以申请免费的Let‘s Encrypt证书并在frp服务端配置中启用tls选项让frp服务端和客户端之间的通信也加密。这需要更复杂的配置但对安全性要求高的场景有必要。负载均衡与高可用对于生产环境可以在多台云服务器部署多个frp服务端并在客户端配置多个serverAddr实现负载均衡和故障转移。细化代理规则除了DSM你还可以把NAS上的其他服务一一映射出去比如Photo Station / Moments: 映射80/443端口。Audio Station / Video Station: 映射相应的流媒体端口。BitTorrent下载客户端映射监听端口。Home Assistant / 其他自建服务映射其Web端口。每增加一个服务就在客户端的[[proxies]]下新增一段配置即可。折腾完这一套你得到的不仅仅是一个远程访问工具而是一个完全受控的网络基础设施。它的稳定性上限取决于你选择的云服务器质量和你的家庭网络环境。对于绝大多数个人和小团队用户来说自建frp在成本、灵活性和可控性上确实比依赖不确定的第三方免费穿透服务要靠谱得多。