
家里 NAS 上的照片、软路由的管理页面、局域网里跑着的小服务出门在外想访问一下经常抓瞎。运营商不给公网 IP路由器端口转发做不了TeamViewer 之类的工具又慢又限制多。折腾了一圈最后留在手里的方案是 FRP一台有公网 IP 的云服务器当中转家里的机器主动连出去流量经服务器转发进来。配置一次之后基本不用管我用了大半年没出过岔子。这篇把完整的搭建过程写下来包括服务端、客户端、HTTPS 访问和 systemd 托管照抄命令就能跑起来。一、准备工作FRP 分两端服务端frps跑在云服务器上客户端frpc跑在家里的设备上。云服务器只需要一台低配机器因为流量转发对 CPU 要求很低带宽够用就行。用途建议配置说明云服务器frps1 核 1G / 3M 带宽纯转发带宽决定实际速度家里设备frpc任意NAS、软路由、旧电脑都行我自己用的是雨云rainyun-com的 1 核 1G 入门机月付十几块跑 frps 半年多很稳注册填码2026off可领5折。系统选 Ubuntu 22.04 LTS下面所有命令都基于这个系统。先拿到一台服务器的公网 IP假设是 1.2.3.4后文都用它举例记得替换成自己的。二、部署服务端 frps去 GitHub 搜 fatedier/frp在 Releases 页面找到最新版本的 linux_amd64 压缩包文件名形如 frp_0.61.0_linux_amd64.tar.gz。云服务器访问 GitHub 经常不通稳妥的做法是下载到自己电脑上再 scp 传上去# 在自己电脑上执行把包传到服务器scpfrp_0.61.0_linux_amd64.tar.gz root1.2.3.4:/opt/# 然后登录服务器解压cd/opttar-zxvffrp_0.61.0_linux_amd64.tar.gzmvfrp_0.61.0_linux_amd64 frpcdfrp新版 frp 用 toml 格式配置。编辑服务端配置文件nanofrps.toml写入以下内容bindPort 7000 auth.method token auth.token 换成一串足够长的随机密码 vhostHTTPPort 8080 vhostHTTPSPort 8443 webServer.addr 0.0.0.0 webServer.port 7500 webServer.user admin webServer.password 面板密码也换掉几个关键点bindPort是客户端连接的端口默认 7000auth.token必须改成长随机串这是唯一的认证凭据webServer是自带的仪表盘能看到各隧道状态。放行防火墙端口sudoufw allow7000/tcpsudoufw allow7500/tcpsudoufw allow8080/tcpsudoufw allow8443/tcp三、配置客户端 frpc家里的设备同样下载对应架构的 frp 包x86 机器用 linux_amd64树莓派用 linux_arm64编辑frpc.tomlserverAddr 1.2.3.4 serverPort 7000 auth.method token auth.token 和服务端一致的随机密码 [[proxies]] name nas-web type tcp localIP 127.0.0.1 localPort 5000 remotePort 6000 [[proxies]] name router-ssh type tcp localIP 192.168.1.1 localPort 22 remotePort 6022每个[[proxies]]块是一条隧道。上面的例子把 NAS 的管理页本地 5000 端口映射到服务器的 6000 端口把路由器的 SSH 映射到 6022。想加新服务照着格式加一块就行记得同时在服务器防火墙放行对应的 remotePort。四、用 systemd 托管开机自启手动跑进程不靠谱用 systemd 管起来。服务端创建/etc/systemd/system/frps.service[Unit] Descriptionfrp server Afternetwork.target [Service] Typesimple ExecStart/opt/frp/frps -c /opt/frp/frps.toml Restartalways RestartSec5 [Install] WantedBymulti-user.target启用并启动sudosystemctl daemon-reloadsudosystemctlenable--nowfrpssudosystemctl status frps客户端同理把文件名和可执行文件换成 frpc、frpc.toml。之后服务器重启、家里设备断电恢复隧道都会自动重连不需要人工干预。五、用域名访问 Web 服务直接 IP 加端口能用但给 Web 服务绑个域名体验好很多。在域名解析里加一条泛解析*.frp.你的域名指向服务器 IP然后服务端配置追加一行subDomainHost frp.你的域名客户端的 Web 隧道改成 http 类型[[proxies]] name nas-web type http localIP 127.0.0.1 localPort 5000 subdomain nas之后访问nas.frp.你的域名:8080就能打开 NAS 管理页。如果嫌带端口麻烦前面再套一层 Nginx 反向代理配 HTTPS这块属于另一个话题就不展开了。常见问题问连上了但转发很慢基本是云服务器带宽瓶颈转发流量全走服务器带宽3M 小水管传文件就是快不起来。只访问管理页面够用大文件传输建议升级带宽。问学生党预算有限怎么办雨云rainyun-com最低配月付就十几块先开一个月试试不行随时退。问token 泄露了怎么办直接改掉服务端配置里的 token重启 frps再把所有客户端同步改掉就行。平时别把配置文件传到公开仓库。问frpc 支持 Windows 吗支持Releases 里有 windows_amd64 包配置写法完全一样开机自启用任务计划程序实现。总结整套方案的核心就是一台低配合适的云服务器加 frp 两个进程配置一次长期受益NAS、路由器、开发机全都能从外网直达比各类商业远程工具可控得多也不用担心哪天服务关停。如果你也有公网 IP 焦虑这套方案值得花半小时搭一次。