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


11

我想知道是否可以在不同主机之间共享tmux服务器套接字。例如,我有一个虚拟机(来宾)在主机中运行,并且我在来宾中运行tmux会话,我的主机是否可以访问来宾的tmux会话并使用它做一些有趣的事情?(例如,将命令发送到访客的会话)?

Answers:


10

tmux-users邮件列表中出现了一个相关主题:尝试使用socat来隧道tmux套接字

摘要:

  • 由于tmux使用文件描述符传递(客户端将其tty fd传递给服务器),因此仅在tmux客户端与其服务器之间转发带内,套接字上的对话框将不起作用。
    • 可能可以开发一个专门的代理,但似乎并不简单-它需要了解足够多的tmux套接字协议才能知道何时接受和发送fds,并且需要一种代理代理。 fds以及在这些fds上执行的任何操作。
  • 邮件列表张贴者设法使用大部分有效的socat来设计出一个tmux转发系统
    • 您可以通过给-x和提供-y选项来设置不同的初始终端大小new-session,但这不能解决调整大小的处理(socat需要处理和转发SIGWINCH(通过TIOCGWINSZ / TIOCSWINSZ ioctls))。
    • 听起来您可能希望“转发服务器”位于来宾OS中,但是链接的解决方案将使服务器位于您的主机OS中。您可能会对其进行重新设计,以便进行其他操作。

除非出于某种原因不能在客户机上运行SSH服务器,否则使用SSH登录到客户机可能更容易(让SSH程序处理通过网络的连接并管理ttys)并附加(或发出命令)到)驻地TMUX这种方式:

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

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


我想知道现在是否可以使用tmux控制模式来构建
mndrix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.