最近跟同事学了一招SSH隧道,感觉十分牛掰。在此记录。
适用场景
生产环境中的集群往往在一个局域网中,而该局域网只能通过某台特定的堡垒机来访问。这样的网络环境下可以通过SSH隧道将一些端口隐射出来,比如CM的7180和HUE的8888端口,这样就可以在本机上通过浏览器来访问CM和HUE了。
命令示例与解释
1 |
ssh -C -f -N -g -L 7180:master-ip:7180 接口机IP -p 8282 |
上述命令意思是通过接口机(ssh端口为8282)将master-ip机器的7180端口隐射到本机的7180端口,这样可以通过访问http://localhost:7180来访问master-ip机器的7180端口。
参数详解
- -C Enable compression. 压缩数据传输。
- -f Fork into background after authentication. 后台认证用户/密码,通常和-N连用,不用登录到远程主机。
- -N Do not execute a shell or command. 不执行脚本或命令,通常与-f连用。
- -g Allow remote hosts to connect to forwarded ports. 在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。
- -L port:host:hostport. 将本地机(客户机)的某个端口转发到远端指定机器的指定端口。
- -p port. 指定跳转机器的ssh端口号。
其它
可通过ps -ef|grep ssh 来查看ssh隧道的的进程号,kill掉即可关闭该隧道。
隧道若长期闲置也会出现超时,此时kill掉再重新连接吧。
(转载本站文章请注明作者和出处 程序员的自我修养 – SelfUp.cn ,请勿用于任何商业用途)