nssh 持久化部署
一句话版:把 nssh 从「手动挡」换成「自动挡」——守护进程常驻后台、断线自动重连,终端一关隧道也不断。
nssh 客户端支持守护进程模式,隧道连接在后台持续运行,关闭终端或 SSH 断开后连接不受影响。
📌 本文分工:nssh 的下载安装与命令详版见 nssh 部署教程,本文专注守护进程持久化(开机自启、连接管理)。
前置条件
已下载 nssh 客户端:客户端下 载页面
快速部署
1. 启动守护进程
./nssh_client --daemon
守护进程启动后,会持续管理所有隧道连接,即使终端关闭也不会中断。
2. 添加隧道连接
./nssh_client --daemon -R <远程端口>:<本地地址>:<本地端口> <用户名>@<服务器地址> -p <端口> --passwd <密码>
示例: 将本地 8000 端口映射到公网 80 端口
./nssh_client --daemon -R 80:127.0.0.1:8000 demo@n1.neiwangyun.net -p 22 --passwd your_password
信息
如果守护进程未启动,执行添加连接命令时会自动启动,无需手动执行第 1 步。
3. 验证连接状态
./nssh_client --list
输出示例:
PID Username Remote_Local Server Status
--------------------------------------------------------------------------------
12345 demo 80:127.0.0.1:8000 n1.neiwangyun.net:2022 online
开机自启配置
Linux(crontab)
编辑 crontab 定时任务:
crontab -e
添加以下配置,系统启动时自动运行隧道:
@reboot /path/to/nssh_client --daemon -R 80:127.0.0.1:8000 demo@n1.neiwangyun.net -p 22 --passwd your_password
备注
将 /path/to/nssh_client 替换为实际的 nssh 客户端路径。可使用 which nssh_client 或 realpath nssh_client 查看完整路径。
Linux(systemd)
创建服务文件 /etc/systemd/system/nssh-tunnel.service:
[Unit]
Description=NSSSH Tunnel Service
After=network.target
[Service]
Type=simple
ExecStart=/path/to/nssh_client --daemon -R 80:127.0.0.1:8000 demo@n1.neiwangyun.net -p 22 --passwd your_password
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable nssh-tunnel
sudo systemctl start nssh-tunnel
查看服务状态:
sudo systemctl status nssh-tunnel
Windows
使用服务管理工具将 nssh_client 注册为 Windows 服务:
- nssm(推荐):
nssm install nssh-tunnel "C:\path\to\nssh_client.exe" "--daemon -R 80:127.0.0.1:8000 demo@n1.neiwangyun.net -p 22 --passwd your_password" - WinSW:通过 XML 配置文件注册服务
连接管理命令
| 命令 | 说明 |
|---|---|
./nssh_client --list | 查看所有运行中的连接 |
./nssh_client --restart <连接ID> | 重启指定连接 |
./nssh_client --restart all | 重启所有连接 |
./nssh_client --stop <连接ID> | 停止指定连接 |
./nssh_client --takeover | 平滑升级客户端(保留连接) |
./nssh_client --takeover-force | 强制接管(无需确认) |
连接 ID 格式:用户名@服 务器地址:端口,例如 demo@n1.neiwangyun.net:2022
方案对比
| 特性 | nssh 客户端 | Docker 部署 | Supervisor 部署 |
|---|---|---|---|
| 配置复杂度 | 简单 | 中等 | 中等 |
| 资源占用 | 低(约 6MB) | 较高 | 低 |
| 跨平台 | 支持 | 支持 | 仅 Linux |
| 开机自启 | 需手动配置 | 自动 | 需手动配置 |
| 多连接管理 | 支持 | 不支持 | 支持 |
| 平滑升级 | 支持 | 需重建容器 | 需重启进程 |
如何选择?
- 个人用户:推荐 nssh 客户端,配置简单,资源占用低
- 服务器环境:推荐 Docker 部署,隔离性好,易于管理
- 多隧道场景:推荐 Supervisor 部署,进程管理能力强
相关文档
- nssh 部署教程 — 下载安装与完整命令参考
- Docker 部署 — 使用 Docker 容器部署隧道
- Supervisor 部署 — 使用 Supervisor 管理隧道进程
记住内网云:隧道想跑得久,daemon 来守;开机自启配好,断线自己连回。