一、什么是Tinyproxy?
Tinyproxy
是一个轻量级的HTTP/HTTPS代理服务器,它可以在Linux/Unix系统上使用,主要用于网络代理、翻墙、网络加速等功能,占用资源较少,性能优良。
它是由Markus Wanner编写的,使用C语言开发,兼容Squid代理服务器,支持HTTP/1.1协议,完全符合HTTP/1.1规范。
Tinyproxy
采用简单的配置,方便运维,且没有依赖环境,可以跨平台部署。
二、Tinyproxy的基本使用
在Linux系统上,可以通过以下步骤安装Tinyproxy
:
# Ubuntu/Debian系统
sudo apt update
sudo apt install tinyproxy
# CentOS/RHEL系统
sudo yum update
sudo yum install tinyproxy
在安装好Tinyproxy
后,需要进行配置,配置文件路径一般在/etc/tinyproxy/tinyproxy.conf
,修改以下参数:
# 允许的代理访问IP
Allow 123.123.123.123
# 允许的代理访问端口
Allow 8888
# 不允许代理访问的IP
Deny 192.168.1.1
# 日志文件路径
LogFile "/var/log/tinyproxy/tinyproxy.log"
# 最大客户端并发请求数
MaxClients 100
# 代理监听IP及端口
Listen 127.0.0.1
# 实现匿名代理
Anonymous "yes"
配置完成后,重启Tinyproxy
服务,即可开始使用。
例如,使用wget
下载一个HTTP站点:
# 直接访问HTTP站点
wget http://example.com/index.html
# 通过http代理访问HTTP站点
http_proxy=http://127.0.0.1:8888 wget http://example.com/index.html
或者使用curl
工具测试:
# 直接访问HTTP站点
curl http://example.com/index.html
# 通过http代理访问HTTP站点
curl http://example.com/index.html --proxy http://127.0.0.1:8888
三、Tinyproxy的高级使用
1、SSL隧道代理
当使用Tinyproxy
代理HTTPS请求时,需要打开SSL隧道代理,配置中需要开启ConnectPort
,将HTTPS请求转发给目标服务器。
修改/etc/tinyproxy/tinyproxy.conf
配置文件为:
# 允许所有代理访问IP
Allow 0.0.0.0/0
# 允许所有代理访问端口
Allow CONNECT
# 允许所有代理使用SSL隧道代理
ConnectPort 443
# 使用SSL隧道代理时最大客户端连接数
MaxConnectRetries 3
# SSL隧道代理日志文件路径
ConnectPortLogFile "/var/log/tinyproxy/tinyproxy-ssl.log"
重启Tinyproxy
服务后,可以使用以下命令测试:
$ openssl s_client -connect example.com:443 -proxy 127.0.0.1:8888
随后我们便可以使用SSL代理访问HTTPS站点了。
2、限制代理访问
在实际使用中,需要限制代理访问,避免被滥用。可以通过Tinyproxy
支持的Filter
和FilterURLs
来做到。
修改/etc/tinyproxy/tinyproxy.conf
配置文件为:
# 允许IP段访问(例如:192.168.1.0/24)
Allow 192.168.1.0/24
# 不允许的IP
Deny 192.168.1.1
# 限制代理访问的URL(例如:example.com)
Filter "/example/"
# 限制代理访问的关键字(例如:example)
FilterURLs "example"
修改完成后,重启Tinyproxy
服务,即可生效。
3、实现用户认证
在有一些敏感操作的环境下,需要做好用户认证,确保只有授权用户才可以使用代理服务。可以通过Tinyproxy
扩展模块tinyproxy-auth
进行实现。
在使用之前,需要首先安装tinyproxy-auth
模块:
sudo apt install tinyproxy-auth
安装完成后,修改/etc/tinyproxy/tinyproxy.conf
配置文件为:
# 开启认证模块
AuthConfig /etc/tinyproxy/tinyproxy-auth.conf
# 定义认证模式为basic(其他模式还有ntlm)
AuthUserFile "/etc/tinyproxy-htpasswd"
AuthUserFileGroup "nogroup" # 设置用户认证组
# 允许使用代理访问的IP
Allow 192.168.1.0/24
# 不允许使用代理访问的IP
Deny 192.168.1.1
# 设置代理监听IP地址和端口号
Listen 127.0.0.1
# 隐藏客户端IP地址
Anonymous "yes"
修改完成后,需要配置tinyproxy-auth
认证文件,/etc/tinyproxy/tinyproxy-auth.conf
的内容如下:
tinyproxy_auth -m basic -f /etc/tinyproxy-htpasswd
然后生成认证用户:htpasswd -c /etc/tinyproxy-htpasswd user1
,之后便可以测试。
四、Tinyproxy的优化
1、减小DNS解析时间
可以在Tinyproxy
配置文件中添加Upstream
参数,将DNS服务器设置为本地的DNSServer,防止因需要查询外部DNS服务器而造成的延迟。
修改/etc/tinyproxy/tinyproxy.conf
配置文件为:
# 设置本地DNS服务器(例如:127.0.0.1:53)
Upstream 127.0.0.1:53
2、限制最大并发连接数
如果Tinyproxy
并发请求较多,可能会造成崩溃等问题,可以通过设置MaxClients
来限制最大并发连接数。
修改/etc/tinyproxy/tinyproxy.conf
配置文件为:
# 设置最大并发连接数(例如:100)
MaxClients 100
3、缓存代理
可以通过设置Tinyproxy
为缓存代理来提升性能和速度,减少网络带宽使用。
修改/etc/tinyproxy/tinyproxy.conf
配置文件为:
# 允许缓存(例如:1024MB)
MaxCacheSize 1024
# 设置缓存路径
CacheDir "/var/cache/tinyproxy/"
# 允许缓存未认证的内容
AllowUnauthenticatedCache "yes"
# 允许缓存访问过的内容
AllowCaching "yes"
# 将较久未使用的缓存替换出
MinSpareServers 5
# 将较新使用的缓存保留
MaxSpareServers 10
# 设置最大并发客户端请求数
MaxClients 100
# 缓存数据时最大内存使用量(例如:10MB)
MaxMemObject 10000
五、总结
本文介绍了Tinyproxy
的基本使用、高级使用及优化方法。
Tinyproxy
是一个轻量级的HTTP/HTTPS代理服务器,具有占用资源较少、性能优良的特点,可以在Linux/Unix系统上使用,主要用于网络代理、翻墙、网络加速等功能。
在使用时需要进行配置,包括代理访问IP、端口、日志路径、最大客户端并发请求数、代理监听IP及端口等,也可以通过Tinyproxy
扩展模块进行SSL隧道代理、用户认证等功能。
此外,可以通过减小DNS解析时间、限制最大并发连接数、设置缓存代理等方法优化Tinyproxy
的性能和速度。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/189865.html