配置squid,实现正向代理
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,环境:CentOS 6.5代理主机ip:192.168.3.224,10.0.0.10内网主机ip:10.0.0.11安装前准备1、关闭selinux[root@php-proxy ~]# seten
千家信息网最后更新 2025年01月19日配置squid,实现正向代理
环境:CentOS 6.5
代理主机ip:192.168.3.224,10.0.0.10
内网主机ip:10.0.0.11
安装前准备
1、关闭selinux
[root@php-proxy ~]# setenforce 0[root@php-proxy ~]# getenforcepermissive[root@php-proxy ~]# vim /etc/selinux/configSELINUX=disabled
2、关闭防火墙filter表,设置防火墙端口转发规则
[root@php-proxy ~]# iptables -t filter -F[root@php-proxy ~]# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE[root@php-proxy ~]# service iptables save
3、修改主机路由模式
[root@php-proxy ~]# vim /etc/sysctl.confnet.ipv4.ip_forward = 1
编译安装squid
1、安装squid
http://www.squid-cache.org/Versions/v3/3.2/squid-3.2.3.tar.gz
[root@php-proxy ~]# tar xf squid-3.2.3.tar.gz[root@php-proxy ~]# cd squid-3.2.3[root@php-proxy ~]# ./configure --prefix=/usr/local/squid --enable-dlmalloc --enable-gnuregex --disable-carp --enable-async-io=100 --with-aufs-threads=32 --with-pthreads --enable-storeio="ufs,aufs" --enable-removal-policies="heap,lru" --enable-icmp --enable-htcp --enable-delay-pools --enable-useragent-log --enable-referer-log --disable-wccp --disable-wccpv2 --enable-kill-parent-hack --enable-arp-acl --disable-snmp --enable-default-err-language=Simplify_Chinese --enable-err-languages="Simplify_Chinese English" --disable-poll --disable-select --enable-epoll --enable-auth --enable-auth-basic="DB,NCSA,PAM,RADIUS,SASL" --with-aio --disable-ident-lookups --enable-truncate --enable-stacktraces --with-maxfd=65535 --disable-ipv6 --enable-ipf-transparent --enable-linux-netfilter
2、配置squid
[root@php-proxy ~]# mkdir -p /data/squid/{cache,coredump,logs}[root@php-proxy ~]# /usr/sbin/groupadd squid[root@php-proxy ~]# /usr/sbin/useradd squid -g squid -s /sbin/nologin[root@php-proxy ~]# chmod -R 777 /data/squid/{cache,coredump,logs}[root@php-proxy ~]# chown -R squid.squid /data/squid/{cache,coredump,logs}
3、配置文件内容
[root@php-proxy ~]# vim /usr/local/squid/etc/squid.confhttp_port 10.0.0.10:1080 cache_effective_user squidcache_effective_group squid cache_mem 2048 MBcache_swap_low 90cache_swap_high 95 ipcache_size 1024ipcache_low 90ipcache_high 95 cache_replacement_policy lrumemory_replacement_policy lru cache_dir aufs /data/squid/cache 20480 16 256coredump_dir /data/squid/coredump memory_pools_limit 1024 MBmax_open_disk_fds 0minimum_object_size 0 KBmaximum_object_size 32768 KBmaximum_object_size_in_memory 2048 KB access_log /dev/nullcache_access_log none cache_log /dev/nullcache_store_log none cache_swap_log /data/squid/logs/swap.log logfile_rotate 1pid_filename /usr/local/squid/var/logs/squid.pid cache_mgr lovezym5@126.comstrip_query_terms offvisible_hostname ProxySrverror_directory /usr/local/squid/share/errors/zh-cn request_header_max_size 64 KBrequest_body_max_size 0 KB negative_ttl 5 minutesread_timeout 1 minutesclient_lifetime 10 minutesconnect_timeout 1 minutepeer_connect_timeout 30 secondsrequest_timeout 2 minutespersistent_request_timeout 1 minute client_persistent_connections offserver_persistent_connections ontcp_recv_bufsize 65535 byteshalf_closed_clients offhttpd_suppress_version_string offie_refresh offallow_underscore on refresh_pattern ^ftp: 1440 20% 10080refresh_pattern ^gopher: 1440 0% 1440refresh_pattern -i (/cgi-bin/|\?) 0 0% 0refresh_pattern . 0 20% 4320 dns_nameservers DNS服务器IP acl OverConnLimit maxconn 300http_access deny OverConnLimit acl our_network src 192.168.0.0/16http_access allow our_network acl SSL_ports port 443acl CONNECT method CONNECThttp_access deny CONNECT !SSL_ports request_header_access Via deny allrequest_header_access X-Forwarded-For deny all
#检查配置是否正确[root@php-proxy ~]# /usr/local/squid/sbin/squid -k parse#初始化cache缓存目录[root@php-proxy ~]# /usr/local/squid/sbin/squid -z
4、配置启动脚本
[root@php-proxy ~]# vim /etc/init.d/squid#!/bin/sh##squid - this script start and stop the squid daemon## chkconfig: - 90 25# description: squid is a pagecache reverse proxy.# processname: squid# pidfile: /usr/local/squid/var/logs/squid.pid# config: /usr/local/squid/etc/squid.conf#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin BINFILE="/usr/local/squid/sbin/squid"CFGFILE="/usr/local/squid/etc/squid.conf"PIDFILE="/usr/local/squid/var/logs/squid.pid"LOCKFILE="/var/lock/squid.lock"CACHEPATH="/data/squid/cache"OUTFILE="/data/squid/logs/squid.out" SQUID_PIDFILE_TIMEOUT=${SQUID_PIDFILE_TIMEOUT:-20}SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100} [[ -f $BINFILE ]] && SQUID="${BINFILE}" CACHE_SWAP=`sed -e 's/#.*//g' ${CFGFILE} | grep cache_dir | awk '{print $3}'`[ -z "$CACHE_SWAP" ] && CACHE_SWAP="${CACHEPATH}" RETVAL=0 start() { if [[ ! -f ${CFGFILE} ]]; then echo "The configuration file: ${CFGFILE} has no found!" 1>&2 exit 6 fi SQUID_OPTS="-s -f ${CFGFILE}" [[ -z "$SQUID" ]] && echo "Insufficient privilege" 1>&2 && exit 4 for adir in $CACHE_SWAP do if [[ ! -d $adir/00 ]]; then echo -n "init_cache_dir $adir" $SQUID -z -F -D >> ${OUTFILE} 2>&1 fi done echo -n "Starting squid..." $SQUID $SQUID_OPTS >> ${OUTFILE} 2>&1 RETVAL=$? if [[ $RETVAL -eq 0 ]]; then timeout=0; while : do [[ ! -f ${PIDFILE} ]] || break [[ $timeout -ge $SQUID_PIDFILE_TIMEOUT ]] && RETVAL=1 && break sleep 1 && echo -n "." timeout=$((timeout+1)) done fi echo "" [[ $RETVAL -eq 0 ]] && touch ${LOCKFILE} [[ $RETVAL -eq 0 ]] && echo "start squid is ok!" [[ $RETVAL -ne 0 ]] && echo "start squid is failed!" return $RETVAL} stop() { SQUID_SHUTDOWN_TIMEOUT=${SQUID_SHUTDOWN_TIMEOUT:-100} echo -n "Stopping squid..." $SQUID -k check >> ${OUTFILE} 2>&1 RETVAL=$? if [[ $RETVAL -eq 0 ]]; then $SQUID -k shutdown & rm -f ${LOCKFILE} timeout=0 while : do [[ -f ${PIDFILE} ]] || break [[ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]] && echo "" && return 1 sleep 2 && echo -n "." timeout=$((timeout+2)) done echo "" echo "Stop squid is ok!" else echo "" echo "Stop squid is failed!" [[ ! -e ${LOCKFILE} ]] && RETVAL=0 fi return $RETVAL} restart() { stop sleep 1 start} case "$1" instart) start ;; stop) stop ;; reload) SQUID_OPTS=${SQUID_OPTS:-"-D"} $SQUID -k reconfigure -f ${CFGFILE} ;; restart) restart ;; condrestart) [[ -e ${LOCKFILE} ]] && restart || : ;; *) echo $"Usage: $0 {start|stop|reload|restart|condrestart}" exit 2esac exit $?
[root@php-proxy ~]# chmod +x /etc/init.d/squid #添加执行权限[root@php-proxy ~]# service squid start #启动服务
3、配置主机ip地址
代理主机内网ip
[root@php-proxy ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0DEVICE=eth0:0TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=noneIPADDR=10.0.0.10NETMASK=255.0.0.0
内网主机ip地址
[root@php ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0HWADDR=52:54:00:B1:B4:99TYPE=EthernetUUID=4dd9081e-2cf6-4f81-bde4-561d3877267eONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=10.0.0.11NETMASK=255.0.0.0GATEWAY=10.0.0.10DNS1=8.8.8.8DNS2=8.8.4.4
内网主机测试可行:
[root@php ~]# curl -I www.qq.comHTTP/1.1 200 OKServer: squid/3.4.3Date: Wed, 13 Jul 2016 06:01:36 GMTContent-Type: text/html; charset=GB2312Connection: keep-aliveVary: Accept-EncodingVary: Accept-EncodingExpires: Wed, 13 Jul 2016 06:02:36 GMTCache-Control: max-age=60Vary: Accept-EncodingAccess-Control-Allow-Origin: http://bz.qq.comX-Cache: HIT from nanjing.qq.com
主机
配置
代理
地址
防火墙
服务
防火
可行
内容
文件
服务器
权限
模式
环境
目录
端口
缓存
脚本
规则
路由
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
猪八戒 数据库
云服务器装win7
对数据库表中记录的字段进行更新
杨浦区个人数据库价格大全
学生可做的网络安全防范
2008数据库怎么查询用户密码
杭州网络安全辩论赛
象征网络安全的图形
ff14晨曦王座在哪个服务器
网络安全能够提供的服务器
服务器带阵列卡能做ghost吗
学习软件开发技术前景怎么样
服务器管理系统saas
电信网络安全维护是做什么
mssql数据库整理
阿里云服务器通过测试
列 数据库 有哪些
一千多万条数据库数据怎么查找
数据库系统推荐
诚信的数据库状态监控
云桌面与软件开发
广州番禺小程序软件开发公司
玩steam应该加速哪个服务器
郑州米玩网络技术有限公司
阿里云如何查看数据库
dhcp 服务器中继
网络安全综合防御体系包括哪些
数据库本地管理方式的优点
数据库中怎么写一个触发器
云服务器与云主机配置