Использование Xming X Window Server через VPN

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

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

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

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

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

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

7.08.2008 08:20:47
9 ОТВЕТОВ
РЕШЕНИЕ

Скорее всего, это либо 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 может быть очень неудобен в настройке, но он обычно работает отлично, когда вы освоите его.

5
7.08.2008 13:11:03

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

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

0
7.08.2008 10:45:04

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

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

$ x11vnc -display :0

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

1
20.08.2015 22:12:41
Синминг также ужасно медленный по локальной сети ...: - /
Homer6 15.01.2012 20:16:23

Возможно, вам больше повезет, если вы переадресовываете X11 через 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
7.08.2008 20:01:24

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

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

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

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

Что делать:

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

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

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

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

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

    • Выберите переключатель SSH Protocol

    • Выберите категорию SSH: Tunnels в левой части экрана конфигурации.

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

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

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

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

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

5
20.08.2008 11:53:57

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

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

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

0
15.02.2009 20:57:10

Я получил 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
2
9.01.2015 01:41:10

У меня та же проблема с Xming и Putty на компьютере с Windows 10, и я нашел решение здесь . Я преодолел проблему, просто добавив туннели к сессии в 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
31.08.2017 10:20:18

Вы должны добавить 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
16.11.2018 01:55:06