Centos7.6系统 – Squid搭建带认证的HTTP代理服务器

配置要点总结

1. 关键配置说明

  • 认证机制: 使用basic认证,用户名/密码验证
  • 多IP出口: 通过tcp_outgoing_address实现不同IP出口
  • 高匿名: 隐藏X-Forwarded-For、From、Via头信息
  • 端口: 默认使用3128端口

2. 需要修改的部分

多IP配置部分需要根据实际情况修改:

# 根据您的实际内网IP修改(不是弹性公网IP)
acl ip10 myip 172.27.0.10
acl ip11 myip 172.27.0.11
# ... 继续添加直到20个IP

tcp_outgoing_address 172.27.0.10 ip10
tcp_outgoing_address 172.27.0.11 ip11
# ... 对应的出口配置

3. 完整优化配置建议

# 创建完整的配置文件
cat > /etc/squid/squid.conf << 'EOF'
#
# Squid代理配置 - 多IP出口版本
#

# 基础设置
http_port 3128
visible_hostname squid-proxy
cache_dir ufs /var/spool/squid 100 16 256
maximum_object_size 256 MB

# 访问控制
acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16

acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 443
acl Safe_ports port 21
acl Safe_ports port 1025-65535
acl CONNECT method CONNECT

# 注释掉默认的拒绝规则
#http_access deny !Safe_ports
#http_access deny CONNECT !SSL_ports

# 用户认证
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm Squid代理服务器
auth_param basic children 5
auth_param basic credentialsttl 2 hours

acl authenticated proxy_auth REQUIRED
http_access allow authenticated

# 高匿名配置
request_header_access X-Forwarded-For deny all
request_header_access From deny all
request_header_access Via deny all
request_header_access Referer deny all
forwarded_for delete

# 多IP出口配置 - 根据实际IP修改
acl ip1 myip 172.27.0.10
acl ip2 myip 172.27.0.11
acl ip3 myip 172.27.0.12
# ... 添加更多IP

tcp_outgoing_address 172.27.0.10 ip1
tcp_outgoing_address 172.27.0.11 ip2
tcp_outgoing_address 172.27.0.12 ip3
# ... 添加更多出口IP映射

# 最后拒绝所有其他访问
http_access deny all

# 刷新模式
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	20%	4320
EOF

4. 系统优化配置

# 修改系统文件描述符限制
echo "squid soft nofile 65536" >> /etc/security/limits.conf
echo "squid hard nofile 65536" >> /etc/security/limits.conf

# 优化内核参数
cat >> /etc/sysctl.conf << 'EOF'
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.core.somaxconn = 65536
EOF

sysctl -p

5. 验证配置

# 检查配置文件语法
squid -k parse

# 初始化缓存目录
squid -z

# 启动服务
systemctl start squid
systemctl enable squid

# 查看状态
systemctl status squid

# 测试代理连接
curl -x http://liangchen:liangchen@localhost:3128 http://httpbin.org/ip

6. 添加更多用户

# 添加新用户
htpasswd -b /etc/squid3/passwords username2 password2
htpasswd -b /etc/squid3/passwords username3 password3

# 重启squid生效
systemctl restart squid

7. 监控和维护

# 查看日志
tail -f /var/log/squid/access.log
tail -f /var/log/squid/cache.log

# 统计连接数
netstat -an | grep :3128 | wc -l

# 清空缓存
squid -k shutdown
rm -rf /var/spool/squid/*
squid -z
systemctl start squid

这个配置为您提供了一个完整的高匿名多IP代理服务器解决方案。记得根据您的实际网络环境修改IP地址配置。

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注