隧道转发:即SSH隧道,一般我们使用它来远程连接或sftp文件传输,当然他还有端口转发的功能。SSH隧道是一种把一种网络协议封装进另外一种网络协议进行传输的技术,因为ssh隧道通常会绑定一个本地端口,所有发向这个端口的数据包,都会被加密并透明地传输到远端系统,这也是端口转发这一名字的由来。
执行ssh连接.
ssh -R 7000:localhost:8080 <user>@<remote_ip>
7000为服务器监听的端口,8080为本地端口,localhost就不需要解释了,user代表ssh连接用户,remote_ip代表远程主机ip。
直接用ssh连接的话,断开之后端口映射就没有了,这时可以使用autossh,当然,为了更方便还可以写成脚本文件:
#!/usr/bin/expect -f
set user ihelin
set host x.x.x.x
set password xxxxxx
spawn autossh -M 5678 -NR :7000:localhost:8080 $user@$host
expect "*password*"
send "$password\r"
interact
expect eof
然后再写一个执行脚本:
#!/bin/zsh
expect -f ~/.ssh/shell/autongrok
最后可以建一个软连接或指定一个别名方便执行