◆案例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