因為某些需求,需要將資料從 A主機(192.168.100.101) 搬到 C主機(192.168.100.103)。另外還有一部 B主機((192.168.100.102)。
目前實際狀況:
- A主機,C主機 不能互通。
- B主機 可以透過 ssh 直接連接 A主機,C主機。
- A主機,C主機 不能直接連接 B主機。
解決想法:
- B主機透過 ssh 連接A主機,C主機,並分別建立反向隧道。
- A主機,C主機 利用反向隧道,透過 B主機傳遞資料。
- 建立 A主機, C主機 與 B主機的反向隧道
- 傳遞資料
建立反向隧道:
B(192.168.100.102)-->A(192.168.100.101) :
ssh -NfR 4000:localhost:22 user@A主機(192.168.100.101)
B(192.168.100.102)-->C(192.168.100.103) :
ssh -NfR 4000:localhost:22 user@C主機(192.168.100.103)
A, C 連回 B主機:
A(192.168.100.101)-->B(192.168.100.102) :
ssh user@localhost -P 4000
C(192.168.100.103)-->B(192.168.100.102) :
ssh user@localhost -P 4000
使用scp,資料從 A主機 –> C主機
先登入到 A主機上,再:
scp -J user@localhost:4000 A主機/本地檔案路徑 user@C主機(192.168.100.103):/目的地路徑/
若是大檔案,或是大批檔案,建議使用 rsync
先登入到 A主機上,再:
rsync -avz -e 'ssh -J user@localhost:4000' A主機/本地檔案路徑 user@C主機(192.168.100.103):/目的地路徑/
