Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
mosh — 支持间歇性连接、IP漫游和高延迟链路的推测性本地回显的远程终端应用。使用基于UDP的AES-128加密和基于SSH的身份验证。 | Kitploit
工具/GitHubGitHub/mobile-shell/mosh
通用工具网络安全
GitHubmobile-shell/mosh

mosh

支持间歇性连接、IP漫游和高延迟链路的推测性本地回显的远程终端应用。使用基于UDP的AES-128加密和基于SSH的身份验证。

查看仓库网站
14.3k852626个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ci

Mosh:移动 Shell

Mosh 是一个远程终端应用,支持间歇性连接、允许漫游,并提供用户按键的推测性本地回显和行编辑。

它旨在支持 SSH 的典型交互式使用场景,此外:

  • Mosh 在客户端休眠或稍后唤醒、或暂时失去网络连接时保持会话活跃。

  • Mosh 允许客户端和服务器“漫游”并更换 IP 地址,同时保持连接存活。与 SSH 不同,Mosh 可在 Wi-Fi 网络之间切换、或从 Wi-Fi 切换到蜂窝数据再到有线以太网时使用。

  • Mosh 客户端在后台运行服务器行为的预测模型,并尝试智能地猜测每次按键将如何影响屏幕状态。当它对预测有信心时,会在等待服务器确认的同时向用户显示这些预测。大部分打字操作及左右箭头键的使用可以立即回显。

    因此,Mosh 可在高延迟链路上使用,例如蜂窝数据连接或不稳定的 Wi-Fi。与其他协议以往的本地回显尝试不同,Mosh 能与 emacs、vi、alpine 和 irssi 等全屏应用正常配合,并能在一个 RTT 内自动从偶尔的预测错误中恢复。在高延迟链路上,Mosh 在预测未得到确认时为其添加下划线,并在服务器确认后移除下划线。

Mosh 不支持 X 转发或 SSH 的非交互式用途,包括端口转发。

其他特性

  • Mosh 调整帧率,避免在慢速链路上填满网络队列,因此“Control-C”总是在一个 RTT 内生效,以停止失控进程。

  • 当用户长时间未收到服务器响应时,Mosh 会发出警告。

  • Mosh 支持丢失大量数据包的有损链路。

  • Mosh 比 SSH 和现有终端模拟器本身处理一些 Unicode 边界情况更好,但需要 UTF-8 环境才能运行。

  • Mosh 利用 SSH 建立连接并验证用户。Mosh 不包含任何特权(root)代码。

获取 Mosh

Mosh 网站 提供了许多操作系统的软件包信息,以及从源代码构建的说明。

注意:mosh-client 通过环境变量接收 AES 会话密钥。如果你要将 Mosh 移植到新操作系统,请确保其他用户无法读取正在运行的进程的环境变量。我们已经确认在 GNU/Linux、OS X 和 FreeBSD 上情况如此。

使用方法

mosh-client 二进制文件必须存在于用户机器上,mosh-server 二进制文件必须存在于远程主机上。

用户运行:

$ mosh [user@]host

如果 mosh-client 或 mosh-server 二进制文件位于用户的 $PATH 之外,mosh 接受参数 --client=PATH 和 --server=PATH 来指定其他位置。更多选项在 mosh(1) 手册页面中有说明。

Mosh 网站上提供了更多示例和常见问题解答。

工作原理

mosh 程序将通过 SSH 连接到 user@host 以建立连接。SSH 可能会提示用户输入密码或使用公钥认证登录。

此后,mosh 在服务器机器上以用户身份运行 mosh-server 进程。服务器进程监听一个高位 UDP 端口,并通过 SSH 将端口号和 AES-128 密钥发送回客户端。SSH 连接随后关闭,终端会话通过 UDP 开始。

如果客户端更改了 IP 地址,服务器将在几秒钟内开始向新 IP 地址发送数据。

Mosh 需要在客户端和服务器之间传递 UDP 数据报。默认情况下,mosh 使用 60000 到 61000 之间的端口号,但用户可以使用 -p 选项选择特定端口。请注意,-p 选项不影响 SSH 使用的端口。

给分发者的建议

关于编译器标志的说明:Mosh 是安全敏感性代码。在构建二进制包的自动化构建中,我们建议向 ./configure 传递 --enable-compile-warnings=error 选项。在 GNU/Linux 上使用 g++ 或 clang++ 时,包应能通过 -Werror 干净地编译。如果不能,请报告 bug。

在可用的情况下,Mosh 会使用各种二进制加固标志进行构建,例如 -fstack-protector-all、-D_FORTIFY_SOURCE=2 等。这些措施为 Mosh 或其使用的库中可能存在的内存损坏漏洞提供了主动安全防御。有关完整标志列表,请搜索 configure.ac 中的 HARDEN。configure 脚本会检测编译器支持哪些标志,并自动启用它们。要禁用此检测,请向 ./configure 传递 --disable-hardening。如果你在默认设置下遇到问题,请报告 bug;我们希望尽可能多的用户运行尽可能安全的配置。

Mosh 默认的优化设置为 -O2。一些分发者曾询问将其改为 -Os(这会使编译器更倾向于空间优化而非时间优化)。我们使用附带的 src/examples/benchmark 程序进行了基准测试。结果显示,在 GNU/Linux 上使用 g++ 4.6 时,-O2 比 -Os 快 40%;在 Mac OS X 上使用 clang++ 3.1 时,-O2 比 -Os 快 16%。在两种情况下,-Os 确实生成了更小的二进制文件(最多小 40%,在磁盘上节省了近 200 KB)。虽然 Mosh 不是特别消耗 CPU,并且大多数时候在用户不输入时处于空闲状态,但我们认为结果建议默认使用 -O2 更可取。

我们的 Debian 和 Fedora 打包将 Mosh 作为单个包提供。Mosh 有一个 Perl 依赖项,仅客户端使用需要该依赖项。对于某些平台,提供单独的 mosh-server 和 mosh-client 包可能更合理,这样可以在不使用 Perl 的情况下使用 mosh-server。

给开发者的说明

要开始为 Mosh 贡献代码,请安装以下依赖项:

Debian、Windows Subsystem for Linux:

$ sudo apt install -y build-essential protobuf-compiler \
    libprotobuf-dev pkg-config libutempter-dev zlib1g-dev libncurses5-dev \
    libssl-dev bash-completion tmux less

Fedora、RHEL:

$ sudo dnf group install development-tools
$ sudo dnf install automake protobuf-compiler protobuf-devel libutempter-devel \
    zlib-ng-compat-devel ncurses-devel openssl-devel bash-completion tmux less \
    perl-diagnostics

MacOS:

$ brew install protobuf automake

分叉仓库后,运行以下命令构建并测试 Mosh:

$ ./autogen.sh
$ ./configure
$ make
$ make check

Mosh 支持通过测试生成代码覆盖率报告,但此功能默认禁用。要启用它,请确保系统上安装了 lcov。然后,配置并运行测试:

$ ./configure --enable-code-coverage
$ make check-code-coverage

这将运行所有测试并生成 HTML 格式的覆盖率报告,可用你喜欢的浏览器打开。理想情况下,新添加的代码应争取实现 90%(或更高)的增量测试覆盖率。

更多信息

  • Mosh 网站:

    https://mosh.org

  • [email protected] 邮件列表:

    https://mailman.mit.edu/mailman/listinfo/mosh-devel

  • [email protected] 邮件列表:

    https://mailman.mit.edu/mailman/listinfo/mosh-users

  • Libera Chat 上的 #mosh 频道

    https://web.libera.chat/#mosh

下载工具