如何在CentOS 7上安装和配置Squid代理

Squid是功能齐全的缓存代理,支持流行的网络协议,例如HTTP,HTTPS,FTP等。 通过将重复的请求缓存,过滤Web流量和访问受地理限制的内容,将Squid放置在Web服务器的前面可以大大提高服务器性能。

本教程说明了如何在CentOS 7上设置Squid以及如何配置Firefox和Google Chrome浏览器以使用代理。

在CentOS上安装Squid#

Squid软件包包含在默认的CentOS 7存储库中。 要安装它,请以sudo用户身份运行以下命令:

sudo yum install squid

安装完成后,启动并启用Squid服务:

sudo systemctl start squidsudo systemctl enable squid

要验证安装是否成功,请键入以下命令,该命令将显示服务状态:

sudo systemctl status squid
● squid.service - Squid caching proxy
   Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-07-13 16:47:56 UTC; 12s ago
...

配置鱿鱼

可以通过编辑Squid来配置 /etc/squid/squid.conf 文件。 可以使用“ include”指令包含带有配置选项的其他文件。

进行任何更改之前,请使用以下命令备份原始配置文件: cp 命令:

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)控制对Squid服务器的访问。

默认情况下,Squid仅允许从localhost和localnet访问。

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

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

/etc/squid/allowed_ips.txt

192.168.33.1
# All other allowed IPs

完成后,打开主配置文件并创建一个名为ACL的新ACL。 allowed_ips (第一行突出显示)并允许使用 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

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

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

sudo systemctl restart 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

例如,创建一个名为“ mike”的用户,其密码为“Pz$lPk76”,您将运行:

printf "mike:$(openssl passwd -crypt 'Pz$lPk76')n" | sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo

下一步是将Squid配置为启用HTTP基本身份验证并使用该文件。

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

/etc/squid/squid.conf

# ...
auth_param basic program /usr/lib64/squid/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

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

重新启动Squid服务:

sudo systemctl restart squid

配置防火墙

如果您正在运行防火墙,则需要打开端口 3128。 为此,请运行以下命令:

sudo firewall-cmd --permanent --add-port=3128/tcpfirewall-cmd --reload

如果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,输入“ what is my 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,然后输入“我的IP是什么”。 浏览器中显示的IP应该是服务器的IP地址。

结论#

您已经了解了如何在CentOS 7上安装乌贼并配置浏览器以使用它。

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

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

代理中心

Sidebar