Как мне найти отображение в `$ DISPLAY` после` ssh -X`?

У меня была такая же проблема. Проблема может быть в версии, проверьте версию

[root@linux ~]# rpm -qi targetcli | grep -i version
Version     : 2.1.fb41

fb41 описывает версию 41.

[root@linux ~]# yum -y remove targetcli
[root@linux ~]# wget -c ftp://bo.mirror.garr.it/1/slc/centos/7.1.1503/os/x86_64/Packages/targetcli-2.1.fb37-3.el7.noarch.rpm
[root@linux ~]# yum install targetcli-2.1.fb37-3.el7.noarch.rpm
[root@linux ~]# targetcli

http://rpm.pbone.net/index.php3/stat/4/idpl/26647205/dir/ centos_7 / com / targetcli-2.1.fb34-1.el7.noarch.rpm.html

Надеемся, что ссылка выше поможет вам.

0
15.03.2019, 14:02
2 ответа

"отображение $DISPLAY на C в $DISPLAY на B" что это значит?

Очевидно, grepчто-то у вас на C отсутствует, поэтому вы видите только сокеты на C, которые включают «номер порта = 6010». Другое соединение или сокет прослушивания на C отключены grep.

Раньше вы не видели никаких подключений, потому что не было запущено ни одного X-клиента, подключенного к sshd (номер порта = 6010 ), и дополнительная информация после того, как вы теперь запускаете X-клиент, который подключен к вашему sshd (порту num=6010 ).

При использовании туннеля SSH необходимо знать топологию сети. Сервер SSH на C открывает новый сокет, который прослушивает порт 6010, потому что его запросил клиент SSH на B. Туннель ssh по-прежнему установлен между клиентом SSH на B и сервером SSH на C (, порт num=22, если sshd специально не настроен ), вы не видите это туннельное соединение, так как вы grepего отключили. X-клиенты на C подключаются к sshd (номер порта = 6010 ), затем sshd мультиплексирует эти соединения с помощью ssh-туннеля и перенаправляет эти соединения на X-сервер на B.

«Соединение между $DISPLAY на C и $DISPLAY на B» на самом деле не существует, туннель ssh создается между C :22 и адресом _из __SSH _клиент _на _B. И поскольку это соединение, это невозможно в состоянии ПРОСЛУШИВАНИЯ.

используйте netstat -apбез grepдля просмотра дополнительной информации.

Все соединения, упомянутые в этом ответе, означают настоящее TCP-соединение с точки зрения ядра, а не «соединения» с точки зрения конечных -пользователей.

1
28.01.2020, 02:30

Why is the connection between $DISPLAY on C and $DISPLAY on B LISTEN not ESTABLISHED, given that the X forwarding channel has been created?

Канал переадресации X еще не создан. Он создается только тогда, когда клиент подключается к порту 6010на вашемC(удаленном )компьютере. Соединение будет перенаправлено как отдельный канал через соединение ssh (, а не через другое соединение tcp между Cи B). Чтобы отобразить все каналы, перенаправленные через ssh-соединение, вы должны использовать escape ~#в начале строки:

$ ssh -X localhost
$ ~#
The following connections are open:
  #0 client-session (t4 r0 i0/0 o0/0 fd 5/6 cc -1)
$ netstat | grep 6010

$ xterm &
$ ~#
The following connections are open:
  #0 client-session (t4 r0 i0/0 o0/0 fd 5/6 cc -1)
  #1 x11 (t4 r3 i0/0 o0/0 fd 8/8 cc -1)
$ netstat | grep 6010
tcp6       0      0 localhost:6010          localhost:39698         ESTABLISHED
tcp6       0      0 localhost:39698         localhost:6010          ESTABLISHED

When I run a X client on C, how can I verify that it is connected to the X server on B (the local machine)?

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

1
28.01.2020, 02:30

Теги

Похожие вопросы