Использование сервера Xming X Window через VPN - PullRequest
3 голосов
/ 07 августа 2008

У меня установлен сервер Xming X Window на ноутбуке под управлением Windows XP для подключения к некоторым серверам разработки UNIX.

Работает нормально, когда я подключаюсь напрямую к сети компании в офисе. Однако он не работает при удаленном подключении к сети через VPN.

Когда я запускаю Xming при удаленном подключении, ни один из окон моего терминала не отображается.

Я думаю, это может быть связано с тем, что переменная окружения DISPLAY неправильно настроена на IP-адрес ноутбука, когда он подключен.

Я заметил, что когда я выполняю ipconfig, когда удаленно подключаюсь, у моего ноутбука есть два IP-адреса: один, назначенный ему из сети компании, и локальный IP-адрес, который я настроил для него в моей "локальной сети "с моего модема / роутера.

Есть ли какие-то изменения в конфигурации, которые мне нужно внести в Xming для поддержки его использования через VPN?

Ответы [ 9 ]

5 голосов
/ 20 августа 2008

Спасибо за помощь @Stephen и @Greg Castle, используя ее, мне удалось решить мою проблему.

Чтобы предоставить основное руководство для других (с нуля):

Использование Xwindows на ПК с Windows для подключения к серверу UNIX через VPN

С чего нужно начать:

Что делать:

  1. Установите оба из вышеперечисленных на ПК с Windows

  2. В меню Пуск Windows выберите: Программы -> Xming -> Xming

  3. Запустите программу Putty.exe в том месте, куда вы ее загрузили, на

  4. На экране конфигурации PuTTY выполните следующие действия:

    • Установите IP-адрес равным IP-адресу вашего сервера UNIX

    • Выберите радиокнопку SSH Protocol

    • Выберите категорию SSH: Туннели в левой панели экрана конфигурации

    • Установите флажок Включить пересылку X11

    • Нажмите кнопку Открыть

    • Войдите как обычно на сервер UNIX

    • Убедитесь, что каталог, содержащий утилиты X windows, находится на вашем пути, например, / usr / X / bin на Solaris

    • Запустите ваши команды X Windows в окне замазки, и они создадут новые окна на вашем рабочем столе

4 голосов
/ 07 августа 2008

Скорее всего, это либо X-аутентификация, либо привязка X-сервера к интерфейсу, либо ваша переменная DISPLAY. Я не использую Xming сам, но есть некоторые общие явления, чтобы проверить. Один тест, который вы можете сделать, чтобы вручную проверить правильность переменной DISPLAY:

  1. Запустите свой VPN. Запустите ipconfig, чтобы убедиться, что у вас есть два IP-адреса, которые вы упомянули (ваш локальный IP и ваш VPN-IP).
  2. Запустите Xming. Запустите 'netstat -n', чтобы увидеть, как он привязан к интерфейсу. Вы должны увидеть что-то вроде localIP: 6000 или VPNIP: 6000. Это может быть не 6000, но есть вероятность, что это будет что-то подобное. Если VPNIP: 6000 отсутствует, он может быть привязан только к вашему локальному IP или даже к 127.0.0.1. Это, вероятно, не будет работать через VPN. Проверьте, есть ли какие-либо настройки Xming для привязки к другим или всем интерфейсам.
  3. Если вы видите VPNIP: 6000 или что-то подобное, обратите внимание на то, что он говорит, и на удаленную оболочку на вашем хосте UNIX (возможно, что-то вроде ssh, если не то, что вам нужно, чтобы получить текстовый терминал).
  4. В терминале UNIX введите echo $ DISPLAY. Если ничего не отображается, попробуйте «export DISPLAY = VPNIP: 0.0», где VPNIP - это ваш IP-адрес VPN, а 0.0 - порт, который вы видели на шаге 3, минус 6000 с .0 в конце (т.е. 6000 = 0.0, 6010 = 10.0).
  5. На хосте UNIX запустите что-то вроде 'xclock' или 'xterm', чтобы проверить, работает ли он. Сообщение об ошибке должно быть информативным. Он сообщит вам, что либо не удалось подключиться к хосту (проблема с подключением), либо произошла ошибка аутентификации (вам нужно согласовать Xauth на вашем хосте и локальном компьютере или Xhosts на локальном компьютере).

Открытие Xhosts (с + для всех хостов или чем-то подобным) не так уж плохо, если у вас есть локально защищенная сеть и вы используете VPN. Надеюсь, это поможет вам найти решение проблемы. Другой вариант, который часто бывает полезен, поскольку он работает через VPN или простое подключение по ssh, - это ssh-туннелирование или пересылка X11 через ssh. Это имитирует подключение к X-серверу на вашем локальном компьютере, перенаправляя порт на хосте UNIX на локальный порт на вашем сервере X-сервера. Ваше отображение обычно будет выглядеть как localhost: 10.0 для локального порта 6010.

X может быть очень неудобен в настройке, но обычно он прекрасно работает, как только вы его освоите.

1 голос
/ 31 августа 2017

