ssh正向反向代理理解

on under web
1 minute read

条件:

正身代理和反向代理都满足:
A能访问B,B能访问C,A不能访问C
假设A想访问C的80端口

正向代理:

A有B的ssh口令和密码,A利用B的ssh口令和密码来控制B给A做流量代理,A将要访问C的80端口的需求发给B,由B代理访问

反向代理:

C有B的ssh口令和密码,C利用B的ssh口令和密码来控制将C的80端口绑定到B的8000[或其他]端口,这样A访问B的8000端口
就相当于访问C的80端口

反向代理实例

公网ip:1.1.1.1 内网ip:192.168.1.5 想把192.168.1.5的8888端口的web服务通过1.1.1.1的80端口开放到internet上,操作如下

  • 在1.1.1.1上先进行端口转发,将本地的80端口的数据转发到4444端口上
apt-get install rinetd 
vim /etc/rinetd.conf
    添加一条0.0.0.0 80 0.0.0.0 4444
service rinetd start
  • 在192.168.1.5上进行反向代理设置,通过ssh连接来进行端口映射
ssh -R 4444:localhost:8888 <user>@1.1.1.1

此时internet上的用户访问http://1.1.1.1:80时会获得http://192.168.1.5:8888的数据,这里ssh如果断开会导致端口映射失效,解决方法和更多详情在这里1,这里2

ssh, 代理
home
github
archive
category