Ssh

通過 SSH 將本地 unix 上的流量代理到遠端 unix 套接字

  • January 11, 2021

我正在嘗試擁有一個本地 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

並使用:)

這裡

引用自:https://unix.stackexchange.com/questions/413948