Чи можливий обмін сокетами tmux між хостами?


11

Мені цікаво, чи можна поділити гніздо сервера tmux між різними хостами. Наприклад, у мене в хості працює віртуальна машина (гість), і я запускаю tmux-сеанс у гостях, чи можна моєму хост-машині отримати доступ до сеансу tmux гостя і робити цікаві речі з ним? (наприклад, відправлення команд на сеанс гостя)?

Відповіді:


10

Родинна тема прийшла на tmux-користувачів списку розсилки : Спроба використовувати SOCAT тунель tmux гніздо

Підсумок:

  • Просто переадресація діалогового вкладеного діалогового режиму між клієнтом tmux та його сервером не працюватиме, оскільки tmux використовує дескриптор файлів, що передає (клієнт передає свій tty fd на сервер).
    • Можливо, можливо розробити спеціалізований проксі, але, схоже, це було б нетривіально - потрібно було б знати достатньо протоколу сокета tmux , щоб знати, коли приймати та надсилати файли, і знадобиться метод наближення до FDS та будь-які операції, виконані на цих FDS.
  • Плакат зі списку розсилки зумів розробити систему переадресації tmux за допомогою socat, який в основному працював .
    • Ви, ймовірно, можете встановити інший початковий розмір терміналу, надавши параметри -xта -yпараметри new-session, але це не виправить обробку розміру ( socat потрібно було б обробляти та пересилати SIGWINCH (через йоктли TIOCGWINSZ / TIOCSWINSZ)).
    • Здається, ви можете хотіти, щоб ваш "сервер переадресації" знаходився у вашій гостьовій ОС, але пов'язане рішення дозволило б сервер перебувати у вашій хост-OS. Ви, ймовірно, могли б переробити це, щоб це було навпаки.

Якщо немає певних причин, коли ви не можете запустити SSH-сервер свого гостя, можливо, простіше використовувати SSH для входу до свого гостя (нехай програми SSH обробляють з'єднання по мережі та керують ttys) та приєднуються до (або видають команди) до) резидента tmux таким чином:

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

Ви можете створити ключ SSH та ~/.ssh/configзаписи на своєму хості, щоб спростити командні рядки ssh (тобто, використовуючи трохи ssh guestвище, а не вище ssh -i guest-user1-key user1@guest-vm-ip).


Цікаво, чи це зараз можна побудувати в режимі управління
tmux
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.