nssh 客户端使用说明
nssh 是内网云官方推出的 SSH 反向代理客户端,针对内网云穿透服务进行 深度优化,内置守护进程模式、多连接管理与断线自动重连等能力。
下载地址
各平台客户端下载:https://www.neiwangyun.net/client/download/
备注
Windows 版本分为 legacy 和非 legacy 两种,legacy 版本适用于 Windows 7 及更早系统。
功能特性
- SSH 反向隧道协议支持(兼容
ssh -R) - 守护进程模式,支持后台持久运行
- 多连接管理,支持同时运行多个隧道实例
- 断线自动重连机制
- 密码认证
- 跨平台支持(Linux、macOS、Windows、路由器等)
- 极 小的二进制体积(5–7 MB)
- 低运行内存占用(5 个连接,32 位系统约 6 MB,64 位系统约 10 MB)
快速开始
前台模式
前台模式直接运行隧道连接,连接生命周期与终端会话一致,关闭终端即断开。
./nssh_client -R <远程端口>:<本地地址>:<本地端口> <用户名>@<服务器地址> -p <端口> --passwd <密码>
按 Ctrl+C 可主动终止连接。
示例:
./nssh_client -R 80:127.0.0.1:8000 demo@n1.neiwangyun.net -p 2022 --passwd your_password
守护进程模式(推荐)
守护进程模式由后台守护进程管理隧道连接,关闭终端后连接继续运行。
提示
添加新连接时,若守护进程尚未启动,系统会自动创建守护进程,无需手动启动。
添加隧道连接:
./nssh_client --daemon -R <远程端口>:<本地地址>:<本地端口> <用户名>@<服务器地址> -p <端口> --passwd <密码>
示例:
./nssh_client --daemon -R 80:127.0.0.1:8000 demo@n1.neiwangyun.net -p 22 --passwd your_password
参数说明
| 参数 | 说明 |
|---|---|
--daemon | 启用守护进程模式,后台运行 |
--list | 列出所有运行中的隧道连接 |
--takeover | 接管旧版本客户端的连接,执行前会提示二次确认 |
--takeover-force | 接管旧版本客户端的连接,跳过确认直接执行 |
--restart <连接ID|all> | 重启指定连接,或使用 all 重启全部连接 |
--stop <连接ID> | 停止指定连接 |
-R <远程端口>:<本地地址>:<本地端口> | 反向隧道配置,格式与 ssh -R 一致 |
-p <端口> | SSH 服务端端口 |
--passwd <密码> | SSH 认证密码 |
连接 ID
每个隧道连接以 用户名@服务器地址:端口 作为唯一标识(连接 ID)。
示例:demo@n1.neiwangyun.net:2022
对同一连接 ID 重复执行创建命令时,旧连接将被自动断开并重建。
常用命令示例
查看所有连接
./nssh_client --list
输出示例:
PID Username Remote_Local Server Status
--------------------------------------------------------------------------------
12345 demo 80:127.0.0.1:8000 n1.neiwangyun.net:2022 online
12346 user2 81:127.0.0.1:8001 n1.neiwangyun.net:2022 online
添加新连接
./nssh_client --daemon -R 80:127.0.0.1:8000 demo@n1.neiwangyun.net -p 2022 --passwd demo123
接管连接
信息
接管功能将平滑升级与进程重启相结合,适用于客户端版本更新或连接状态异常的场景。
当 nssh 客户端发布新版本时,可通过接管功能完成平滑升级:
- 下载新版本客户端
- 执行接管命令
- 根据提示输入
Y或y确认 - 旧版本连接信息自动迁移,新版本启动并重新建立连接
对当前版本执行接管操作等同于重启客户端并重连 所有连接。
./nssh_client --takeover
强制接管连接
强制接管跳过确认步骤,直接断开旧连接并启动新进程。
./nssh_client --takeover-force
重启连接
./nssh_client --restart demo@n1.neiwangyun.net:2022
重启所有连接
./nssh_client --restart all
停止连接
./nssh_client --stop demo@n1.neiwangyun.net:2022
使用场景
Web 服务映射
将本地 8000 端口的 Web 服务映射到公网:
./nssh_client --daemon -R 80:127.0.0.1:8000 demo01@n1.neiwangyun.net -p 22 --passwd your_password
数据库服务映射
将本地 MySQL 数据库映射到公网:
./nssh_client --daemon -R 80:127.0.0.1:3306 demo02@n1.neiwangyun.net -p 22 --passwd your_password
SSH 服务映射
将本地 SSH 服务映射到公网:
./nssh_client --daemon -R 80:127.0.0.1:22 demo03@n1.neiwangyun.net -p 22 --passwd your_password
故障排查
No daemon running
原因:守护进程未启动。
处理方式:
./nssh_client --daemon
Connection already exists
原因:该连接 ID 对应的隧道已存在。
处理方式:
./nssh_client --stop demo@n1.neiwangyun.net:2022
Failed to send signal
原因:守护进程未运行或已异常退出。
处理方式:
./nssh_client --daemon
nssh 与 ssh -R 对比
| 特性 | ssh -R | nssh |
|---|---|---|
| 守护进程模式 | 需依赖外部工具(如 systemd) | 内置支持 |
| 多连接管理 | 需启动多个独立进程 | 单守护进程统一管理 |
| 断线重连 | 需额外配置 | 内置自动重连 |
| 连接管理命令 | 无 | 支持 list / stop / restart |
| 资源占用 | 较高,单连接约 5 MB 内存 | 较低,单进程 5 连接约 10 MB |
注意事项
- 连接唯一性:每个连接 ID 仅允许存在一个活跃 连接,重复创建将替换旧连接
- 环境变量冲突:避免在系统环境中设置
USERNAME、SERVER_HOST等变量,可能引起参数误判 - 端口冲突:确保本地端口和远程端口未被其他服务占用