NodePass中转

NodePass 是一款开源、轻量的企业级 TCP/UDP 网络隧道解决方案,采用多合一架构设计,通过控制通道与数据通道分离,实现灵活、高性能的实例管控。支持零配置文件部署,内置智能连接池、分级 TLS 加密和无缝协议转换。专为 DevOps 工程师和系统管理员打造,助力轻松应对复杂网络场景。

💎 核心功能

  • 🌐 通用网络隧道
  • 基础 TCP/UDP 隧道,具备协议转换能力,适配多种网络结构。
  • 完整适配端口映射、内网穿透、流量中转等多场景应用需求。
  • 多平台、多架构支持,支持独立二进制文件、容器灵活部署。
  • 🚀 内置连接池
  • 提供 TCP、QUIC、WebSocket、HTTP/2 多种池化传输方式。
  • 消除连接的握手等待,通过 0-RTT 支持显著提升性能体验。
  • 支持实时容量自适应,动态调整连接池规模。
  • 🧬 创新架构设计
  • Server-Client-Master 多模式整合架构设计,灵活切换。
  • 将 S/C 控制通道与数据通道完全解耦,相互独立、各司其职。
  • 主控-实例的管理方式,支持动态扩容、多实例协作和集中控制。
  • 🔐 多级安全策略
  • 三种 TLS 模式:明文、自签名、严格验证,适配不同安全等级。
  • 满足从开发测试到企业级高安全部署的全场景需求。
  • 支持证书文件的热重载,免停运、无缝处理证书更新问题。
  • ⚙️ 极简配置方式
  • 无需配置文件,仅命令行参数即可运行,适合自动化和快速迭代。
  • 适配 CI/CD 流程与容器环境,极大提升部署和运维效率。
  • 支持超时、限速等高级参数调优,灵活适应不同运行环境。
  • 📈 高性能优化
  • 智能流量调度与自动连接调优,极低资源占用。
  • 高并发、高负载状态下卓越的系统稳定性能。
  • 负载均衡、健康检查、故障自愈,确保持续高可用。
  • 💡 可视化管理
  • 配套跨平台、多样化的管理前端应用,具备可视化配置能力。
  • 主流平台支持一键部署脚本,支撑灵活配置和辅助管理。
  • 具备实时隧道监控、实例管理、主控管理、流量统计等丰富功能。

安装指南

本指南提供了使用不同方法安装 NodePass 的详细说明。选择最适合您环境和需求的安装方式。

系统要求

  • Go 1.25或更高版本(从源代码构建时需要)
  • 服务器和客户端端点之间的网络连接
  • 绑定1024以下端口可能需要管理员权限

安装方法

方式1:预编译二进制文件

开始使用 NodePass 的最简单方法是为您的平台下载预编译的二进制文件。

  1. 访问 GitHub 上的发布页面
  2. 下载适合您操作系统的二进制文件(Windows、macOS、Linux)
  3. 如有必要,解压缩档案
  4. 使二进制文件可执行(Linux/macOS):
    1
    chmod +x nodepass
  5. 将二进制文件移动到PATH中的位置:
    • Linux/macOS:sudo mv nodepass /usr/local/bin/
    • Windows:将位置添加到PATH环境变量

方式2:使用Go安装

如果您的系统上已安装Go,可以使用go install命令:

1
go install github.com/yosebyte/nodepass/cmd/nodepass@latest

此命令下载源代码,编译它,并将二进制文件安装到您的Go bin目录中(通常是$GOPATH/bin)。

方式3:从源代码构建

对于最新的开发版本或自定义构建:

1
2
3
4
5
6
7
8
9
10
11
# 克隆仓库
git clone https://github.com/yosebyte/nodepass.git

# 导航到项目目录
cd nodepass

# 构建二进制文件
go build -o nodepass ./cmd/nodepass

# 可选:安装到GOPATH/bin
go install ./cmd/nodepass

方式4:使用容器镜像

NodePass在GitHub容器注册表中提供容器镜像,非常适合容器化环境:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 拉取容器镜像
docker pull ghcr.io/yosebyte/nodepass:latest

