NPS 是一款轻量级的内网穿透工具,支持 TCP/UDP 流量转发、HTTP/HTTPS 协议解析,并具备Web管理界面,便于配置和管理穿透规则。适合个人开发者或小型团队用于远程访问内网设备(如NAS、树莓派)、调试本地Web项目等场景。
用这个在更新的项目更好:https://github.com/yisier/nps/releases
一台公网服务器
需具备公网IP(如云服务器),用于部署NPS服务端(Server)。
内网设备
需要穿透的内网主机(如家用电脑、服务器),运行NPS客户端(Client)。
开放防火墙端口
确保服务器防火墙或安全组放行以下端口:
• NPS服务端默认端口:8024
(Web管理)、8080
(HTTP代理)、8023
(客户端连接)
• 自定义穿透端口:按实际需求开放(如80, 443等)
访问 NPS GitHub Releases 下载对应系统版本的服务器包(如 linux_amd64_server.tar.gz
)。
bashmkdir nps
cd nps
# Linux 示例
wget https://github.com/yisier/nps/releases/download/v0.26.22/linux_amd64_server.tar.gz
tar -zxvf linux_amd64_server.tar.gz
vim conf/nps.conf
,关键参数:
ini# Web管理界面配置
web_host = 0.0.0.0 # 监听地址
web_port = 8080 # 管理端口
web_username = admin # 登录用户名
web_password = 123456 # 登录密码
# 客户端连接配置
bridge_port = 8024 # 客户端与服务端通信端口
Linux 系统(默认安装) 主配置文件:/etc/nps/conf/nps.conf 这是 NPS 服务的主要配置文件,包含端口、认证、日志等核心设置。 客户端配置文件:/etc/nps/conf/clients/*.conf 每个客户端的配置可能单独存储(视版本而定)。
bash# Linux 启动
./nps install
nps start
查看日志:
cat /var/log/nps.log
浏览器访问 http://服务器IP:8080
,使用设置的账号密码登录。
从同一Releases页面下载对应客户端(如 windows_amd64_client.tar.gz
或 linux_amd64_client.tar.gz
)。
比如:
bashwget https://github.com/yisier/nps/releases/download/v0.26.22/linux_amd64_client.tar.gz tar zxvf linux_amd64_client.tar.gz
编辑 vim conf/npc.conf`:
ini[common]
server_addr=56.26.171.29:8024 # 改为你自己的
conn_type=tcp
vkey=cede0b # 改为你自己的
auto_reconnection=true
max_conn=1000
flow_limit=1000
rate_limit=1000
basic_username=11
basic_password=3
web_username=user
web_password=1234
crypt=true
compress=true
#pprof_addr=0.0.0.0:9999
disconnect_timeout=60
tls_enable=true
[health_check_test1]
health_check_timeout=1
health_check_max_failed=3
health_check_interval=1
health_http_url=/
health_check_type=http
health_check_target=127.0.0.1:8083,127.0.0.1:8082
[health_check_test2]
health_check_timeout=1
health_check_max_failed=3
health_check_interval=1
health_check_type=tcp
health_check_target=127.0.0.1:8083,127.0.0.1:8082
bash# Linux
./npc
# Windows
npc.exe
# Linux启动客户端并挂在后台
nohup ./npc &
• 进入Web管理界面,点击 客户端 → 新增。
• 记录生成的 唯一验证密钥(vkey)
,填入客户端配置。
• 规则类型:TCP
• 服务端端口:2222(公网访问端口)
• 目标地址:127.0.0.1:22(内网SSH服务)
• 保存后,通过 服务器IP:2222
即可SSH连接到内网主机。
• 规则类型:HTTP
• 域名:输入绑定到服务器IP的域名(如 test.example.com
)
• 内网地址:127.0.0.1:3000(本地运行的Web服务)
• 访问 http://test.example.com
即可穿透到内网。
整个通信链路可以简化为:
用户浏览器 -> 公网服务器(NPS服务端) -> 内网设备(NPS客户端) -> 本地Web服务
反向链路:
本地Web服务 -> 内网设备(NPS客户端) -> 公网服务器(NPS服务端) -> 用户浏览器
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!