Tinyproxy:构建一个高性能的轻量代理服务器

一、什么是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支持的FilterFilterURLs来做到。

修改/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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-11-29 13:52
下一篇 2024-11-29 13:52

相关推荐

发表回复

登录后才能评论