-
场景
当前的网络C无法访问对象A,但是可以访问对象B,对象A对B开了白名单或者A和B是在同一局域网中,即B可以访问A。
-
要解决的问题
现在的问题是:如何让C能成功访问A。
-
操作步骤
-
B开启22端口,使用ssh连接工具配置ssh隧道。
这里我使用的是MobaXterm,xshell同理。
打开MobaXterm,在工具中找到MobaSSHtunnal
设置之后的结果是这样
此时C在浏览器中设置代理为一下就可以访问A了:
上图中192.168.30.27是C的局域网地址,也可以使用127.0.0.1,设置成192.168.30.27的目的是和你在同一路由下的C1和C2也可以设置代理访问A。
注意:此时的代理流量是sockets格式的,那如何转换成http了,因为有些软件比如说Nessus、awvs和appscan他们是只能设置成http代理,那现在的问题是将sockets转换成http。
-
将sockets转换成http
这里主要是使用privoxy
sudo apt-get install privoxy
sudo vi /etc/privoxy/config
注释掉
listen-address localhost:8118
在最后添加
forward-socks5t / ip:port .
listen-address 127.0.0.1:8118
上述port为MobaXterm中设置的端口,IP为C的IP,可以将IP设置为0.0.0.0,这样同路由下的用户也可以使用此代理。
然后启用privoxy
sudo service privoxy restart
使用http代理
# http://127.0.0.1:8118 为第2部具体配置的listen-address
export http_proxy='http://127.0.0.1:8118'
export https_proxy=$http_proxy
要是在其他的地方使用,即设置为C的IP:8118即可。