# 服务器模式运行
docker run -d --name nodepass-server -p 10101:10101 -p 8080:8080 \
ghcr.io/yosebyte/nodepass server://0.0.0.0:10101/0.0.0.0:8080

# 客户端模式运行
docker run -d --name nodepass-client \
-e NP_MIN_POOL_INTERVAL=200ms \
-e NP_SEMAPHORE_LIMIT=512 \
-p 8080:8080 \
ghcr.io/yosebyte/nodepass "client://nodepass-server:10101/127.0.0.1:8080?min=32&max=512"

方式5:使用管理脚本(仅限Linux)

对于Linux系统,我们提供了一键脚本:

1
bash <(curl -sSL https://run.nodepass.eu/np.sh)

验证安装

安装后,通过检查版本来验证NodePass是否正确安装:

1
nodepass

下一步

安装NodePass后,您可以:


使用到的指令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#查宿主机的内网IP

docker inspect nodepassdash | awk -F'"' '/"Gateway"/ {ip=$4} END {print ip}'

#下载 NodePass 并解压

wget -qO - https://github.com/yosebyte/nodepass/releases/download/v1.14.1/nodepass_1.14.1_linux_amd64.tar.gz | tar xzv nodepass

#复制到sing-box容器里

docker cp nodepass sing-box:/

#查看容器文件

docker exec -it sing-box ls /

#宿主机上运行容器里的nodepass:

docker exec -it sing-box /nodepass "client://[服务端IP]:[服务端端口]/127.0.0.1:[本地服务端口]"

nodepass脚本安装

  • np.sh: 一键部署 NodePass 主程序,提供高性能 TCP/UDP 隧道服务,支持多系统和灵活配置
  • dash.sh: 一键部署 NodePassDash 控制面板,简化隧道管理和监控,支持容器化和 HTTPS 配置。
  • 正式版: v1.14.1
  • 开发版: v1.14.1-b1
  • 经典版: v1.10.3

一键部署 NodePass 主程序

1
2
3
4
5
bash <(wget -qO- https://raw.githubusercontent.com/yuanzhou029/sh/refs/heads/main/nodepass/np.sh)

#或

bash <(curl -sSL https://raw.githubusercontent.com/yuanzhou029/sh/refs/heads/main/nodepass/np.sh)

跟随提示操作,依次填写以下信息:

一键部署 NodePassDash 控制面板

1
2
3
4
5
bash <(wget -qO- https://raw.githubusercontent.com/yuanzhou029/sh/refs/heads/main/nodepass/dash.sh) install

#或

bash <(curl -sSL https://raw.githubusercontent.com/yuanzhou029/sh/refs/heads/main/nodepass/dash.sh) install

支持 Debian、Ubuntu、CentOS

支持 Docker 和 Podman 部署容器

自动配置反向代理(支持 HTTPS)

挂载目录

主机路径 容器内路径 用途
~/nodepassdash/logs /app/logs 日志文件
~/nodepassdash/db /app/db 数据库

卸载 NodePassDash 控制面板:

1
2
3
4
5
bash <(wget -qO- https://raw.githubusercontent.com/yuanzhou029/sh/refs/heads/main/nodepass/dash.sh) update

#或

bash <(curl -sSL https://raw.githubusercontent.com/yuanzhou029/sh/refs/heads/main/nodepass/dash.sh) update

重置密码

1
2
3
4
5
bash <(wget -qO- https://raw.githubusercontent.com/yuanzhou029/sh/refs/heads/main/nodepass/dash.sh) resetpwd

#或

bash <(curl -sSL https://raw.githubusercontent.com/yuanzhou029/sh/refs/heads/main/nodepass/dash.sh) resetpwd

更新 NodePassDash 容器:

1
2
3
4
5
bash <(wget -qO- https://raw.githubusercontent.com/yuanzhou029/sh/refs/heads/main/nodepass/dash.sh) update

#或

bash <(curl -sSL https://raw.githubusercontent.com/yuanzhou029/sh/refs/heads/main/nodepass/dash.sh) update

👉 NodePass GitHub Issues