一、安装Squid代理服务器

#yum -y install squid

1、启动Squid服务和设置开机启动

#systemctl start squid
#systemctl enable squid

2、详解Squid服务器配置文件

默认的/etc/squid/squid.conf文件内容和文件结构如下,该文件由访问控制列表、参数设置和刷新模式三部分组成,更详细的内容可以参考**/usr/share/doc/squid-*/squid.conf.documented模板文件**

[root@fl ~]# more /etc/squid/squid.conf第一部分:访问控制列表acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machinesacl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECThttp_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
#http_access deny to_localhost
http_access allow localnet
http_access allow localhost
http_access deny all第二部分:参数设置http_port 128
#cache_dir ufs /var/spool/squid 100 16 256
coredump_dir /var/spool/squid第三部分:刷新条目refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

3、介绍/etc/squid/squid.conf文件中可添加和修改的主要参数,以下内容为添加、修改内容,

仅作为参考,不作为修改内容,此处仅作介绍,可直接跳过此步骤

1)网络设置
#vi /etc/squid/squid.conf

第59行

添加如下内容:
icp_port 3130 //设置Squid发送/接受ICP查询时使用的端口
htcp_port 4827 //设置Squid发送/接收HTCP查询时使用的端口

2)临近代理设置
cache_peer 192.168.100.20 parent 3128 3130 no-digest no-netdb-exchange //表示指定其他代理服务器,192.168.100.20为上层服务器,http_port为3128,icp_port为3130,不发出建立摘要表的请求,不交换管理信息

cache_peer_access example.com allow aclcom //表示用不通的代理服务器获取特定的目标资源,使用example.com服务器去访问aclcom中定义的目标主机资源,这里的aclcom为用户自定义的ACL名称

3)缓存设置
cache_mem 256 MB //设置缓存区大小,一般为实际内存的1/3。

cache_dir ufs /var/spool/squid 100 16 256 //设置磁盘缓存目录和大小,ufs表示缓存格式,/var/spool/squid表示目录缓存,100表示磁盘缓存容量100MB,16表示最大16个二级子目录,256表示每个二级子目录最大有256个三级子目录

cache_swap_high 95 //设置最高缓存百分比,当实际缓存超过cache_swap_hig设置的百分比时,服务器会开始删除缓存直到百分比下降到cache_swap_low的设定值

cache_swap_low 90 //设置最高缓存百分比,当实际缓存超过cache_swap_hig设置的百分比时,服务器会开始删除缓存数据,直至容量达到cache_mem容量的90%

maxi mum_object_size 4096 KB //设置能缓存的最大单个文件的大小

maximum_object_size_in_memory 8 KB //在内存中单个文件最大缓存大小,超过这个大小将不缓存到内存中

ipcache_size 1024 //设置IP地址的最大缓存大小

fqdncache_size 1024 //设置完全合格的域名的最大缓存大小

4)日志文件名设置
cache_log /var/log/squid/cache.log //设置缓存日志文件路径,它记录服务器启动,关闭以及系统相关信息

cache_store_log /var/log/squid/store.log //网页缓存日志文件路径,记录了网页在缓存中的调用情况

access_log /var/log/squid/access.log //设置访问日志文件路径,记录了用户访问Internet的详细信息,可以查看每个用户的上网记录,格式由logformat参数指定

pid_filename /var/run/squid.pid //设置将squid的进程号记录在哪个文件中

5)认证设置
auth_param basic children 5 //设置鉴权程序的进程数

auth_param basic realm Squid proxy-caching web server //定义Web浏览器显示认证对话框时的领域名称,即用户输入用户名密码时看到的提示信息

auth_param basic credentialsttl 2 hours //用户通过认证后的有效时间,超出则必须重新认证

auth_param basic casesensitive off //用户名是否需要匹配大小

acl ncsa_users proxy_auth REQUIRED //所有成功鉴权的用户都归于ncsa_users组。

http_access allow nsca_uesrs //允许ncsa_users组的用户使用Proxy

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd //指定密码文件和用来验证密码的程序

6)禁止缓存
hierarchy_stoplist cgi-bin ? //出现cgi-bin或者?的URL不予缓存

