Tinyproxy是一个轻量级的HTTP/HTTPS代理守护进程,专为POSIX操作系统设计。它体积小、速度快,非常适合资源受限的环境。
sudo apt update
sudo apt install tinyproxy
# CentOS/RHEL 7/8
sudo yum install epel-release
sudo yum install tinyproxy
# CentOS/RHEL 9/Fedora
sudo dnf install tinyproxy
# 下载最新版本
wget https://github.com/tinyproxy/tinyproxy/releases/download/1.11.1/tinyproxy-1.11.1.tar.gz
tar -xzf tinyproxy-1.11.1.tar.gz
cd tinyproxy-1.11.1
# 编译安装
./configure
make
sudo make install
配置文件通常位于:
/etc/tinyproxy/tinyproxy.conf (Debian/Ubuntu)/etc/tinyproxy.conf (CentOS/RHEL)# 监听地址和端口(默认监听所有接口,端口8888)
Port 8888
Listen 0.0.0.0
# 允许访问的客户端IP(可配置多个)
Allow 127.0.0.1
Allow 192.168.0.0/16
# 如果想允许所有客户端,注释掉所有Allow行
# 基础认证(可选)
BasicAuth username password
# 匿名代理(隐藏客户端IP)
Anonymous "Host"
Anonymous "Authorization"
Anonymous "Cookie"
# 连接超时设置
Timeout 600
# 日志设置
LogFile "/var/log/tinyproxy/tinyproxy.log"
LogLevel Info
# LogLevel可选:Critical, Error, Warning, Notice, Info, Connect
# 最大连接数
MaxClients 100
# 禁止访问的域名/URL
Filter "/etc/tinyproxy/filter"
FilterURLs On
FilterExtended On
# 启用上游代理
#Upstream http 1.2.3.4:8080
#Upstream http proxy2.example.com:8080
# 启用HTTPS支持
# 需要生成SSL证书
#SSLCertFile "/etc/tinyproxy/cert.pem"
#SSLKeyFile "/etc/tinyproxy/key.pem"
# 系统服务方式
sudo systemctl start tinyproxy
sudo systemctl enable tinyproxy
# 手动启动(调试用)
sudo tinyproxy -d -c /etc/tinyproxy/tinyproxy.conf
sudo systemctl status tinyproxy
sudo systemctl stop tinyproxy
sudo systemctl restart tinyproxy
sudo tail -f /var/log/tinyproxy/tinyproxy.log
# 临时设置(只对当前终端有效)
export http_proxy="http://proxy-server-ip:8888"
export https_proxy="http://proxy-server-ip:8888"
export ftp_proxy="http://proxy-server-ip:8888"
export no_proxy="localhost,127.0.0.1"
# 测试代理是否生效
curl -I --proxy http://proxy-server-ip:8888 http://www.example.com
# 通过gsettings设置
gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host 'proxy-server-ip'
gsettings set org.gnome.system.proxy.http port 8888
创建文件 /etc/apt/apt.conf.d/99proxy:
Acquire::http::Proxy "http://proxy-server-ip:8888";
Acquire::https::Proxy "http://proxy-server-ip:8888";
git config --global http.proxy http://proxy-server-ip:8888
git config --global https.proxy http://proxy-server-ip:8888
Port 8888
Listen 0.0.0.0
Allow 127.0.0.1
BasicAuth user1 password1
BasicAuth user2 password2
Timeout 600
MaxClients 50
LogLevel Info
Port 8888
Listen 192.168.1.100
Allow 192.168.1.0/24
DisableViaHeader Yes
TransparentProxy On
Port 8888
Listen 0.0.0.0
Allow 127.0.0.1
Upstream http proxy1.example.com:8080
Upstream http proxy2.example.com:8080
# 开放8888端口(如果服务器有防火墙)
# UFW (Ubuntu)
sudo ufw allow 8888/tcp
# Firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=8888/tcp
sudo firewall-cmd --reload
# iptables
sudo iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
sudo systemctl status tinyproxy
sudo netstat -tlnp | grep tinyproxy
sudo ss -tlnp | grep tinyproxy
sudo journalctl -u tinyproxy -f
sudo tail -f /var/log/tinyproxy/tinyproxy.log
# 从客户端测试
curl -x http://proxy-server-ip:8888 http://httpbin.org/ip
# 查看响应头
curl -I -x http://proxy-server-ip:8888 http://example.com
错误:无法绑定端口
sudo lsof -i :8888错误:权限拒绝
User和Group设置错误:客户端无法连接
Listen地址是否正确Allow规则是否包含客户端IP# 增加最大连接数(根据服务器性能调整)
MaxClients 500
# 调整超时时间
Timeout 300
# 增加文件描述符限制
# 编辑 /etc/security/limits.conf
# * soft nofile 4096
# * hard nofile 8192
# 启用连接复用
MaxRequestsPerChild 0 # 0表示不限制,子进程不重启
#!/bin/bash
# auto-setup-tinyproxy.sh
PROXY_PORT=8888
ALLOW_NETWORK="192.168.1.0/24"
# 备份原配置
sudo cp /etc/tinyproxy/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf.backup
# 生成新配置
cat > /tmp/tinyproxy.conf << EOF
Port $PROXY_PORT
Listen 0.0.0.0
Allow 127.0.0.1
Allow $ALLOW_NETWORK
Timeout 600
MaxClients 100
MinSpareServers 5
MaxSpareServers 20
StartServers 10
LogLevel Info
PidFile "/var/run/tinyproxy/tinyproxy.pid"
LogFile "/var/log/tinyproxy/tinyproxy.log"
EOF
# 应用配置
sudo mv /tmp/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf
sudo systemctl restart tinyproxy
sudo systemctl enable tinyproxy
echo "Tinyproxy配置完成,运行在端口 $PROXY_PORT"
这个指南涵盖了Tinyproxy在Linux环境下的主要使用场景,根据实际需求调整配置即可。