Вопрос

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

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

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

Я думаю, это может быть как-то связано с тем, что переменная среды ОТОБРАЖЕНИЯ неправильно устанавливает IP-адрес ноутбука при его подключении.

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

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

Это было полезно?

Решение

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

  1. Запустите свой VPN.Запустите ipconfig, чтобы убедиться, что у вас есть два указанных вами IP-адреса (ваш локальный IP-адрес и ваш VPN-IP).
  2. Начните делать Xming.Запустите "netstat -n", чтобы увидеть, как он привязан к интерфейсу.Вы должны увидеть что-то с надписью localIP: 6000 или VPNIP: 6000.Возможно, это не 6000, но, скорее всего, это будет что-то в этом роде.Если нет VPNIP: 6000, это может быть привязка только к вашему localIP или даже к 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-сервере box.Обычно на вашем дисплее будет отображаться что-то вроде localhost: 10.0 для локального порта 6010.

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

Другие советы

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

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

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

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

Что делать:

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

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

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

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

    • Установите IP-адрес таким, чтобы он был IP-адресом вашего UNIX-сервера

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

    • Нажмите кнопку SSH :Категория туннелей на левой панели экрана настройки

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

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

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

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

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

Я заставил 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

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

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

$ x11vnc -display :0

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

У меня такая же проблема с 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 замазать шпаклевкой и добавить туннель с Source Port=6000, Destination=127.0.0.1:6000 и проверить Remote переключатель.Затем нажмите кнопку Add кнопка.
  • После того, как ваше SSH-соединение установлено, задайте отображаемую переменную вручную с помощью приведенной ниже команды:
    export DISPLAY=127.0.0.1:0.0

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

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

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

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

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

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

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

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

putty + XMing - мне пришлось вручную установить переменную среды ОТОБРАЖЕНИЯ, чтобы запустить работу (наряду с проверкой "Включить перенаправление X11" в putty - Connection / SSH / X11)

ОТОБРАЖЕНИЕ экспорта = 0: 10.0

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

Вы должны добавить DNS-имя (ы) компьютера Linux и IP-адрес в файл 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top