ssh 直连,正向,反向代理

1. 直接转发

如果执行命令的机器为192.168.1.99

ssh -D 8972 192.168.1.100

建立连接之后,回环地址的8972端口会被监听,如果通过这个代理发送请求

curl --socks5 localhost:8972 http://www.baidu.com

或者配置浏览器使用socks5代理:localhost:8972。信道如下,即192.168.1.99会以本地一个高于32768的端口和192.168.1.100建立连接

localhost:48321<--->localhost:8972 192.168.1.99:48333<---->192.168.1.100:22    192.168.1.100:48999<----->baidu

这种方式常用作代理上网

2. 本地端口转发

假定执行命令的机器是192.168.1.99,这台机器不能访问外网,但是192.168.1.100是一台代理服务器,可以访问外网

ssh -L 8972:www.baidu.com:80 user@192.168.1.100

通过这个命令,当访问本机的8972端口时

telnet localhost 8972

将建立以下链路:

localhost:48500 <--->localhost:8972 192.168.1.99:48512<--->192.168.1.100:22 192.168.1.100:48515<--->www.baidu.com:80

如果其中的192.168.1.100和www.baidu.com都换成localhost,则这会将本地端口8972的请求全部转发到80端口

一般如果不指定-g参数,建立的是本地端口监听;指定-g参数,则将该端口对其他ip地址开放

3. 远程端口转发(反向代理)

假定执行命令的机器是192.168.1.99,这台机器不能被外网访问,但是可以访问局域网的mysql,但是192.168.1.100是一台代理服务器,可以被外网访问,但是不能访问mysql服务器。

在192.168.1.99上执行

ssh -R 8972:mysql:3306 192.168.1.100

这样,可以再192.168.1.100上访问localhost:8972端口就可以访问到mysql。

访问过程中,通信链路:

192.168.1.100:48500 <---> 192.168.1.100:8972 192.168.1.100:22 <---> 192.168.1.99:48634 <---> mysql:3306

这种方式可以用于从公网访问内网机器

参考: https://www.cnblogs.com/qiaoyanlin/p/7765025.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值