前言
- 感谢NS论坛的各位热心网友,正是你们借助这一优质平台拥抱开源项目,使得NodePass在发布24小时内便收获了101颗STAR。
- 特别感谢 @酒神,你的宝贵建议在项目的设计与开发过程中起到了至关重要的作用。
- 在此希望能借助NodePass管理脚本,让更多人以最简单的方式,轻松体验内网穿透带来的便捷与高效。

1. NodePass 简介
NodePass 是一款通用 TCP/UDP 隧道工具,专为网络穿透、数据转发和安全通信设计。它通过创建加密的 TLS 隧道进行客户端与服务端之间的通信,在不同网络环境间安全地转发业务服务的流量,使得内网服务可以顺利地暴露在公网上。并凭借着预建立、自适应的连接池管理带来的 TCP 加速效果,NodePass 为开发人员和系统管理员提供了一个强大且易用的工具,可以解决复杂的网络挑战,同时在安全和性能之间做到了平衡。
1.1 核心功能
- 🔄 安全通信隧道: 可选TLS加密传输,确保业务传输安全
- 🌐 协议切换支持: 支持TCP/UDP转发,并支持UDP-TCP协议切换
- 🔌 两种运行模式: 客户端模式和服务端模式,适应不同场景自由切换
- ⚙️ 配置系统服务: 可配置为系统服务,实现开机自启和守护进程功能
- 🧩 多个实例支持: 可在同一系统上运行多个不同配置的NodePass实例
- 🔌 高效的连接池: 优化的连接管理,支持可配置的池大小
2. 原理简介
NodePass基于客户端-服务端架构工作。它创建了两个主要通道:
- 信号控制通道: 用于通信和隧道管理(不加密)
- 数据转发通道: 用于实际业务数据的转发(可选择不同级别的TLS加密)
NodePass具体架构图可供参考:
|X|
|X|
|----------| |----------| |X| |----------| |----------|
| | | | | USER |
| TARGET | | CLIENT | |X| | SERVER | |----------|
| -|------|--|------|- USER |
| SERVER | | | POOL |--| POOL | | |----------|
| -|------|--|------|- USER |
|----------| |----------| |X| |----------| |----------|
|X| | USER |
|X| |----------|
|X|
3. 安装准备
3.1 系统要求
- 支持的架构: amd64 (x86_64) 或 arm64 (aarch64)
- 支持systemd的Linux系统 (如Ubuntu, Debian, CentOS, Fedora等)
3.2 必要依赖
安装脚本需要以下依赖项:
- curl: 下载文件
- tar: 解压文件
- grep, sed: 文本处理
- jq: JSON解析
如果系统缺少这些依赖,脚本会提示您安装。
4. 安装流程详解
4.1 获取管理脚本
运行下列命令即可直接获取管理脚本并运行:
bash <(curl -sL https://cdn.yobc.de/shell/nodepass.sh)
4.2 安装过程说明
运行脚本后,您将看到一个交互式安装界面,需要进行以下步骤:
- 选择语言: 中文或英文
- 系统检查: 脚本会检查系统架构和必要依赖
- 获取版本信息: 脚本会自动获取最新版本
- 镜像选择: 您可以选择是否使用 GitHub 镜像来加速下载
- 服务名称设置: 为您的 NodePass 实例设置一个名称,如 "ssh", "web" 等
- 选择工作模式: 客户端模式或服务端模式
- TLS安全模式配置(对服务端模式):
- 模式0: 不使用TLS(默认)
- 模式1: 自动TLS(内存自签证书)
- 模式2: 自定义TLS(提供证书和密钥)
- 设置隧道地址:
- 客户端模式: 填写服务端的地址和端口
- 服务端模式: 填写监听地址和端口
- 设置目标地址:
- 客户端模式: 填写本地服务的地址和端口
- 服务端模式: 填写对外暴露的地址和端口
- 调试选项: 是否启用详细日志
- 系统服务配置: 脚本会自动设置系统服务
6. 使用场景示例
6.1 内网 SSH 穿透
假设您有一台无公网 IP 的内网服务器 (192.168.1.100),想要从外网安全访问它的 SSH 服务 (端口 22)。
步骤 1: 在有公网 IP 的服务器上安装 NodePass (服务端模式)
- 隧道地址: 0.0.0.0:10101(监听所有网卡的 10101 端口)
- 目标地址: 0.0.0.0:10022(对外提供 SSH 服务的端口)
步骤 2: 在内网服务器上安装 NodePass (客户端模式)
- 隧道地址: :10101
- 目标地址: 127.0.0.1:22(本地 SSH 服务)
步骤 3: 使用方式
现在您可以通过 ssh -p 10022 user@ 来访问内网服务器
6.2 内网 Web 服务暴露
假设您在内网运行了一个 Web 服务 (端口 80),想要让外网用户访问。
步骤 1: 在公网服务器上安装 NodePass (服务端模式)
- 隧道地址: 0.0.0.0:10101
- 目标地址: 0.0.0.0:10080(对外提供 Web 服务的端口)
步骤 2: 在内网 Web 服务器上安装 NodePass (客户端模式)
- 隧道地址: :10101
- 目标地址: 127.0.0.1:80(本地 Web 服务)
步骤 3: 使用方式
外网用户可以通过 http://:10080 访问内网 Web 服务
6.3 DNS 解锁流媒体转移
假设您的某台特定服务器 A 可以访问某流媒体解锁 DNS,想让不能访问这个 DNS 的服务器 B 也能访问。
步骤 1: 在服务器 B 上安装 NodePass (服务端模式)
- 隧道地址: 0.0.0.0:10101
- 目标地址: 127.0.0.1:53(本地 DNS 端口)
步骤 2: 在服务器 A 上安装 NodePass (客户端模式)
- 隧道地址: :10101
- 目标地址: 目标 DNS:53(可访问的 DNS 端口)
步骤 3: 使用方式
通过配置服务器 B 本机的 DNS 地址,连接本地的 53 端口来实现流媒体解锁转移
6.4 中转机拉落地机
假设您的服务器解锁极好,但线路不好,想让线路极好,解锁不好的服务器作为中转,连接目标服务。
步骤 1: 在中转机上安装 NodePass (服务端模式)
- 隧道地址: 0.0.0.0:10101
- 目标地址: 0.0.0.0:8443(对外提供目标服务的端口)
步骤 2: 在落地机上安装 NodePass (客户端模式)
- 隧道地址: :10101
- 目标地址: 127.0.0.1:8443(本地目标服务端口)
步骤 3: 使用方式
用户可以直接访问 :8443 来访问落地机的目标服务,且落地与中转已通过连接池提前建立了连接,实现了 TCP 加速效果。
7. NodePass 管理操作
NodePass 安装脚本提供了完整的管理界面,只需再次运行脚本即可。
7.1 主菜单选项
- 安装/更新 NodePass: 获取最新版本
- 管理 NodePass 服务: 查看、启动、停止、添加或删除服务
- 卸载 NodePass: 完全移除 NodePass 及其配置
- 退出脚本: 退出管理界面
7.2 服务管理选项
在管理菜单中,您可以:
- 查看所有服务: 列出所有已安装的服务及其状态
- 管理特定服务: 选择一个服务进行操作
- 启动服务
- 停止服务
- 重启服务
- 删除服务
- 添加新服务: 创建新的 NodePass 服务实例
- 返回主菜单: 返回上一级菜单
8. 配置文件与目录结构
NodePass 在系统中的主要文件和目录:
- 可执行文件: /usr/local/bin/nodepass
- 配置目录: /etc/nodepass/
- 服务配置: /etc/nodepass/services/.json
- 系统服务文件: /etc/systemd/system/np-.service
9. 故障排除
9.1 连接问题
如果客户端无法连接到服务端:
- 检查服务端防火墙是否已开放对应端口
- 确认服务端 NodePass 是否正在运行
- 验证隧道地址是否正确
9.2 转发问题
如果连接成功但无法访问目标服务:
- 检查目标服务是否正在运行
- 确认目标地址配置是否正确
- 检查目标服务的防火墙设置
9.3 查看日志
使用以下命令查看服务日志:
journalctl -u np-.service -f
10. 高级用法
10.1 参数调优
可以调整环境变量调整 NodePass 连接池大小、最大并发数量等,可参考仓库文档。
10.2 自定义镜像
如果 GitHub 下载速度慢,您可以:
- 在安装过程中选择使用镜像
- 或者提供自定义镜像 URL
10.3 多服务组合
您可以在一台服务器上运行多个 NodePass 实例,每个实例负责不同的服务转发,形成完整的内网穿透解决方案。
11. 安全建议
使用 NodePass 时,请注意以下安全事项:
- 业务数据传输:业务数据,如有需要,穿透前做好措施
- 更改默认端口: 避免使用默认端口,减少被扫描的风险
- 防火墙规则: 只对必要的 IP 开放端口访问权限
- 定期更新: 及时更新到最新版本以获取安全修复
- 权限控制: 确保只有受信任的用户能访问公开的服务
- 监控日志: 定期检查日志以发现可能的异常访问
12. 交流支持
感谢您选用 NodePass 管理脚本,随着经验的积累,您可以组合多个 NodePass 实例,构建更复杂的网络应用场景。
更多信息和最新版本,请访问 NodePass 官方项目仓库: https://github.com/yosebyte/nodepass
期待您的 STAR 关注,有任何技术问题欢迎随时交流。


又一个大佬
加油,看好这个项目,潜力很大,有望成为流行的解决方案