ssh代理,所谓的正向和反向只是
ssh代理,所谓的正向和反向只是
ssh
功能还是很强大的,提供了三个代理参数
-L
参数,正向代理-R
参数,反向代理-D
参数,socks5
代理
附加参数 -v
显示详细信息 -N
仅转发数据
说的通俗易懂点就是我有 hostA,hostB,hostC
如图 hostA
和hostB
能通信,hostC
和hostB
也能通信
但是hostA
和hostC
不能通信。
所谓的正向和反向只是相对的,相对于你的机器是A
还是C
正向代理
这个时候可以然A
通过B
去访问C
就是正向代理
可以使用如下命令
此时访问B
的portB
端口相当于访问C
的portC
端口(在B中执行)
ssh -LvN 0.0.0.0:PortB:HostC:PortC user@HostC
此时访问A的portA端口相当于访问C
的portC
端口(在A中执行)
ssh -LvN 0.0.0.0:PortA:HostC:PortC user@HostB
反向代理
这个时候C
通过B
访问A
就是反向代理,就跟nginx
一道理
可以使用如下命令
这个时候C
访问B
的PortB
端口相当于访问A
的PortA
端口(在A中执行)
ssh -RvN 0.0.0.0:PortA:HostB:PortB user@HostB
当然还要开启hostB
上的sshd
的GatewayPorts yes
配置文件位置/etc/ssh/sshd_config
修改完成记得reload
systemctl restart sshd
socks5代理
本地启动一个socks5
服务,将发送到该端口的数据全部通过B
转发出去
ssh -DvN PortA user@HostB
评论暂时关闭