在Linux上配置Squid代理

Squid是一个强大的代理服务器,支持为HTTP,HTTPS和FTP等协议缓存。
它有能力通过缓存频繁访问的网站来加速Web请求,并为请求客户端提供缓存。
这是网络减少带宽消耗的好方法,并为Web浏览提供Snappier响应时间。

在本教程中,我们将介绍如何在Linux系统上下载,安装和配置Squid代理。

如何在Linux上下载和安装Squid代理

Squid在大多数Linux Distros的默认存储库中可用,因此我们可以使用系统的包管理器安装软件。

在Ubuntu,Debian和Linux Mint上安装Squid:

$ sudo apt install squid

在CentOS,Fedora,Almalinux和Red Hat安装Squid:

$ sudo dnf install squid

在Arch Linux和Manjaro上安装Squid:

$ sudo pacman -S squid

如何配置Squid

  • 确保SQUID正在运行,并设置在系统重新启动时自动启动squid服务。
$ sudo systemctl enable --now squid
  • 修改Squid的配置文件
$ sudo nano /etc/squid/squid.conf
  • 如果我们想更改Squid的侦听端口,请查找http_port指令。默认情况下,它已设置为端口3128.

如果我们不想要默认值,请更改HTTP侦听端口。

  • Squid使用访问控制列表来确定允许谁连接并使用代理。 localhost(已安装Squid的系统)以及大多数本地网络将能够在没有问题的情况下访问Squid,但如果要允许它们访问,则需要在ACL中配置其他网络和IP地址。最简单的方法是通过调整Squid的内部IP网络列表来满足我们自己的需求。我们还可以在同一部分中添加其他网络和IP地址。

通过IP地址配置访问控制列表

  • 如果要配置身份验证,请使用“openssl”工具生成加密密码,并将其添加到/etc/squid/httpauth文件(或者命名我们想要的任何文件)。使用以下示例,我们将配置用户名和密码为onitroad 和 mypass
$ printf "onitroad:$(openssl passwd -crypt 'mypass')\n" | sudo tee -a /etc/squid/httpauth
  • 接下来,我们需要编辑/etc/squid/squid.conf文件”以创建一个名为“MyAuth”的ACL,它使用我们创建的身份进行验证。添加以下行。
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic realm proxy
acl myauth proxy_auth REQUIRED

并在http_access deny all这行前面的任何地方添加下面这行:

http_access allow myauth
  • 最后,将更改保存到文件,然后重新启动Squid以进行更改以生效。
$ sudo systemctl restart squid
  • 如果防火墙处于活动状态,则需要允许Squid通过防火墙进行连接以连接。但是,我们不必更改任何防火墙规则以允许localhost。如果我们使用的是UFW防火墙:
$ sudo ufw allow 'Squid'

如果我们使用的是firewalld:

$ sudo firewall-cmd --permanent --add-service=squid
$ sudo firewall-cmd --reload

配置浏览器以使用Squid代理

首先,检查浏览器是否具有代理配置设置,通常位于“配置”菜单的“网络”部分内。
输入IP地址或者主机名以及Squid Server的端口,以使网络流量通过代理路由。

如果浏览器没有此选项,则它使用系统的代理设置。
我们必须配置系统代理,无论我们是Linux,Windows,MacOS等。

如果我们需要在Firefox上使用Squid代理进行身份验证,我们需要安装插件。
建议下载并安装Foxyproxy。

我们可以通过检查Access.log文件查看通过Squid代理访问的网站。

$ sudo cat /var/log/squid/access.log
日期:2020-07-07 20:56:03 来源:oir作者:oir