Tinyproxy是一个轻量级的用于POSIX操做系统的http/https代理守护进程。在设计之初就遵循着更快而且更小的原则。在相关的运用案例中,它是一种理想的解决方案,例如在一个须要所有HTTP代理特性的嵌入式部署的案例中。然而,对于须要更大的代理案例来讲,它是不可用的。linux
Tinyproxy自己是小巧的,几乎不须要占用系统资源。安装后,内存占用一般在2M左右,CPU负载随同步链接的数量线性增长(取决于链接的速度)。所以,Tinyproxy能够在一台旧机器上运行,也能够在网络设备上运行,好比基于linux的宽带路由器,而不会对性能产生任何明显的影响。vim
安装环境:阿里云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 端口,默认为 8888curl
Port 12801tcp
注释掉 Allow,表示容许全部人访问代理ide
#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
更多命令以下:
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是加密的请求,那么为何不能绕过防火墙呢?
这是由于客户端在进行加密通讯之前,须要进行链接握手。在链接握手时,身份认证证书信息(即服务器的公钥)是明文传输的,墙此时就会阻断特定证书的加密链接。
Tinyproxy是一个轻量级的用于POSIX操做系统的http/https代理守护进程。在设计之初就遵循着更快而且更小的原则。在相关的运用案例中,它是一种理想的解决方案,例如在一个须要所有HTTP代理特性的嵌入式部署的案例中。然而,对于须要更大的代理案例来讲,它是不可用的。