SSH Tunnel 实践


参考资料:
http://blog.creke.net/722.html

背景介绍:
目前,线上有好几个数据中心,不同数据中心之间的速度差异还是比较大的,我们一般选择一个最优的数据中心作为VPN的接入点。
但有些时候直接通过VPN访问其它数据中心的服务会很慢,于是就临时通过SSH Tunnel来解决。

应用场景:
直接访问服务器idc1-server1很快,但是直接访问idc2-server2很慢,而idc1-server1到idc2-server2却很快;
于是,我们打算用idc1-server1服务器作为跳板来连接idc2-server2。

ssh -i /path/to/sshkey -l username -f -N -T -L 8088:idc2-server2:80 idc1-server1
通过浏览器直接访问http://localhost:8088就相当于访问了http://idc2-server2

关键参数介绍:
-L 8088:idc2-server2:80
将本地的某个端口转发到远端指定机器的指定端口。工作原理是:本地机器上分配了一个socket侦听port端口,一旦这个端口上有了连接, 该连接就经过安全隧道(idc1-server1)转发出去,即 localhost:8088 -> (idc1-server1) -> idc2-server2:80;

ssh -i /path/to/sshkey -l username -f -N -T -L 2022:idc2-server2:22 idc1-server1
通过scp可以将文件通过idc1-server1中转后传送到idc2-server2中:
scp -i /path/to/sshkey -P 2022 upload_file_name.tgz dong@localhost:/path/to/upload/

  1. No comments yet.
(will not be published)
*