当我从 SSH 服务器请求 X 转发时,SSH 服务器会设置一个$DISPLAY
值为 value 的变量localhost:10.0
。此外,它开始侦听127.0.0.1
端口6010
(以及IPv6 的::1
端口):6010
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.1:6010 *:* users:(("sshd",pid=11405,fd=10))
X 客户端如何知道它们需要连接到 TCP 端口 6010?这是否以默认情况下它们连接到 TCP 端口6000
+的方式工作<display number>
,并且在本例中显示编号为 10,那么它们将连接到 TCP 端口6010
?
答案1
它是的一部分X11协议(搜索“6000”)并记录在案例如在Xorg(1)
:
奥格监听 6000+ 端口n, 在哪里n是显示编号。可以使用选项禁用此连接类型
-nolisten
(请参阅Xserver(1)
手册页了解详细信息)。
答案2
是的。
正如浏览器知道要连接到端口 80 上的 Web 服务器(除非另有指定)一样,X 客户端知道要与端口 6000 + 显示号码上的 X 服务器通信(除非另有指定)。
这些期望是什么标准(以及更广泛地说,文档)为我们提供了——否则,计算机之间的交互将变得极其麻烦。