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

ΤΖΩ*_*ΙΟΥ 20 xorg 10.10 networking remote

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

我想让我的 X 服务器侦听来自本地网络上其他机器上的客户端的远程连接。我知道ssh -X这不是我想要的。我依稀记得改变了类似TCPListenfrom noto 的东西yes,但我不记得应该在哪里应用这个改变。

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

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

ΤΖΩ*_*ΙΟΥ 19

(以下是我已经忘记的关于 serverfault的相同问题的自我回答的几乎逐字复制;askubuntu 尚未创建)。

根据在此页面中找到的有关启用 XDCMP和文件 /etc/gdm/gdm.schemas 的信息,我设法创建了一个/etc/gdm/custom.conf文件:

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

[chooser]

[security]
DisallowTCP=false

[debug]
Run Code Online (Sandbox Code Playgroud)

注意字母大小写:它不会工作,如果你写“disallowTCP=false”......我还将 /etc/X11/xinit/xserverrc 文件更改为:

exec /usr/bin/X11/X
Run Code Online (Sandbox Code Playgroud)

即我删除-nolisten tcp了 X 可执行文件的选项。我不知道我是否需要。您可能想尝试避免此编辑。

如果您只更改 xserverrc 文件,X 仍然会以“-nolisten TCP”开头。

之后,只需要重新启动 gdm 进程:

sudo service gdm restart
Run Code Online (Sandbox Code Playgroud)

您可以验证成功为:

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
Run Code Online (Sandbox Code Playgroud)

更新

升级到 12.04 后,我遇到了同样的问题。这一次,罪魁祸首是系统使用的lightdm。需要更新的文件是/etc/lightdm/lightdm.conf,需要添加xserver-allow-tcp=true[SeatDefaults]部分是a 。

后来,我也找到了那个答案。:)

概要

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

  • 对于 Ubuntu 14.04,唯一需要的是像 `/usr/share/lightdm/lightdm.conf.d/100-custom.conf` 这样的文件,其中包含 ` [SeatDefaults] server-allow-tcp=true ` (2认同)
  • 我 [评论了您关于服务器故障的原始问题](https://serverfault.com/questions/99147/karmic-koala-ubuntu-enable-remote-x-clients-through-tcp#comment1214930_99152):现在 Xorg _by 默认没有不听_TCP。需要添加`-listen tcp` 来启用它,但是`gdm3` 似乎没有提供这种可能性。 (2认同)

Tri*_*mon 8

这个答案与 Kubuntu 17.04 和 20.04 相关,我添加了它,因为其他答案(与gdm或相关lightdm)都没有帮助我。在我的情况下sddm正在运行。要检查这一点,例如运行

ps -eal | grep sddm
Run Code Online (Sandbox Code Playgroud)

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

[X11]
ServerArguments=-listen tcp
Run Code Online (Sandbox Code Playgroud)

20.04 或

[XDisplay]
ServerArguments=-listen tcp
Run Code Online (Sandbox Code Playgroud)

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

ps ax | grep sddm 
Run Code Online (Sandbox Code Playgroud)

显示所需的Xorg选项-listen tcp,并且 X 服务器已准备好接收传入连接(不要忘记使用 来添加远程主机xhost)。

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

小智 7

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
Run Code Online (Sandbox Code Playgroud)

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

[Seat:*]

xserver-command=X -core -listen tcp
Run Code Online (Sandbox Code Playgroud)

这将导致 lightdm 使用以下命令行运行 Xorg:

Xorg -listen tcp :0 -seat seat0 -auth /var/run/lightdm/root/:0 -listen tcp vt7  
   -novtswitch
Run Code Online (Sandbox Code Playgroud)

这有“ -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     
Run Code Online (Sandbox Code Playgroud)

享受...