squid代理
概念
高性能dialing服务软件,作为前置缓存服务,用于替代用户向网站服务器请求页面数据并进行缓存。
默认占用端口3128、3401、4827
分类
从作用分类
正向代理
用于局域网内
标准正向代理模式:
将网站的数据缓存在服务器本地,用户需要指定服务器的IP地址和端口号
透明正向代理模式
功能同上,但不需要用户指定代理服务器的IP地址和端口号
反向代理
降低网站服务器负载而设计的,反向代理服务器负责回应用户对原始网站服务器的静态页面请求
用于网站架构中,缓存网站的静态数据
安装squid
yum -y install squid
主程序目录 /usr/sbin/squid
配置文件目录 /etc/squid
主配置文件 /etc/squid/squid.conf
访问日志 /var/log/squid/access.log
缓存日志 /var/log/squid/cache.log
配置文件中的参数
http_port 3128 监听的端口号。
cache_mem 64M 内存缓冲区的大小。
cache_dir ufs /var/spool/squid 2000 16 256 硬盘缓冲区的大小。缓存大小,一级目录数,二级目录数
cache_effective_user squid 设置缓存的有效用户。
cache_effective_group squid 设置缓存的有效用户组。
dns_nameservers IP地址 一般不设置,用服务器默认的DNS地址。
cache_access_log /var/log/squid/access.log 访问日志文件的保存路径。
cache_log /var/log/squid/cache.log 缓存日志文件的保存路径。
visible_hostname linuxprobe.com 设置Squid服务主机的名称
启动服务
systemctl enable squid
systemctl start squid
#启动后默认可以标准正向代理模式
放行squid或端口
firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --permanent --add-service=squid
自定义服务端口
1、更改主配置文件
vim /etc/squid/squid.conf
http_port 10000
2、修改squid的布尔值
setsebool -P squid_connect_any 0
3、修改SELinux对10000的端口策略
semanage port -a -t squid_port_t -p tcp 10000
4、重启服务
systemctl restart squid
透明正向代理
squid不支持DNS解析,需要配置SNAT
iptables -t nat -A POSTROUTING -p udp --dport 53 -o en016777736 -j MASQUERADE
# firewall-cmd --permanent --add-masquerade
开启IPv4 转发策略
echo “net.ipv4.ip_forward=1” >> /etc/sysctl.conf
sysctl -p
配置透明代理
vim /etc/squid/squid.conf
http_port 3128 transparent
判断文件是否有错误
squid -k parse
重启服务
systemctl restart squid
将用户对80端口的请求转发到3128端口
iptables -t nat -A PEROUTING -p tcp --dport 80 -j REDIRECT --to-port 3218
iptables -t nat -R PEROUTING 1 -i eno16777736 -p tcp --dport 80 REDIRECT --to-port 3218
反向代理
编辑配置文件
格式:http_port squid服务器地址:端口号 vhost
http_port 192.168.10.10:80 vhost
添加原网站服务地址
格式:
cache_peer 原网站服务器地址 parent 服务器端口号 0 originserver
cache_peer 106.184.1.125 parent 80 0 originserver
ACL访问控制
ACL语法:
acl AclName AclType string
acl ACLName AclType "file"
AclType:
src定义源地址
acl aclname src x.x.x.x/mask
acl aclname src addr1-addr2/mask
dst目的地址
acl aclname dst x.x.x.x/mask
port指定访问端口号
acl aclname port 80 1024
acl aclname port 0-1024
url_regex限制网址中的关键词
acl aclname url_regex [-i] pattern
proto定义要代理的协议
acl aclname proto HTTP FTP
method指定请求的方法
acl aclname method GET POST
例:仅允许192.168.10.20的主机使用本地squid服务,拒绝其他
acl client src 192.168.10.20
http_access allow client
http_access deny all
拒绝客户使用代理服务器访问带有关键词“linux”的网站
acl deny_keyword url_regex -i linux
http_access deny deny_keyword
http_access allow all
拒绝客户机使用代理服务访问www. i.cnblogs.com
acl deny_url url_regex http://i.cnblogs.com
http_access deny deny_url
禁止客户机使用代理服务器下载mp3与rar为后缀的文件
acl badfile urlpath_regex -i \.mp3$ \.rar$
http_access deny badfile
squid代理的更多相关文章
- Linux下squid代理缓存服务环境部署
代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载 ...
- squid 代理服务器安装配置
ubuntu16.04 安装squid代理服务器配置 本文参考 http://www.cnblogs.com/newflypig/archive/2012/09/28/2862000.html 1,删 ...
- squid代理加用户认证
squid代理加用户认证 用authentication helpers添加身份验证 有如下几种认证方式 :=> NCSA: Uses an NCSA-style username and pa ...
- squid代理http和https方式上网的操作记录
需求说明:公司IDC机房有一台服务器A,只有内网环境:192.168.1.150现在需要让这台服务器能对外访问,能正常访问http和https请求(即80端口和443端口)操作思路:在IDC机房里另找 ...
- Squid代理配置
更改squid错误页面时间不对的问题解压源码包,进入此路径/usr/local/squid/share/errors/zh-cn(需要更改该目录下的所有文件find -type f |xargs se ...
- 【树莓派】Squid代理以及白名单配置
Squid安装: sudo apt-get install squid3 -y 首先,建议备份一下这个配置文件,以免配错之后,无法恢复,又得重新安装: sudo cp /etc/squid3/squi ...
- Linux实战教学笔记43:squid代理与缓存实践(二)
第6章 squid代理模式案例 6.1 squid传统正向代理生产使用案例 6.1.1 squid传统正向代理两种方案 (1)普通代理服务器 作为代理服务器,这是SQUID的最基本功能:通过在squi ...
- Linux实战教学笔记42:squid代理与缓存实践(一)
第1章 Squid介绍 1.1 缓存服务器介绍 缓存服务器(英文意思cache server),即用来存储(介质为内存及硬盘)用户访问的网页,图片,文件等等信息的专用服务器.这种服务器不仅可以使用户可 ...
- linux初学者-squid代理篇
linux初学者-squid代理篇 Squid代理服务器是一种缓存服务器,一般分为正向代理和反向代理. 1.正向代理 客户端因为网络或者其他的问题,不能访问到一台Apache服务器,如果要访问到,则 ...
- squid代理简介
squid代理 简单介绍一下正向代理和反向代理 标准代理:缓存静态页面,但是要实现这种方式必须在内部主机的浏览器内指明代理服务址和端口. 透明代理:不需要指明代理服务器的IP和端口 二)反向代理 可以 ...
随机推荐
- Android -- 带你从源码角度领悟Dagger2入门到放弃(一)
1,以前的博客也写了两篇关于Dagger2,但是感觉自己使用的时候还是云里雾里的,更不谈各位来看博客的同学了,所以今天打算和大家再一次的入坑试试,最后一次了,保证最后一次了. 2,接入项目 在项目的G ...
- Mysql关于时间排序的问题
SELECT * FROM table_name WHERE deleted = 0 order by create_time DESC 当用户使用DESC(降序时),最终得到的结果集,时间早的在前面 ...
- 史上最全的PHP常用函数大全,不看看你就out了(还会不断更新哦!)
纪录了PHP的一些常用函数和函数代码!不要错过了哦. PHP的一些常用函数usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微 ...
- kubernetes1.5新特性(二):支持Photon卷插件
在Kubernetes中卷的作用在于提供给POD持久化存储,这些持久化存储可以挂载到POD中的容器上,进而给容器提供持久化存储. 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个V ...
- vue-i18n安装配置,运行
需求:根据浏览器语言自动切换语言 1.安装vue-i18n, yarn安装 $ yarn add vue-i18n npm安装 $ npm install vue-i18n 2.导入语言包 src下创 ...
- K8S学习笔记之二进制部署Kubernetes v1.13.4 高可用集群
0x00 概述 本次采用二进制文件方式部署,本文过程写成了更详细更多可选方案的ansible部署方案 https://github.com/zhangguanzhang/Kubernetes-ansi ...
- python爬虫——跟踪登录过程以及意外的发现(4)
新浪微博的消息还是很多的,值得弄个账号去爬.不过都有账号了,还需要特意再搞一个吗? 直接上去跟踪.分别使用www和wap端登录: wap端相对简单,form表单都没有用到前面传的数据.但是我看到表单时 ...
- Vue基础进阶 之 常用的实例属性
Vue实例属性: vue实例直接调用的属性: 常用的实例属性: vm.$data:获取属性: vm.$el:获取实例挂载的元素: vm.$options:获取自定义选项/属性: vm.$refs:获取 ...
- Shell 文本处理命令
命令:cut –d’:’ -f1, 文件名 #切割处文件列的参数. -d切割字符. -f列的第几个参数. -c1-10指定字符串范围行的第一个到第十个. 命令:sort 文件名 #根据第一列第一个字符 ...
- 剑指offer(32)把数组排成最小的数
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 题目分析 主 ...