主机之间共享 tmux 套接字可能吗?

主机之间共享 tmux 套接字可能吗?

我想知道是否可以在不同的主机之间共享 tmux 服务器套接字。例如,我的主机内运行着一台虚拟机(客户机),我在客户机中运行着一个 tmux 会话,我的主机是否可以访问客户机的 tmux 会话并用它做一些很酷的事情?(例如,向客户机的会话发送命令)?

答案1

相关主题出现在tmux-用户邮件列表尝试使用 socat 来隧道化 tmux 套接字

概括:

  • 只需在tmux客户端及其服务器将无法工作,因为tmux使用文件描述符传递(客户端将其 tty fd 传递给服务器)。
    • 也许可以开发一个专门的代理,但这似乎并不是一件容易的事——它需要知道足够多的tmux套接字协议知道何时接受和发送 fds,并且它需要一种代理 fds 的方法以及在这些 fds 上执行的任何操作。
  • 邮件列表发布者设法制定了一个tmux转发系统使用索卡特大部分时间都在工作
    • -x您可能可以通过提供和-y选项来设置不同的初始终端大小new-session,但这不能修复调整大小处理(索卡特需要处理和转发 SIGWINCH (通过 TIOCGWINSZ/TIOCSWINSZ ioctls))。
    • 听起来你可能希望你的“转发服务器”位于你的客户操作系统中,但链接的解决方案会让服务器位于你的主机操作系统中。你可能需要重新设计它,让它反过来。

除非出于某种原因你不能在客户机上运行 SSH 服务器,否则使用 SSH 登录到客户机(让 SSH 程序处理网络连接和管理 tty)并附加到(或向其发出命令)常驻tmux那样:

host$ ssh guest tmux attach -t console
host$ ssh guest tmux new-session -s 'fiddling around'
# etc.

~/.ssh/config您可以在主机上创建 SSH 密钥和条目,以简化远程控制命令行(即使用ssh guest上面的而不是ssh -i guest-user1-key user1@guest-vm-ip)。

相关内容