我正在尝试拥有一个本地 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
并使用:)
从这里