通过 SSH 将本地 unix 上的流量代理到远程 unix 套接字

通过 SSH 将本地 unix 上的流量代理到远程 unix 套接字

我正在尝试拥有一个本地 Unix 域套接字,例如~/docker.sock.我希望它将所有内容代理到通过 SSH 在其他地方运行的远程 Unix 域套接字。 (您可以在下面找到我正在尝试做的事情的图表)。

OpenSSH 支持这个一个例子这里)。例如,此命令会将远程服务器上的 MySQL 客户端连接代理到我的本地实例:

ssh -R/var/run/mysql.sock:/var/run/mysql.sock -R127.0.0.1:3306:/var/run/mysql.sock somehost

但这是不是我想要它是什么样子。它将来自远程套接字的流量转发到我的本地套接字(我想要另一种方式)。

在此输入图像描述

答案1

手册页ssh提供了两个补充选项:-R用于远程转发到本地,以及-L用于本地转发到远程。

在你的情况下,只需使用-L而不是-R.

答案2

从本地(Mac/linux)主机创建 ssh 隧道

ssh -nNT -L $(pwd)/docker.sock:/var/run/docker.sock user@someremote

导出 ENV 变量

export DOCKER_HOST=$(pwd)/docker.sock

并使用:)

这里

相关内容