Squid 是一个功能齐全的缓存代理,支持流行的网络协议,如 HTTP、HTTPS、FTP 等。将 Squid 放置在 Web 服务器前面可以通过缓存重复请求、过滤 Web 流量和访问地理限制内容来极大地提高服务器性能。
本教程介绍如何在 CentOS 7 上设置 Squid 以及如何配置 Firefox 和 Google Chrome Web 浏览器以使用代理。
在 CentOS 上安装 Squid#
Squid 软件包包含在默认的 CentOS 7 存储库中。要安装它,请运行以下命令:须藤用户
:
sudo yum install squid
安装完成后,启动并启用 Squid 服务:
sudo systemctl start squid
sudo systemctl enable squid
要验证安装是否成功,请键入以下命令,该命令将打印服务状态:
sudo systemctl status squid
● squid.service - Squid caching proxy
Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2019-07-13 16:47:56 UTC; 12s ago
...
配置鱿鱼#
Squid 可以通过编辑/etc/squid/squid.conf
文件。可以使用“include”指令包含带有配置选项的其他文件。
在进行任何更改之前,请使用以下命令备份原始配置文件cp 命令:
sudo cp /etc/squid/squid.conf{,.orginal}
要编辑该文件,请在您的文本编辑器
:
sudo nano /etc/squid/squid.conf
默认情况下,Squid 配置为侦听端口3128
在服务器上的所有网络接口上。
如果要更改端口并设置侦听接口,请找到以http_port
并指定接口 IP 地址和新端口。如果没有指定接口,Squid 将监听所有接口。
/etc/squid/squid.conf
# Squid normally listens to port 3128
http_port IP_ADDR:PORT
对于大多数用户来说,在所有接口和默认端口上运行 Squid 应该没问题。
您可以使用访问控制列表 (ACL) 来控制对 Squid 服务器的访问。
默认情况下,Squid 只允许从 localhost 和 localnet 进行访问。
如果将使用代理的所有客户端都有静态 IP 地址,您可以创建一个包含允许的 IP 的 ACL。
我们将创建一个新的专用文件来保存 IP,而不是在主配置文件中添加 IP 地址:
/etc/squid/allowed_ips.txt
192.168.33.1
# All other allowed IPs
完成后打开主配置文件并创建一个名为的新 ACLallowed_ips
(第一行突出显示)并允许使用该 ACL 访问http_access
指令(第二行突出显示):
/etc/squid/squid.conf
# ...
acl allowed_ips src "/etc/squid/allowed_ips.txt"
# ...
http_access allow localnet
http_access allow localhost
http_access allow allowed_ips
# And finally deny all other access to this proxy
http_access deny all
的顺序http_access
规则很重要。确保在之前添加该行http_access deny all
.
The http_access
指令的工作方式与防火墙规则类似。 Squid从上到下读取规则,当一条规则匹配时,下面的规则不会被处理。
每当您更改配置文件时,您都需要重新启动 Squid 服务才能使更改生效:
sudo systemctl restart squid
鱿鱼认证#
Squid 可以使用不同的后端,包括Samba 、LDAP 和 HTTP 对经过身份验证的用户进行基本身份验证。
在此示例中,我们将配置 Squid 以使用基本身份验证。它是一种内置于 HTTP 协议中的简单身份验证方法。
我们将使用openssl
生成密码并附加username:password
配对到/etc/squid/htpasswd
文件与tee 命令如下图:
printf "USERNAME: $( openssl passwd -crypt PASSWORD) \n" | sudo tee -a /etc/squid/htpasswd
例如创建一个名为“mike”的用户,密码为“Pz$lPk76
”你会运行:
printf "mike:$(openssl passwd -crypt 'Pz$lPk76')\n" | sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo
下一步是配置 Squid 以启用 HTTP 基本身份验证并使用该文件。
打开主配置并添加以下内容:
/etc/squid/squid.conf
# ...
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
# ...
http_access allow localnet
http_access allow localhost
http_access allow authenticated
# And finally deny all other access to this proxy
http_access deny all
通过前三行突出显示的行,我们将创建一个名为的新 ACLauthenticated
。最后突出显示的行允许访问经过身份验证的用户。
重新启动鱿鱼服务:
sudo systemctl restart squid
配置防火墙#
如果您正在运行firewall 你需要打开端口3128
。为此,请运行以下命令:
sudo firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload
如果 Squid 在另一个非默认端口上运行,您需要允许该端口上的流量。
配置您的浏览器以使用代理#
现在您已经设置了 Squid,最后一步是配置您的首选浏览器以使用它。
Firefox #
以下步骤对于 Windows、macOS 和 Linux 是相同的。
单击右上角的汉堡包图标☰
打开 Firefox 的菜单:
单击⚙ Preferences
link.
向下滚动到Network Settings
部分并单击Settings...
button.
将打开一个新窗口。
选择Manual proxy configuration
单选按钮。
在中输入您的 Squid 服务器 IP 地址HTTP Host
场和3128
in the Port
field.
选择Use this proxy server for all protocols
复选框。
单击OK
按钮保存设置。
至此,您的 Firefox 已配置完毕,您可以通过 Squid 代理浏览互联网。要验证它,请打开google.com
,输入“what is my ip”,您应该会看到您的 Squid 服务器 IP 地址。
要恢复为默认设置,请转至Network Settings
,选择Use system proxy settings
单选按钮并保存设置。
还有几个插件可以帮助您配置 Firefox 的代理设置,例如狐狸代理
.
谷歌浏览器#
Google Chrome 使用默认的系统代理设置。您可以使用插件,例如开关欧米茄 或从命令行启动 Chrome 网络浏览器。
要使用新配置文件启动 Chrome 并连接到 Squid 服务器,请使用以下命令:
Linux :
/usr/bin/google-chrome \
--user-data-dir= " $HOME /proxy-profile" \
--proxy-server= "http://SQUID_IP:3128"
macOS :
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--user-data-dir= " $HOME /proxy-profile" \
--proxy-server= "http://SQUID_IP:3128"
窗户:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
--user-data-dir= "%USERPROFILE%\proxy-profile" ^
--proxy-server= "http://SQUID_IP:3128"
如果配置文件不存在,将自动创建。这样您就可以同时运行多个 Chrome 实例。
要确认代理服务器是否正常工作,请打开google.com
,然后输入“我的 ip 是什么”。浏览器中显示的IP应该是您服务器的IP地址。
结论#
您已经学习了如何在 CentOS 7 上安装鱿鱼并配置浏览器以使用它。
Squid 是最流行的代理缓存服务器之一。它提高了 Web 服务器的速度,并可以帮助您限制用户对 Internet 的访问。
如果您遇到问题或有反馈,请在下面发表评论。