squid传统代理和透明代理配置步骤以及使用方法。

squid 代理服务器  

他可以帮客户端去访问网站提高客户端访问的速度,工作方式如下:

客户端发起上网的请求

代理服务器首先检查自己的缓存有没有这个网站的数据,

如果有直接取出数据反馈给客户端

如果没有则替客户端访问网站反馈给客户端并将网站数据保留一份到自己的缓存

下次客户端访问同样的网站,代理服务器继续查缓存

如果有就直接拿缓存数据反馈给客户端,没有则继续替客户端访问并保存一份数据到自己的缓存。


squid传统代理和透明代理配置步骤以及使用方法。_第1张图片


其中又分为传统代理与透明代理。

传统代理需要客户端在浏览器上指定代理服务器的ip比较麻烦。

透明代理不需要在浏览器指定,需要将网关设为代理服务器。


透明代理:

解包进包

[root@zhang 桌面]# tar zxf squid-3.4.6.tar.gz 
[root@zhang 桌面]# ls

squid传统代理和透明代理配置步骤以及使用方法。_第2张图片


 ./configure --prefix=/usr/local/squid --sysconfdir=/etc--enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy--enable-async-io=100 --enable-err-language="Simplify_Chinese"--enable-underscore --enable-poll --enable-gnuregex


如果想了解每个参数请看下面:

--enable-underscore:允许解析的URL中出现下划线,因为默认情况下Squid会认为带下划线的URL 非法的,并拒绝访问该地址

--enable-async-io:异步I/O可以用来提升存储性能。aufs模块使用大量的线程来执行磁盘I/O操作,N_THREADS参数改变Squid使用的线程数量。

--enable-async-io选项等同于如下三个选项:
--with-pthreads
:在编译过程中链接到系统的P线程库,aufs存储模块是Squid中唯一需要使用线程的部分。
--with-aufs-threads=N_THREADS
:指定aufs存储机制使用的线程数量。Squid会根据cache目录的数量,自动计算需要使用多少线程。

--enable-storeio=ufs,aufs,diskd,coss, null:告诉Squid编译时使用哪个存储模块,源码中/src/fs下面有所有可用的存储模块

 

--enable-linux-netfilter:使用内核过滤,目的是对透明模式提供支持

--enable-linux-tproxy:允许使用透明模式

--enable-poll:使用poll()函数,提升性能,poll函数用于监测多个等待事件,若事件未发生,进程睡眠,放弃CPU控制权,若监测的任何一个事件发生,poll将唤醒睡眠的进程,并判断是什么等待事件发生,执行相应的操作

--enable-gnuregex:允许规则中使用GNU正则表达式


make&& make install

  ln -s /usr/local/squid/sbin/* /usr/local/sbin/   #方便使用squid的命令

 useradd -M -s /sbin/nologin squid            #创个用户

 chown -R squid:squid /usr/local/squid/var/   #把日志文件权属主和属组给squid


squid -k parse       #可以检查语法

squid –kreconfigure  #重载

squid -z          # 初始化缓存目录

squid            #启动

这里用squid -k parse 检查了一下语法 发现报错

squid传统代理和透明代理配置步骤以及使用方法。_第3张图片

/etc/squid.conf   

报错原因如下

无法确定公共主机名    #解决  配置文件添加

visible_hostname ZHANG

缓存文件没有写入权限 #解决 添加一下两条 

cache_effective_user squid     

cache_effective_group squid   

检测没问题就可以开启了

开启后在浏览器设置代理服务器

squid传统代理和透明代理配置步骤以及使用方法。_第4张图片


然后访问就可以了

如果发现访问不了 


删了配置文件这三行 

或者添加

http_access deny !localnet

就可以了。

squid传统代理和透明代理配置步骤以及使用方法。_第5张图片

访问成功。


squid传统代理和透明代理配置步骤以及使用方法。_第6张图片

web的访问日志可以看到是squid 服务器的ip 来访问的网站。  

透明代理:

透明代理不需要再浏览器输入代理服务器的ip

将网关设置成代理服务器就可以。

方法如下。

在代理服务器添加一个网卡 这里的环境是

web vmnet1   192.168.43.60

squid vmnet1   192.168.43.66  vmnet2  192.168.1.2

clietn vmnet2  192.168.1.3

其实都一个网段也可以。 如果想简单做做可以跳过下面添加网卡 


squid传统代理和透明代理配置步骤以及使用方法。_第7张图片

添加过网卡 虚拟机还是 一个ip需要去添加网卡文件 复制原来的eth 

squid传统代理和透明代理配置步骤以及使用方法。_第8张图片

squid传统代理和透明代理配置步骤以及使用方法。_第9张图片


squid传统代理和透明代理配置步骤以及使用方法。_第10张图片


squid传统代理和透明代理配置步骤以及使用方法。_第11张图片


好了。

squid配置文件里有一行是http_port3128  改为

http_port192.168.1.2:3128 transparent

squid传统代理和透明代理配置步骤以及使用方法。_第12张图片


防火墙重定向策略,来自192.168.1.0的网络重定向到3128端口 一个是80端口的一个是443的 

iptables -tnat -I PREROUTING -i eth1 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to3128

iptables -tnat -I PREROUTING -i eth1 -s 192.168.1.0/24 -p tcp --dport 443 -j REDIRECT --to3128

serviceiptables save   保存防火墙策略

重启squid     

这里把之前浏览器上的代理服务器删掉  并清除浏览器缓存

网关设置为squid的ip 

squid传统代理和透明代理配置步骤以及使用方法。_第13张图片

squid传统代理和透明代理配置步骤以及使用方法。_第14张图片





发如果现访问不了

有以下解决方法

iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

service iptables save

添加防火墙策略并应用允许3128端口通过 然后重启squid

代理服务器不具备域名解析功能 请在客户端设置好dns 或者写好hosts文件。

squid传统代理和透明代理配置步骤以及使用方法。_第15张图片

squid传统代理和透明代理配置步骤以及使用方法。_第16张图片

squid传统代理和透明代理配置步骤以及使用方法。_第17张图片


透明代理访问成功。

希望可以帮到大家 谢谢。














你可能感兴趣的:(squid传统代理和透明代理配置步骤以及使用方法。)