CentOS 7 搭建 TinyProxy 代理

Tinyproxy是一个轻量级的用于POSIX操作系统的http/https代理守护进程。在设计之初就遵循着更快并且更小的原则。在相关的运用案例中,它是一种理想的解决方案,例如在一个需要全部HTTP代理特性的嵌入式部署的案例中。然而,对于需要更大的代理案例来说,它是不可用的。

Tinyproxy本身是小巧的,几乎不需要占用系统资源。安装后,内存占用通常在2M左右,CPU负载随同步连接的数量线性增加(取决于连接的速度)。因此,Tinyproxy可以在一台旧机器上运行,也可以在网络设备上运行,比如基于linux的宽带路由器,而不会对性能产生任何明显的影响。

安装环境:阿里云CentOS7 香港服务器

1. 安装 TinyProxy

在Red Hat Enterprise Linux或其衍生产品(如CentOS)上,可以通过运行yum install tinyproxy从EPEL存储库安装Tinyproxy。

yum -y install tinyproxy
2. 配置 TinyProxy

vim /etc/tinyproxy/tinyproxy.conf
修改 Port 端口,默认为 8888

Port 12801

注释掉 Allow,表示允许所有人访问代理

#Allow 127.0.0.1

隐藏掉Via请求头部,去掉下面的注释

DisableViaHeader Yes

更多配置项,下面是列举一些配置文件默认的,不需要配置:

PidFile “/var/run/tinyproxy/tinyproxy.pid”

LogFile “/var/log/tinyproxy/tinyproxy.log”

LogLevel Info

MaxClients 100

MinSpareServers 5

MaxSpareServers 20

StartServers 10

3. 启动 TinyProxy

systemctl start tinyproxy.service
更多命令如下:

systemctl restart tinyproxy.service

systemctl stop tinyproxy.service

systemctl status tinyproxy.service

systemctl enable tinyproxy.service
4. 关闭防火墙或开放端口访问

方式1:关闭防火墙

/etc/init.d/iptables stop
方式2:开放端口访问

iptables -A INPUT -p tcp –dport 12801 -j ACCEPT
重启防火墙

/etc/init.d/iptables restart
注意:若采用的阿里云、腾讯云、AWS等云服务器,记得要在安全策略里开放端口号

5. 验证生效

1)命令行测试验证(服务器本地测试)

使用TinyProxy拉取google.com的页面信息:

curl -x 127.0.0.1:12801 google.com
可以看到成功拉取了谷歌的页面信息,说明我们的配置是成功。

2)Firefox测试(本机测试)

打开火狐浏览器,选择:选项-网络代理-设置,进入配置界面,根据下图进行配置:

配置完成后,我们使用百度搜索IP,搜索结果如下:

IP地址是我们服务器的地址,说明代理正常访问。然而,如果我们访问谷歌,会得到如下页面:

 

我们无法访问谷歌,不但如此,其他类似的网站我们也是无法访问的。这是为什么?首先,我们看下面的图,当我们想要访问外网的时候,这个请求数据包必然会经过防火墙的检查:

现在我们使用代理,但是依然需要经过防火墙的检查:

由于客户端与TinyProxy之间的请求数据是没有加密的,所以我们无法通过检查。

有人可能疑问,HTTPS是加密的请求,那么为什么不能绕过防火墙呢?

这是因为客户端在进行加密通信以前,需要进行连接握手。在连接握手时,身份认证证书信息(即服务器的公钥)是明文传输的,墙此时就会阻断特定证书的加密连接。

 

参考链接:

https://segmentfault.com/a/1190000011532677

http://blog.51cto.com/tianshili/1733869

http://tinyproxy.github.io/
———————
作者:sjailjq
来源:CSDN
原文:https://blog.csdn.net/sjailjq/article/details/81570592
版权声明:本文为博主原创文章,转载请附上博文链接!