NPS + Docker Registry Docker Registry + Linux+ Windows+ mmproxy+ NPC

用 Docker 部署 NPS 服务端与 NPC 客户端实现内网穿透并获取真实IP

NPS 提供服务端代理与 Web 管理,NPC 反向连接服务器,mmproxy 补齐真实IP获取

✓ 支持多协议转发,场景覆盖广✓ Docker 一键部署,自动重启 ✕ 原版 NPS 停更已久,依赖社区维护

方案简介

NPS 是一款轻量高效的内网穿透代理服务器,支持 TCP、UDP、HTTP、HTTPS、SOCKS5 等多种协议转发,并提供直观的 Web 管理界面。原版 NPS 停更已久,本仓库 djylb/nps 整合社区更新二次开发而来。

本配方使用 Docker 部署 NPS 服务端(duan2001/nps 镜像)与 NPC 客户端(duan2001/npc 镜像),在有真实 IP 获取需求(例如 SSH)的场景下配合 mmproxy 使用,使内网资源能安全、便捷地在外网访问。适合需要将内网服务暴露到公网、且希望保留客户端真实来源 IP 的用户。

亮点与能力

  • 多协议支持:TCP/UDP 转发、HTTP/HTTPS 转发、HTTP/SOCKS5 代理、P2P 模式、Proxy Protocol 支持、HTTP/3 支持等
  • 跨平台部署:支持 Linux、Windows 等主流平台,可轻松安装为系统服务
  • Web 管理界面:实时监控流量、连接情况以及客户端状态
  • 安全与扩展:内置加密传输、流量限制、到期限制、证书管理续签等多重功能
  • 多连接协议:支持 TCP、KCP、TLS、QUIC、WS、WSS 协议连接服务器
  • 多服务器连接:客户端支持同时连接多个服务器
  • 真实IP获取:可配合 mmproxy 使用

组成与分工

  • NPS:内网穿透服务端,提供多协议转发与 Web 管理界面,Docker 镜像为 duan2001/nps(另有 GHCR 版)
  • NPC:内网穿透客户端,运行在内网机器上,连接 NPS 服务端建立隧道,Docker 镜像为 duan2001/npc
  • Docker:容器化部署方式,通过 --net=host 与卷挂载运行服务端与客户端
  • mmproxy:在需要获取客户端真实 IP 的场景下配合使用,例如 SSH

前置要求

  • 具备 Docker 环境的主机(服务端与客户端机器各一台)
  • 支持 Linux、Windows 等主流平台
  • 若不用 Docker,可使用官方安装脚本:wget -qO- https://fastly.jsdelivr.net/gh/djylb/nps@master/install.sh | sudo sh -s nps

实施步骤

1. 拉取并启动 NPS 服务端

bash
docker pull duan2001/nps
docker run -d --restart=always --name nps --net=host -v $(pwd)/conf:/conf -v /etc/localtime:/etc/localtime:ro duan2001/nps

配置文件通过卷挂载到容器内 /conf 目录。

2. 修改服务端配置

NPS 安装完成后,请先修改 nps.conf(如监听端口、Web 管理账号等)再启动服务。

3. 拉取并启动 NPC 客户端

bash
docker pull duan2001/npc
docker run -d --restart=always --name npc --net=host duan2001/npc -server=xxx:123,yyy:456 -vkey=key1,key2 -type=tls,tcp -log=off

4. 填写客户端连接参数

-server-vkey-type 等参数请从 NPS Web 管理端的客户端页面复制,避免手动填写错误。

5. 真实IP场景(可选)

有真实 IP 获取需求可配合 mmproxy 使用,例如 SSH。

使用与配置要点

  • 通过 NPS 的 Web 管理界面实时监控流量、连接情况以及客户端状态
  • 客户端参数(-server-vkey-type)以 Web 管理端客户端页面生成的命令为准
  • 客户端支持同时连接多个服务器,示例:npc -server=xxx:123,yyy:456,zzz:789 -vkey=key1,key2,key3 -type=tcp,tls,其中 xxx:123 使用 tcp,yyy:456zzz:789 使用 tls
  • 需连接旧版本服务器时添加 -proto_version=0
  • 更多详细配置请参考官方文档

注意事项与常见问题

  • NPS 安装完成后,请先修改 nps.conf(如监听端口、Web 管理账号等)再启动服务
  • 客户端参数请从 Web 管理端复制,避免手动填写错误
  • 如需连接旧版本服务器请添加 -proto_version=0
  • 提问前请先查阅文档与 Issues;也可加入 Telegram 交流群交流经验

优缺点

  • ✓ 支持多协议转发,场景覆盖广
  • ✓ Docker 一键部署,自动重启
  • ✕ 原版 NPS 停更已久,依赖社区维护

出处

本方案挖掘自开源项目 djylb/nps,方案内容与实施命令均来自其 README 原文。

方案出处
djylb/nps:NPS Enhanced — Lightweight intranet tunneling and reverse proxy with Web UI | NP
1066 star NPS Enhanced — Lightweight intranet tunneling and reverse proxy with Web UI | NPS 内网穿透 反向代理 增强版 全修 新版 二开

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。