Ssh
通過 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
但這不是我想要的樣子。它將來自遠端套接字的流量轉發到我的本地套接字(我想要它的另一種方式)。
手冊頁
ssh
提供了兩個補充選項:-R
遠端轉發到本地,以及-L
本地轉發到遠端。在您的情況下,只需使用
-L
而不是-R
.
從本地 (Mac/linux) 主機創建 ssh 隧道
ssh -nNT -L $(pwd)/docker.sock:/var/run/docker.sock user@someremote
導出 ENV 變數
export DOCKER_HOST=$(pwd)/docker.sock
並使用:)
從這裡