SSH端口转发

tar czf myzlc.gz zlc/
tar cz zlc/
ssh root@server ‘tar cz zlc’ | tar xzv
ssh -D 8080 root@server

一、本地端口转发
本地转发中的本地是指将本地的某个端口转发到其他主机的某个端口,这样当我们的程序连接本地的这个端口时,其实间接连上了其他主机的某个端口,当我们发数据包到这个端口时数据包就自动转发到了那个远程端口上了
命令语法:ssh -L [bind-address:]port:host:hostport server_address
解释下:bind_address表示本地主机的ip(绑定地址),这是针对系统有多块网卡,不指定默认是127.0.0.1
port:本地主机指定监听的端口
host:远程主机的ip
hostport:指定远程主机的端口,如果远程主机是HTTP,就是80,FTP(21)。。。
server_address:远程主机的ip,也可以是能够访问到远程主机的另一个ip(我们通过实验来理解)
另外有几个参数需要知道:
-L:指定本地(客户端)主机上的指定端口转发到给定的远端的主机和端口
-N:不执行远程指令
- f:放在后台执行

netstat -nt:列出tcp网络数据的端口
netstat -ntlp:列出系统已在监听的网络连接端口及PID

A 192.168.1.120 server
B 192.168.1.121 ssh client
C 192.168.1.109 跳转机

范例1 在B上执行
ssh -Nf -L 192.168.1.121:7900:192.168.1.120:22 192.168.1.109
ssh 192.168.1.121 -p 7900 先登录192.168.1.121 再跳到192.168.1.109 ,再通过192.168.1.109跳到192.168.1.120
B—(port:7900)已经建立隧道(port:22)—C—–(port:xxxx)ssh登录时动态建立隧道(port:22)—–A

ssh -Nf -L 192.168.1.121:8900:192.168.1.120:21 192.168.1.109

范例2
ssh -Nf -L 192.168.1.121:7900:192.168.1.120:22 192.168.1.120
ssh 192.168.1.121 -p 7900 先登录192.168.1.121 再调到192.168.1.120 ,再通过120跳到192.168.1.120
B—(port:7900)已经建立隧道(port:22)—A—–(port:xxxx)动态建立隧道(port:22)—–A

应用场景:针对C不被允许访问A的情况。可以通过如下命令模拟此场景
1、在A的/etc/hosts.deny,配置一行“sshd:192.168.1.109”
2、在C上执行ssh 192.168.1.120,返回“ssh_exchange_identification: read: Connection reset by peer”错误
3、在B上执行 ssh -Nf -L 192.168.1.121:7900:192.168.1.120:22 192.168.1.120
4、在C上执行ssh 192.168.1.121 -p 7900就可登录192.168.1.120了

最后需要提醒的是,如果想关闭某个ssh隧道,只能用kill杀死相关进程,隧道被关闭后,指定的连接也会关闭

二、SSH远程端口转发:
远程转发和本地很相似,原理也差不多,但是不同的是,本地转发是在本地主机指定的一个端口,而远程转发是在远程的主机上指定一个端口将指向该端口的连接转发到本地端口。本质一样,区别在于需要转发的端口是在远程主机上还是在本地主机上。
远程转发使用的命令和本地转发的选项不同:
ssh -R [bind-address:]post:host:hostport server_address
这里需要注意的是:
bind-address指定的是远程主机ip,不是本机
port:远程主机指定监听的端口
host:你需要访问的主机
hostport:指定被访问主机的端口
server_address:远程主机和谁?建立的隧道,指定谁

主机A:192.168.1.109(外网)
主机B:192.168.1.121(外网)
主机C:192.168.1.120(内网)

在C上执行

ssh -Nf -R 192.168.1.121:9000:192.168.1.120:22 192.168.1.121
127.0.0.1:41392 127.0.0.1:9000 ESTABLISHED 4622/ssh (ssh -p 9000 127.0.0.1命令时建立)
192.168.1.121:22 192.168.1.120:40432 ESTABLISHED 4598/sshd: root (执行ssh -Nf -R命令建立的)
192.168.1.120:39892 192.168.1.120:22 ESTABLISHED 4153/ssh (ssh -p 9000 127.0.0.1命令时建立)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值