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

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

在 Ubuntu 上安装 Squid

Squid 包包含在默认的 Ubuntu 18.04 存储库中。要安装它,请使用 sudo 用户运行以下命令:

sudo apt update
sudo apt install squid

安装完成后, Squid 服务将自动启动。

要验证安装是否成功并且 Squid 服务是否正在运行,请键入以下命令以打印服务状态:

sudo systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Thu 2019-06-27 11:45:17 UTC
...

配置 Squid

可以通过编辑 /etc/squid/squid.conf 文件来配置 Squid  。您还可以使用带有配置选项的分隔文件,可以使用 “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 3128http_port IP_ADDR:PORT

在所有接口和默认端口上运行 Squid 应该适合大多数用户。

另一个有趣的选择是 forwarded_for 。默认情况下,将其设置为 on 表示 out-box Squid 的行为类似于 RFC 兼容代理,并在 X-Forwarded-For 标头中添加客户端的 IP 地址。如果要设置透明代理,请取消注释该指令并将其更改为 transparent 。

将指令设置为 off 将告诉 Squid 不要在 HTTP 请求中转发附加客户端的 IP 地址。

/etc/squid/squid.conf 中

#Default:# forwarded_for on

在 Squid 中,您可以使用访问控制列表 (ACL) 控制客户端如何访问 Web 资源。

默认情况下, Squid 只允许从 localhost 访问。

如果将使用代理的所有客户端都具有静态 IP 地址,则可以创建包含允许的 IP 的 ACL 。

我们将创建一个新的专用文件来保存 IP ,而不是在主配置文件中添加 IP 地址:

/etc/squid/allowed_ips.txt

192.168.33.1
# All other allowed IPs

完成后,打开主配置文件并创建一个名为 allowed_ips (第一个突出显示的行) 的新 ACL ,并允许使用该 http_access 指令(第二个突出显示的行)访问该 ACL  :

/etc/squid/squid.conf 中

# ...acl allowed_ips  src "/etc/squid/allowed_ips.txt"# ...#http_access allow localnethttp_access allow localhosthttp_access allow allowed_ips# And finally deny all other access to this proxyhttp_access deny all

http_access 规则的顺序很重要。请务必先添加该行 http_access deny all 。

该 http_access 指令的工作方式与防火墙规则类似。 Squid 从上到下读取规则,当规则匹配时,不处理下面的规则。

每当您更改配置文件时,都需要重新启动 Squid 服务才能使更改生效:

sudo systemctl restart squid

Squid身份验证

Squid 可以对经过身份验证的用户使用不同的后端,包括 Samba , LDAP 和 HTTP 基本身份验证。

我们将使用 openssl 生成密码并使用 tee 命令将该 username:password 对附加到 /etc/squid/htpasswd 文件,如下所示:

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

让我们创建一个名为 “john” 的用户,密码为 Sz$Zdg69:

printf "josh:$(openssl passwd -crypt 'Sz$Zdg69')\n" | sudo tee -a /etc/squid/htpasswd
josh:RrvgO7NxY86VM

现在创建了用户,下一步是配置 Squid 以启用 HTTP 基本身份验证并使用该文件。

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

/etc/squid/squid.conf 中

# ...auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswdauth_param basic realm proxyacl authenticated proxy_auth REQUIRED# ...#http_access allow localnethttp_access allow localhosthttp_access allow authenticated# And finally deny all other access to this proxyhttp_access deny all

前三个突出显示的行正在创建一个名为 authenticated 的新 ACL  ,倒数第三行行允许访问经过身份验证的用户。

重启 Squid 服务:

sudo systemctl restart squid

配置防火墙

假设您正在使用 UFW 管理防火墙,则需要打开 Squid 端口。为此启用 “Squid” 配置文件,其中包含默认 Squid 端口的规则。

sudo ufw allow 'Squid'

要验证状态类型:

sudo ufw status

输出将如下所示:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
Squid                      ALLOW       Anywhere            
22/tcp (v6)                ALLOW       Anywhere (v6)             
Squid (v6)                 ALLOW       Anywhere (v6)  

例如,如果 Squid 在另一个非默认端口 8888 上运行,则可以使用后面的命令允许该端口上的流量: sudo ufw allow 8888/tcp 。

配置浏览器以使用代理

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

火狐

对于 Windows , macOS 和 Linux ,以下步骤相同。

  1. 在右上角,点击汉堡包图标打开 Firefox 的菜单:
  2. 单击 首选项 链接。
  3. 向下滚动到该 网络设置 部分,然后单击 设置… 按钮。
  4. 将打开一个新窗口。

    • 选择 手动代理配置 单选按钮。
    • 在 HTTP 代理 字段输入您的 Squid 服务器的 IP 地址, 在 端口 字段输入 3128。
    • 选中 为所有协议使用相同代理服务器 复选框。
    • 单击 确定 按钮以保存设置。

此时,您的 Firefox 已配置,您可以通过 Squid 代理浏览 Internet 。要验证它,打开 google.com ,键入“我的 IP 是什么”,你应该看到你的 Squid 服务器 IP 地址。

要恢复默认设置,请转到 Network Settings ,选择 Use system proxy settings 单选按钮并保存设置。

还有几个插件可以帮助您配置 Firefox 的代理设置,如 FoxyProxy 。

谷歌 Chrome 浏览器

Google Chrome 使用默认的系统代理设置。您可以使用插件(如 SwitchyOmega) 或从命令行启动 Chrome 网络浏览器,而不是更改操作系统代理设置。

要使用新配置文件启动 Chrome 并连接到 Squid 服务器,请使用以下命令:

Linux:

/usr/bin/google-chrome \
    --user-data-dir="$HOME/proxy-profile"\
    --proxy-server="http://SQUID_IP:3128"

苹果系统 :

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"\
    --user-data-dir="$HOME/proxy-profile"\
    --proxy-server="http://SQUID_IP:3128"

Windows:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
    --user-data-dir="%USERPROFILE%\proxy-profile" ^
    --proxy-server="http://SQUID_IP:3128"

如果配置文件不存在,将自动创建配置文件。这样,您可以同时运行多个 Chrome 实例。

要确认代理服务器是否正常工作,请打开 google.com ,然后键入 “what is my ip” 。浏览器中显示的 IP 应该是服务器的 IP 地址。

结论

您已经学习了如何在 Ubuntu 18.04 上安装 squid 并配置浏览器以使用它。

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

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/219834.html<

赞 (0)
管理的头像管理
上一篇2025-04-14 07:16
下一篇 2025-04-14 07:17

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注