# 安装和配置Squid代理服务器

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/8577.html | 发布：2022-07-25 | 更新：2022-07-25 | 分类：IDC云库

Squid是用于运行 HTTP 代理的软件。在本文中，我们将展示如何安装和配置 Squid 代理服务器。要开始安装，请通过 SSH 连接到服务器并运行以下命令。

Squid是用于运行 HTTP 代理的软件。在本文中，我们将展示如何安装和配置 Squid 代理服务器。要开始安装，请通过 SSH 连接到服务器并运行以下命令。

 

中央操作系统：

 

```
[root@proxy ~]# yum -y install squid
```

 

Ubuntu/Debian：

 

```
[root@proxy ~]# apt-get -y install squid
```

 

清理 Squid 配置文件。

 

```
[root@proxy ~]# cat /dev/null > /etc/squid/squid.conf
```

 

导航到 Squid 目录并打开其配置文件。

 

```
[root@proxy ~]# cd /etc/squid/
[root@proxy squid]# vi squid.conf
```

 

通过按键盘上的 Insert 并输入以下内容开始编辑配置文件。

 

中央操作系统：

 

```
auth_param 基本程序 /usr/lib64/squid/basic_ncsa_auth /etc/squid/squid_users
auth_param 基本儿童 5
auth_param 基本领域 Auth
auth_param 基本凭据ttl 1 小时
acl ncsa_users proxy_auth 需要
ignore_expect_100 on
access_log /var/log/squid/access.log 鱿鱼
server_persistent_connections 关闭
dns_v4_first 开启
可见主机名本地主机
缓存拒绝所有
http_port 17102

acl proxy_user_acl proxy_auth proxy_user
acl ip_1 myip 2.58.28.45
tcp_outgoing_address 2.58.28.45
http_access 允许 proxy_user_acl ip_1

forwarded_for 关闭
request_header_access 允许 允许所有
request_header_access 授权允许所有
request_header_access WWW-Authenticate 允许所有
request_header_access 代理授权允许所有
request_header_access Proxy-Authenticate allow all
request_header_access 缓存控制允许所有
request_header_access 内容编码允许所有
request_header_access 内容长度允许所有
request_header_access 内容类型允许所有
request_header_access 日期允许所有
request_header_access 过期允许所有
request_header_access 主机允许所有
request_header_access If-Modified-Since 允许所有
request_header_access Last-Modified 允许所有
request_header_access 位置允许所有
request_header_access Pragma 允许所有
request_header_access 接受 允许所有
request_header_access Accept-Charset 允许所有
request_header_access Accept-Encoding 允许所有
request_header_access Accept-Language allow all
request_header_access 内容语言允许所有
request_header_access Mime-Version 允许所有
request_header_access Retry-After allow all
request_header_access 标题允许所有
request_header_access 连接允许所有
request_header_access 代理连接允许所有
request_header_access 用户代理允许所有
request_header_access Cookie 允许所有
request_header_access Set-Cookie 允许所有
```

 

Ubuntu/Debian：

 

```
auth_param 基本程序 /usr/lib/squid/basic_ncsa_auth /etc/squid/squid_users
auth_param 基本儿童 5
auth_param 基本领域 Auth
auth_param 基本凭据ttl 1 小时
acl ncsa_users proxy_auth 需要
ignore_expect_100 on
access_log /var/log/squid/access.log 鱿鱼
server_persistent_connections 关闭
dns_v4_first 开启
可见主机名本地主机
缓存拒绝所有
http_port 17102

acl proxy_user_acl proxy_auth proxy_user
acl ip_1 myip 2.58.28.45
tcp_outgoing_address 2.58.28.45
http_access 允许 proxy_user_acl ip_1

forwarded_for 关闭
request_header_access 允许 允许所有
request_header_access 授权允许所有
request_header_access WWW-Authenticate 允许所有
request_header_access 代理授权允许所有
request_header_access Proxy-Authenticate allow all
request_header_access 缓存控制允许所有
request_header_access 内容编码允许所有
request_header_access 内容长度允许所有
request_header_access 内容类型允许所有
request_header_access 日期允许所有
request_header_access 过期允许所有
request_header_access 主机允许所有
request_header_access If-Modified-Since 允许所有
request_header_access Last-Modified 允许所有
request_header_access 位置允许所有
request_header_access Pragma 允许所有
request_header_access 接受 允许所有
request_header_access Accept-Charset 允许所有
request_header_access Accept-Encoding 允许所有
request_header_access Accept-Language allow all
request_header_access 内容语言允许所有
request_header_access Mime-Version 允许所有
request_header_access Retry-After allow all
request_header_access 标题允许所有
request_header_access 连接允许所有
request_header_access 代理连接允许所有
request_header_access 用户代理允许所有
request_header_access Cookie 允许所有
request_header_access Set-Cookie 允许所有
```

 

