在 Ubuntu 18.04/CentOS 7 上安装 Squid 代理服务器
Squid 是一款功能齐全的开源 Web 代理缓存服务器,中小企业和大型企业级网络均可使用它来缓存和代理 FTP、HTTP、DNS 查找和其他协议。 Squid 还可以对 SSL 请求进行缓存和代理。在本指南中,我们将介绍如何在 Ubuntu 18.04/CentOS 7 上安装和配置 Squid 代理服务器。
有关代理服务器工作原理的基础知识,请查看我们的关于什么是代理服务器和代理服务器类型的指南。总之,它具有广泛、精细的访问控制机制,您可以使用简单网络管理协议 (SNMP) 监控关键参数。
在 Ubuntu 18.04/CentOS 7 上安装 Squid 代理
Squid 代理包可从 Ubuntu 存储库获取。可以通过运行以下命令来安装:
sudo apt update && sudo apt install squid
对于 CentOS 7,运行:
sudo yum -y install squid
安装该软件包后,您需要进行基本配置,然后才能使用 Squid 代理服务器。
在 Ubuntu 18.04/CentOS 7 上配置 Squid 代理
Squid 最简单的配置是作为转发代理服务器。在这种情况下,它将接收来自您的服务器的所有请求并相应地转发它们。要配置 Squid,请编辑 /etc/squid/squid.conf
文件中包含的指令。
sudo vim /etc/squid/squid.conf
步骤 1:为您的内部可信网络定义 ACL:
在 acl CONNECT
行之后添加 ACL
acl lan src 192.168.18.0/24
然后根据上面定义的 ACL 允许访问,在 http_access allowed localhost manager
之后添加行
http_access allow lan
步骤 2:配置客户端标头请求以匹配
这应该放在 TAG: request_header_access
部分下
request_header_access Via deny all
request_header_access X-Forwarded-For deny all
request_header_access Referer deny all
request_header_access Cache-Control deny all
这将关闭标题。 Via 和 Forwarded-For 字段配置为指示请求是由代理转发的。这可能会通过泄露我们正在使用代理的信息来暴露您的真实 IP。
要删除更多可能暴露您的标头,请添加:
via off
forwarded_for off
request_header_access From deny all
request_header_access Via deny all
request_header_access X-Forwarded-For deny all
request_header_access Cache-Control deny all
request_header_access X-Cache deny all
request_header_access X-Cache-Lookup deny all
request_header_access Server deny all
request_header_access Link deny all
request_header_access WWW-Authenticate deny all
request_header_access Proxy-Connection deny all
request_header_access Pragma deny all
request_header_access Keep-Alive deny all
更改后重新启动鱿鱼代理服务:
sudo systemctl restart squid
另外,请确保该服务在启动时已启用。
sudo systemctl enable squid
squid 使用的默认服务端口是 3128。如果您想更改它,请修改以下行:
http_port 3128
确认服务状态
# ss -tunelp | grep 3128
tcp LISTEN 0 128 *:3128 *:* users:(("squid",pid=14580,fd=11)) ino:41513 sk:9 v6only:0 <->
步骤3:配置防火墙服务
对于 Ubuntu 或 CentOS 上正在运行的防火墙服务,请打开防火墙上的端口,
### RHEL based systems ###
sudo firewall-cmd --add-service=squid --permanent
sudo firewall-cmd --reload
### Debian based systems ###
sudo ufw allow 3128/tcp
配置 Squid 客户端
现在您已准备好代理服务器,配置客户端系统以进行连接。\
- 在 CentOS/RHEL/Fedora 上配置代理设置
- 在 Debian/Ubuntu 上配置代理设置
示例 1:为 HTTP、HTTPS 和 FTP 配置代理
$ sudo vim /etc/profile
PROXY_URL="http://192.168.18.2:3128/"
export HTTP_PROXY=$PROXY_URL
export http_proxy=$ROXY_URL
export HTTPS_PROXY=$PROXY_URL
export https_proxy=$PROXY_URL
export FTP_PROXY=$PROXY_URL
export ftp_proxy=$PROXY_URL
对于网络浏览器:
Firefox:导航至设置 > 首选项 > 网络代理 > 设置 > 手动代理配置
勾选将此代理服务器用于所有协议