Squid 是一个功能强大的代理服务器软件
支持多种协议(如 HTTP、HTTPS、FTP 等),具有完整的缓存管理和访问控制功能。Squid 还支持负载均衡、透明代理、反向代理等高级特性。Squid 的缺点是它需要相对复杂的配置和管理,适合对代理服务器有丰富经验的管理员使用。因此,Squid 通常被用于大型企业中。
以下是 Squid 的使用教程:
在 Linux 系统中,可以使用包管理器安装 Squid,例如:
Ubuntu 和 Debian:
1 | sudo apt-get install squid |
CentOS 和 Fedora:
1 | sudo yum install squid |
Squid 的配置文件默认位于 /etc/squid/squid.conf
。可以使用编辑器打开该文件,对其进行配置。
以下是一些常用的配置项:
1 | http_port 3128 # 代理服务器监听的端口号 |
其中,http_port
指定代理服务器监听的端口号(默认为 3128),acl
指定允许访问代理服务器的 IP 地址段,http_access
指定允许访问代理服务器的 IP 地址段和禁止访问的 IP 地址段。
还可以配置缓存相关的选项、日志记录等选项。
使用以下命令启动 Squid:
1 | sudo systemctl start squid |
启动 Squid 后,可以在浏览器中设置代理服务器:
1 | 代理服务器地址: 127.0.0.1 |
然后访问任何网站时,就会通过 Squid 进行转发。
可以使用以下命令来停止和重启 Squid:
1 | sudo systemctl stop squid |
如果需要更改配置文件,可以先停止 Squid,然后编辑配置文件,最后启动 Squid。
需要注意的是,在 Squid 中还可以配置代理缓存、透明代理、反向代理等高级特性。这些特性需要更复杂的配置和管理,需要根据实际需求来决定是否使用。
Squid 透明代理是一种特殊的代理模式,它可以在不需要浏览器配置代理服务器的情况下,对所有 HTTP/HTTPS 流量进行代理。
以下是配置 Squid 透明代理的步骤:
在 Squid 配置文件中添加以下配置项:
1 | http_port 3128 transparent # 指定端口号和透明代理模式 |
其中,http_port
指定代理服务器监听的端口号(默认为 3128),并在后面加上 transparent
表示启用透明代理模式。
还需要在配置文件中添加以下 ACL 规则:
1 | acl localnet src 10.0.0.0/8 # 定义本地网络地址段 |
其中,acl
定义本地网络地址段,http_access
允许本地网络和本机访问代理服务器,http_access deny all
禁止其他 IP 地址访问代理服务器。
启用 Squid 透明代理之后,还需要在防火墙中添加以下规则,将流量重定向到 Squid 监听的端口:
1 | sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128 |
其中,--dport 80
指定 HTTP 流量,--dport 443
指定 HTTPS 流量,--to-port 3128
指定转发到 Squid 监听的端口号。
完成配置后,需要重启 Squid 和防火墙,让配置生效:
1 | sudo systemctl restart squid |
启用透明代理后,客户端无需配置代理服务器,所有流量都会经过 Squid 进行转发。需要注意的是,透明代理有一定的限制,例如不能支持身份验证、DNS 解析等功能,因此需要根据实际需求来决定是否使用。