squid---傳統與透明操做流程

緩存代理概述:css

做爲應用層的代理服務軟件,squid主要提供緩存加速和應用層過濾控制的功能。linux

代理的基本類型:c++

傳統代理:也就是普通的代理服務,首先必須在客戶機的瀏覽器、聊天工具、下載軟件等程序中手動設置代理服務器的地址和端口,而後才能使用代理服務來訪問網絡。對於網頁瀏覽器,訪問網站時的域名解析請求也會發送給指定的代理服務器。vim

透明代理:提供與傳統代理相同的功能和服務,其區別在於客戶端不須要指定代理服務器的地址和端口,而是經過默認路由、防火牆策略將Web訪問重定向,實際上仍然交給代理服務器來處理。重定向的過程對客戶機來講是「透明」的,用戶甚至不知道本身在使用代理服務,因此稱爲「透明代理」。瀏覽器

示意圖緩存

130816103462121

130816103462122

傳統代理操做步驟bash

解壓安裝服務器

yum install gcc gcc-c++ make –y網絡

tar zxvf squid-3.5.23.tar.gz -C /opt/async

cd /opt/squid-3.5.23/

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

make && make install

優化命令與用戶

ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid
chown squid.squid /usr/local/squid/var/
chown -R squid /usr/local/squid/var/

編輯配置文件

vim /etc/squid.conf


http_access allow all                       //容許訪問
http_port 3128
cache_effective_user squid        //添加指定程序用戶
cache_effective_group squid      //添加指定帳號基本組

squid -z   緩存目錄初始化

 

啓動該優化腳本

cd /etc/init.d/
vim squid

#!/bin/bash
# chkconfig: 2345 92 25
# description: Squid Service Control Script
CMD="/usr/local/squid/sbin/squid"
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
case "$1" in
start)
netstat -ntap | 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 -ntap | 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 "Usage: $0 {start|stop|restart|reload|check|status}"
exit 1
esac

加權啓動

chmod +x squid
chkconfig --add squid
chkconfig --level 35 squid on
squid

配置傳統代理服務器

vim squid
http_port 3128
cache_mem 64 MB
reply_body_max_size 10 MB
maximum_object_size 4096 KB

配置防火牆規則

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

搭建一個WEB服務器

安裝一個HTTP便可。

在客戶機測試

客戶機操做訪問操做

截圖未命名

 

在WEB服務器上的訪問日誌查看訪問者的IP,會發現訪問者的IP是squid服務器的地址,而不是 本機的。

pwd
/var/log/httpd


cat access_log

192.168.137.13 - - [19/Sep/2018:16:08:11 +0800] "GET /noindex/css/fonts/ExtraBold/OpenSans-ExtraBold.eot? HTTP/1.1" 404 248 "http://192.168.137.14/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"

傳統代理成功!

 

透明代理步驟

 

關閉客戶機IE瀏覽器中的代理服務器

修改雙網卡

ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.1  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::daad:16d9:7747:d3a0  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ea:24:6e  txqueuelen 1000  (Ethernet)
        RX packets 261  bytes 24669 (24.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 209  bytes 17020 (16.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 12.0.0.1  netmask 255.255.255.0  broadcast 12.0.0.255
        inet6 fe80::dd93:5e86:da72:9d0c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ea:24:78  txqueuelen 1000  (Ethernet)
        RX packets 424  bytes 35636 (34.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 47  bytes 6579 (6.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

開啓轉發功能


echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
setenforce 0

修改配置文件


vim /etc/squid.conf
http_port 192.168.100.1:3128 transparent

防火牆配置

iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

 

透明代理完成!

相關文章
相關標籤/搜索