中央操作系统:
[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”