Как заставить X.org прослушивать удаленные соединения через порт 6000?


17

Это на 64-битном рабочем столе Ubuntu 10.10 (Maverick Meerkat).

Я хочу, чтобы мой X-сервер прослушивал удаленные соединения от клиентов на других машинах в локальной сети. Я знаю о, ssh -Xи это не то, что я хочу. Я смутно помню, как менял что-то вроде TCPListenс noна yes, но я не помню, где это изменение должно быть применено.

Я заинтересован в методе GUI или CLI.

PS редактирование /etc/X11/xinit/xserverrcдля удаления -nolisten tcpопции и перезагрузка не работает.


Подсказка Вероятно, стоит отключить брандмауэр (iptables), пока вы пытаетесь начать работу.

@ user243114 подсказка вернулась неиспользованной, но все равно спасибо :)
ΤΖΙΟΥΩΤΖΙΟΥ

Ответы:


16

(Здесь следует почти дословная копия ответа на один и тот же вопрос о сбое сервера, о котором я забыл; askubuntu еще не был создан).

На основании информации о включении XDCMP и файла /etc/gdm/gdm.schemas, найденной на этой странице , мне удалось создать /etc/gdm/custom.confфайл:

# /etc/gdm/custom.conf
[xdmcp]

[chooser]

[security]
DisallowTCP=false

[debug]

Будьте осторожны с регистром букв: он не будет работать, если вы напишите "disallowTCP = false" ... Я также изменил файл / etc / X11 / xinit / xserverrc на:

exec /usr/bin/X11/X

т.е. я удалил -nolisten tcpпараметры для исполняемого файла X. Я не знаю, нужно ли мне это. Вы можете попытаться избежать этого редактирования.

Если вы измените только файл xserverrc, X, тем не менее, начнёт с «-nolisten TCP».

После этого все, что нужно, это перезапустить процесс gdm:

sudo service gdm restart

Вы можете проверить успех как:

tzot@tzot-laptop:/etc/X11
$ netstat -an | grep -F 6000
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN
tcp6       0      0 :::6000                 :::*                    LISTEN

Обновить

После обновления до 12.04 у меня возникла такая же проблема. На этот раз виновником является lightdm, который использует система. Файл, который должен быть обновлен, является /etc/lightdm/lightdm.confобязательным дополнением xserver-allow-tcp=trueв [SeatDefaults]разделе.

А потом я тоже нашел этот ответ . :)

конспект

Итак, в 10.10 это все еще работает: создать /etc/gdm/custom.confс содержимым, как указано выше, и перезапустить gdm.


1
Для Ubuntu 14.04 единственное, что нужно, - это иметь файл наподобие /usr/share/lightdm/lightdm.conf.d/100-custom.conf`[SeatDefaults] server-allow-tcp = true`
Nitz

@Nitz, обратите внимание, что xserver-allow-tcp=trueвы пропустили «х» в своем комментарии. Вы можете удалить существующий комментарий и переписать его. Хотя ответ включает это решение сейчас.
Алексис Уилке

1
Я прокомментировал ваш оригинальный вопрос о сбое сервера : теперь Xorg по умолчанию не слушает TCP. Нужно добавить, -listen tcpчтобы включить его, но gdm3, похоже, не предлагает такую ​​возможность.
Л. Леврел

4

Этот ответ относится к Kubuntu 17.04, и я добавляю его, потому что ни один из других ответов (связанных с gdmили lightdm) не помог мне. В моем случае sddmбыл запущен. Чтобы проверить это, запустите, например,

ps -eal | grep sddm

Если он запущен, процессы sddmи sddm-helperотображаются. В этом случае добавьте файл конфигурации /etc/sddm.confс контентом

[XDisplay]
ServerArguments=-listen tcp

После создания этого файла перезагрузите вашу систему (может потребоваться sddmперезагрузка). Как следствие

PS ax | grep sddm 

показывает желаемую Xorgопцию, -listen tcpи X-сервер готов к входящим соединениям (не забудьте добавить удаленный хост с помощью xhost).


1
Обратите внимание, что по состоянию на SDDM 0.14.0 (который поставляется с Kubuntu 17.10 Artful) [XDisplay]раздел был переименован [X11]. Это вызвало много недоразумений, когда я пытался помочь своему коллеге, пока не запустил man 5 sddm.confмашину на наших машинах 16.04 и 17.10 соответственно и не заметил несоответствия!
Keithzg

2

Ubuntu 18.04 работает под управлением lubuntu 18.04 с lightdm 1.26.0, это то, что я должен был сделать (мне потребовалось всего несколько недель, чтобы понять все это). Вы должны создать как /etc/lightdm/lightdm.confи /etc/lightdm.conf.d/50-xserver-command.confтак:

sudo vi /etc/lightdm/lightdm.conf:

[Seat:*]

xserver-allow-tcp=true
xserver-command=X -listen tcp

sudo vi /etc/lightdm/lightdm.conf.d/50-xserver-command.conf:

[Seat:*]

xserver-command=X -core -listen tcp

Это заставит lightdm запустить Xorg со следующей командной строкой:

Xorg -listen tcp :0 -seat seat0 -auth /var/run/lightdm/root/:0 -listen tcp vt7  
   -novtswitch

Это дважды " -listen tcp", но ничего не повредит. Если у вас нет обоих файлов, одним из параметров Xorg будет «-nolisten tcp», который переопределяет другой «-listen tcp». Я наконец нашел ключи к этому здесь .

Затем добавьте: xhost +к вашему.bashrc

Перезапустите и убедитесь, что Xorg теперь прослушивает порт 6000:

$ netstat -nal | grep 6000
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN     
tcp6       0      0 :::6000                 :::*                    LISTEN     

Наслаждаться...


2

Начиная с Ubuntu 18.04, я посмотрел на запущенные процессы и понял, что используемый менеджер дисплеев - это gdm3:

$ ps ax|grep dm
 1515 ?        Ssl    0:00 /usr/sbin/gdm3

Затем я отредактировал /etc/gdm3/custom.confи добавил строку:

[security]
DisallowTCP=false

Как уже упоминалось, открытие порта 6000 небезопасно. Тем не менее, я использую это только в домашней сети, и порт дополнительно защищен iptablesдля открытия только для моего основного ноутбука, все должно быть в порядке.


Чем это отличается от принятого ответа?
Стивен Раух

1
Не принципиально отличается, но в 18.04 файл конфигурации был "/etc/gdm3/custom.conf", в то время как в принятом ответе "/etc/gdm/custom.conf"
Bing Ren

1

Для Slim измените параметр xserver_argumentsв /etc/slim.conf. И перезапустите сеанс X


Что такое Слим? Вы должны добавить ссылку в своем ответе, чтобы продемонстрировать, что она имеет отношение к вопросу.
ΤΖΙΟΥΩΤΖΙΟΥ
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.