代理服务器:---代理服务器必须有DNS地址。如果开启转发需要在客户端设置DNS地址
NAT:是直接与目标服务器通信的。也就是直接访问的baidu服务器,目标地址是baidu服务器的地址,所以必须要有DNS来解析主机名。
如果是通过代理客户端是没有设置DNS的,这是因为客户端会将数据包先发给代理服务器,然后再由代理服务器将数据包转发出去的。也就是产生了2个不同的数据包。
当用户访问服务器的时候,会先请求代理服务器,代理服务器会查看自己的缓存是否有请求的网页,如果有直接返回给用户,如果没有,则向服务器发送请求,服务器响应给代理服务器,当代理服务器收到请求后,会将请求被分到自己的缓存中,然后再拷贝一份发给用户。如果再有用户访问这个网页,代理服务器检查到自己的缓存中有用户想要的网页,则会直接返回给用户。这样就很大的节省了服务器的带宽。
启用代理服务器的转发功能:在做完NAT后需要转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
# 临时修改
vim /etc/sysctl.conf
# 修改配置文件中 :net.ipv4.ip_forward = 1
sysctl -p
# 修改后立即生效。
开启转发后需要设置客户端的 DNS
防火墙规则:
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
#开启NAT,转发 需要注意的是:在开启转发的时候需要设置客户端--DSN
iptables -t nat -I PREROUTING 1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 8080
#将10 网段的所有请求80端口的,重定向到 8080端口(8080是代理服务的端口),需要在代理服务的配置文件中 开启转发:http_port 8080 transparent
出现错误:
WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'.
visible_hostname 自己的主机名(#vim /etc/squid/squid.conf添加即可)
squid服务启动日志:
/var/log/squid/squid.out
安装软件包:
yum -y install squid
主目录:
/etc/squid/
需要最关心的配置文件;squid.conf
配置文件:
1、acl 给网段定义一个别名。
需要注意的是:如果是具体的IP地址的话子网掩码应该写 32
192.168.10.123/32 否则会报错
acl baidu dstdomain .baidu.com
#目标地址
acl test url_regex ^http://www.kun.cc/test/.*\.txt
# 以定义正则,定义不允许访问类型的文件。
2、http_access:允许哪些网段可以使用代理服务器。后面跟的是定义好的别名。
需要注意的是:http_access 的顺序很重要。是从上至下匹配的,如果上一条匹配成功就不会再往下匹配了。
3、http_port 3128:客户端与代理服务器建立连接访问的端口号。
3128用的不多,用的比较多的是8080
不允许访问baidu,其他网站是允许的
这里有个细节需要注意:
fanli baidu 2行的顺序,因为fanli是指的是当前的网段是允许的,而访问baidu是拒绝的,在匹配的时首先匹配允许了网段是可以访问的,所以就不会匹配拒绝baidu这行。所以当再访问baidu的时候也是可以正常访问的。如果调换位置就会拒绝baidu了。
拒绝访问指定类型的后缀的网页:
后缀为:.txt的网站不可以访问:
根据上面的test别名:
cache deny test
#凡是 .txt 结尾的网站都不做缓存。 allowe 则是:做缓存
配置文件中:cache_dir ufs /var/spool/squid 100 16 256
代理服务器缓存网页的存放目录。
:100
#代理服务器会在这个目录里面创建一个100M的告诉缓存,硬盘当中创建
:16
#这个目录下有16个子目录
:256
#这个16个子目录下又有256个子目录
其中:cache_mem 10 MB:是从内存中划分10MB来做存储,这是个默认选项。存储:访问比较频繁的网页
重新指定squid的缓存目录位置:---用于存放缓存的服务器可以做逻辑卷,在逻辑卷上进行扩充。
当缓存无限增加的时候,设置缓存的限制:
cache_swap_low 90
cache_swap_high 95
#当磁盘使用率达到95%的时候,删除旧的缓存,直至使用率为:90%
系统缓存时间:
其中:
1440:为最小缓存时间:单位分钟
10080:最大缓存时间:单位分钟
20%:当缓存的文件时间大于 10080 的20%时候,系统就会标记为旧的数据。
防火墙做NAT:这里做的是SNAT:
因为有的人会避开浏览骑上的代理,从而可以直接使用NAT,上网。所以这里做了 SNAT
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
需要将FORWARD中的过滤去掉
iptables -nL
# 不反向解析,查看防火墙列表
iptables -nL --line-numbers
# 查看时标记行号
squid监控:---基于apache的,所以需要安装apache
安装完后直接输入命令: sarg
进入到字体文件所在目录位置:
创建目录:报错的目录是默认是不存在的,所以需要手动创建
将字体文件拷贝到创建的目录下
在图形界面的网页中输入: localhost/sarg
可以查看客户端访问的记录