用 SSH+Proxychains-NG 快速建立透明代理

一般机房只有少数对外直接供给服务的机器能力衔接上公网,用于内部服务的机器是不能拜访公网的。这也是一种比拟常见的安排架构,例如阿里云环境。

不过有时用于供给内部服务的机器也有衔接上公网的需求,例如更新某个安全补钉。本篇文章将介绍如何通过SSH+Proxychains-NG迅速树立一个透明朝理来给内网中的服务器供给上网服务。

实现思路:通过Proxychains-NG把内网服务器的要求转发给SSH树立的一个SOCKE服务,然后公网服务器在把这个要求转发出去到达拜访公网的目标。

Proxychains-ng只须要在内网服务器上安装好,而公网服务器是不须要任何配置的,只要能SSH登陆便可以够。

服务器环境解释:

公网服务器:192.168.1.8
内网服务器:192.168.1.100

通过SSH树立SOCKS服务

应用 ProxyChains-NG 固然要先有代理,这里是用ssh -D连到能拜访公网的机器来树立一个SOCKS动态转发代理。具体命令以下:

1
$ ssh -Nf -D 20000 [email protected]

解释:

-N 不履行命令
-f 跑到后台履行
-D 20000 监听 localhost:20000 端口,把本地要求转发给被衔接的公网服务器。

安装 ProxyChains-NG

通过源代码安装

  • 下载源码
1
$ git clone https://github.com/rofl0r/proxychains-ng
  • 编译安装
1
2
3
4
$ ./configure --prefix=/usr --sysconfdir=/etc
$ make
$ make install
$ make install-config (安装proxychains.conf配置文件)

配置 ProxyChains-NG

修正配置文件,在[ProxyList]配置段中参加代理的地址和端口。

1
2
3
4
5
6
$ vim /etc/proxychains.conf
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks4 127.0.0.1 20000

这里的代理地址就是上面通过SSH树立SOCKS服务的地址。

测试 ProxyChains-NG

通过 proxychains4 履行命令,便可通过公网服务器的网络拜访外网了。

1
2
3
4
5
6
$ proxychains4 curl http://ip.cn
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/lib/libproxychains4.so
[proxychains] DLL init: proxychains-ng 4.12
[proxychains] Strict chain ... 127.0.0.1:20000 ... ip.cn:80 ... OK
当前 IP:119.85.177.249 来自:重庆市

除curl,应用其它命令行的时候都只要在前面加上proxychains4,就都可以通过公网服务器的网络衔接上公网了。

这类方法可以在仅仅须要的时候应用,而不须要转变任何服务器的网络配置,非常不错。 更多ProxyChains-NG应用技能可参考:通过ProxyChains-NG实现终端下任意运用代理

参考文档

http://www.google.com
http://heylinux.com/archives/2933.html
http://blog.csdn.net/chen3feng/article/details/5774983