如何在 Ubuntu 20.04 上安装和配置 Squid 代理

2023-11-13

Squid 是一个功能齐全的缓存代理,支持流行的网络协议,如 HTTP、HTTPS、FTP 等。它可用于通过缓存重复请求、过滤 Web 流量和访问地理限制内容来提高 Web 服务器的性能。

本教程介绍如何在 Ubuntu 20.04 上设置 Squid 代理并配置 Firefox 和 Google Chrome 网络浏览器以使用它。

在 Ubuntu 上安装 Squid#

squid 包包含在标准 Ubuntu 20.04 存储库中。要安装它,请运行以下命令须藤用户 :

sudo apt updatesudo apt install squid

安装完成后,Squid服务将自动启动。要验证它,请检查服务状态:

sudo systemctl status squid

输出将如下所示:

● squid.service - Squid Web Proxy Server
     Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-10-23 19:02:43 UTC; 14s ago
       Docs: man:squid(8)
...

配置鱿鱼#

可以通过编辑以下内容来配置squid服务/etc/squid/squid.conf文件。配置文件包含描述每个配置选项的作用的注释。您还可以将配置设置放在单独的文件中,可以使用“include”指令将其包含在主配置文件中。

在进行任何更改之前,建议备份原始配置文件:

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 应该没问题。

Squid 允许您使用访问控制列表 (ACL) 来控制客户端访问 Web 资源的方式。默认情况下,仅允许从本地主机进行访问。

如果使用代理的所有客户端都具有静态 IP 地址,则限制对代理服务器的访问的最简单选项是创建包含允许的 IP 的 ACL。否则,您可以将squid 设置为使用身份验证。

不要在主配置文件中添加 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

鱿鱼认证#

如果基于 IP 限制访问不适用于您的用例,您可以将鱿鱼配置为使用后端来验证用户身份。鱿鱼支持Samba、LDAP 和 HTTP 基本身份验证。

在本指南中,我们将使用基本身份验证。它是一种内置于 HTTP 协议中的简单身份验证方法。

要生成加密密码,请使用openssl工具。以下命令附加USERNAME:PASSWORD配对到/etc/squid/htpasswd file:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

例如,创建一个用户“josh”,密码为“P@ssvv0rT”,你会运行:

printf "josh:$(openssl passwd -crypt 'P@ssvv0rd')\n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6

下一步是启用 HTTP 基本身份验证并将包含用户凭据的文件包含到鱿鱼配置文件中。

打开主配置并添加以下内容:

sudo nano /etc/squid/squid.conf
/etc/squid/squid.conf
# ...
auth_param basic program /usr/lib/squid3/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

配置防火墙#

要打开 Squid 端口,请启用UFW‘鱿鱼’简介:

sudo ufw allow 'Squid'

例如,如果 Squid 正在另一个非默认端口上运行,8888您可以通过以下方式允许该端口上的流量:sudo ufw allow 8888/tcp.

配置您的浏览器以使用代理#

现在您已经设置了 Squid,最后一步是配置您的首选浏览器以使用它。

Firefox #

以下步骤对于 Windows、macOS 和 Linux 是相同的。

  1. 单击右上角的汉堡包图标打开 Firefox 的菜单:

  2. 单击⚙ Preferences link.

  3. 向下滚动到Network Settings部分并单击Settings... button.

  4. 将打开一个新窗口。

    • 选择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地址。

结论#

Squid 是最流行的代理缓存服务器之一。它提高了 Web 服务器的速度,并可以帮助您限制用户对 Internet 的访问。

我们向您展示了如何在 Ubuntu 20.04 上安装和配置 Squid 以及如何设置浏览器来使用它。

如果您遇到问题或有反馈,请在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 20.04 上安装和配置 Squid 代理 的相关文章

