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


17

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

我想让我的X服务器侦听来自本地网络上其他计算机上的客户端的远程连接。我知道ssh -X,那不是我想要的。我隐约记得更改了TCPListenno到的内容yes,但是我不记得应该在哪里应用此更改。

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

PS编辑/etc/X11/xinit/xserverrc以删除该-nolisten tcp选项并重新启动无法正常工作。


提示在尝试使防火墙运行时,可能有必要禁用防火墙(iptables)。

@ user243114提示返回未使用的,但我还是谢谢你:)
ΤΖΩΤΖΙΟΥ

Answers:


16

(以下是我遗忘的关于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

您可以通过以下方式验证成功:

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]服务器允许-TCP =真`
尼茨

@Nitz,请注意,xserver-allow-tcp=true您的注释中缺少“ x”。您可以删除现有注释并重写。尽管答案现在包括该解决方案。
亚历克西斯·威尔克

1
评论了有关服务器故障的原始问题:现在,默认情况下, Xorg 不监听 TCP。需要添加-listen tcp以启用它,但gdm3似乎没有提供这种可能性。
L. Levrel '18 -10-19

4

该答案与Kubuntu 17.04有关,我添加了它,因为其他任何答案(与gdm或相关lightdm)都没有帮助我。以我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)。


1
请注意,从SDDM 0.14.0(与Kubuntu 17.10 Artful一起提供)开始,该[XDisplay]部分已重命名[X11]。当我尝试帮助我的同事直到man 5 sddm.conf分别在16.04和17.10机器上运行a 并注意到差异时,这引起了很多混乱。
keithzg

2

Ubuntu 18.04在lightdm 1.26.0上以lubuntu 18.04的身份运行,这就是我要做的(仅花了我几周的时间就弄清楚了)。您必须同时创建/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

对于超薄更改选项xserver_arguments/etc/slim.conf。并重新启动您的X会话。


什么是Slim?您应该在答案中添加一个链接,以便证明它与问题有关。
ΤΖΩΤΖΙΟΥ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.