我使用 X11 从 Amazon EC2 中托管的 Ubuntu 实例转发到我的本地主机。仅当远程(Amazon EC2)DISPLAY
变量设置为localhost:10.0
“我知道这10
是序列号”时,我才能进行转发,但我想知道它是如何决定的。我尝试过转发xclock
应用程序,它似乎仅在序列号为10
且没有其他内容时才起作用(0,1,2 .. 9 不起作用)。
FWIW,我的本地主机的DISPLAY
变量设置为:0
有人能启发我吗?提前致谢。
答案1
当您连接到您使用的实例时ssh
,它在远程上创建了一个小型服务器,该服务器在端口 6010 上侦听通过 ssh 连接转发回的连接。当您运行DISPLAY=localhost:10 xclock
该应用程序时,该应用程序会将 10 转换为 6010(X11 约定)并连接到该本地端口以获取发送回给您的数据。
答案2
至少在 OpenSSH 中,实际的数字偏移量由X11DisplayOffset
sshd 配置文件(Ubuntu 上的 /etc/ssh/sshd_config)中的参数确定:
X11Forwarding yes
X11DisplayOffset 10
从man sshd_config
X11DisplayOffset
Specifies the first display number available for sshd(8)'s X11
forwarding. This prevents sshd from interfering with real X11
servers. The default is 10.