0

我想创建一个服务,允许我显示存储在我连接到的远程服务器文件系统中的文档和媒体(想想 PDF 和 JPEG)ssh。X11 转发并没有削减它,因为它太慢了。相反,我想设计一个协议来按需从远程系统复制文件,然后显示它们。

我的问题是双重的:

  1. 如何获取远程机器上的端口?因为我可能有多个连接,所以我不能简单地使用一个众所周知的端口——我必须动态分配一个端口。

  2. 获得端口后,如何将其与远程机器上的显示应用程序通信?SSH X11转发通过设置DISPLAY环境变量进行通信,代理转发通过设置SSH_AUTH_SOCK环境变量进行通信。也许我可以用远程命令做一些创造性的事情?

我欢迎任何想法。

4

1 回答 1

1

你真的需要一个远程端口吗?如果您可以 ssh 进入远程机器,为什么不运行一个命令并通过 ssh 命令将数据发送回,例如 rsync、Mercurial、Git 等。SSH 可以提供一个 8 位的干净连接,所以它就像一个套接字连接。

需要明确的是,我的建议是:

  1. SSH 从起点到终点
  2. 在 SSH 会话中,在目标上运行将数据写入其标准输出的命令
  3. 标准输出通过 SSH 连接从目标发送到源
  4. 收集原始机器上 SSH 标准输出中出现的数据

这样就无需在起点或终点上打开特定端口。

确实,如果您真正想要的是“一种可以按需从远程系统复制文件的协议”,那么 SCP、SFTP 或 rsync 通过 SSH 怎么样?

于 2011-11-20T19:04:01.797 回答