У меня есть компьютер 1 и компьютер 2. Компьютер 1 имеет KVM (клавиатура, видео мышь), а компьютер 2 просто имеет видео. Я хочу использовать компьютер 2 в качестве удаленного дисплея для компьютера 1 и ничего более. Использование ssh -x user @ host просто отображает программы с компьютера 2 на дисплее компьютера 1, что является полной противоположностью того, что мне нужно. Я перечитывал другие, несколько похожие вопросы, связанные с тем, что называется ".Xauthority », который предполагается« cookie »для X-сервера, однако он расплывчатый. Как мне поступить с отображением программ с компьютера 1 на компьютере 2, используя X-сервер, без использования SSH?
2 ответа
X в сети
Хотя при подключении к X-серверу по протоколу TCP наблюдается небольшое снижение производительности, оно значительно меньше производительности при туннелировании X через зашифрованное (ssh) TCP-соединение. Для приложений 2D и легкой 3D-графики это должно быть хорошо в локальной сети (например, 100 Мбит / с / 1 Гбит / с Ethernet), что, как я считаю, имеет место в поставленном вопросе.
В X Window System сервер - это система, предлагающая дисплей, поэтому в вашем случае это будет компьютер 2 (только видео).
Одной из проблем является то, что X обычно ожидает, что сервер также будет находиться там, где сидит / работает пользователь, поэтому он ожидает, что клавиатура и мышь также подключены к серверу. Я не уверен, что драйверы ввода evdev (Linux) или, возможно, Xinput2 могут предложить средства для использования удаленной клавиатуры и мыши.
По умолчанию X-сервер больше не прослушивает порт TCP, поэтому он должен быть включен. Тем не менее, это чаще всего следует делать в сотрудничестве с вашим диспетчером отображения окон (XDM, GDM, KDM и т.д.), Который имеет различные способы его включения. Обратитесь к документации вашего дистрибутива для используемого вами оконного менеджера (KDE, GNOME, Xfce и т.д.). В противном случае вы можете просто удалить параметры -nolisten tcp
из скрипта, запускающего Xserver.
Затем вам нужно настроить Xsecurity для обеспечения нормальной безопасности между клиентом и сервером.
Затем вы сможете запускать приложения на компьютере 1 (для простоты назовем его host1
) и отображать их обратно на компьютере 2 (ласково называемый host2
).
user@host1$ xclock -d host2:0.0
или же
user@host1$ xclock -d host2
или (в предположении Bourne-подобной оболочки)
user@host1$ export DISPLAY=host2:0.0
user@host1$ xclock &
Альтернативное решение
Поскольку я не уверен, что вы сможете успешно использовать X11 по своему усмотрению, я повторю и прокомментирую ответ @ user2986553. Я считаю, что вы можете использовать подключение к удаленному рабочему столу, например VNC.
На большинстве VNC-серверов и клиентов вы можете экспортировать дисплей в режиме «только для просмотра», не имея возможности управлять мышью или клавиатурой, что будет подходить для вашей установки. Я видел, как это используется для системы удаленного представления по всей сети кампуса. На компьютере 1 будет работать сервер VNC, а на компьютере 2 будет использоваться клиент VNC с привилегированным доступом только для просмотра.
Я считаю, что удаленное подключение к X-серверу имеет плохую производительность. Вы можете настроить сервер vnc (он похож на RDP в Windows) на компьютере 1 и подключиться к компьютеру 2 через VNC. Вот пример для RedHat Linux.