hierarchy_stoplist -i ^https://?
acl QYERY urlpath_regex -i cgi-bin /? /.asp /.php /.jsp /.cgi
acl denyssl urlpath_regex -i ^https://
no_cache deny QUERY
no_cache deny denyssl
以上几条设置遇到URL中包换有cgi-bin和以https://开头的都不要缓存,asp\cgi\php\等动态脚本也不要缓存,。https://开头的不缓存是因为一般我们进行电子商务交易,例如银行付款等都是采用这个,如果把信用卡号等进行缓存是十分危险的!

7)超时设置
connect_timeout 1 minute //设置连接超时时间
peer_connect_timeout 30 seconds //设置与上层服务器之间的连接超市时间。
request_timeout 5 minutes //设置建立连接后请求的超时时间
persistent_request_timeout 1 minute //设置持续请求的超时时间

4、详解Squid访问控制列表(ACL)
1)内容格式
Squid服务支持访问控制,可以控制客户是否能够连接,以及连接后可以使用的资源,使用acl命令对不通性质的客户进行分类赋予名称,然后使用http_access命令对某一类客户实施允许还是拒绝的操作,下面给出Squid访问控制列表的内容格式,其中类型如下表1所示,时间表示方法如表2所示,匹配模式如表3所示,参数-i 使Squid不区分大小写:
acl ACL名称 ACL类型 [-i] 值|文件
http_access allow|deny ACL名称

二、配置正向代理服务器

1、Squid服务器与客户端网卡设置

2、规划代理服务器参数

项目要求:
在公司内部配置一台Squid服务器,为公司网络内的用户提供代理上网服务,具体参数如下表所示

1、编辑服务器配置文件

#vi /etc/squid/squid.conf

修改以添加如下内容:
修改并添加
添加acl规则,允许192.168.100.0/24访问,并将 192.168.0.0/16这行注释掉

http_port 3128   //此处为修改内容,第59行
cache_mem 512 MB
cache_dir ufs /var/spool/squid 20480 16 256
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_access_log /var/log/squid/access.log
cache_mgr root@fl.com
cache_effective_user squid
cache_effective_group squid
dns_nameservers 8.8.8.8
visible_hostname prox.fl.com

2、重启squid服务器

#systemctl restart squid

3、打开内核转发功能

编辑文件/etc/sysctl.conf,添加如下内容

net.ipv4.ip_forward=1

生效配置

#sysctl -p

4、本机测试Squid服务

#curl -x 192.168.100.10:3128 www.baidu.com  //注意此处192.168.200.20为外网网卡

停止squid服务再次测试

#systemctl stop squid
#curl -x 192.168.100.20:3128 www.baidu.com

5、配置Squid客户端

1)标准正向代理
当Squid服务程序顺利启动后,默认即可使用标准正向代理模式,在此模式下,Windows客户端只需设置IP地址和子网掩码即可,网关和DNS可不设置。在Win7中打开浏览器,依次单击”工具”,”Internet选项”,在“Internet选项”对话框中单击,“连接”,“局域网设置”,“局域网设置”对话框,填写Squid服务器的IP地址和端口号,然后尝试访问互联网网站

先确保您的Squid服务已重新启动

设置Win7的VM1的IP地址

2)透明正向代理(此处仅作介绍,并不演示)
Linux网关提供透明代理服务,局域网可以通过透明代理访问Internet中的网站,在使用透明正向代理服务器时,无需在修改客户端的浏览器选项,但必须将客户端的网关IP指向Squid服务器,可不设置DNS,然后尝试访问互联网网站,会发现失败,无法解析目标主机域名,原来Squid服务程序是不支持DNS解析代理的,这个就需要配置SNAT

