跳到主要内容

nssh 客户端持久化部署

nssh 客户端支持守护进程模式,隧道连接在后台持续运行,关闭终端或 SSH 断开后连接不受影响。

前置条件

已下载 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_clientrealpath 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 部署,进程管理能力强

相关文档