{"id":677,"date":"2012-11-21T15:15:00","date_gmt":"2012-11-21T07:15:00","guid":{"rendered":"http:\/\/note.systw.net\/note\/?p=677"},"modified":"2023-11-04T15:29:22","modified_gmt":"2023-11-04T07:29:22","slug":"squid-proxy","status":"publish","type":"post","link":"https:\/\/systw.net\/note\/archives\/677","title":{"rendered":"Squid Proxy"},"content":{"rendered":"\n<p>Squid(http:\/\/www.squid-cache.org)<br>Squid=\u4e3b\u8981\u670d\u52d9\u7a0b\u5f0f+DNS\u67e5\u8a62\u7a0b\u5f0f+\u90e8\u4efd\u91cd\u5beb\u8acb\u6c42\u548c\u57f7\u884c\u8a8d\u8b49\u7684\u7a0b\u5f0f+\u90e8\u4efd\u7ba1\u7406\u5de5\u5177<br>ps:<br>Squid\u7528\u4e00\u500b\u55ae\u7368\u7684\u3001\u975e\u6a21\u7d44\u5316\u7684\u3001I\/O\u9a45\u52d5\u7684\u9032\u7a0b\u4f86\u8655\u7406\u6240\u6709\u7684\u7528\u6236\u7aef\u8acb\u6c42,\u548c\u4e00\u822c\u7684\u4ee3\u7406\u7de9\u5b58\u8edf\u9ad4\u4e0d\u540c<\/p>\n\n\n\n<p><strong>\u652f\u63f4<\/strong><br>\u5168\u529f\u80fd\u7684\u7db2\u9801\u4ee3\u7406\u5feb\u53d6&nbsp;ex:HTTP,FTP,URL<br>gopher,SSL,\u5b58\u53d6\u63a7\u5236,\u672c\u8eab\u5feb\u53d6DNS\u67e5\u8a62<br>ICP,HTCP,CARP,WCCP\u6578\u7a2e\u5feb\u53d6\u901a\u8a0a\u5354\u5b9a<\/p>\n\n\n\n<p><strong>\u5176\u4ed6\u529f\u80fd<\/strong><br>\u53ef\u4f7f\u7528\u591a\u53f0squid\u5feb\u53d6\u4f3a\u670d\u5668\u5efa\u69cb\u51fa\u5feb\u53d6\u67b6\u69cb<br>\u53ef\u7528cachemgr.cgi\u900f\u904e\u7db2\u9801\u6216\u5229\u7528SNMP\u505a\u5373\u6642\u5feb\u53d6\u72c0\u6cc1\u67e5\u8a62<br>\u4f7f\u7528ICP(\u8f15\u91cfInternet\u7de9\u5b58\u5354\u8b70)\u4f7fSquid\u80fd\u5920\u5be6\u73fe\u5c64\u758a\u7684\u4ee3\u7406\u9663\u5217\uff0c\u5f9e\u800c\u6700\u5927\u9650\u5ea6\u5730\u7bc0\u7d04\u5e36\u5bec<\/p>\n\n\n\n<p><strong>DNS\u67e5\u8a62\u65b9\u5f0f<\/strong><br>Squid\u555f\u52d5\u5f8c\u6703\u6d3e\u751f\u51fa\u9810\u5148\u6307\u5b9a\u6578\u76ee\u7684dnsserver\u884c\u7a0b\uff0c\u6bcf\u4e00\u500bdnsserver\u884c\u7a0b\u53ef\u4ee5\u57f7\u884c\u55ae\u7368\u7684DNS\u67e5\u8a62\uff0c\u9019\u53ef\u6e1b\u5c11\u4f3a\u670d\u5668\u7b49\u5f85DNS\u67e5\u8a62\u7684\u6642\u9593\u3002<\/p>\n\n\n\n<p>#################################################################\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u5b89\u88dd\u90e8\u4efd<\/strong><\/h2>\n\n\n\n<p><strong>1<br>\u4ee5yum\u5b89\u88dd<\/strong><br>yum install squid<\/p>\n\n\n\n<p><strong>2<br>\u8a2d\u5b9asquid.conf\u53c3\u6578<\/strong><br>ps:\u901a\u5e38\u5728\/etc\/squid.conf<br>2.1<br><strong>\u4e00\u822c\u8a2d\u5b9a<\/strong><br>http_port 3128 \u8a2d\u5b9aproxy port\u70ba3128<br>icp_port 3130 \u67e5\u8a62\u5c01\u5305\u89c0\u67e5\u7684port\u70ba3130<br>http_access allow all \u6253\u958bsquid\u6240\u6709\u6b0a\u9650<br>cache_effective_user nobody \u8a2d\u5b9asquid\u7ba1\u7406\u8005<br>cache_effective_group nogroup \u8a2d\u5b9asquid\u7ba1\u7406\u8005\u7fa4\u7d44<br>ps:\u6703\u88ab\u5beb\u5165\u5230\u76ee\u9304\u7684\u64c1\u6709\u8005\u8207\u7fa4\u7d44\u9700\u6539\u6210cache_effective\u7684user\u548cgroup<br>cache_mgr account@hostname \u8a2d\u5b9asquid\u7ba1\u7406\u8005\u4fe1\u7bb1<br>2.2<br><strong>\u6307\u5b9a\u5feb\u53d6\u76ee\u9304<\/strong><br><strong>cache_dir &lt; aufs|ufs&gt; &lt; cache dir&gt; &lt; mb size&gt; &lt; dir1&gt; &lt; dir2&gt;&nbsp;<\/strong><br>\u3000aufs\u529f\u80fd\u9700\u5728\u5b89\u88dd\u6642\u6709&#8211;enable-async-io\u624d\u652f\u63f4,\u53ef\u5c07\u786c\u789f\u901f\u5ea6\u767c\u63ee\u5230\u6975\u9650<br>\u3000cache dir\u70ba\u60f3\u8981\u505a\u70ba\u5feb\u53d6\u7684\u4f4d\u7f6e<br>\u3000mb size\u70bacache dir\u7684\u6700\u5927\u503c<br>\u3000dir1\u70bacache dir\u4e0b\u7684\u6b21\u76ee\u9304\u6578\u91cf<br>\u3000dir2\u70badir1\u4e0b\u7684\u6b21\u76ee\u9304\u6578\u91cf,dir2\u5efa\u8b70\u70badir1\u768416\u500d<br>ex:aufs \/usr\/local\/squid\/var\/cache 1000 16 256<br>2.3<br><strong>\u4ee5\u4e0b\u662f\u8a8d\u8b49\u76f8\u95dc\u53c3\u6578,\u5efa\u8b70\u95dc\u9589<\/strong><br>#auth_param basic children 5<br>#auth_param basic realm Squid proxy-caching web server<br>#auth_param basic credentialsttl 2 hours<br>2.4<br><strong>\u8a2d\u5b9a\u90a3\u4e9b\u4f86\u6e90\u53ef\u4ee5\u4f7f\u7528proxy<\/strong><br>acl our_networks src 192.168.1.0\/14<br>http_access allow our_networks<\/p>\n\n\n\n<p><strong>3<br>\u5feb\u53d6\u76ee\u9304\u8a2d\u5b9a<\/strong><br>3.1<br>cache dir\u76ee\u9304\u7684\u64c1\u6709\u8005\u8207\u7fa4\u7d44\u9700\u6539\u6210cache_effective\u7684user\u548cgroup<br>3.2<br>\u57f7\u884csbin\/squid -z \u4f86\u5efa\u7acb\u4e26\u683c\u5f0f\u5316cache_dir,\u51fa\u73fecreating swap directories\u8868\u793a\u521d\u59cb\u5316\u6210\u529f<\/p>\n\n\n\n<p><br><strong>4<br>\u555f\u52d5squid<\/strong><br>\u57f7\u884c<br>service squid start<br>\u6216<br>su nobody -c &#8220;RunCache\u4f4d\u7f6e &amp;&#8221;<br>\u6216<br>sbin\/squid -N -d 1<br>ps:<br>\u6e2c\u8a66\u662f\u5426\u555f\u52d5squid<br>bin\/squidclient -g 0 -h &lt; proxy_ip&gt; -p 3128<\/p>\n\n\n\n<p>ps:<br>\u82e5squid.conf\u7684cache dir\u91cd\u8a2d,\u5247\u9700<br>1\u522a\u9664\u539fcache dir<br>2\u5efa\u7acb\u4e26\u8a2d\u5b9acache dir\u64c1\u6709\u8005\u8207\u7fa4\u7d44<br>3\u57f7\u884csquid -z<\/p>\n\n\n\n<p><br><strong>squid\u76f8\u95dc\u76ee\u9304<\/strong><br>bin\/ \u5b58\u653esquid\u4e3b\u8981\u57f7\u884c\u7684scripts<br>sbin\/ \u5b58\u653esquid\u7684\u57f7\u884c\u6a94<br>etc\/ \u5b58\u653esquid\u8a2d\u5b9a\u6a94<br>libexec\/ \u51fd\u5f0f\u5eab<br>man\/ \u8aaa\u660e\u6587\u4ef6<br>share\/ \u5b58\u653e\u932f\u8aa4\u8a0a\u606f\u4ee3\u78bc\u8868\u793a\u6a94,\u4e00\u4e9b\u5c0f\u5716\u793a\u7b49<br>var\/ \u5b58\u653elog\u6a94<\/p>\n\n\n\n<p><strong>squid\u76f8\u95dc\u6a94\u6848<\/strong><br>etc\/squid.conf \u4e3b\u8981\u8a2d\u5b9a\u6a94<br>squid\/etc\/mime.conf \u8a2d\u5b9ainternet\u4e0a\u7684\u6a94\u6848\u683c\u5f0f,\u4f7f\u7528\u9810\u8a2d\u5373\u53ef<br>sbin\/squid \u57f7\u884c\u6a94<br>bin\/RunCache \u57f7\u884csquid\u7684script<br>bin\/RunAccel \u53ef\u8b93www\u670d\u52d9\u900f\u904esquid\u52a0\u901f<\/p>\n\n\n\n<p><strong>squid\u8a18\u9304\u6a94\u653e\u7f6e\u4f4d\u7f6e<\/strong><br>cache_access_log \/usr\/local\/squid\/var\/logs\/access.log<br>cache_log \/usr\/local\/squid\/var\/logs\/cache.log<br>cache_store_log \/usr\/local\/squid\/var\/logs\/store.log<br>pid_filename \/usr\/local\/squid\/var\/logs\/squid.pid<br>ps:\u5b58\u653elog\u6a94\u76ee\u9304\u7684\u64c1\u6709\u8005\u8207\u7fa4\u7d44\u9700\u6539\u6210cache_effective\u7684user\u548cgroup<\/p>\n\n\n\n<p>###############################################################<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Squid.conf\u8a2d\u5b9a\u90e8\u4efd<\/strong><\/h2>\n\n\n\n<p><strong>squid.conf\u6548\u80fd\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p><strong>#\u8207\u78c1\u789f\u5bb9\u91cf\u6709\u95dc\u7684\u8a2d\u5b9a<\/strong><br>cache_swap_low 90 \/\/\u82e5cache dir\u6eff\u5230cache_swap_high,\u5c31\u5c07\u5bb9\u91cf\u6e1b\u5c11\u523090%<br>cache_swap_high 95 \/\/\u7576cache dir\u5bb9\u91cf\u523095%\u6642\u6e1b\u5c11\u5bb9\u91cf,\u8d8a\u5927\u7684proxy\u6b64\u503c\u4e0d\u53ef\u8a2d\u592a\u9ad8<br>maximum_object_size 4096 KB \/\/\u82e5cache dir\u5920\u5927\u53ef\u6539\u621032768<\/p>\n\n\n\n<p><strong>#\u8207\u8a18\u61b6\u9ad4\u4fdd\u5b58\u8cc7\u6599\u6709\u95dc\u7684\u8a2d\u5b9a<\/strong><br>cache_mem 8 MB \/\/\u984d\u5916\u63d0\u4f9b\u7d66squid 8m\u7684\u8a18\u61b6\u9ad4,\u5354\u52a9\u4f5c\u696d<br>maximum_object_size_in_memory 8 KB<\/p>\n\n\n\n<p><strong>#\u7d93dns\u6b63\u53cd\u89e3\u53caIP\u7684\u7d50\u679c<\/strong><br>ipcache_size 1024 \/\/ip\u5feb\u53d6<br>ipcache_low 90 \/\/\u548ccache_swap_low\u52d5\u4f5c\u5dee\u4e0d\u591a<br>ipcache_high 95 \/\/\u548ccache_swap_high\u52d5\u4f5c\u5dee\u4e0d\u591a<br>fqdncache_size 1024 \/\/fqdn\u7684\u5feb\u53d6<\/p>\n\n\n\n<p>ps:\u5b98\u65b9\u5efa\u8b70\u5be6\u969b\u8a18\u61b6\u9ad4\u6700\u597d\u662fsquid\u6240\u7528\u8a18\u61b6\u9ad4\u5169\u500d\u5927<br>ps:\u9810\u8a2d\u6bcf1g\u7684cache dir\u6703\u6d88\u8017\u638910m\u8a18\u61b6\u9ad4<br>ps:squid\u4f7f\u7528\u7684\u8a18\u61b6\u9ad4\u516c\u5f0f\u70ba:\u56e0cache dir\u6240\u7528\u7684+cache_mem+15mb<br>ex:<br>1g\u7684cache dir,\u53casquid.conf\u4e2d\u7684cache_men\u70ba8m<br>\u5247\u8a18\u61b6\u9ad4\u7528\u91cf\u70ba10m+8m+15m=33m<br><\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n\n\n\n<p><strong>squid.conf\u4e2dacl\u7528\u6cd5<\/strong><\/p>\n\n\n\n<p>\u5b9a\u7fa9acl\u7684\u683c\u5f0f\u70baacl &lt; acl name&gt; &lt; type&gt;<br>&lt; type&gt;\u53ef\u4ee5\u5982\u4e0b:<br>src &lt; ip\/cidr&gt;\u3000\u4f86\u6e90ip<br>src &lt; iprange\/cidr&gt; \u4f86\u6e90ip\u7bc4\u570d<br>srcdomain &lt; fqdn&gt; \u4f86\u6e90\u9818\u57df\u540d\u7a31<br>dst &lt; ip\/cidr&gt; \u76ee\u6a19ip<br>dstdomain &lt; fqdn&gt; \u76ee\u6a19\u7db2\u57df\u540d\u7a31<br>ex:acl acl2 140.116.44.120-140.116.44.130\/24<br>ex:acl acl3 srcdomain .mine.nu<br>ex:acl acl3 dstdomain .tw<br>url_regex &lt; regex&gt; \u3000\u7db2\u57df\u6b63\u898f\u8868\u793a\u6cd5<br>urlpath_regex &lt; regex&gt;\u3000\u7db2\u5740\u6b63\u898f\u8868\u793a\u6cd5<br>ex:acl url1 url_regex ^http:\/\/www.google.com.*<br>ex:acl url2 urlpath_regex .php$<\/p>\n\n\n\n<p><br>acl\u7684\u5e38\u898b\u61c9\u7528<\/p>\n\n\n\n<p><strong>\u4e0d\u5c0d\u67d0\u985e\u578b\u7db2\u9801\u505acache<\/strong><br>ex:\u4e0d\u5c0dphp\u7db2\u9801\u505acache<br>hierarchy_stoplist php ?<br>acl denyphp urlpath_regex php ?<br>no_cache deny denyphp<\/p>\n\n\n\n<p><strong>\u67d0\u4e9b\u7db2\u9801\u81ea\u5df1\u6293\u8cc7\u6599<\/strong><br>always_direct allow &lt; acl1,acl2,&#8230;&gt;<\/p>\n\n\n\n<p><strong>\u662f\u5426\u8981\u900f\u904e\u4e0a\u5c64proxy\u6293\u8cc7\u6599<\/strong><br>never_direct &lt; allow|deny&gt; &lt; acl1,acl2,&#8230;&gt;<br>allow\u8868\u793a\u4e00\u5b9a\u7d93\u7531\u4e0a\u5c64Proxy\u6349\u8cc7\u6599<br>deny\u8868\u793a\u4e00\u5b9a\u662f\u81ea\u5df1\u5411\u5916\u982d\u6349\u8cc7\u6599<\/p>\n\n\n\n<p><strong>\u9650\u5236\u4f7f\u7528<\/strong><br>http_access &lt; allow|deny&gt; &lt; acl&gt;<br>ex:\u53ea\u6709192.168.1.0\/24\u53ef\u4f7f\u7528proxy<br>acl inside src 192.168.1.0\/24<br>http_access allow inside<br>http_access deny all<\/p>\n\n\n\n<p><br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<\/p>\n\n\n\n<p><strong>squid.conf\u4e2d\u8a2d\u5b9aproxy by ldap<\/strong><\/p>\n\n\n\n<p><strong>#auth_param\u8a2d\u5b9a<\/strong><br>auth_param basic program \/usr\/lib\/squid\/squid_ldap_auth -b &#8220;&lt; base dn&gt;&#8221; -f &#8220;&lt; filter rule&gt;&#8221; &lt; ldap server ip&gt;<br>ps:\u5404\u53c3\u6578\u8aaa\u660e<br>-v \u8868\u793aLDAP\u7248\u672c<br>-b \u8a2d\u5b9aBaseDN<br>-D \u8a2d\u5b9aUserDN<br>-w \u8a2d\u5b9aslapd.conf\u6587\u4ef6\u4e2d&#8221;rootpw \u7ba1\u7406\u8005\u5bc6\u78bc<br>-f \u8a2d\u5b9aUid\u8a8d\u8b49<br>-h \u8a2d\u5b9aLDAP Server\u7684\u4f4d\u7f6e\u53ef\u4f7f\u7528FQDN or IP\u7684\u65b9\u5f0f<br>ex:auth_param basic program \/usr\/lib\/squid\/squid_ldap_auth -b &#8220;dc=systw,dc=net&#8221; -f &#8220;(&amp;(uid=%s)(userPassword=*))&#8221; 192.168.100.100<br>auth_param basic children 5 #\u8a8d\u8b49\u7a0b\u5f0f\u6578\u91cf<br>auth_param basic realm squid proxy-caching web srever<br>auth_param basic credentialsttl 360 minutes<\/p>\n\n\n\n<p><strong>#squid\u4f7f\u7528ldap\u8a2d\u5b9a<\/strong><br>acl ldap proxy_auth REQUIRED<br>http_access allow ldap<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<\/p>\n\n\n\n<p><strong>squid.conf\u4e2d\u6642\u9593\u8a2d\u5b9a<\/strong><br>refresh_pattern &lt; regex&gt; &lt; min minute&gt; &lt; % max minute&gt;<br>&lt; min minute&gt;\u6700\u5c0f\u6642\u9593\u5167\u6a94\u6848\u6709\u66f4\u52d5\u5c31\u76f4\u63a5\u66f4\u65b0<br>&lt; % max minute&gt;\u76ee\u6a19\u6a94\u6848\u4e0a\u6b21\u66f4\u65b0\u6642\u9593\u5df2\u8d85\u904e\u6700\u5927\u6642\u9593\u7684\u767e\u5206\u6bd4\u6642<br>ex:proxy\u5728\u4e00\u5929(1440)\u5f8c\u5b58\u53d6ftp\u7db2\u9801\u6642,cache\u8cc7\u6599\u6703\u88ab\u66f4\u65b0<br>refresh_pattern ^ftp: 1440 20% 10080<\/p>\n\n\n\n<p>connect_timeout 30 seconds \u9023\u5230\u5176\u4ed6\u4e3b\u6a5f\u8d85\u904e30\u79d2\u5f8c\u5931\u6557<br>peer_connect_timeout 10 seconds \u9023\u5230\u4e0a\u5c64proxy\u4e3b\u6a5f\u8d85\u904e10\u79d2\u5f8c\u5931\u6557<br>request_timeout 1 minutes \u9023\u7dda\u5f8c\u8981\u6c42\u6642\u95931\u5206\u9418<br>persistent_request_timeout 20 seconds \u9023\u7dda\u8981\u6c42\u6642\u959320\u79d2<\/p>\n\n\n\n<p>############################################################<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u61c9\u7528\u90e8\u4efd<\/strong><\/h2>\n\n\n\n<p><br><strong>\u8a2d\u5b9atransparent proxy<\/strong><\/p>\n\n\n\n<p><strong>1<br>\u8a2d\u5b9asquid.conf<\/strong><br>2.6\u7248\u524d<br>\u8a2d\u5b9aproxy\u7684squid.conf<br>httpd_accel_host fqdn<br>httpd_accel_port 80<br>ps:\u56e0\u8a2d\u5b9ahttpd_accel_host\u5f8c,cache\u7684\u8a2d\u5b9a\u6703\u81ea\u52d5\u88ab\u7d42\u6b62,\u9808\u5728\u52a0\u4ee5\u4e0b\u53c3\u6578\u624d\u53ef\u555f\u7528<br>httpd_accel_with_proxy on<br>httpd_accel_uses_host_header on<br>2.6\u7248\u5f8c<br>http_port 3128 transparent<\/p>\n\n\n\n<p><strong>2<br>\u8a2d\u5b9anat<\/strong><br>iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.0.0\/24 &#8211;dport 80 -d 127.0.0.1 -j REDIRECT &#8211;to-ports 3128<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<\/p>\n\n\n\n<p><strong>\u4f7f\u7528WCCP v2 for L2 mode<\/strong><\/p>\n\n\n\n<p><strong>switch\u8a2d\u5b9a<\/strong><br><strong>1<br>\u555f\u7528wccp<\/strong><br>(config)#ip wccp web-cache<br><strong>2<br>\u6307\u5b9a\u9032\u4f86\u8a72\u4ecb\u9762\u5c01\u5305\u505aWCCP\u7684\u8f49\u9001<\/strong><br>(config)#interface &lt; interface &gt;<br>(config-if)#ip wccp web-cache redirect in<br>ps:<br>ip wccp web-cache redirect out \u662f\u6307\u5b9a\u51fa\u53bb\u7684\u4ecb\u9762\u624d\u505aproxy<br>ps:<br>show ip wccp \u53ef\u770b\u5230\u72c0\u614b<br>debug ip wccp events \u53ef\u7528\u4f86debug<br><br>&#8230;<\/p>\n\n\n\n<p><strong>squid\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p>#\u8a2d\u5b9a\u5728127.0.0.1 (Loopback 0)\u7684 Port 3128 \u4e0a\u8dd1 Transparent Mode Proxy<br>http_port 127.0.0.1:3128 transparent<\/p>\n\n\n\n<p>#\u6307\u5b9a\u8981\u8dd1WCCP Switch\u7684IP<br>wccp2_router 192.168.6.30<\/p>\n\n\n\n<p>#\u6307\u5b9a\u7248\u672c<br>wccp_version 2<\/p>\n\n\n\n<p>#\u6307\u5b9a\u7531Router\/Switch\u4e0a\u6240\u8f49\u9001\u4f86\u7684\u5c01\u5305\u70baL2 mode\u683c\u5f0f<br>wccp2_forwarding_method 2<\/p>\n\n\n\n<p>#\u6307\u5b9a\u7531Server\u4e0a\u6240\u9001\u56deRouter\/Switch\u7684\u5c01\u5305\u70baL2 mode\u683c\u5f0f<br>wccp2_return_method 2<\/p>\n\n\n\n<p>#\u6307\u5b9a\u9078\u6d3e\u65b9\u5f0f<br>wccp2_assignment_method 2<br>ps:<br>WCCP2\u9078\u6d3e\u7684\u65b9\u5f0f1\u662f\u4ee5Hash \u4f86\u9078\u6d3e\uff0c2\u662fMask\u4f86\u9078\u6d3e\uff0c\u901a\u5e38Router\u652f\u63f4Hash Method\u800cSwitch \u652f\u63f4Mask Method<\/p>\n\n\n\n<p>&#8230;<\/p>\n\n\n\n<p>\u6b64\u70batransparent,\u7576\u4f7f\u7528\u8005\u900f\u904ewccp\u4e0a\u7db2\u6642<br>\u4f86\u6e90ip\u9084\u662f\u986f\u793a\u4f7f\u7528\u8005\u7684,\u800c\u4e0d\u662fsquid\u7684ip<br>reference:http:\/\/www.ringline.com.tw\/epaper\/Product980201.htm<\/p>\n\n\n\n<p>#################################################################<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u5831\u8868\u90e8\u4efd<\/strong><\/h2>\n\n\n\n<p><strong>cache manager<\/strong><br>\u5c07squid\u63d0\u4f9b\u7684cachemgr.cgi\u653e\u5230apache\u7684cgi-bin\u76ee\u9304\u4e0b<br>\u9032\u5165http:\/\/proxy server url\/cgi-bin\/cachemgr.cgi<\/p>\n\n\n\n<p>\u5e38\u898b\u8aaa\u660e<\/p>\n\n\n\n<p><strong>\u5728General Runtime Information\u4e0b\u6709\u9019\u4e9b<\/strong><br>Number of clients accessing cache: 557 \/\/\u4f7f\u7528proxy\u7684\u96fb\u8166\u6578\u91cf<br>Number of HTTP requests received: 599308 \/\/\u5ba2\u6236\u7aefhttp\u8981\u6c42\u6578\u91cf<br>Number of ICP messages received: 418549 \/\/\u63a5\u53d7\u5230\u7684icp query\u6578\u91cf<br>Number of ICP messages sent: 418549 \/\/\u767c\u51faicp query\u6578\u91cf<br>HTTP requests per minute: 4883.8 \/\/\u6bcf\u5206\u9418http request\u7684\u6578\u91cf<br>ICP messages per minute: 6821.6 \/\/\u6bcf\u5206\u9418\u8655\u7406\u7684icp\u6578\u91cf<br>Request Hit Ratios: 5min: 34.7%, 60min: 40.3% \/\/Cache Request\u547d\u4e2d\u7387<br>Byte Hit Ratios: 5min: 37.0%, 60min: 44.1% \/\/Cache Byte\u547d\u4e2d\u7387<br>Storage Swap size: 10874153 KB \/\/\u5b58\u653ecache\u7684\u78c1\u789f\u4f7f\u7528\u91cf<br>Storage Mem size: 102396 KB \/\/\u5b58\u653ecache\u7684\u8a18\u61b6\u9ad4\u4f7f\u7528\u91cf<br>Median Service Times (seconds) 5 min 60 min: \/\/\u5e73\u5747\u56de\u61c9\u6642\u9593<br>CPU Usage: 82.33% \/\/\u81ea\u7a0b\u5f0f\u555f\u52d5\u8d77\u8a08\u7b97\uff0cCPU\u4f7f\u7528\u7387<br>CPU Usage, 5 minute avg: 22.82% \/\/\u6700\u8fd15\u5206\u9418CPU\u4f7f\u7528\u7387<br>CPU Usage, 60 minute avg: 77.33% \/\/\u6700\u8fd160\u5206\u9418CPU\u4f7f\u7528\u7387<br>Maximum number of file descriptors: 8192 \/\/\u7cfb\u7d71\u6700\u5927file descriptor\u6578<br>Largest file desc currently in use: 2044 \/\/\u76ee\u524d\u4f7f\u7528file descriptor\u6700\u5927\u503c<br>Number of file desc currently in use: 430 \/\/\u76ee\u524d\u6b63\u5728\u4f7f\u7528\u7684file descriptor\u6578<br>719504 StoreEntries \/\/Cache\u4e2d\u5b58\u653e\u7684\u5feb\u53d6\u6a94\u6848\u6578\u91cf<br>13774 StoreEntries with MemObjects \/\/\u8a18\u61b6\u9ad4\u9b25\u7684\u5feb\u53d6\u6a94\u6848\u6578\u91cf<br>709747 on-disk objects \/\/\u78c1\u789f\u6a5f\u4e2d\u5b58\u653e\u7684\u5feb\u53d6\u6a94\u6848\u6578\u91cf<\/p>\n\n\n\n<p><strong>\u5728Peer Cache Statistics\u6709\u9019\u4e9b<\/strong><br>Status : Up \/\/\u9023\u7dda\u72c0\u614b<br>FETCHES : 252870 0% \/\/\u7531parent\u9935\u9001\u7684\u7269\u4ef6\u6578\u91cf<br>Last failed connect() at: 02\/May\/2000:10:13:16 +0800 \/\/\u4e0a\u4e00\u6b21\u8207parent\u65b7\u7dda\u767c\u751f\u7684\u6642\u9593<\/p>\n\n\n\n<p><strong>\u5728Cache Utilization\u5167\u6709\u9019\u4e9b<\/strong><br>sample_start_time = 957238720.384495 (Tue, 02 May 2000 03:38:40 GMT) \/\/\u53d6\u6a23\u8d77\u59cb\u6642\u9593<br>sample_end_time = 957239023.269460 (Tue, 02 May 2000 03:43:43 GMT) \/\/\u53d6\u6a23\u7d50\u675f\u6642\u9593<br>client_http.requests = 109.031493\/sec \/\/\u5ba2\u6236\u7aef\u6bcf\u79d2\u7684http\u8981\u6c42\u6578<br>client_http.hits = 47.602231\/sec \/\/\u5ba2\u6236\u7aef\u6bcf\u79d2\u7684http\u547d\u4e2d\u6b21\u6578<br>client_http.kbytes_in = 50.963243\/sec \/\/\u5ba2\u6236\u7aef\u6bcf\u79d2\u9001\u51fa\u7684\u8cc7\u6599\u91cf<br>client_http.kbytes_out = 514.066454\/sec \/\/\u6bcf\u79d2\u9001\u51fa\u81f3\u5ba2\u6236\u7aef\u7684\u8cc7\u6599\u91cf<br>client_http.all_median_svc_time = 1.384466 seconds \/\/\u53cd\u61c9\u6642\u9593<br>server.all.requests = 63.053642\/sec \/\/squid\u5e6b\u5ba2\u6236\u7aef\u6293\u53d6\u7684\u8981\u6c42\u6578<br>server.all.kbytes_in = 278.699869\/sec \/\/squid\u5c0d\u5916\u6293\u53d6\u7684\u8cc7\u6599\u91cf<br>server.all.kbytes_out = 32.121106\/sec \/\/squid\u5c0d\u5916\u9001\u51fa\u9700\u6c42\u7684\u8cc7\u6599\u91cf<br>dns.median_svc_time = 0.007785 seconds \/\/DNS\u7684\u53cd\u61c9\u6642\u9593<br>aborted_requests = 10.710337\/sec \/\/\u5ba2\u6236\u7aef\u4e2d\u65b7\u9023\u7dda\u8acb\u6c42\u7684\u6b21\u6578<br>cpu_time = 274.290000 seconds \/\/squid\u4f54\u7528CPU\u7684\u6642\u9593<br>wall_time = 302.884965 seconds \/\/\u53d6\u6a23\u7684\u6642\u9593\u7e3d\u9577<br>cpu_usage = 90.559134% \/\/\u5e73\u5747CPU\u4f7f\u7528\u7387<\/p>\n\n\n\n<p>reference:<br>http:\/\/forum.arjin.tw\/lpic\/suse\/9.3\/suselinux-adminguide_zh_TW\/html\/sec.squid.cachemgr.html<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p><strong>sarg(Squid Analysis Report Generator)<\/strong><br>(http:\/\/sarg.sourceforge.net\/)<br>\u53ef\u5206\u6790squid log\u6a94\u7522\u751f\u5831\u8868<\/p>\n\n\n\n<p><strong>\u5b89\u88dd<\/strong><br>\u4e0b\u8f09tar.gz\u89e3\u58d3\u7e2e\u5f8c\u9032\u5165\u8a72\u76ee\u9304\u5167,\u57f7\u884c<br>.\/configure &#8211;prefix=&#8221;\/usr\/local\/sarg&#8221;<br>make<br>make install<\/p>\n\n\n\n<p><strong>\u8a2d\u5b9a<\/strong><br>\u627e\u5230sarg.conf\u5f8c\u78ba\u4efb\u4ee5\u4e0b\u8a2d\u5b9a<br>access_log \/var\/logs\/squid\/access.log \/\/squid\u7684log\u6a94\u4f4d\u7f6e<br>temporary_dir \/tmp \/\/\u8a18\u9304\u6a94\u66ab\u5b58\u4f4d\u7f6e<br>output_dir \/var\/www\/html\/sarg \/\/\u5831\u8868\u8f38\u51fa\u4f4d\u7f6e<br>overwrite_report no \/\/\u5831\u8868\u662f\u5426\u8986\u5beb<br>exclude_codes \/usr\/local\/sarg\/exclude_codes \/\/exclude_codes\u4f4d\u7f6e<\/p>\n\n\n\n<p><strong>\u57f7\u884csarg<\/strong><br>#\/usr\/local\/sarg\/bin\/sarg<\/p>\n\n\n\n<p><strong>\u770b\u5831\u8868<\/strong><br>\u9032\u5165http:\/\/proxy server url\/sarg\/<\/p>\n\n\n\n<p><br>If you want to generate daily reports from Squid proxy server logs,<br>1<br><strong>create script:<\/strong><br>#!\/bin\/bash<br>#Get current date<br>TODAY=$(date +%d\/%m\/%Y)<br>#Get yesterday&#8217;s date<br>YESTERDAY=$(date &#8211;date yesterday +%d\/%m\/%Y)<br>\/usr\/bin\/sarg -z -d $YESTERDAY-$TODAY &gt; \/dev\/null 2&gt;&amp;1<br>exit 0<\/p>\n\n\n\n<p>2<br><strong>And add it to cron jobs:<\/strong><br>55 23 * * * \/scripts\/sarg_daily_report<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Squid(http:\/\/www.squid-cache.o &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[21],"tags":[],"class_list":["post-677","post","type-post","status-publish","format-standard","hentry","category-linuxservice"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/comments?post=677"}],"version-history":[{"count":0,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/677\/revisions"}],"wp:attachment":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/media?parent=677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/categories?post=677"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/tags?post=677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}