答案1
底层的通信是非常与ssh -R6010:localhost:6000
...类似,但 SSH 中的 X 转发在后台发挥了更多作用。
例如,如果已经有一个服务正在侦听端口 6010,该怎么办? SSH 将尝试 6011、6012.. 直到找到空闲端口。
然后您需要在远程端设置 DISPLAY 变量。这可能是localhost:10.0
或localhost:11.0
或...取决于所选择的远程端口。
然后您需要处理 X 身份验证 ( xauth
) 以确保客户端发送本地 X 服务器所期望的正确的 magic cookie...
对于更现代的 ssh 服务器和客户端,连接可能是到/来自 unix 域套接字而不是 TCP 套接字,但概念仍然是相同的。
基本上,X 选项可以ssh
处理 X 会话的许多“内务管理”要求……以及转发流量。