随机推荐

  • 使用 Curl 传递自定义标头:实用指南

    Curl 是一个强大的命令行工具 世界各地的开发人员都使用它来通过 URL 传输数据 Curl 是一种多功能工具 支持各种协议 例如 HTTP HTTPS FTP 等 Curl 的宝贵功能之一是它能够在发出请求时传递自定义标头 本文旨在深入
  • Linux 中的 ls 命令(列出文件和目录)

    ls是任何 Linux 用户都应该知道的基本命令之一 The ls命令列出文件系统中的文件和目录 并显示有关它们的详细信息 它是安装在所有 Linux 发行版上的 GNU 核心实用程序包的一部分 本文将通过实际示例和最常见 ls 选项的详细
  • 如何在 CentOS 7 上安装 WildFly (JBoss)

    WildFly 以前称为 JBoss 是一个用 Java 编写的跨平台开源应用程序运行时 可帮助您构建令人惊叹的应用程序 WildFly 灵活 轻量 并且基于可根据需要添加或删除的可插拔子系统 本教程介绍如何在 CentOS 7 上安装 W
  • 如何在 CentOS 上启用 EPEL 存储库

    EPEL Extra Packages for Enterprise Linux 存储库提供了标准 Red Hat 和 CentOS 存储库中未包含的附加软件包 创建 EPEL 存储库是因为 Fedora 贡献者希望使用他们在 Red Ha
  • Linux 中的 who 命令

    在这篇文章中 我们解释了who捆绑在 GNU coreutils 包中的命令 who是一个命令行实用程序 用于打印当前登录用户的列表 它还可以显示当前的运行级别 上次系统启动的时间等 如何使用who命令 的基本语法为who命令如下 who
  • 如何在 Linux 中截断(空)文件

    在某些情况下 您可能希望将现有文件截断 清空 至零长度 简单来说 截断文件就是删除文件内容而不删除文件 截断文件比截断文件更快更容易删除文件 重新创造它 并设置正确的权限和所有权 此外 如果该文件由进程打开 则删除该文件可能会导致使用该文件
  • 如何在 CentOS 8 上安装 PostgreSQL

    PostgreSQL 或 Postgres 是一种开源通用对象关系数据库管理系统 具有许多高级功能 允许您构建容错环境或复杂的应用程序 在本指南中 我们将讨论如何在 CentOS 8 上安装 PostgreSQL 数据库服务器 在选择安装哪
  • 如何在 Ubuntu 18.04 上安装 Pip

    Pip 是一个包管理系统 可简化用 Python 编写的软件包 例如 Python 包索引 PyPI 中的软件包 的安装和管理 Ubuntu 18 04 上默认不安装 Pip 但安装非常简单 在本教程中 我们将向您展示如何使用 Ubuntu
  • 如何在 Debian 9 上安装 Go

    Go 是 Google 创建的一种现代开源编程语言 用于构建可靠 简单 快速 高效的软件 许多流行的应用程序 包括 Kubernetes Docker Teraform 和 Grafana 都是用 Go 编写的 在本教程中 我们将引导您完成
  • 如何在 Ubuntu 20.04 上安装 Sublime Text 3

    崇高的文字是用于网络和软件开发的流行文本和源代码编辑器 它速度非常快 并且具有许多开箱即用的强大功能 可以通过安装新插件和创建自定义设置来增强和自定义该应用程序 本文介绍如何在 Ubuntu 20 04 上安装 Sublime Text 3
  • 如何在 Ubuntu 20.04 上安装 Chromium Web 浏览器

    Chromium是一款专为现代网络打造的快速 稳定且安全的浏览器 它是许多浏览器的基础 包括世界上最流行的网络浏览器谷歌浏览器 Chromium 和 Chrome 之间的主要区别在于 Chromium 是开源的 Chromium 不包含专有
  • 如何在 Debian 10 Linux 上安装 Git

    Git 是世界上最流行的分布式版本控制系统 被许多开源和商业项目使用 使用 Git 您可以与其他开发人员协作处理项目 跟踪代码更改 恢复到之前的阶段 创建分支等等 它最初是由莱纳斯 托瓦尔兹Linux内核的创建者 本教程介绍如何在 Debi
  • 如何在 CentOS 7 上安装和配置 Nagios

    Nagios 是最流行的开源监控系统之一 Nagios 保留整个 IT 基础设施的清单 并确保您的网络 服务器 应用程序 服务和流程正常运行 如果发生故障或性能不佳 Nagios 将通过各种方法发送通知警报 本教程介绍如何在 CentOS
  • 如何在 Ubuntu 18.04 上安装 Odoo 13

    Odoo 是一款流行的开源商业应用程序套件 它提供一系列应用程序 包括 CRM 电子商务 网站构建器 计费 会计 制造 仓库 项目管理 库存等等 所有这些都无缝集成 Odoo根据使用案例和可用技术 可以通过多种方式安装 安装 Odoo 最简
  • 如何在 Ubuntu 18.04 上安装和配置 Squid 代理

    Squid 是一个功能齐全的缓存代理 支持流行的网络协议 如 HTTP HTTPS FTP 等 Squid 主要用于通过缓存重复请求 过滤 Web 流量和访问地理限制内容来提高 Web 服务器的性能 本教程将引导您完成在 Ubuntu 18
  • 如何在 Ubuntu 20.04 上安装 Node.js 和 npm

    Node js 是一个基于 Chrome 的 JavaScript 构建的跨平台 JavaScript 运行时环境 旨在在服务器端执行 JavaScript 代码 它通常用于构建后端应用程序 但它也作为全栈和前端解决方案而流行 npm 是
  • 如何在 Ubuntu 20.04 上安装 Gitea

    Gitea 是一个用 Go 编写的快速且易于使用的自托管 git 服务器 它包括存储库文件编辑器 项目问题跟踪 用户管理 通知 内置 wiki 等等 Gitea是一个轻量级应用程序 可以安装在低功耗系统上 如果您正在寻找内存占用小得多的 G
  • 如何在 CentOS 8 上安装 MariaDB

    MariaDB 是一个开源关系数据库管理系统 向后兼容 是 MySQL 的二进制直接替代品 它是由 MySQL 的一些原始开发人员和社区中的许多人开发的 在本教程中 我们将解释如何在 CentOS 8 上安装和保护 MariaDB 10 3
  • 如何在 Debian 9 上安装 Memcached

    Memcached 是一个免费开源的高性能内存键值数据存储 它主要用于通过缓存数据库调用结果中的各种对象来加速应用程序 在本教程中 我们将引导您完成在 Debian 9 上安装和配置 Memcached 先决条件 您需要以以下身份登录具有
  • 如何在 Ubuntu 20.04 上安装和配置 Squid 代理

    Squid 是一个功能齐全的缓存代理 支持流行的网络协议 如 HTTP HTTPS FTP 等 它可用于通过缓存重复请求 过滤 Web 流量和访问地理限制内容来提高 Web 服务器的性能 本教程介绍如何在 Ubuntu 20 04 上设置