一、命令参数
ssh -L/R <起点 port>:<终点 ip>:<终点 port> <SSH hostname>
SSH连接都是由自己发起,去连接别人,建立一条通道
-L/R
参数约定的是这条通道的端口转发的方向
二、本地端口转发
host1是本地主机,host2是远程主机,这两台主机之间无法连通,host1可以连通host3,host3可以连通host2
在host1执行
ssh -L 8080:host2:80 host3
这条命令的意思是,指定SSH绑定本地端口8080,然后指定host3将所有的数据,转发到目标主机host2的80端口
host2的80端口是web服务,在host1执行
curl localhost:8080
三、远程端口转发
host1是本地主机,host2是远程主机,这两台主机之间无法连通,host3可以同时连通host1和host2,但是host1不能连通host3
在host3执行
ssh -R 8080:host2:80 host1
这条命令的意思,让host1监听它自己的8080端口,然后将所有数据经由host3,转发给目标主机host2的80端口
在host1执行
curl localhost:8080
四、参数
- -N 表示只连接远程主机,不打开远程shell
- -T 表示不为这个连接分配TTY
- -f 表示SSH连接成功后,转入后台运行