“转发也可以通过Unix套接字完成”是如何做到的?

“转发也可以通过Unix套接字完成”是如何做到的?

https://zaiste.net/ssh_port_forwarding/#remote-port-forwarding

远程端口转发是使用-R 参数创建的。

ssh -R source_port:forward_to_host:destination_port via_host 

该命令连接到 via_host。 via_host 运行 SSH 服务器。然后,它将所有连接尝试转发到远程 via_host 计算机上的 source_portdestination_port 本地机器上的端口(发起 ssh 命令的机器)。 forward_to_host 计算机必须可从本地计算机访问。转发也可以通过 Unix 套接字完成。

“转发也可以通过 Unix 套接字完成”是什么意思?这是怎么做到的?

ssh远程端口转发不是通过Unix套接字完成的,而是通过Internet套接字完成的吗?

谢谢。

答案1

让我们看看真正的ssh(1)手册页而不是那个网页:

 -R [bind_address:]port:host:hostport
 -R [bind_address:]port:local_socket
 -R remote_socket:host:hostport
 -R remote_socket:local_socket

该选项有四种形式-R,您引用的是第一种形式。它将具有 SSH 连接远程端的系统上的 TCP 端口转发到指定主机,以及连接本地端的 TCP 端口号。

第二种形式描述了如何将远程 TCP 端口转发到本地 Unix 套接字:

ssh -R 1234:/tmp/local_socket user@remote_host

换句话说,当有东西连接到 TCP 端口 1234 时remote_host,该连接将被转发到/tmp/local_socket本地主机上的 Unix 套接字。

第三种形式描述了如何以相反的方式执行此操作,即远程套接字到本地端的 TCP 端口:

ssh -R /tmp/remote_socket:1234:somehost user@remote_host

这里,remote_host 上的进程可以使用 Unix 套接字/tmp/remote_socket,并且连接将通过 SSH 连接传递到本地端,然后通过常规 TCP 连接传递到 的 TCP 端口 1234 somehost

第四种形式描述从远程 Unix 套接字转发到本地套接字:

ssh -R /tmp/remote_socket:/tmp/local_socket user@remote_host

在这里,进程remote_host可以打开 Unix 套接字 at/tmp/remote_socket以连接到/tmp/local_socket本地主机。

相关内容