作者:LX-DataCenter
日期:2025-1-16
邮箱:chenhot0@qq.com
一、阿里云服务器部署 NPS 服务端(root 权限,全程复制)
步骤 1:彻底清理旧文件,避免冲突
删除之前错误下载的压缩包和解压残留
rm -rf nps_server.tar.gz linux_amd64_server nps conf web
清理可能的进程残留
ps -ef | grep -E 'nps|**' | grep -v grep | awk '{print $2}' | xargs kill -9 2>/dev/null
步骤 2:正确下载并解压 NPS 服务端(v0.26.10,适配飞牛 NAS 客户端)
用官方源下载,避免代理导致的文件损坏
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz -O nps_server.tar.gz
验证文件完整性(关键!避免解压失败)
md5sum nps_server.tar.gz
正确解压(若提示not in gzip format,重新执行上面的wget命令)
tar -zxvf nps_server.tar.gz
cd linux_amd64_server
解压成功标志:终端显示 conf、nps 等文件 / 文件夹
如果:cd linux_amd64_server 执行后报如下错误:
[root@iZ2vcehmhxz3ieh1a9u30iZ ~]# cd linux_amd64_server
-bash: cd: linux_amd64_server: No such file or directory
因为:核心文件(conf、nps、web)直接解压到了 /root 目录下,所以 cd linux_amd64_server 会提示目录不存在,无需纠结这个目录,直接在当前 /root 目录下继续操作即可,所有核心文件都已齐全。
先明确:解压已成功,无需重新下载 / 解压
从 ls -l 输出可以看到,/root 目录下已经有了 NPS 运行所需的全部核心文件:
conf/:配置文件目录(含 nps.conf 核心配置)
nps:可执行程序(服务端核心)
web/:后台网页文件(用于访问 NPS 管理界面)这说明解压已经完成,只是没有生成统一的 linux_amd64_server 目录,完全不影响后续安装和运行,直接跳过 cd linux_amd64_server 步骤,在 /root 目录下继续操作即可。
步骤 3:修改服务端配置文件(仅改 3 个关键参数,安全且适配)
编辑解压后的 conf 目录下的 nps.conf
vim /root/conf/nps.conf
按 i 进入编辑模式,修改以下参数,其他默认
Web管理端口(默认8080,建议改如8888,避免冲突)这是进入NPS服务服务器的Web端口
web_port = 8888
Web管理账号密码(自定义,如admin,必填)
web_username = admin
Web 管理密码(自定义,如 123456abc,避免简单密码
web_password = 123456abc
与客户端通信的桥接端口(默认8024,保持默认,后续客户端连接用) bridge_port = 8024
按 Esc,输入 :wq 保存退出
如果:
conf/nps.conf 中找不到 bridge_port = 8024,这是正常现象(不同 NPS 版本配置项命名有差异,该配置项可能以 bridge_port 或 tcp_bridge_port 存在,甚至默认隐藏无需手动配置),完全不影响客户端连接,下面给你清晰的解决方案,无需纠结配置项,确保服务端与飞牛 NAS 客户端正常通信。
一、核心说明:找不到 bridge_port 无需担心
默认端口就是 8024:NPS 服务端与客户端通信的默认桥接端口(TCP 协议)就是 8024,即使配置文件中没有显式写出 bridge_port = 8024,服务端也会默认监听 8024 端口,这是 NPS 的内置默认配置。
配置项命名差异:部分 NPS 版本中,该配置项命名为 tcp_bridge_port(而非 bridge_port),你可以在 conf/nps.conf 中查找 tcp_bridge_port,若也找不到,直接使用默认端口 8024 即可,无需手动添加(添加反而可能导致配置冲突)。
关键是放行 8024 端口:只要宝塔和阿里云防火墙放行 8024 端口,飞牛 NAS 客户端就能通过 8024 端口与服务端建立连接,配置项是否显式存在不影响功能。
步骤 4:安装并启动 NPS 服务端
赋予执行权限
chmod +x nps
安装为系统服务
./nps install
同时该命令执行后会自动把nps.conf文件复制到/etc/nps/conf/目录下
会有一大段的安装输出显示 出现install ok! 说明安装成功
成功标志:终端无 error 提示,即使没有明确的「install success」,只要不报错即表示安装成功(NPS 已注册到系统服务)。
grep "web_port" /etc/nps/conf/nps.conf
若输出 web_port = 8888,说明配置同步成功;若输出默认的 8080,则需重新执行步骤 3(编辑 /root/conf/nps.conf)→ 步骤 4(./nps install)。
步骤 5:查找 nps 可执行文件的绝对路径
命令:find / -name "nps" -type f -perm /u+x 2>/dev/null

find 命令后得到了两个 nps 可执行文件路径:/usr/bin/nps 和 /root/nps,这说明服务器中存在两份 NPS 可执行文件,我们优先选择 /usr/bin/nps(系统级路径,更稳定,适配 systemd 服务管理) 来修复启动问题,/usr/bin/ 是 Linux 系统默认的可执行程序存放目录,优先级高于 /root/ 目录,用该路径配置 nps.service 更稳定,不易出现路径权限问题。
#1、修改 nps.service 文件,使用 /usr/bin/nps 路径
##1、编辑 nps.service 文件
vim /usr/lib/systemd/system/nps.service
##2、粘贴正确配置(替换为 /usr/bin/nps 路径)
按 i 进入编辑模式,删除原有内容,粘贴以下完整配置:
[Unit]
Description=NPS Fast TCP/UDP Proxy Server
After=network.target
Wants=network.target
[Service]
Type=simple
核心:使用系统级路径 /usr/bin/nps
ExecStart=/usr/bin/nps
Restart=always
RestartSec=5
User=root
Group=root
工作目录无需额外指定(/usr/bin/ 为系统默认路径,配置文件已在 /etc/nps/)
WorkingDirectory=/etc/nps
[Install]
WantedBy=multi-user.target
按 Esc,输入 :wq 保存并退出 vim。
#3、刷新 systemd 配置,重新启动 NPS 服务(必执行)如下4步骤
- 刷新 systemd 配置,识别修改后的服务文件
systemctl daemon-reload
- 停止残留的无效 NPS 进程(避免冲突)
ps -ef | grep nps | grep -v grep | awk '{print $2}' | xargs kill -9 2>/dev/null
3.启用 nps 开机自启
systemctl enable nps
- 启动 NPS 服务
systemctl start nps
- 验证 NPS 服务运行状态
systemctl status nps
✅ 成功标志:终端输出 Active: active (running)(绿色字体),无 exit-code 错误,说明 NPS 服务已正常启动。
systemctl start/stop/restart nps 管理服务。如下:输出
● nps.service - NPS Fast TCP/UDP Proxy Server
Loaded: loaded (/usr/lib/systemd/system/nps.service; enabled; vendor preset: disabled)
Active: active (running) (since Thu 2026-01-15 23:35:00 CST; 10s ago)
Main PID: 12345 (nps)
Tasks: 1 (limit: 1152)
Memory: 2.0M
CGroup: /system.slice/nps.service
**─12345 /usr/local/bin/nps start
安装 netstat 工具(若未安装)
yum install -y net-tools
验证 8024 端口是否被监听
netstat -tulpn | grep 8024
成功标志:终端输出类似以下内容,说明 NPS 已默认监听 8024 端口,客户端可正常连接:
tcp6 0 0 :::8024 :::* LISTEN 12345/./nps
验证服务是否运行(替代不支持的 nps status)
ps -ef | grep nps | grep -v grep
成功标志:ps 命令输出中能看到 nps 进程(含进程号),说明服务已正常启动。
步骤 6:宝塔面板 + 阿里云防火墙放行端口(3 个端口,缺一不可)
登录宝塔面板(执行 bt default 查地址),进入「安全」→「防火墙」,放行 3 个 TCP 端口:
8888(Web 管理端口,与 nps.conf 中 web_port 一致)
8024(客户端与服务端通信端口,与 bridge_port 一致)
5000(后续映射 NAS 的端口,可自定义如 8888)
登录阿里云 ECS 控制台,进入「安全组」,添加上述 3 个端口的 TCP 规则,允许所有 IP 访问
关闭宝塔 WAF 防护,避免拦截连接
步骤 7:访问后台,登录后台
访问后台:
· 打开你本地电脑的浏览器(Chrome/Edge)。
· 输入地址:http://你的阿里云公网IP:8888
· 注意:如果打不开,99% 是上面的端口没放行,或者宝塔开了 WAF 拦截了。
登录****后台:
· 默认账号:admin
· 默认密码:123456abc
如果:修改了密码要重启NPS服务(让配置生效)
systemctl restart nps # 重启服务
systemctl status nps # 确认服务正常运行
端口与账号密码都来至步骤 3:配置文件中设置的

创建客户端(核心):
点击左侧菜单的 「客户端」 → 点击右上角的 「新增」。
备注:随便填,比如 飞牛NAS。
vkey:这是密码,建议设复杂点(比如 FeiNiu@123),或者默认也行。
其他默认,点击 「添加」。
记住这个 vkey! 等会 NAS 要用。
如下图:操作步骤



步骤 8:飞牛NAS上安装**客户端(应用中心直接搜索)
然后打开**客户端,如下配置后,点保存配置,出现Successful connection with server 就正常了

此时切回阿里云 NPS 网页后台,刷新「客户端」列表,对应的客户端会显示「在线」(绿色状态)
步骤 9:连接成功后配置端口映射(实现访问 NAS)
回到阿里云 NPS 网页后台,找到在线的飞牛 NAS 客户端。
点击客户端右侧「新增隧道」,填写配置:


协议:TCP
服务器端口:5000(已放行的映射端口)
本地 IP:飞牛 NAS 的内网 IP(在 NAS「网络设置」中查看,如 192.168.1.100)
本地端口:飞牛 NAS 的管理端口(通常为 5000,桌面端可在 NAS「设置」→「访问设置」中查看)

点击「保存」,隧道状态变为「正常」。
手机 / 电脑浏览器输入 http://你的阿里云公网IP:5000,即可直达飞牛 NAS 桌面 / 管理界面。
步骤 10:如果网速很慢
1、编辑 NPS 服务端配置文件(保持之前的命令)
vim /etc/nps/conf/nps.conf
按 i 进入编辑模式
把下面配置参数粘贴到该文件的空白处:
增大最大连接数,提升并发处理能力,减少多设备访问时的速率波动
max_conn=1000
启用端口复用,避免端口占用冲突,提升传输速率稳定性
reuse_port=true
按 Esc,输入 :wq 保存并退出 vim,然后重启 NPS 服务使配置生效:
然后重启 NPS 服务使配置生效:
systemctl restart nps
验证服务是否正常运行
systemctl status nps
可选配置:
缩短心跳间隔,减少断连导致的速率骤降,增强链路稳定性
heartbeat_interval=10
启用数据压缩,优化跨公网传输速率稳定性(对小文件友好)
compress=true
添加后再次重启 NPS 服务即可:systemctl restart nps。
提示:“若服务端配置文件中已存在上述可选参数,无需重复添加,仅修改数值即可;若不存在,直接新增,避免配置项重复导致服务启动异常。”
2、编辑NAS上**客户端
双击在 NAS 的**客户端打开配置,在文件中的空白处添加:
reconnect_interval=3 # 缩短重连间隔,减少断连影响
max_conn=500 # 匹配服务端连接数
在点保存配置
上述配置可提升跨公网穿透的速率稳定性,同时最大化利用家里的宽带上行带宽,减少卡顿 / 波动。
常用配套 systemctl命令(NPS 部署必备)
systemctl status nps:查看 nps 服务的当前运行状态(是否启动、有无报错)
systemctl restart nps:重启 nps 服务(修改配置文件后必备,先停止再启动)
systemctl enable nps:配置 nps 服务开机自动启动
systemctl disable nps:取消 nps 服务的开机自启配置(仅取消配置,不停止当前服务)
systemctl stop nps:停止当前正在运行的 nps 服务(仅停止,不取消开机自启)
systemctl start nps:立即启动当前运行会话的 nps 服务