一、简介
- NodePass 是一款通用、轻量的TCP/UDP隧道解决方案
- 支持主动连接池消除了延迟、TLS安全选项,不仅性能表现优秀,还兼备数据传输安全特性
- 最具特色的功能之一是TCP与UDP之间的无缝协议转换,智能适应网络波动,让应用能够跨越协议受限的网络进行稳定通信
- 相关开源地址参考:https://github.com/yosebyte/nodepass
- 工作原理与架构图参考:
二、安装与使用
1. 安装 NodePass 可视化管理面板
-
该管理面板的开源地址可参考:https://github.com/NodePassProject/NodePassDash
-
提前准备好Docker、docker-compose软件环境
-
新建docker-compose.yml配置文件,内容如下:
services: # NodePass 应用 - 使用GitHub发布的镜像 nodepassdash: image: ghcr.io/nodepassproject/nodepassdash:latest container_name: nodepassdash # network_mode: "host" # 如需要ipv6,可考虑使用host模式 ports: - "3000:3000" # 整合的Next.js应用 volumes: # 挂载配置和日志 - ./config:/app/config:ro # SQLite 数据库文件 - ./public:/app/public restart: unless-stopped healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/api/health"] interval: 30s timeout: 10s retries: 5 start_period: 60s
-
使用docker-compose一键启动,命令如下
docker-compose up -d
-
成功运行后,可以查看容器运行日志获取初始化账号密码
docker-compose logs
运行命令后,管理面板的登录账号密码显示如下
-
访问:http://ip:3000,输入账号密码就能登录系统
进入系统,截图如下
2. 添加主控机
-
新建docker-compose.yml配置,内容如下:
version: '3' services: nodepass-server: image: ghcr.io/yosebyte/nodepass network_mode: host command: master://:10101/api?log=debug&tls=1 restart: unless-stopped
-
一键启动,命令如下
docker-compose up -d
-
成功启动后,可通过查看容器日志获得该主控的API Key,如下:
-
在管理面板中添加主控机
3. 给主控机增加服务隧道
- 在主控机创建一个服务端隧道,用于给内网的客户端连接,如下示例:客户端可以通过8888端口连接服务端,并且通过访问服务端的9999端口可以流量代理到内网客户端指定的portainer服务
4. 在局域网电脑开启客户端
- 在内网电脑或者NAS上,新增docker-compose.yml配置文件,内容如下
version: '3' services: nodepass-client: image: ghcr.io/yosebyte/nodepass network_mode: host command: client://你的公网ip:8888/127.0.0.1:9000?min=64&max=8192 #min、max最小最大连接池数量,可自行设置 restart: unless-stopped
- 一键启动即可立即连接
docker-compose up -d
5. 完成上面几步,就可以实现内网穿透了
-
上面示例,可直接访问服务端的目标端口,访问到内网中的portainer服务,如下
-
如法炮制,增加相应的服务端、客户端,也可以穿透内网中的mysql服务
三、总结
- 该项目的智能连接池、TCP与UDP之间的无缝协议转换是其最大特点,可以复杂网络环境,实现稳定高效的数据传输
- 提供了可视化管理面板美观好看,操作方便,可以在线管理隧道连接,实时监控网络使用情况
- 可以作为其他内网穿透软件的替代品,如 frp、rathole
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容