跳到主要内容

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 客户端发布新版本时,可通过接管功能完成平滑升级:

  1. 下载新版本客户端
  2. 执行接管命令
  3. 根据提示输入 Yy 确认
  4. 旧版本连接信息自动迁移,新版本启动并重新建立连接

对当前版本执行接管操作等同于重启客户端并重连所有连接。

./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 -Rnssh
守护进程模式需依赖外部工具(如 systemd)内置支持
多连接管理需启动多个独立进程单守护进程统一管理
断线重连需额外配置内置自动重连
连接管理命令支持 list / stop / restart
资源占用较高,单连接约 5 MB 内存较低,单进程 5 连接约 10 MB

注意事项

  1. 连接唯一性:每个连接 ID 仅允许存在一个活跃连接,重复创建将替换旧连接
  2. 环境变量冲突:避免在系统环境中设置 USERNAMESERVER_HOST 等变量,可能引起参数误判
  3. 端口冲突:确保本地端口和远程端口未被其他服务占用

相关链接