Если вы уже используете X-сервер в Windows (как и в Xming), то сторона Windows в основном сделана (но некоторые важные детали приведены ниже). Оставшийся ключевой бит - сказать приложениям X11 на ПИ отправлять свои данные X11 на ваш ПК с Windows.
Это делается с помощью DISPLAY
переменной среды. Обычно, если X-сервер и приложение работают на одном компьютере, DISPLAY просто указывает номер сервера (например, :0
если вы используете только один X-сервер) или, возможно, сервер и экран (например :0.0
). Поскольку IP-адрес отсутствует, это говорит библиотеке приложений X о том, что сервер является локальным, и соединения будут устанавливаться соответствующим образом (вероятно, через какой-то вид транспорта с общей памятью).
Чтобы указать приложению отправлять данные X11 на удаленный узел, включите в DISPLAY
переменную IP-адрес . Например, export DISPLAY=192.168.1.10:0
. Это сообщит любым приложениям X11, что им нужно открыть TCP-соединение с X-сервером № 0 на узле 192.168.1.10. DNS-имена хостов здесь хороши, если они есть в вашей сети.
Две потенциальные проблемы
Как я писал в первом абзаце, простого запуска Xming может быть недостаточно. Может потребоваться дополнительная настройка.
Во-первых, ваш сервер X11 должен быть настроен на прием подключений от удаленных узлов через TCP. Многие распространенные сегодня X-серверы (я не знаю о Xming) принимают подключения только от локально работающих приложений, если вы явно не настроили их иначе. Это функция безопасности, поскольку каждый открытый сокет является потенциальным вектором для атаки.
Во-вторых, сервер X11 поддерживает базу данных хостов / пользователей, которым разрешено подключаться. Вам нужно добавить в белый список IP-адрес вашего Raspberry Pi. Вы можете сделать это, запустив xhost
команду из Xming в Windows, например, из консоли, запущенной в xterm. Вы также можете напечатать, xhost +
чтобы отключить эту проверку безопасности, но это опасно, потому что оно позволит любому приложению из любой точки мира открывать соединения с вашим дисплеем. Если вы находитесь за брандмауэром в локальной сети, где вы всем доверяете (например, у себя дома), это самый простой подход, но xhost
не торопитесь, чтобы правильно настроить его, если это не так.
Альтернатива: ssh -Y
Используя описанный выше подход, все приложения X11 попытаются открыть TCP-соединения с вашим X-сервером. Эти соединения не являются безопасными. Кто-то в вашей локальной сети может отслеживать их.
Чтобы решить эту проблему, вместо установки переменной DISPLAY на Raspberry pi, используйте -Y
параметр при подключении к нему (например slogin -Y hostname
). Параметр -Y (например, -X) создаст туннель между узлами для переноса трафика X11. Это обеспечит безопасность и безопасность трафика X11. Он также назначит собственную переменную окружения DISPLAY, чтобы приложения использовали туннель. Это также может исключить необходимость связываться с ним, xhost
поскольку (что касается вашего X-сервера) соединения исходят локально (с исходной стороны туннеля SSH).