SSH端口本地转发

     SSH隧道也可以叫SSH端口转发,这两者并没有什么太大的区别,SSH端口转发竟然实现了正向代理、反向代理和内网穿透三种常用的网络功能,更佩服其功能的强大和使用中的便利。
本地端口转发(Local Port Forwarding),是将本地主机某个端口流量转发到远程主机的指定端口。
其命令行语法是:

ssh -L [bind_address]:<local port>:[remote host]:<remote port> <SSH hostname>

     ”-L”即“local”的首字母,类似的远程转发的”-R”是“remote”的首字母,动态转发的“-D”是“dynamic”的首字母,很好记。

示例1:

ssh -L 5901:5901 username@host

     该命令中将本地的5901端口通过ssh隧道转发到远程主机的5901端口,远程连接时输入localhost或者127.0.0.1和5901端口便连到了远程主机的5901端口。通过iptables和ssh的本地转发,实现了他人无法连接,只有自己才能访问的目的。

     问:本地端口转发命令中的 remote host和 SSH hostname 可以是不同的机器么?

     答:需要注意的是“-L”选项中的“远程主机”并不特指连接过去的机器(默认是连接上的机器),可以是任何一主机。例如,可以将本机的8080端口流量转发到fujieace.com的80端口:

ssh -L 8080:fujieace.com:80 username@host

示例2(实战):

     假设Server-A的IP为:192.168.58.101,Server-B的IP是:192.168.58.103

     在Server-B上执行如下命令:

ssh -f -N -L 9906:192.168.58.101:3306 192.168.58.101
     上面的这条命令,就建立了本地端口转发(SSH隧道),本地服务器Server-B发送到9906端口的所有数据都会被转发到远程服务器192.168.58.101的3306端口。

     SSH隧道已经建立,可以往隧道发送数据,会自动转发到目的服务器和端口。

     在本地服务器Server-B(192.168.58.103)上执行如下命令就可以建立到远程服务器Server-A(192.168.58.101:3306)的MySQL连接:

mysql -h127.0.0.1 -P9906 -uroot -p

相关的项目命令:

ssh -p 11658  -N -L :8091:159.226.49.132:18092 root@121.46.19.2

通过本地的localhost:8091端口经过跳板root@121.46.19.2的11658端口跳转到159.226.49.132的18092端口(这个必须是开放的,可由跳板ip跳转过来)。
修改159.226.49.132d的server.xml中原本的8080端口改为18092,可通过该端口来监听本地发送来的请求。这样就可在本地,通过http://localhost:8091/gclust/index.jsp访问到原本访问不到的界面。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值