У меня такая же проблема с Xming и Putty на компьютере с Windows 10, и я нашел решение здесь . Я преодолел проблему, просто добавив Tunnels к сеансу в PuTTY. Но сначала нужно проверить;

  • sshd_config в / etc / ssh (в rhel7).
  • Включить пересылку X11 на левой навигационной панели Connections > SSH > X11
  • iptables в / etc / sysconfig / (в rhel7). Если порты заблокированы, и у вас есть разрешение, откройте порты для 6000. Я добавил строку ниже перед первой строкой отклонения, чтобы открыть порты от 6000 до 6003. Это может быть более конкретно в вашем случае.

    -A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 5901:5903,6000:6003 -j ACCEPT

Тогда,

  • Перейдите на Connections > SSH > Tunnels в PuTTY и добавьте туннель с Source Port=6000, Destination=127.0.0.1:6000 и установите переключатель Remote Затем нажмите кнопку Add.
  • После того, как ваше SSH-соединение установлено, установите переменную DISPLAY вручную с помощью следующей команды:
    export DISPLAY=127.0.0.1:0.0

Дополнительная информация;
Если вы установите DISPLAY переменную как 127.0.0.1:1.0, он будет связываться через порт 6001. В этом случае вам нужно добавить еще один туннель для порта номер 6001.

1 голос
/ 09 января 2015

Xming и PuTTY работают с Cisco VPN путем замены конфигурации PuTTY в Connection > SSH > X11 > X display location, localhost:0.0 на VPNIP:0.0. VPNIP можно увидеть в VPN statistics client address information, если щелкнуть левой кнопкой мыши на значке замка VPN client и выбрать Statistics....

Я не ошибся с переменной окружения DISPLAY на удаленном хосте. Но, как и другие, я изменил sshd_config на удаленном хосте, добавив следующие строки:

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
AddressFamily inet
1 голос
/ 07 августа 2008

У меня не было ничего, кроме проблем с Xming. Когда я мог заставить это работать, это было чрезвычайно медленно (это по VPN). IMO X не предназначен для работы через медленные соединения, это слишком болтливо. Под медленным подключением я имею в виду что-то меньшее, чем подключение к локальной сети.

Мое решение было использовать x11vnc. Это позволяет вам получить доступ к вашему существующему сеансу X11 через VNC. Я просто SSH в мой ящик через VPN и запускаю:

$ x11vnc -display :0

Таким образом, я могу получить доступ ко всему, что открыл в течение дня. Затем, когда я этого не сделаю, я просто выхожу ( Ctrl - C ) в терминале, чтобы закрыть x11vnc.

0 голосов
/ 16 ноября 2018

Вы должны добавить DNS-имена и IP-адрес компьютера с Linux в файл C: \ Program Files \ xming \ X0.hosts. Файл должен содержать:

LinuxBox.mydomain.com
LinuxBox
192.168.1.25

Это правильный ответ: https://www.slackwiki.com/X_Windows:_Remote_X_to_Windows_with_Xming

0 голосов
/ 15 февраля 2009

putty + XMing - мне пришлось вручную установить переменную окружения DISPLAY для запуска (вместе с проверкой «Включить пересылку X11» в putty - Connection / SSH / X11)

экспорт DISPLAY = 0: 10,0

(было установлено значение "localhost: 10.0", которое не работало)

0 голосов
/ 07 августа 2008

Возможно, вам больше повезет, если вы выполните X11 Forwarding через SSH вместо того, чтобы напрямую поиграть с вашей переменной DISPLAY. Пересылка X11 по SSH безопасна и использует существующее SSH-соединение для туннелирования, поэтому работа через VPN не должна быть проблемой.

К счастью, с Xming все довольно просто. Если вы открываете свое соединение из Xming (например, опция plink), я полагаю, что по умолчанию оно устанавливает пересылку X11. Если вы подключаетесь с помощью другого SSH-клиента (например, PuTTY), вам просто нужно включить пересылку X11 (например, «ssh -X user @ host»). В PuTTY опция находится в разделе Соединение -> SSH -> X11 -> нажмите «Включить пересылку X11».

Убедитесь, что Xming работает в фоновом режиме на вашем ноутбуке, и выполните стандартный тест X 'xclock'. Если вы получаете сообщение типа «X соединение с локальным хостом: 19.0 прервано (явное уничтожение или отключение сервера)». тогда Xming, скорее всего, не работает.

Кроме того, убедитесь, что вы не устанавливаете явную переменную DISPLAY в каких-либо сценариях запуска; SSH установит псевдоним (что-то вроде localhost: 10 или в примере выше localhost: 19) для туннеля X11 и автоматически установит DISPLAY в это значение. Перезапись DISPLAY, очевидно, будет означать, что вы больше не будете указывать на правильный туннель X11. Обратная сторона этого заключается в том, что другие терминалы, которые не имеют набора пересылки SSH X11, могут использовать то же значение DISPLAY и использовать преимущества туннеля.

Я предпочитаю вариант PuTTY, но некоторые из моих коллег используют plink из Xming.

0 голосов
/ 07 августа 2008

У меня нет точной проблемы, но я думаю, что вам нужно посмотреть на xhost и убедиться, что удаленному vpn разрешено отправлять данные на x-сервер

Эта ссылка может помочь: http://www.straightrunning.com/XmingNotes/trouble.php

...