squid代理服务器

1.squid

squid:正向代理服务器:

2.代理的工作机制

1.代替客户端向网站请求数据,不需要访问代理的ip地址,直接请求目的网站,有代理服务器处理请求和响应。可以隐藏用户的真实ip

2.客户端访问目标网站之后(静态web元素)保存到缓存中,发送给客户端。下一次所有的客户机都可以使用缓存访问,加快访问速度

3.squid代理的作用

1.资源获取,代替客户端获取目标服务器的资源

2.加速访问 代理服务器可以和目标服务器距离更近,可以起到一定的加速作用

3.缓存作用 代理服务器保存从目标服务器获取的资源。客户端下一次再请求目标服务器可以直接访问缓存即可,减轻目标服务器的压力

4.隐藏真实的ip地址,代理服务器代替客户端请求,客户端的信息不会显示

4.squid代理类型

1.传统代理,正向代理,需要再客户端上指定好代理服务器的地址和端口

2.透明代理 客户端不再需要指定代理服务器的地址和端口,而是通过默认路由来进行转发。(squid服务器,网关)

3.反向代理 在反向代理的squid服务器当中缓存了请求资源,将资源直接返回给客户端。

否则,代理服务器会代理客户端向web服务器发起请求,然后再把请求的资源响应给客户端,同时把响应缓存在本地,后续请求者都可以使用。

5.SNAT和DNAT 和代理squid的区别

SNAT和DNAT              代理服务器squid

网络层                         应用层

改变数据包头部         不改变数据包的任何信息,直接把数据包发给代理,代理通过应用层过  滤的

源ip地址和目的地址      方式来实现转发

6.实验

架构

test1:客户端 192.168.233.10

test2:squid 192.168.233.20(做透明代理会需要双网卡)

web页面 nginx1 192.168.233.61

web页面 nginx2 192.168.233.62

1.正向代理

所有

systemctl stop firewalld

setenforce 0

test2:

cd /opt

tar -xf squid-3.5.28.tar.gz

yum -y install gcc gcc-c++ make

cd /opt

ls

cd squid-3.5.28/

./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 \

--disable-poll \

--enable-epoll \

--enable-gnuregex

make -j 4 && make install

ln -s /usr/local/squid/sbin/* /usr/local/sbin/

useradd -M -s /sbin/nologin squid

chown -R squid:squid /usr/local/squid/var/

vim /etc/squid.conf

set nu

56行

http_access allow all

配置文件的匹配规则:自上而下匹配

61行

cache_effective_user squid

cache_effective_group squid

68行

squid -k parse #检测配置文件是否正确

squid -z

回车

squid

netstat -antp | grep squid

squid -N -d1 #运行过程是否正常

vim /etc/init.d/squid

#!/bin/bash

#chkconfig: 2345 90 25

PID="/usr/local/squid/var/run/squid.pid"

CONF="/etc/squid.conf"

CMD="/usr/local/squid/sbin/squid"

case "$1" in

start)

netstat -natp | grep squid &> /dev/null

if [ $? -eq 0 ]

then

echo "squid is running"

else

echo "正在启动 squid..."

$CMD

fi

;;

stop)

$CMD -k kill &> /dev/null

rm -rf $PID &> /dev/null

;;

status)

[ -f $PID ] &> /dev/null

if [ $? -eq 0 ]

then

netstat -natp | grep squid

else

echo "squid is not running"

fi

;;

restart)

$0 stop &> /dev/null

echo "正在关闭 squid..."

$0 start &> /dev/null

echo "正在启动 squid..."

;;

reload)

$CMD -k reconfigure

;;

check)

$CMD -k parse

;;

*)

echo "用法:$0{start|stop|status|reload|check|restart}"

;;

esac

chmod +x /etc/init.d/squid

chkconfig --add /etc/init.d/squid

chkconfig --level 35 squid on #35 启动优先级 0-100 数字越大优先级越低

systemctl restart squid

netstat -antp | grep squid

vim /etc/squid.conf

63行插入

cache_mem 2000 MB #缓存功能使用的内存空间大小,容量最好为4的倍数,单位用MB,建议是内存的四分之一

reply_body_max_size 100 MB #允许用户下载的最大文件的大小。浏览器会提示请求或者访问太大

maximum_object_size 100 MB #能够缓存的对象的最大值。超过这个单位不会被缓存,直接返回给用户

service squid restart

systemctl restart squid

iptables -F

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

再开一个test2

tail -f /usr/local/squid/var/logs/access.log

nginx1:

systemctl restart nginx

vim /usr/local/nginx/html/index.html

this is squid

客户端1:

squid代理服务器_第1张图片

访问192.168.233.61 nginx1

透明代理:

test 2添加网络适配器 设置双网卡

web 12.0.0.2

cd /etc/sysconfig/network-scripts/

vim ifcfg-ens33

squid代理服务器_第2张图片

cp ifcfg-ens33 ifcfg-ens36

squid代理服务器_第3张图片

systemctl restart network

nginx1:

vim ifcfg-ens33

squid代理服务器_第4张图片

systemctl restart network

进入test2

vim /etc/sysctl.conf

net.ipv4.ip_forward=1

sysctl -p

vim /etc/squid.conf #透明代理

http_port 192.168.233.20:3128 transparent

squid -k parse

squid -N -d1

systemctl restart squid

test2:

iptables -t nat -vnL

iptables -t nat -I PREROUTING -i ens33 -s 192.168.66.0/24 -p tcp --dport 80 -j REDIRECT --to 3128

iptables -t nat -I PREROUTING -i ens33 -s 192.168.66.0/24 -p tcp --dport 443 -j REDIRECT --to 3128

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

test1:

vim ens33

squid代理服务器_第5张图片

反向代理:

test2

vim ens33

GATEWAY打开

DNS网关打开

还原nginx

nginx1:

systemctl restart nginx

systemctl stop firewalld

setenforece 0

vim /usr/local/nginx/html/index.html

nginx2:vim /usr/local/nginx/html/index.html

test2:iptables -F

iptables -t nat -F

vim /etc/squid.conf

squid代理服务器_第6张图片

http_port 192.168.233.20:80 accel vhost vport

netstat -antp | grep 80

systemctl restart squid

netstat -antp | grep squid #一定要是80端口

客户端

vim /etc/hosts

192.168.233.20 www.kgc.com

访问

curl www.kgc.com

你可能感兴趣的:(服务器,运维)