TinyProxy 是一个轻量级的 HTTP 代理服务器,适用于资源有限的环境,如嵌入式系统或小型 VPS。以下是一个详细的 TinyProxy 教程,包括安装、配置、优化和故障排查。
TinyProxy 详细教程
1. 什么是 TinyProxy?
TinyProxy 是一个小型、快速的 HTTP/HTTPS 代理服务器,支持基本的访问控制,适用于低内存和低 CPU 设备。它主要用于:
- 代理 HTTP 请求,提高访问速度
- 作为网络隐私工具,隐藏真实 IP
- 过滤 Web 流量
2. 安装 TinyProxy
2.1 在 Ubuntu/Debian 安装
sudo apt update
sudo apt install tinyproxy -y
2.2 在 CentOS/RHEL 安装
sudo yum install epel-release -y
sudo yum install tinyproxy -y
2.3 在 macOS 安装
brew install tinyproxy
3. TinyProxy 配置
安装后,TinyProxy 的主配置文件在:
/etc/tinyproxy/tinyproxy.conf
3.1 允许远程访问
默认情况下,TinyProxy 仅允许本机访问。要允许远程设备访问,需要修改 tinyproxy.conf
:
sudo nano /etc/tinyproxy/tinyproxy.conf
找到:
Allow 127.0.0.1
添加你的 IP(例如 192.168.1.100
):
Allow 192.168.1.100
或者允许整个子网:
Allow 192.168.1.0/24
3.2 更改监听端口
默认 TinyProxy 监听端口是 8888
,可以修改:
Port 8888 # 修改为 8080 也可以
3.3 启用匿名模式
为了防止代理泄露客户端 IP,启用匿名模式:
AnonymousHeaders X-Forwarded-For
3.4 启用日志
LogFile "/var/log/tinyproxy.log"
LogLevel Info
3.5 限制最大连接数
MaxClients 100
4. 启动 TinyProxy
4.1 启动 TinyProxy
sudo systemctl start tinyproxy
4.2 设置开机自启
sudo systemctl enable tinyproxy
4.3 查看状态
sudo systemctl status tinyproxy
如果正常运行,会看到类似:
Active: active (running) since ...
5. 测试 TinyProxy
在客户端设备上使用 curl 测试代理:
curl -x http://<服务器IP>:8888 -L http://example.com
如果返回网页内容,则 TinyProxy 运行正常。
6. 配置客户端
6.1 浏览器代理设置
-
Chrome / Edge
- 打开
chrome://settings
- 搜索
代理
- 在
系统代理
里添加http://<服务器IP>:8888
- 打开
-
Firefox
- 打开
设置 > 网络设置
- 选择
手动代理
- HTTP 代理填入
<服务器IP>
,端口填8888
- 打开
6.2 配置环境变量(Linux/macOS)
export http_proxy="http://<服务器IP>:8888"
export https_proxy="http://<服务器IP>:8888"
6.3 配置 SSH 代理转发
ssh -D 8888 -N -f user@your-server
然后在浏览器里设置 SOCKS5 代理 127.0.0.1:8888
。
7. 访问控制
TinyProxy 允许通过 tinyproxy.conf
限制 IP 访问:
Allow 192.168.1.0/24
Deny 0.0.0.0/0
这表示仅允许 192.168.1.0/24
访问,其他 IP 拒绝。
8. 日志与监控
8.1 查看日志
tail -f /var/log/tinyproxy.log
8.2 限制日志大小
LogFile "/var/log/tinyproxy.log"
MaxLogFileSize 10M
9. 代理 HTTPS 流量
TinyProxy 只能代理 HTTP,而不能直接解密 HTTPS,但可以通过 CONNECT
方法转发:
ConnectPort 443
这样,TinyProxy 只会转发 HTTPS 连接,但不会解密流量。
10. 故障排查
10.1 端口是否被占用
sudo netstat -tulnp | grep 8888
如果端口被占用,可以换一个:
Port 8080
10.2 检查防火墙
如果客户端无法访问服务器,检查防火墙:
sudo ufw allow 8888
sudo iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
10.3 重启 TinyProxy
sudo systemctl restart tinyproxy
11. 卸载 TinyProxy
11.1 Ubuntu/Debian
sudo apt remove --purge tinyproxy -y
11.2 CentOS
sudo yum remove tinyproxy -y
12. 结论
TinyProxy 适用于轻量级 HTTP 代理任务,适合小型服务器和 IoT 设备。对于更复杂的需求(如身份验证、高级缓存),可以考虑 Squid 或 Shadowsocks。
如果你需要更深入的优化,可以考虑:
- 配合
iptables
进行 IP 限制 - 使用
fail2ban
监控日志,自动封锁恶意 IP - 配置
systemd
限制 TinyProxy 的资源使用