X вікно Сервер Windows для Linux


0

В Інтернеті є багато посібників, що показують, як підключитися з Windows до Linux та отримати вікно X сесії, але не вказують інакше, це мене хвилює: Як переглянути програми Windows Linux з протоколом X [X window server]?

Вибачте за мою бідну англійську ...

Відповіді:


3

Існує кілька способів:

  1. VNC

    • Встановіть сервер VNC на машину Windows. Наприклад, ви можете використовувати TightVNC . Переконайтеся, що ви налаштували його для прослуховування IP-адреси, яка не підтримує циклічність, і вона не блокується брандмауером.
    • Встановіть клієнт VNC на машину Linux. Якщо ви використовуєте Debian або Ubuntu, ви можете зробити це за допомогою наступної команди в терміналі:

      $ sudo apt-get install xtightvncviewer
      
    • Підключіться до вікна Windows (припустимо, IP-адреса машини Windows є 192.168.1.10):

      $ xtightvncviewer 192.168.1.10
      
  2. RDP

    Стандартний протокол віддаленого робочого столу Windows. Зазвичай для нього не потрібна спеціальна конфігурація з боку Windows, крім встановлення Allow users to connect remotely to this computerпрапорця System Propertiesта додавання користувача до Remote Desktop Usersгрупи.

    З боку Linux ви повинні:

    • Встановіть rdesktopклієнта. Для Ubuntu або Debian ви можете використовувати таку команду:

      $ sudo apt-get install rdesktop
      
    • Підключіться до машини Windows (припустимо, її IP-адреса є 192.168.1.10):

      $ rdesktop 192.168.1.10
      
  3. X11

    Якщо ви запускаєте сервер X11 на машині Windows ( Cygwin/Xабо, Xmingнаприклад,), то зв'язок досить простий, оскільки система вікон X була розроблена таким, що має прозорість у мережі. Головне, до чого ми торкаємось, це додаток, яке можна виконувати та показувати на різних машинах. Ви запускаєте програму локально, але вказуєте DISPLAY, де відображається програма.

    У вашому випадку у вікні Windows (скажімо 192.168.1.10) запущено програму, а вікно Linux (скажіть 192.168.1.11) відобразить програму. Насправді, Windows-машині не потрібно запускати X-сервер для запуску програми - він може просто відображати його на віддаленому скриньці Linux:

    $ DISPLAY="192.168.1.11:0" xterm
    

    Коли ви запускаєте команду на машині Windows, вона запускається xterm локально, але відображає її на віддаленому сервері X, який працює на окремій машині. Під час запуску команди на машині Windows ви повинні побачити вікно терміналу, відкрите на машині Linux (віддалено).

    Це DISPLAYзмінна середовище, яка містить адресу та номер поточного дисплея. Кожна програма X вивчає цю змінну, щоб знати, де вивести себе. Важливо зрозуміти, що xterm(наприклад) не розрізняє, чи відображається він до локального X-сервера чи віддаленого X-сервера. Це мережа прозора . Наприклад, якщо бігти xtermі просто сказати:

    $ echo $DISPLAY
    

    Він надрукує струм, DISPLAY яким відображаються всі програми . Перезаписуючи цю змінну, ви повідомляєте програмі відображатись деінде. Я сподіваюся, що концепція зараз зрозуміла.

    Зауважте, що, швидше за все, ваш Linux X Server відхиляє всі вхідні з'єднання з міркувань безпеки. Щоб дозволити з'єднання з вікна Windows, виконайте таку команду:

    $ xhost +192.168.1.10
    

    Насправді цей спосіб трохи небезпечний, тому що кожен, хто призначить цю IP-адресу для себе, може підключитися до X-сервера.

    На щастя, існує чудовий і безпечний спосіб. Оскільки X-сервер просто прослуховує порт TCP - ми можемо переслати його на локальну машину через зашифрований канал, використовуючи sshякий має цю дивовижну особливість. Вам знадобиться ssh демон, який працює на машині Windows. Ви можете використовувати opensshз cygwin- це легко, просто налаштувати cygwinз вибором opensshпакету , а потім відкрити термінал і запустити ssh-host-config, але не забудьте встановити X11Forwarding yesв sshd_config.

    Тепер, як це виглядає. У вікні Linux ви запускаєте:

        $ ssh -X user@192.168.1.10 xterm
    

    І після введення пароля ви повинні побачити xtermвікно, яке виконується на машині Windows, але відображається на машині Linux. Після авторизації sshпов'язується з портом на машині Windows, де він прослуховує з'єднання та пересилає пакети по встановленому каналу до локального порту на машині Linux (зазвичай 6000 для відображення 0). Потім він біжить xtermз установкою DISPLAYдля пов'язаного порту , що забезпечує xtermдля відображення себе на віддаленому сервері X по зашифрованому каналу. У цьому випадку вам не потрібно запускати, xhostоскільки X-серверу не потрібно приймати жодних зовнішніх з'єднань.

    Тепер, як запустити додаток у вікні Linux та відобразити його у вікні Windows:

    На машині Windows вам знадобиться X-сервер ( Xmingнаприклад) та SSH-клієнт ( PuTTYнаприклад). Спочатку переконайтеся, що Xmingпрацює (є значок лотка). Потім відкрийте PuTTY, виберіть ssh, заповнити loginта passwordкоробки, а також переконайтеся , що X11 Forwardingв SSHналаштуваннях перевіряються. Потім просто натисніть connectі після цього він підключиться до вікна Linux з відкриттям вікна терміналу. Ви можете запустити xtermтам, і він відобразиться на локальному Xmingсервері (оскільки він пересилається PuTTYвіддаленій машині). Також подивіться цей посібник - є кілька скріншотів.


Привіт vdmit11, поясніть, будь ласка, ще трохи останній крок (крок 3), я використовую термінал Xming X, але не можу його знайти ніде ......
chimpaburro

Я не можу знайти термінал X ...
chimpaburro

Гаразд Все вже зрозуміло, але .. в даний момент: ssh -X user@192.168.1.10 xterm (змінив ip і користувача для мого) error return = xterm: not found ...
chimpaburro

Він не знайдений, оскільки він не встановлений на вашій машині Windows. Не можна запускати програму, яка не є X, через протокол X. Наприклад, ви не можете запустити explorer.exe, але ви можете встановити xterm або будь-яку іншу програму X. Насправді у мене немає машини Windows зараз, тому я не можу встановити Xming, щоб перевірити, які програми існують. Вам краще спробувати в зворотному напрямку: підключіть через ssh до машини Linux, запустіть xterm там, але покажіть його на пересланому Xming.
Дмитро Василянов

Гаразд, велике спасибі, я продовжу пошуки, і ви дали мені дорогу.
chimpaburro

1

Windows не підтримує протокол X. Що я б хотів зробити, це шукати щось, що говорить про RDP Windows (протокол віддаленого робочого столу). Прикладом, не підтвердженим особисто, може бути rdesktop .


дякую, але немає єдиного протоколу, який запускає деякі небажані програми та не всі Desktop
chimpaburro

На жаль, RDP - це те, що воно є.
Ніколь Гамільтон

RDP робить є однокористувальницький режим програмно-в-зв'язку.
grawity

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