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