Использование Xming X Window Server через VPN
Вопрос
У меня есть Xming X Window Server, установленный на ноутбуке под управлением Windows XP для подключения к некоторым серверам разработки UNIX.
Это прекрасно работает, когда я подключаюсь непосредственно к сети компании в офисе.Однако это не работает, когда я удаленно подключаюсь к сети через VPN.
Когда я запускаю Xming при удаленном подключении, ни одно из окон моего терминала не отображается.
Я думаю, это может быть как-то связано с тем, что переменная среды ОТОБРАЖЕНИЯ неправильно устанавливает IP-адрес ноутбука при его подключении.
Я заметил, что когда я выполняю ipconfig при удаленном подключении, у моего ноутбука есть два IP-адреса: тот, который назначен ему из корпоративной сети, и локальный IP-адрес, который я настроил для него в своей "локальной сети" с моего модема / маршрутизатора.
Есть ли какие-то изменения конфигурации, которые мне нужно внести в Xming, чтобы поддержать его использование через VPN?
Решение
Скорее всего, это либо аутентификация X, привязка X-сервера к интерфейсу, либо ваша отображаемая переменная.Я сам не использую Xming, но есть некоторые общие явления, которые нужно проверить.Один из тестов, который вы можете выполнить, чтобы вручную проверить правильность отображаемой переменной, это:
- Запустите свой VPN.Запустите ipconfig, чтобы убедиться, что у вас есть два указанных вами IP-адреса (ваш локальный IP-адрес и ваш VPN-IP).
- Начните делать Xming.Запустите "netstat -n", чтобы увидеть, как он привязан к интерфейсу.Вы должны увидеть что-то с надписью localIP: 6000 или VPNIP: 6000.Возможно, это не 6000, но, скорее всего, это будет что-то в этом роде.Если нет VPNIP: 6000, это может быть привязка только к вашему localIP или даже к 127.0.0.1.Вероятно, это не будет работать через VPN.Проверьте, есть ли какие-либо настройки Xming, чтобы привязать его к другим или ко всем интерфейсам.
- Если вы видите VPNIP: 6000 или что-то подобное, обратите внимание на то, что там написано, и подключите удаленную оболочку к вашему хосту UNIX (надеюсь, что-то вроде ssh, если не все, что вам нужно, чтобы получить текстовый терминал).
- В терминале UNIX введите 'echo $DISPLAY'.Если ничего не отображается, попробуйте 'export DISPLAY= VPNIP: 0.0', где VPNIP - ваш IP-адрес VPN, а 0.0 - порт, который вы видели на шаге 3, минус 6000 с .0 в конце (т. е.6000 = 0.0, 6010 = 10.0).
- На хосте 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
С чего вам нужно начать:
Клиент Putty Telnet / SSH, скачать putty.exe (бесплатно) с:
http://www.chiark.greenend.org.uk /~sgtatham/putty/download.html
Сервер Xming X, скачайте Xming (бесплатно) с:
http://sourceforge.net/project/showfiles.php?group_id=156984
Что делать:
Установите оба вышеперечисленных устройства на свой ПК с Windows
В меню Пуск Windows выберите:Программы -> Xming -> Xming
Запустите программу Putty.exe в том месте, куда вы ее загрузили
На экране настройки 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