HTTP代理服务安装--Squid

目录

一、下载并安装squid

  方法一:yum命令安装

  方法二:rpm命令安装

二、启动与配置squid

  1、启动squid

  2、配置squid

三、部分squid配置详解


一、下载并安装squid

  方法一:yum命令安装

# 通过yum命令直接安装squid
yum install -y squid
# 若报错:Couldn't open file /tmp/x86_64/repodata/repomd.xml
# 则执行以下命令(重新更新yum缓存)
yum-config-manager --save --setopt=ssh.skip_if_unavailable=true
yum clean all
yum makecache
yum install -y squid

  方法二:rpm命令安装

# 1、下载squid程序的rpm包,可以从“http://mirror.centos.org/centos/7/updates/x86_64/Packages/”地址中找最新的squid包
wget http://mirror.centos.org/centos/7/updates/x86_64/Packages/squid-3.5.20-17.el7_9.7.x86_64.rpm
# 若出现报错:wget: unable to resolve host address ‘mirror.centos.org’
# 表示域名无法解析,可下载rpm包后上传到服务器,
# 也可以本地“ping mirror.centos.org”拿到域名对应IP(13.231.175.254),再通过以下命令下载
wget http://13.231.175.254/centos/7/updates/x86_64/Packages/squid-3.5.20-17.el7_9.7.x86_64.rpm

# 2、安装squid程序
rpm -ivh squid-3.5.20-17.el7_9.7.x86_64.rpm
# 若出现以下报错:
# warning: squid-3.5.20-17.el7_9.7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
# error: Failed dependencies:
#        libecap.so.3()(64bit) is needed by squid-7:3.5.20-17.el7_9.7.x86_64
#        perl(DBI) is needed by squid-7:3.5.20-17.el7_9.7.x86_64
#        perl(Data::Dumper) is needed by squid-7:3.5.20-17.el7_9.7.x86_64
#        perl(Digest::MD5) is needed by squid-7:3.5.20-17.el7_9.7.x86_64
#        squid-migration-script is needed by squid-7:3.5.20-17.el7_9.7.x86_64
# 说明缺少依赖,可执行如下命令安装
rpm -ivh squid-3.5.20-17.el7_9.7.x86_64.rpm --force --nodeps

# 以上两步可以合并为
rpm -Uvh --force --nodeps http://13.231.175.254/centos/7/updates/x86_64/Packages/squid-3.5.20-17.el7_9.7.x86_64.rpm

二、启动与配置squid

  1、启动squid

# 1、初始化squid缓存空间
squid -z
# 若报错可以找到squid安装目录,使用全路径执行(以下squid命令均可以使用全路径执行,笔者安装目路径为:/usr/sbin/squid),如下
/usr/sbin/squid -z
# 若报错:squid: error while loading shared libraries: libecap.so.3: cannot open shared object file: No such file or directory
# 则需要安装依赖libecap
rpm -Uvh --force http://mirror.centos.org/centos/7/os/x86_64/Packages/libecap-1.0.0-1.el7.x86_64.rpm
# 继续执行初始化
squid -z

# 2、解析squid.conf配置,验证语法和配置
squid -k parse

# 3、启动squid
squid -s
# 停止
squid -k shutdown
# 或可以使用linux服务管理启动squid
systemctl start squid.service
# 使用linux服务管理停止squid
systemctl stop squid.service
# 设置开机自启
systemctl enable squid.service

  2、配置squid

# 1、修改配置
# 找到安装的squid的配置路径,vim命令去编辑配置文件,笔者使用路径如下
vim /etc/squid/squid.conf
# 若无需验证用户名密码,则在配置中添加允许所有用户访问
http_access allow all
# 推出vim编辑模型,保存配置

# 2、修改过配置则需要重载配置
squid -k reconfig

# 3、验证代理是否成功,localhost为安装的代理服务IP地址
curl -k https://www.baidu.com/ --proxy "http://localhost:3128"

# 至此完成服务搭建,若需要配置用户名密码则继续往下

# 4、生成用户名密码文件
# 命令:“htpasswd -c 用户名密码文件路径 用户名”,用户名填自己定义的名字,如用户名:admin,密码:123456
# 如下命令回车执行后输入密码,再回车(/etc/squid/passwd为用户名密码文件路径)
htpasswd -c /etc/squid/passwd admin
123456
# 若报错:-bash: htpasswd: command not found,则需要安装httpd-tools
yum -y install httpd-tools
# 若报错:Couldn't open file /tmp/x86_64/repodata/repomd.xml
# 则可执行以下命令重置缓存,尝试修复
yum-config-manager --save --setopt=ssh.skip_if_unavailable=true
yum clean all
yum makecache
yum -y install httpd-tools
# 继续生成用户名密码文件,回车后输入密码再回车
htpasswd -c /etc/squid/passwd admin
123456
# 验证密码,输入以下命令回车,其中/etc/squid/passwd为用户名密码文件路径,再输入:用户名 密码。再回车
/usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
admin 123456
# 若提示ok则说明正确,ctrl+c结束(/usr/lib64/squid/basic_ncsa_auth可以到自己安装的squid对了lib库目录下找)

# 4、修改squid.conf配置
vim /etc/squid/squid.conf
# 删除掉“http_access allow all”配置和“http_access allow localnet”配置和“http_access deny all”配置
# 添加用户名密码配置
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
# 其中,auth_param basic program {squid密码校验程序} {用户名密码文件路径},即把验证密码的命令加到auth_param basic program 后面
# 添加开启代理用户认证
acl auth_user proxy_auth REQUIRED

# 5、重载配置
squid -k reconfig

# 6、验证代理是否成功,localhost为安装的代理服务IP地址
curl -k https://www.baidu.com/ --proxy "http://admin:123456@192.168.30.75:3128"
# 其中admin:123456为:用户名:密码

三、部分squid配置详解

# 监听端口
http_port 3128
# 监听ipv6和ipv4则配成 http_port 0.0.0.0:3128
 
# 内存中的缓存大小
cache_mem 128 MB

# 最大被缓存文件大小,配合cache_dir使用,只作用于缓存到磁盘的文件
maximum_object_size 16 MB
cache_dir ufs /var/spool/squid 100 16 256
# 缓存文件夹/var/spool/squid,默认是只缓存在内存。参数为:缓存大小100M,spool目录16个,squid目录256个

# 访问日志路径
access_log /var/log/squid/access.log

# 允许所有用户访问
http_access allow all

# 拒绝请求不安全端口
http_access deny !Safe_ports

# 拒绝连接到非安全SSL端口
http_access deny CONNECT !SSL_ports

# 拒绝对本地服务使用代理
http_access deny to_localhost

# 允许本地网络、本地IP通过代理访问
http_access allow localnet
http_access allow localhost

# 拒绝所有其他用户访问
http_access deny all

# 允许从指定网络访问的规则配置示例
acl otherhost src 192.168.0.0/16
 
# 每个IP最大允许16个连接
acl OverConnLimit maxconn 16
 
# 选择的认证方式为basic,定义认证程序路径和密码文件路径
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd

# 认证进程数
auth_param basic children 5

# 认证有效时长
auth_param basic credentialsttl 5 hours

# 认证的用户可访问
acl auth_user proxy_auth REQUIRED

# 超出之前设定的连接数则拒绝
http_access deny OverConnLimit

个人总结,不喜勿喷

欢迎纠正与提问

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值