CentOS-7.2部署Squid服务相关推荐

  1. CentOS 7.6 部署squid代理服务器

    squid代理服务器 一.概述 二.缓存代理 1.工作机制 2.代理类型 2.1 传统代理 2.2 透明代理 三.部署squid代理 1.源码安装squid 2.传统代理配置 3.透明代理配置 一.概 ...

  2. redhat 7部署squid(代理)服务

    一.服务器端 在部署squid服务之前先确保服务器至少有两张网卡并且已经配置好内外网网卡的网络配置信息 相关配置参考:https://blog.csdn.net/qq_21453783/article ...

  3. Centos7.2部署各类服务

    部署FTP服务: 部署Apache服务: 部署mariadb-server服务: 部署基于LAMP框架的Discuz论坛: 部署DNS域名解析服务以及相关配置 部署DHCP服务以及其他服务设置 部署邮 ...

  4. 阿里云服务器CentOS部署Minio服务实现远程访问

    阿里云服务器CentOS部署Minio服务实现远程访问 1.下载 1.1 建立文件夹 mkdir /usr/local/minio mkdir /usr/local/minio/data 1.2下载 ...

  5. CentOS使用docker-compose在线部署milvus服务(超详细)

    部署milvus服务(在线部署docker.docker-compose.milvus服务) 注意事项: 若所有操作在root用户下进行,则无需执行第2步.第4步的第1条.第6步的第1条 离线部署适用 ...

  6. 想要比别人跑的快,还得 Squid 替你代 ———— 部署Squid代理服务器 —— 正向代理(传统代理、透明代理) ---- 你值得一看!

    部署Squid代理服务器 Squid介绍 使用Squid的好处 Squid代理类型 正向代理 反向代理 部署 Squid 正向代理 传统代理 传统代理部署规划 传统代理部署 透明代理 透明代理部署规划 ...

  7. nginx+ssl+pm2 部署 nodejs 服务

    nginx+pm2 部署 nodejs 服务 最近在 centos 上部署 nodejs 服务,记下来步骤: 注意都是使用 root 用户. 下载 nvm: curl -o- https://raw. ...

  8. centos7 校正linux系统时间_基于centos7系统部署NTP服务及配置时间定时同步

    概述 linux服务器在提供服务时,要和其他机器进行请求的交互,实际生产环境中,可能因为时间不同步,导致了服务异常. 下面介绍下怎么部署NTP服务来解决这个问题. ps:强烈吐槽下头条这个新排版功能, ...

  9. 快速部署ldap服务

    快速部署ldap服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.LDAP概述 1.什么是目录服务(1)目录是一类为了浏览和搜索数据二十几的特殊的数据库,例如:最知名的的微软 ...

最新文章

  1. java快速创建dto_根据数据库表对象信息快速建立Dto类详解
  2. AutoX无人车完成1亿美元A轮融资,东风汽车领投,阿里旗下基金入股
  3. sql--找含有制定字符列的表
  4. php错误密码也能登陆账号,php用户登陆代码(限制用户错误登录次数)(1/2
  5. java 暂停多线程_关于java中多线程的暂停
  6. Spring的AOP原理
  7. android studio 显示方法列表,有没有办法在Android Studio编辑器中显示RecyclerView内容的预览?...
  8. AtCoder Regular Contest 101 (ARC101) D - Median of Medians 二分答案 树状数组
  9. 请详细描述listview与gridview的异同点_一建考试中,实在不会的怎么办?教你从题目中获取得分点!...
  10. ipq_read(3)
  11. 视频转gif怎样操作?如何快速在线生成gif动图?
  12. STM32串口通信实例
  13. 需求分解与需求跟踪矩阵
  14. 模2除法怎么计算,模2除法最简单的理解
  15. 一个三非渣本的安卓秋招之路
  16. 贝茜放慢脚步(二路归并)
  17. 运算放大器知识体系-电流检测放大器
  18. 报表服务器组件,开发者手册概述:Power BI 报表服务器
  19. 干货 | 对象存储的跨地域复制概述
  20. 2021年度隐私计算十大人物评选出炉

热门文章

  1. [编程题]字符串最后一个单词的长度
  2. putty network error:Connection refused 乱码
  3. RHCE实验:Linux下基于xinetd的访问控制
  4. O/R Mapping 研究报告(转)
  5. 2018年台湾为陕西最大贸易伙伴
  6. ftp服务----基于虚拟用户的创建
  7. 【c++】重载操作符
  8. Spring component-scan类扫描加载过程
  9. 数据库优化案例——————某市中心医院HIS系统
  10. Python.Scrapy.12-scrapy-source-code-analysis-part-2