a:10.10.10.134
b:10.10.32.32
c:10.10.19.5
说明 :a可以ssh b,c ,b与c不能直连
本地端口转发:
$ ssh -l 2121:host2:21 host3
命令中的l参数一共接受三个值,分别是"本地端口:目标主机:目标主机端口",它们之间用冒号分隔。
这条命令的意思,就是指定ssh绑定本地端口2121, 然后指定host3将所有的数据,转发到目标主机
host2的21端口(假定host2运行ftp,默认端口为21)。
远程端口转发:
在机器a上执行:
ssh -c -f -n -g -r 2121:10.10.32.32:22 user@10.10.19.5
在 10.10.19.5上开一个2121的端口服务
在10.10.19.5上执行:ssh user@127.0.0.1 -p 2121
可以直接连到10.10.32.32上去了
如果要关闭这个tunnel 需要在a机器上把这个ssh进程kill掉
使用rsync把19.5下文件同步到32.32上去
1:建立ssh 隧道
在a机器执行:
ssh -c -f -n -g -r 2121:10.10.32.32:22 user@10.10.19.5
2:在c机器上执行:
scp -r -p 2121 /sky/* user@127.0.0.1:/backup/
输入密码后可以进行scp
3:在c机器上执行rsync命令:
rsync -avzhp -e "ssh -p 2121 " /sky/* user@127.0.0.1:/backup/ (正常同步)
rsync -avzhp -e "ssh -p 2121 " /sky/* user@localhost:/backup/ (正常同步)
ssh tunnel真是运维的好帮手!