| 参照这篇文章做的代理设置 # NETWORK OPTIONS(有关的网络选项) # ----------------------------------------------------------------------------- http_port 3128 #代理端口
# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM(作用于邻居选择算法的有关选项) #-----------------------------------------------------------------------------
#禁止缓存 hierarchy_stoplist cgi-bin ? hierarchy_stoplist -i ^https:\ ? acl QUERY urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgi acl denyssl urlpath_regex -i ^https:\ no_cache deny QUERY no_cache deny denyssl
# OPTIONS WHICH AFFECT THE CACHE SIZE(定义cache大小的选项) # -----------------------------------------------------------------------------
cache_mem 8 MB #额外使用内存量,可根据你的系统内存在设定,一般为实际内存的1/3
cache_swap_low 90 #最低缓存百分比 cache_swap_high 95 ##最高缓存百分比,就是上面那个额外内存的使用百分比
maximum_object_size 4096 KB #单个文件最大缓存大小,超过这个大小将不缓存
maximum_object_size_in_memory 8 KB #在内存中单个文件最大缓存大小,超过这个大小将不缓存到内存中
#有DNS正反解所得到的IP存在缓存区的大小,这样可以加快解析速度 ipcache_size 1024 ipcache_low 90 ipcache_high 95 fqdncache_size 1024
# LOGFILE PATHNAMES AND CACHE DIRECTORIES(定义日志文件的路径及cache的目录) # -----------------------------------------------------------------------------
cache_dir aufs /Cache1 100 16 256 cache_dir aufs /Cache2 100 16 256
#日志存放位置 cache_access_log /usr/local/squid/var/logs/access.log cache_log /usr/local/squid/var/logs/cache.log
# TAG: cache_store_log cache_store_log /usr/local/squid/var/logs/store.log
# TAG: pid_filename pid_filename /usr/local/squid/var/logs/squid.pid
# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS(外部支持程序选项) # -----------------------------------------------------------------------------
#用代理登陆匿名ftp服务选项 # TAG: ftp_user ftp_user Squid@ #用户名 ftp_passive on #被动模式
#认证 #auth_param basic children 5 #auth_param basic realm Squid proxy-caching web server #auth_param basic credentialsttl 2 hours #auth_param basic casesensitive off
# OPTIONS FOR TUNING THE CACHE(调整cache的选项) # -----------------------------------------------------------------------------
# TAG: refresh_pattern Cache更新时间设置 #<refresh_pattern> <regex> <最小时间> <百分比> <最大时间>
refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320
#上面第一行如果网址开头是 ftp 的话,那么在一天(1440分钟)后, #如果proxy 再次取用这个档案时,则 cache 内的数据会被更新!
# TIMEOUTS (超时) # ----------------------------------------------------------------------------- #连接到其他机器的最大尝试时间 connect_timeout 1 minute
#连接到上层代理的超时时间 peer_connect_timeout 30 seconds
#返回超时 request_timeout 2 minutes
#持续连接时间 persistent_request_timeout 1 minute
# ACCESS CONTROLS(访问控制) # -----------------------------------------------------------------------------
# TAG: acl
#Examples: #acl myexample dst_as 1241 #acl password proxy_auth REQUIRED #acl fileupload req_mime_type -i ^multipart/form-data$ #acl javascript rep_mime_type -i ^application/x-javascript$ # #Recommended minimum configuration: acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT
acl inside src 192.168.0.0/24 #内部网IP段 acl localmac arp "/usr/local/squid/localmac" #mac地址文件
# TAG: http_access http_access allow inside #允许inside规则通过 #http_access allow localmac #允许localmac里面有登记的mac地址通过
# #Recommended minimum configuration: # # Only allow cachemgr access from localhost http_access allow manager localhost http_access deny manager # Deny requests to unknown ports http_access deny !Safe_ports # Deny CONNECT to other than SSL ports http_access deny CONNECT !SSL_ports #
#http_access deny to_localhost # # And finally deny all other access to this proxy http_access deny all
# TAG: http_reply_access
http_reply_access allow all
# TAG: icp_access
#icp_access allow all
# TAG: cache_peer_access
# ADMINISTRATIVE PARAMETERS(管理参数) # -----------------------------------------------------------------------------
# TAG: cache_mgr cache_mgr webmaster@localhost #管理员信箱
# TAG: cache_effective_user cache_effective_user squid #运行squid时的用户 cache_effective_group squid #运行squid时的组
# TAG: visible_hostname visible_hostname ProxyServer #代理服务器名称
# OPTIONS FOR THE CACHE REGISTRATION SERVICE(cache注册服务选项) # -----------------------------------------------------------------------------
# HTTPD-ACCELERATOR OPTIONS(HTTPD加速选项) # ----------------------------------------------------------------------------- #设定透明代理 httpd_accel_host ProxyServer #主机名 httpd_accel_port 80 #透明代理端口 httpd_accel_with_proxy on httpd_accel_uses_host_header on
# MISCELLANEOUS(杂项) # -----------------------------------------------------------------------------
# TAG: logfile_rotate logfile_rotate 4
# TAG: forwarded_for on|off #关闭此项将在访问某些论坛时显示的IP是unknown, #如果打开则显示的是你client的内网IP
forwarded_for off
#图标文件目录 # icon_directory /usr/local/squid/share/icons
#错误提示文件目录 # error_directory /usr/local/squid/share/errors/Simplify_Chinese
# TAG: snmp_port # Squid can now serve statistics and status information via SNMP. # By default it listens to port 3401 on the machine. If you don't # wish to use SNMP, set this to "0". # #Default: # snmp_port 3401
# TAG: snmp_access # Allowing or denying access to the SNMP port. # # All access to the agent is denied by default. # usage: # # snmp_access allow|deny [!]aclname ... # #Example: # snmp_access allow snmppublic localhost # snmp_access deny all # #Default: # snmp_access deny all
# DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)(延时池参数) # -----------------------------------------------------------------------------
# TAG: coredump_dir #当squid突然挂掉的时候,或者突然出现什么故障的时候,将squid在内存中的资料写到硬盘中 coredump_dir /usr/local/squid/var/cache 二、设置iptables支持透明代理 #!/bin/bash OUT_IP="221.000.000.0" IN_IP="192.168.0.1" echo "1" > /proc/sys/net/ipv4/ip_forward #设置转发 modprobe iptable_nat modprobe ip_conntrack modprobe ip_conntrack_ftp /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE #设置nat功能 iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128 #将所有80端口的请求都转发到suqid的3128端口上 iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to-source $OUT_IP |