一、什麼是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/zh-hk/n/189865.html