按键盘上的 Esc 和 :wq 键保存并关闭文件。

 

我们还需要 htpasswd 实用程序来为我们的代理用户生成密码。为此，请安装 httpd-tools 包。

 

中央操作系统：

 

```
[root@proxy squid]# yum install -y httpd-tools
```

 

Ubuntu/Debian：

 

```
[root@proxy squid]# apt-get install -y apache2-utils
```

 

为名为 proxy_user 的用户生成密码。

 

```
[root@proxy squid]# htpasswd -b -c squid_users proxy_user e7aB4AmpUvFDj6E
为用户 proxy_user 添加密码
```

 

上面的命令有 3 个参数：

 

- squid_users – 保存用户密码的文件名， 
- proxy_user – 用户名 
- e7aB4AmpUvFDj6E – 密码

 

检查密码是否生成成功。

 

```
[root@proxy squid]# cat squid_users
代理用户：$apr1$Zac9nPwt$pbDUf3LsyWdeIei.JLcwF。
```

 

如果 Squid 服务尚未运行，请启动它。

 

```
[root@proxy squid]# systemctl status squid
● squid.service - Squid 缓存代理
   已加载：已加载（/usr/lib/systemd/system/squid.service；已禁用；供应商预设：已禁用）
   活跃：不活跃（死）
[root@proxy squid]# systemctl start squid
[root@proxy squid]# systemctl status squid
● squid.service - Squid 缓存代理
   已加载：已加载（/usr/lib/systemd/system/squid.service；已禁用；供应商预设：已禁用）
   活动：自 2021 年 9 月 8 日星期三 12:56:37 UTC 起活动（运行）；3 秒前
  进程：1342 ExecStop=/usr/sbin/squid -k shutdown -f $SQUID_CONF (code=exited, status=0/SUCCESS)
  进程：1349 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (code=exited, status=0/SUCCESS)
  进程：1344 ExecStartPre=/usr/libexec/squid/cache_swap.sh (code=exited, status=0/SUCCESS)
 主PID：1351（鱿鱼）
   CGroup：/system.slice/squid.service
           ├─1351 /usr/sbin/squid -f /etc/squid/squid.conf
           └─1353 (squid-1) -f /etc/squid/squid.conf

9 月 8 日 12:56:37 代理 systemd[1]：停止 Squid 缓存代理。
9 月 8 日 12:56:37 代理 systemd[1]：启动 Squid 缓存代理...
9 月 8 日 12:56:37 代理 systemd[1]：启动 Squid 缓存代理。
Sep 08 12:56:37 proxy squid[1351]: Squid Parent: will start 1 kids
9 月 8 日 12:56:37 代理 squid[1351]：Squid Parent：（squid-1）进程 1353 已启动
```

 

检查代理是否可访问并与任何支持 HTTP 代理的客户端一起使用。例如：

 

```
curl -x http://proxy_user:e7aB4AmpUvFDj6E@2.58.28.45:17102 ipinfo.io
{
  “ip”：“2.58.28.45”，
  “城市”：“伦敦”，
  “地区”：“英格兰”，
  “国家”：“国标”，
  "loc": "51.5085,-0.1257",
  "org": "AS61317 IPXO UK Ltd.",
  “邮政”：“EC1A”，
  “时区”：“欧洲/伦敦”，
  “自述文件”：“https://ipinfo.io/missingauth”
```

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
