这是一个用于管理 NodePass 端口转发服务的 Bash 脚本。该脚本支持通过 INI 格式的配置文件来指定服务器和客户端端口,并提供日志级别和日志文件位置的配置选项。脚本还支持作为守护进程运行,并可以设置为系统启动时自动运行。新增功能:自动下载和安装 NodePass 最新版本。
https://github.com/yosebyte/nodepass/tree/main 其他高级用法也请参见nodepass原版的说明及更新; 此脚本仅为方便下载、运行和管理nodepass可执行文件,安装服务和调用配置文件config.ini;
- Debian 或其他常见 Linux 发行版
- 具有 sudo 权限(用于安装系统服务和二进制文件)
- 网络连接(用于自动下载 NodePass)
配置文件使用 INI 格式,默认路径为 /etc/nodepass/config.ini。配置文件示例:
[general]
mode = server
[server]
host = 0.0.0.0
port = 10101
[client]
host = 127.0.0.1
port = 8080
[security]
tls_mode = 1
[logging]
level = debug
file = /var/log/nodepass.log-
[general]
mode: 运行模式,可选值为server、client或master
-
[server]
host: 服务器主机地址,默认为0.0.0.0port: 服务器端口,默认为10101
-
[client]
host: 客户端主机地址,默认为127.0.0.1port: 客户端端口,默认为8080
-
[security]
tls_mode: TLS 安全模式,可选值为0(无加密)、1(自签名证书)或2(自定义证书验证)
-
[logging]
level: 日志级别,可选值为debug、info、warn或errorfile: 日志文件路径
./nodepass_service.sh {start|stop|restart|status|install|update} [config_file]start: 启动 NodePass 服务stop: 停止 NodePass 服务restart: 重启 NodePass 服务status: 检查 NodePass 服务状态install: 将 NodePass 安装为系统服务update: 下载并安装最新版本的 NodePass 二进制文件
config_file: 配置文件路径(可选,默认为/etc/nodepass/config.ini)
-
下载并安装最新版本的 NodePass:
./nodepass_service.sh update
-
使用默认配置文件启动服务:
./nodepass_service.sh start
-
使用自定义配置文件启动服务:
./nodepass_service.sh start /path/to/custom_config.ini
-
检查服务状态:
./nodepass_service.sh status
-
安装为系统服务:
sudo ./nodepass_service.sh install
执行以下命令将 NodePass 安装为系统服务:
sudo ./nodepass_service.sh install安装后,可以使用以下命令管理服务:
- 启动服务:
sudo systemctl start nodepass - 停止服务:
sudo systemctl stop nodepass - 重启服务:
sudo systemctl restart nodepass - 查看状态:
sudo systemctl status nodepass - 启用自启动:
sudo systemctl enable nodepass - 禁用自启动:
sudo systemctl disable nodepass
脚本包含自动下载和安装最新版本 NodePass 的功能。执行以下命令可以更新 NodePass:
./nodepass_service.sh update此命令会:
- 检测系统架构
- 从 GitHub 获取最新版本(包括预发布版本)
- 下载适合当前系统的二进制包
- 解压并安装到
/usr/local/bin/nodepass
如果在启动服务时检测到 NodePass 二进制文件不存在,脚本会自动尝试下载和安装最新版本。
服务日志将写入配置文件中指定的日志文件。默认日志文件路径为 /var/log/nodepass.log。
-
如果服务无法启动,请检查:
- NodePass 是否已正确安装
- 配置文件是否存在且格式正确
- 指定的端口是否已被占用
-
如果自动下载失败,请检查:
- 网络连接是否正常
- GitHub API 是否可访问
- 是否有足够的权限写入目标目录
-
如果服务启动后无法正常工作,请检查日志文件以获取详细错误信息。
-
如果 PID 文件存在但服务未运行,可以使用
restart命令重新启动服务。