FRP与NPS详细对比:NAS内网穿透实操全教程

FRP与NPS详细对比:NAS内网穿透实操全教程

FRP与NPS详细对比:NAS内网穿透实操全教程

作为一名长期折腾DIY NAS与家庭内网服务的爱好者,在没有公网IP的条件下,想要随时随地在外网访问NAS后台、文件管理、影音库,内网穿透是绕不开的方案。目前圈内两款开源工具:FRP和NPS,我两款都长期部署使用,本文客观分析二者优缺点,并且附上可以直接复制运行的完整实操步骤,专门针对NAS远程访问场景。

前置条件:一台VPS(有独立公网IP)、一台家用NAS(群晖/威联通/TrueNAS),全程免费开源,无流量限制。

一、FRP 和 NPS 优缺点详细对比

FRP(fatedier/frp)

优点:

  1. 更新维护稳定,BUG极少,运行很多天不容易断连,带宽损耗很低,传输NAS大文件速度更稳。
  2. 协议非常全面:TCP、UDP、HTTP、HTTPS、XTCP点对点穿透,支持点对点直连。
  3. 资源占用极小,VPS 1核小机器就能流畅跑很多条隧道,支持STCP加密访问,安全性更高。
  4. Docker生态完善,NAS套件中心可以直接安装,部署方式非常多。

缺点:

  1. 全部依靠配置文件管理,没有可视化网页面板,新增隧道、修改端口都要改配置文件重启程序,多台设备管理很麻烦。
  2. 原生不带流量统计、在线状态查看,只能依靠第三方面板。
  3. 多用户分权管理实现起来比较麻烦。

NPS(ehang-io/nps)

优点:

  1. 自带Web可视化后台,所有穿透隧道在网页上点点鼠标就能新建、开关、修改,不用敲命令,新手上手门槛低。
  2. 自带客户端在线状态、流量监控、限速功能,可以给不同设备单独限制带宽,适合家里多设备共用一台穿透服务端。
  3. 内置SOCKS5代理、P2P模式,客户端支持Windows一键安装成系统服务,配置简单。
  4. 可以创建多个独立客户端账号,每个账号互相隔离,适合分给家人使用NAS。

缺点:

  1. 项目已经停更很久,新版本系统兼容性一般,长时间运行偶尔会无故掉线,重连机制不如FRP。
  2. 点对点穿透效果弱于FRP,大部分场景必须走VPS中转,大文件拷贝速度会有损耗。
  3. 内存占用比FRP更高,隧道开多之后小配置VPS负载会明显上涨。

最终选型建议

• 只给自己用、追求稳定高速、经常在NAS传输大文件:选FRP

• 多设备管理、不想修改配置文件、需要可视化管理:选NPS

二、FRP 部署教程(NAS专用完整版)

架构:VPS运行frps(服务端),NAS通过Docker运行frpc(客户端),映射两个服务:NAS网页管理界面(5000端口)+ SMB文件共享(445端口)

第一步:VPS服务端配置(Ubuntu系统)

  1. 新建文件夹,下载程序
mkdir frp && cd frp

wget https://github.com/fatedier/frp/releases/download/v0.58.0/frp_0.58.0_linux_amd64.tar.gz

tar -zxvf frp_0.58.0_linux_amd64.tar.gz

cd frp_0.58.0_linux_amd64
  1. 创建frps.toml配置文件

bindPort = 7000

auth.method = "token"

auth.token = "Nas@2026Private123" #自定义密钥,客户端必须保持一致

webServer.addr = "0.0.0.0"

webServer.port = 7500

webServer.user = "admin"

webServer.password = "Admin@666"

  1. 放行VPS防火墙端口:7000(通讯端口)、7500(简易后台),安全组同步放行
  2. 后台常驻启动命令

nohup ./frps -c frps.toml > frp.log 2>&1 &

第二步:NAS客户端配置(Docker方式,通用所有NAS)

  1. 套件中心安装Docker,在注册表搜索:snowdreamtech/frpc
  2. 新建配置文件夹:/docker/frpc,放入frpc.toml

serverAddr = "你的VPS公网IP"

serverPort = 7000

auth.method = "token"

auth.token = "Nas@2026Private123"

NAS网页后台

[[proxies]]

name = "nas-web"

type = "tcp"

localIP = "192.168.1.100" #填写你的NAS内网地址

localPort = 5000

remotePort = 50000

文件共享SMB

[[proxies]]

name = "nas-smb"

type = "tcp"

localIP = "192.168.1.100"

localPort = 445

remotePort = 50001

  1. Docker挂载:将本地/docker/frpc映射到容器/etc/frp,启动容器,设置开机自启
  2. 外网访问方式:IP:50000 打开NAS管理页面

第三步:设置开机自启(可选)

如果不用Docker,开启NAS的SSH,写入systemd守护进程,断线自动重连。

三、NPS 部署实操(可视化管理)

第一步:VPS安装NPS服务端

wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz

tar -zxvf linux_amd64_server.tar.gz

cd linux_amd64_server

./nps install

编辑配置文件/etc/nps/conf/nps.conf

bridge_port=8024

web_port=8080

web_password=自定义后台密码

allow_login_ip=0.0.0.0

启动命令:

nps start

安全组放行端口:8024(隧道)、8080(网页后台)

打开地址:http://VPSIP:8080 进入管理面板

  1. 客户端 → 新增客户端,复制生成的连接命令
  2. 客户端运行在NAS(或者软路由OpenWrt上),执行npc命令

第二步:NAS客户端部署

两种方案任选其一:

  1. OpenWrt安装npc客户端(推荐,独立于NAS,NAS关机也不影响服务)
  2. NAS用Docker部署npc镜像

粘贴面板生成的命令示例:

./npc -server=VPSIP:8024 -vkey=随机密钥 -type=tcp

运行之后网页端会显示在线状态。

第三步:网页端创建NAS穿透隧道

  1. 新建TCP隧道

• 本地地址:NAS内网IP:5000(管理页面),远程端口自定义

• 再新建一条:NAS内网IP:445(文件共享)

全程不用修改任何配置文件,随时开关隧道,查看实时流量,管理非常方便。

四、NAS部署两个方案的使用心得

  1. 长期不间断运行存放资料、影音播放,我最终选择FRP,稳定性更强,长时间几个月不用重启。
  2. 如果家里有多个设备(NAS、监控、网站),统一管理,用NPS会省事很多。
  3. 重要提醒:不要直接开放445公网裸奔,最好搭配域名+HTTPS加密,或者用XTCP点对点模式,不把端口暴露在公网。
  4. 客户端建议部署在软路由OpenWrt上面,24小时运行,NAS只负责存储,后期维护最简单。

五、常见问题解决

  1. 连接成功但是打不开NAS:检查内网IP填写正确,VPS端口全部放行。
  2. 速度很慢:优先开启FRP的XTCP点对点,海外服务器NPS尽量选择CN2线路VPS。
  3. 经常掉线:把程序设置为系统服务,开启自动重启脚本。
©版权声明
THE END
喜欢就支持一下吧
点赞51 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容