Squid-配置笔记

◆案例1◆ 编译安装Squid

1.配置yum源,安装依赖

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum -y install epel-release

yum -y install perl perl-Digest perl-Digest-MD5 libecap libtool-ltdl-devel perl-Compress* perl-DBI gcc gcc-c++ net-snmp net-snmp-utils

2.安装Squid

groupadd squid

useradd -s /sbin/nologin -d /var/spool/squid -g squid squid

wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.27.tar.gz

tar -xzvf squid-3.5.27.tar.gz

cd squid-3.5.27/

./configure --prefix=/usr/local/squid \
--enable-icmp \
--enable-linux-netfilter \
--enable-arp-acl \
--mandir=/usr/share/man/ \
--enable-default-err-language="Simplify_Chinese" \
--enable-kill-parent-hack \
--enable-cache-digests \
--with-default-user=squid \
--enable-async-io=240 \
--with-large-files \
--enable-dlmalloc \
--enable-gnuregex \
--enable-poll

--------------------------------------------------------------------------------------------------------------
参数解释

--prefix=/usr/local/squid                         #指定软件安装位置
--sysconfdir=/etc                                 #指定配置文件安装路径
--enable-gnuregex                                 #支持GNU正则表达式
--enable-icmp                                     #支持icmp
--enable-snmp                                     #支持snmp
--enable-default-err-language="Simplify_Chinese"  #指定出错语系为中文
--enable-kill-parent-hack                         #关闭squid时连同其父进程一起关闭
--enable-cache-digests                            #加快请求时检索缓存内容速度
--enable-underscore                               #允许解析的URL中出现下划线
--enable-poll                                     #指定使用poll()函数
--enable-async-io=240                             #异步I/O用以提升存储性能
--enable-arp-acl                                  #通过客户端的MAC地址进行管理
--enable-delay-pools                              #开启squid延时池功能
--enable-follow-x-forwarded-for                   #寻找X-Forwarded发现客户端IP地址
--with-large-files                                #开启大文件支持
--with-default-user=squid                         #设置默认用户
--------------------------------------------------------------------------------------------------------------

make && make install
chmod 777 /usr/local/squid/var
chmod 777 /usr/local/squid/var/logs
/usr/local/squid/sbin/squid -z
/usr/local/squid/sbin/squid -k parse            #测试配置文件
/usr/local/squid/sbin/squid -k reconfigure      #重新配置文件
/usr/local/squid/sbin/squid -k rotate           #自动滚动日志
/usr/local/squid/sbin/squid -k shutdown         #关闭Squid
/usr/local/squid/sbin/squid -s                  #后台开启Squid
/usr/local/squid/sbin/squid -N -d1              #前台开启Squid
/usr/local/squid/sbin/squid -k interrupt        #关闭Squid
/usr/local/squid/sbin/squid -k kill             #杀死Squid

◆案例2◆ 配置透明代理

=====================================================================================
实验环境

[主机类型]       [IP]       [网口]        [模式]

WEB(网页服务)   192.168.1.12      eth0        桥接

Squid(网关)     192.168.1.13      eth0        桥接
         10.10.10.10       eth1        NAT

客户机(Win)    10.10.10.20                      eth0        NAT

=====================================================================================


◆配置内网客户机◆

route add default gw 192.168.1.1    #添加一条路由记录(指向网关机eth1)

elinks 192.168.1.12


◆Squid网关主机◆

1.安装squid

yum install -y squid

2.修改主配置文件

vim /etc/squid/squid.conf

http_port 192.168.1.1:3128 transparent    #IP地址为网关内网IP
visible_hostname www.lyshark.com

3.启动squid服务

systemctl restart squid

4.开启路由转发

vim /etc/sysctl.conf

net.ipv4.ip_forward=1                               #开启路由转发

sysctl -p

5.添加一条防火墙规则

iptables -t nat -A PREROUTING -i eth0(内网网卡) \
-s 192.168.1.0/24 -p tcp --dport 80 \
-j REDIRECT --to-ports 3128                          #添加路由规则


◆外网Web主机◆

1.安装并启动Apache

yum install -y httpd

systemctl restart httpd

◆案例3◆ 配置反向代理(常用)

=====================================================================================
实验环境

[主机类型]       [IP]        [网口]        [模式]

客户机(Win)   192.168.22.190      eth0        桥接

Squid(网关)   192.168.22.191      eth0        桥接
         10.10.10.10       eth1        Vmnat10

Http(内网)    10.10.10.20        eth0        Vmnat10
Http(内网)    10.10.10.30        eth0        Vmnat10
=====================================================================================


◆配置两台Apache◆

=====================================================================================
内网IP:       apache1:     10.10.10.20      Vmnat10
        apache2:     10.10.10.30      Vmnat10
=====================================================================================

1.配置两台内网服务器Apache并启动

yum install -y httpd

echo "web *" >/var/www/html/index.html

systemctl restart httpd

2.两台Apache添加网关,指向网关IP的eth1口,告诉他从哪里可以出去

route add default gw 10.10.10.10


◆配置Squid代理服务器◆

=====================================================================================
网关IP:       eth0    192.168.22.191    桥接
        eth1    10.10.10.10      Vmnat10
=====================================================================================

1.安装squid

yum install -y squid

2.开启转发

vim /etc/sysctl.conf

net.ipv4.ip_forward=1    #修改参数

sysctl -p                #刷新内核参数

3.编辑Squid主配置文件

编辑配置文件,在相应的区域中加入以下标★语句

vim /etc/squid/squid.conf


http_access allow all                                                   #允许所有

http_port 192.168.22.191:80 vhost                                       #声明外网口地址

cache_peer 10.10.10.20 parent 80 0 originserver round-robin weight=1    #内网的服务器节点1

cache_peer 10.10.10.30 parent 80 0 originserver round-robin weight=1    #内网的服务器节点2

#上一条语句的解释

cache_peer    web服务器地址    web服务器类型    httpd端口    icp端口    [可选项]

4.启动代理服务器

systemctl restart squid 

猜你喜欢

转载自www.cnblogs.com/LyShark/p/9062852.html