Як змусити 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-enable-tcp = true '
Nitz,

@Nitz, зауважте, що xserver-allow-tcp=trueу вашому коментарі пропущено "x". Ви можете видалити наявний коментар і переписати його. Хоча відповідь включає таке рішення і зараз.
Алексіс Вільке

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 сеанс.


Що таке Slim? Ви повинні додати посилання у своїй відповіді, щоб ви продемонстрували, що воно має відношення до питання.
ΤΖΩΤΖΙΟΥ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.