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

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

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

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

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
35 920
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

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

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

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

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

$ x11vnc -display :0

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

Xming тоже ужасно медленный по локальной сети ...: - /

Homer6 16.01.2012 00:16
Ответ принят как подходящий

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

  1. Запустите свой VPN. Запустите ipconfig, чтобы убедиться, что у вас есть два упомянутых IP-адреса (ваш локальный IP-адрес и ваш IP-адрес VPN).
  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". Если ничего не отображается, попробуйте «экспортировать 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 может быть небрежным в настройке, но обычно он отлично работает, когда вы его освоите.

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

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

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

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

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

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

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

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

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

Что делать:

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

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

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

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

    • Установите IP-адрес как IP-адрес вашего UNIX-сервера.

    • Установите переключатель "Протокол SSH".

    • Щелкните категорию SSH: Tunnels на левой панели экрана конфигурации.

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

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

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

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

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

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

экспорт ДИСПЛЕЙ = 0: 10.0

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

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

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

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
AddressFamily inet

У меня такая же проблема с 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.

Вам необходимо добавить 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

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