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/zh-hk/n/189865.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-29 13:52
下一篇 2024-11-29 13:52

相關推薦

發表回復

登錄後才能評論