SOCKS代理,端口转发及SSH反向代理学习

代理有正向代理反向代理 在不同情况我们可以选择不同的方式进行代理 代理的过程就是建立一条隧道的过程 如何在你本机和目标机的连接上建立一条隧道 使之两边可以进行访问就是目的 如何建立一条稳定的隧道就是 我们最后的目的
我们先来看如何建立一条隧道 这里先使用Earthworm来进行测试

环境:

本机: 192.168.80.1
VPS:59.xx.xx.88
SERVER机:192.168.80.128(外网ip) 172.17.0.1(内网ip)
内网机:172.17.0.2

正向代理

一般在操作机上有外网ip的情况
直接在操作机上做代理 :

1
./ew_for_linux64 -s ssocksd -l 1088

然后设置代理 即可
Alt text
Alt text
Alt text

反向代理

一般在操作机处于内网 但是可以访问外网的情况
vps上设置监听 内网机开启socks服务并反弹连接到vps主机上 这样连接vps主机与内网机 看起来是使用vps在做代理 实际是在使用内网主机做代理
vps机操作:

1
./ew_for_Linux32 -s rcsocks -l 233 -e 123

相当于一个本地转发 将233端口接收的数据转发到123端口
内网主机操作:
开启socks服务 反弹连接到vps的123端口

1
./ew_for_linux64 -s rssocks -d 59.110.166.88 -e 123

这样 就可以通过连接vpsip:233作为代理访问内网主机
Alt text
Alt text
Alt text

SOCKS端口转发

rtcp这是利用socks端口的一个例子 根据他手绘了一下他的流程
Alt text
开始B0,B1都处于监听状态

SSH反向代理

在这之前 先膜一波佳峰师傅/………..
在说SSH反向代理前 说一下SSH转发 SSH转发一般有3种 本地转发、远程转发、动态转发 本地与远程转发的区别在于客户端client与服务端server连接的方向 动态转发相当于代理 可以参考实战ssh端口转发
好了 来说说SSH反向代理 参考佳峰SSH如何稳定反向代理
(师傅身上有buff)
server主机端口转发:

1
ssh -p 22 -qngfNTR localhost:123:localhost:22 root@59.xx.xx.88

将vps的123端口转发到server主机22端口
可见vps正监听123端口
Alt text
再在本地做动态转发:

1
ssh -p 123 -qngfNTD 234 l0ca1@59.xx.xx.88

通过前面的转发 实际在做代理的是server主机 这样就达到反向代理(下面的图是我在虚拟机做的动态转发 我物理机设置的代理)
Alt text
最后设置SSH长连接:

1.找到 ClientAliveInterval 0和ClientAliveCountMax 3并将注释符号(”#”)去掉,
2.将ClientAliveInterval对应的0改成60,ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0,不发送.
3.ClientAliveInterval 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了.
4.ClientAliveCountMax, 使用默认值3即可.ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开.