NPS 是一款轻量级的内网穿透工具,支持 TCP/UDP 流量转发、HTTP/HTTPS 协议解析,并具备Web管理界面,便于配置和管理穿透规则。适合个人开发者或小型团队用于远程访问内网设备(如NAS、树莓派)、调试本地Web项目等场景。
一台公网服务器
需具备公网IP(如云服务器),用于部署NPS服务端(Server)。
内网设备
需要穿透的内网主机(如家用电脑、服务器),运行NPS客户端(Client)。
开放防火墙端口
确保服务器防火墙或安全组放行以下端口:
• NPS服务端默认端口:8024
(Web管理)、8080
(HTTP代理)、8023
(客户端连接)
• 自定义穿透端口:按实际需求开放(如80, 443等)
访问 NPS GitHub Releases 下载对应系统版本的服务器包(如 linux_amd64_server.tar.gz
)。
bash# Linux 示例
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 nps
编辑 conf/nps.conf
,关键参数:
ini# Web管理界面配置
web_host = 0.0.0.0 # 监听地址
web_port = 8080 # 管理端口
web_username = admin # 登录用户名
web_password = 123456 # 登录密码
# 客户端连接配置
bridge_port = 8024 # 客户端与服务端通信端口
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
)。
比如:
bashhttps://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz tar zxvf linux_amd64_client.tar.gz
编辑 conf/npc.conf
:
iniserver_addr=服务器IP:8024 # 服务端地址和端口
conn_type=tcp # 连接协议
vkey=客户端唯一密钥 # 在Web界面创建客户端时生成
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
本文链接:https://dong-blog.fun/post/2003
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!
预览: