如何让X.org在端口6000上侦听远程连接?

这是在Ubuntu 10.10(Maverick Meerkat)64位桌面上。

我想让我的X服务器监听来自本地网络上其他机器的客户端的远程连接。 我知道ssh -X ,这不是我想要的。 我依稀记得将TCPListenno更改为yes ,但我不记得应该在哪里应用此更改。

我对GUI方法或CLI方法感兴趣。

PS编辑/etc/X11/xinit/xserverrc删除-nolisten tcp选项并重新启动不起作用。

(下面是一个关于serverfault上相同问题的自我回答的几乎逐字副本,我忘了这个问题;还没有创建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 

您可以validation成功:

 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并且[SeatDefaults]部分中所需的添加是xserver-allow-tcp=true

然后,我也找到了答案 。 🙂

概要

因此,在10.10中,这仍然有效:使用上面指定的内容创建/etc/gdm/custom.conf并重新启动gdm

这个答案与Kubuntu 17.04有关,我添加它,因为没有其他答案(与gdmlightdm )帮助了我。 在我的情况下, sddm正在运行。 要检查这一点,请运行

 ps -eal | grep sddm 

如果它正在运行,则显示进程sddmsddm-helper 。 在这种情况下,添加包含内容的配置文件/etc/sddm.conf

 [XDisplay] ServerArguments=-listen tcp 

创建此文件后重启系统(可能是sddm重启就足够了)。 作为结果

 PS ax | grep sddm 

显示所需的Xorg选项-listen tcp ,X Server已为传入连接做好准备(不要忘记使用xhost添加远程主机)。

从Ubuntu 18.04开始,我查看了正在运行的进程,并发现正在使用的显示管理器是gdm3:

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

然后我编辑了/etc/gdm3/custom.conf并添加了一行:

 [security] DisallowTCP=false 

如上所述,打开端口6000并不安全。 但是我只在家庭网络中使用它,并且iptables进一步保护端口只能打开我的主笔记本电脑,它应该没问题。