何在 Debian 10 Linux 上安装和配置 Squid 代理

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

在本教程中,我们将解释如何在 Debian Buster 上设置 Squid 代理。我们还将向您展示如何配置 Firefox 和 Google Chrome 网络浏览器以使用它。

在 Debian 上安装 Squid

Squid 软件包包含在 Debian 10 存储库的标准中。以 sudo 用户身份运行以下命令来安装 Squid :

sudo apt update  sudo apt install squid

安装完成后, 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 Sat 2019-08-03 08:52:47 PDT; 3s ago  ...

配置 Squid

可以通过编辑 /etc/squid/squid.conf 配置文件来配置 Squid 。可以使用 “include” 指令包含单独的配置文件。

该 squid.conf 配置文件包含注释描述每个配置选项做什么。

在进行任何更改之前,最好备份原始文件:

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) 允许您控制客户端访问 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 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 。

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

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

sudo systemctl restart squid

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

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

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

buster:RrvgO7NxY86VM

下一步是启用 HTTP 基本身份验证。打开主配置并添加以下内容:

/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

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

重启 Squid 服务:

sudo systemctl restart squid

配置防火墙

UFW 用户可以 3128 通过启用 “Squid” 配置文件来打开端口:

sudo ufw allow 'Squid'

如果使用 nftables 过滤与系统的连接,请通过发出以下命令打开必要的端口:

sudo nft add rule inet filter input tcp dport 3128 ct state new,established counter accept

如果 Squid 在另一个非默认端口上运行,则需要允许该端口上的流量。

配置浏览器以使用代理

在本节中,您将向您展示如何配置浏览器以使用 Squid 代理。

火狐

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

  1. 在右上角,点击汉堡包图标☰打开 Firefox 的菜单:
  2. 单击⚙ Preferences 链接。
  3. 向下滚动到该 Network Settings 部分,然后单击 Settings… 按钮。
  4. 将打开一个新窗口。

    • 选择 Manual proxy configuration 单选按钮。
    • 在输入您的 Squid 服务器的 IP 地址 HTTP Host 字段 3128 的 Port 字段。
    • 选中该 Use this proxy server for all protocols 复选框。
    • 单击 OK 按钮以保存设置。

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

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

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

谷歌浏览器

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)GoogleChromeApplicationchrome.exe" ^      --user-data-dir="%USERPROFILE%proxy-profile" ^      --proxy-server="http://SQUID_IP:3128"

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

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

结论

我们已经介绍了如何在 Debian 10 上安装 Squid 并配置浏览器以使用它的基础知识。

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

如果您有任何疑问,请在下面留言。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。