Якщо ви вже працюєте з X сервером у Windows (як і у Xming), то в основному сторона Windows (але див. Нижче кілька важливих деталей). Основний біт, що залишився - це повідомити додаткам X11 на пі, щоб вони надсилали свої дані X11 на ваш ПК з Windows.
Це робиться через DISPLAY
змінну середовища. Зазвичай, якщо X-сервер і додаток працюють на одному комп’ютері, DISPLAY просто вкаже номер сервера (наприклад, :0
якщо ви працюєте лише на одному X-сервері) або, можливо, сервер і екран (наприклад :0.0
). Оскільки IP-адреси немає, це повідомляє X бібліотеці додатків про те, що сервер локальний, і з'єднання будуть зроблені відповідно (можливо, хоч якийсь транспорт спільної пам'яті).
Щоб сказати додатку надсилати дані X11 на віддалений вузол, включіть IP-адресу в DISPLAY
змінну. Наприклад, 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).