Linux 上的 Squid 代理配置
本教程介绍如何在 Linux 中配置 Squid 代理。
阅读本教程后,您将了解如何配置 Squid 端口和主机名、阻止对特定网站的访问以及允许特定设备访问互联网。
什么是 Squid 代理:
代理是位于两个网络之间的服务器;在这种情况下,Squid代理最常见的实现是用户计算机和设备与互联网之间的划分,中间由代理服务器划分或隔离。换句话说,代理服务器的功能是通过单个服务器集中网络流量。在本教程中,我们将通过 Squid 代理将本地网络流量重定向到互联网。仅作为代理的设备需要访问互联网;其余设备将通过它连接。
由于所有连接都通过代理,因此它的实现允许我们过滤访问。使用代理,网络管理员可以将禁止的网站或应用程序列入黑名单;虽然这不是 Squid 的主要目的,但它对于增加网络活动控制很有用。
通常,在这种情况下,代理设备有两个网络接口。网卡用于本地网络,而第二个用于访问互联网。本地网络设备请求的所有连接请求都会通过内部网卡传递,并在流量允许的情况下转发到外部网卡。
此外,Squid代理还可以作为缓存服务器,保存从不同请求中获得的数据,从而提高完成类似请求时的流量速度。在这种情况下,只会加载新的或修改的数据;其余的将保留在服务器中。通常,会实现多个缓存服务器,并将它们构造为树。
Linux 中的 Squid 代理入门:
首先,要在基于 Debian 的 Linux 发行版上安装 Squid,请运行以下命令。
Squid 的配置文件位于/etc/squid/squid.conf。
备份您的配置文件;您可以通过运行以下命令来完成此操作。
通过运行以下命令使备份不可写。
现在您可以编辑 Squid。要在生产中编辑 Squid 的配置文件,请运行以下命令。
包含http_port 3128的行,如下图所示,可以编辑Squid代理端口;默认情况下,Squid 代理端口为 3128,但您可以通过修改以下行来更改它。
注意:使用 Nano 文本编辑器,您可以通过按 Ctrl+W(位置)找到每一行。
找到包含 http_access allowed localhost 的行,以访问允许和拒绝的主机部分。
要允许所有客户端访问互联网,请添加以下行,如下面的屏幕截图所示。
如果保存并重新加载 Squid,您会注意到您的客户端现在可以访问互联网(您需要配置客户端以使用代理)。
您还可以编辑代理可见主机名(可能与设备主机名不同)。要添加类似于以下内容的行,请将 LinuxHint 替换为您想要的服务器的可见主机名。
要加载更改,请运行以下命令重新启动squid。
您还可以使用 systemctl 重新启动鱿鱼,如下所示。
在 Linux 中使用 Squid 阻止访问特定网站:
如前所述,我们可以使用 Squid 代理来定义允许和禁止的网站。现在我们将实施一条拒绝访问 Facebook 的规则。在/etc/squid/目录下创建,文件名任意;我将该文件命名为forbiddenbyadmin。
您可以使用以下命令使用 nano 创建同名文件。
在文件中,键入您要阻止的网站;您可以每行添加一个站点,任意数量。无需键入整个域名。然后,保存并退出nano。
保存文件后,再次打开Squid配置文件。
在我们之前添加的行下方,添加以下行以阻止 Facebook。第一行必须在引号之间包含包含被阻止站点的文件的正确路径。
http_access deny facebookblocked
关闭并保存配置并重新加载Squid;如果您尝试从客户端访问 Facebook,您将无法访问它。
仅允许使用 Squid 的特定设备流量:
您还可以通过实施 acl 指令来定义允许哪些设备通过 Squid 代理进行连接。以下行仅允许来自 IP 地址 192.168.1.32 的流量。
您还可以指定允许的本地网络,如下面的屏幕截图所示。
注意:请记住将您的客户端配置为通过 Squid 访问互联网。
添加Squid代理验证:
您还可以使用用户名和密码实现基本登录。通过运行以下命令创建密码文件。
创建密码文件后,运行以下命令创建用户名和密码,并在需要时填写密码字段,如屏幕截图所示。
然后打开/etc/squid/password配置文件。
在配置文件中插入以下行。
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
重新启动鱿鱼。
结论:
正如您所看到的,实施 Squid 代理对于网络和系统管理员来说非常有利。通过实施Squid代理,系统管理员甚至教师都可以轻松控制网络流量并实施策略和规则。配置 Squid 代理也很简单并且有很好的文档记录。
我希望本教程解释 Linux 上的 Squid 代理配置有用。继续关注 Linux Hint 以获取更多 Linux 技巧和教程。