如何在Ubuntu 18.04上安装和配置Squid代理
Squid是功能齐全的缓存代理,支持流行的网络协议,例如HTTP,HTTPS,FTP等。 Squid主要用于通过缓存重复的请求,过滤Web流量和访问受地理限制的内容来提高Web服务器的性能。
本教程将引导您完成在Ubuntu 18.04上设置Squid代理以及配置Firefox和Google Chrome浏览器以使用它的过程。
在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
文件。 您也可以将单独的文件与配置选项一起使用,可以使用“ 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资源。
默认情况下,Squid仅允许从本地主机访问。
如果将使用代理的所有客户端都具有静态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
让我们创建一个名为“ josh”的用户,其密码为“Sz$Zdg69
“:
printf "josh:$(openssl passwd -crypt 'Sz$Zdg69')n" | sudo tee -a /etc/squid/htpasswd
josh:RrvgO7NxY86VM
现在已经创建了用户,下一步是启用HTTP基本身份验证并包括 htpasswd
文件。
打开主配置并添加以下内容:
/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
前三行突出显示的行将创建一个新的ACL,名称为 authenticated
最后突出显示的行是允许访问经过身份验证的用户。
重新启动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,以下步骤相同。
在右上角,点击汉堡包图标
☰
打开Firefox的菜单:点击
⚙ Preferences
链接。向下滚动到
Network Settings
部分,然后单击Settings...
按钮。将打开一个新窗口。
- 选择
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地址。
结论#
您已经了解了如何在Ubuntu 18.04上安装Squid以及如何配置浏览器以使用它。
Squid是最流行的代理缓存服务器之一。 它可以提高Web服务器的速度,并可以帮助您限制用户访问Internet。
如果您遇到问题或有反馈,请在下面发表评论。
代理Ubuntu