Sun Solaris 9 下Squid 代理服务器的配置也包括DNS域名解析服务器的配置.

一. squid 的工作是建立在 DNS 的服务之上的, 所以首先要配置好你的DNS服务,方可进行squid
的安装和配置工作. 否则squid  会报错而无法运行!
1.DNS服务的安装和配置.
bash-2.05# pkgadd -d ./bind-9.4.1pl1-sol9-sparc-local---安装.
named 服务是默认安装在/usr/local/sbin 的目录下面的.

a. 编辑主配置文件
root@xiao.com # vi /etc/named.conf ---写入以下内容.
options {
directory "/usr/local/sbin/var/named";
forwarders { 210.21.4.130; 202.96.128.86; };----为了能访问外网的转发器.
};

// // a caching only nameserver config
//
zone "." IN {
type hint;
file "named.ca";
};

zone "xiao.com" IN {
type master;
file "xiao.com.zone"; -指明正向解释的文件.在这个目录下/usr/local/sbin/var/named/
allow-update { none; };
};

zone "0.168.192.in-addr.arpa" IN {
type master;
file "xiao.com.local";-指明反向解释的文件.在这个目录下/usr/local/sbin/var/named/
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "localhost.local";-指明反向解释的文件.在这个目录下/usr/local/sbin/var/named/
allow-update { none; };
};

b. rndc.key 和 rndc.conf 文件的配置生成.
root@xiao.com # /usr/local/sbin/rndc-confgen -用这个命令.
# Start of rndc.conf
key "rndc-key" {
        algorithm hmac-md5;
        secret "Sc1rFA4LnK9jNqnU0F7mDA==";
};

options {
        default-key "rndc-key";
        default-server 127.0.0.1;
        default-port 953;
};
# End of rndc.conf  ---------取这一段复制到并保存在 /etc/rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
#       algorithm hmac-md5;
#       secret "Sc1rFA4LnK9jNqnU0F7mDA==";
# };
#
# controls {
#       inet 127.0.0.1 port 953
#               allow { 127.0.0.1; } keys { "rndc-key"; };
# };              ----------取这一段复制到并保存在 /etc/rndc.key

c. 编辑named.pid; 正反向解释文件.
bash-2.05# mkdir /usr/local/sbin/run
bash-2.05# touch /usr/local/sbin/run/named.pid --建个进程文件.
bash-2.05# mkdir -p /usr/local/sbin/var/named

root@xiao.com # vi /usr/local/sbin/var/named/named.ca --写入以下内容.域名配置文件.
;This is file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.cache
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
;
; last update: Jan 29, 2004
; related version of root zone: 2004012900
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; operated by VeriSign, Inc.
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
;
; operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; operated by ICANN
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File

root@xiao.com # vi /usr/local/sbin/var/named/localhost.local--域名解释内容
$TTL 86400
@ IN SOA xxx.xiao.com. root.xxx.xiao.com. (
                             1997022700 ; Serial
                             28800 ; Refresh
                             14400 ; Retry
                             3600000 ; Expire
                             86400 ) ; Minimum
       IN    NS    xxx.xiao.com. -----记得末尾加个点的符号

root@xiao.com # vi /usr/local/sbin/var/named/xiao.com.local --反向解释内容
$TTL 86400
@ IN SOA ns.xiao.com. root.xiao.com. (
                        1997022700 ; Serial
                        28800 ; Refresh
                        14400 ; Retry
                        3600000 ; Expire
                        86400 ) ; Minimum
   
    IN    NS     ns.xiao.com.

213 IN   PTR     xxx.xiao.com. -----记得末尾加个点的符号
213 IN   PTR     mail.xiao.com. -----记得末尾加个点的符号

bash-2.05 # vi /usr/local/sbin/var/named/xiao.com.zone -- 正向解释内容
$TTL 86400
@ IN SOA ns.xiao.com. root.xiao.com. (
                      42 ; serial (d. adams)
                      3H ; refresh
                      15M ; retry
                      1W ; expiry
                      1D ) ; minimum

IN NS xxx.xiao.com. -----记得末尾加个点的符号
        
www     IN A 192.168.0.213
ns      IN A 192.168.0.213
ftp     IN A 192.168.0.213

c. 运行
bash-2.05 # /usr/local/sbin/named 运行这两个命令.
bash-2.05 # /usr/sbin/in.named

d. 测试:
bash-2.05 # /usr/local/bin/host 192.168.0.213 ---反向解释成功.这样DNS的配置就算完成了
213.0.168.192.in-addr.arpa domain name pointer xxx.xiao.com.

root@xiao.com # /usr/local/bin/nslookup ---以下正反向解释都是成功的.         
> xxx.xiao.com  ----输入你的域名   
Server:         192.168.0.213
Address:        192.168.0.213#53

Name:   xxx.xiao.com -----返回的结果
Address: 192.168.0.213 -----返回的结果
> 192.168.0.213 ----输入主机的IP地址
Server:         192.168.0.213
Address:        192.168.0.213#53

213.0.168.192.in-addr.arpa      name = xxx.xiao.com.  ------返回的结果.
213.0.168.192.in-addr.arpa      name = mail.xiao.com. -----返回的结果.

二. squid 的安装.

1. 在安装之前, 请检查 DNS 服务是否起用了;输入以下的命令,看到有下面的结果返回说明DNS服务正常.

bash-2.05# netstat -anv |grep 53
127.0.0.1.53                                Idle
192.168.0.213.53                            Idle
      *.*                0 00000000 00000000 49152 00000000 00000000  3375   536 LISTEN
      *.*                0 00000000 00000000 49152 00000000 00000000  3375   536 IDLE
      *.*                0 00000000 00000000 49152 00000000 00000000  3375   536 LISTEN
      *.*                0 00000000 00000000 49152 00000000 00000000  3375   536 LISTEN
      *.*                0 00000000 00000000 49152 00000000 00000000  3375   536 LISTEN

2. 安装的软件包. 下载地址:http://www.sunfreeware.com/indexsparc9.html

a. 需要的软件包列表(包含DNS软件):
bind-9.4.1pl1-sol9-sparc-local      
libgcc-3.3-sol9-sparc-local         
sasl-2.1.21-sol9-sparc-local
db-4.2.52.NC-sol9-sparc-local        
libiconv-1.11-sol9-sparc-local      
squid-2.6.STABLE16-sol9-sparc-local
expat-1.95.5-sol9-sparc-local        
openldap-2.3.35-sol9-sparc-local
gcc-3.4.6-sol9-sparc-local           
openssl-0.9.8f-sol9-sparc-local

b. 把上面有依赖关系的软件包逐一都安装好,squid默认是安装在/usr/local/squid目录下.
bash-2.05# pkgadd -d ./squid-2.6.STABLE16-sol9-sparc-local

The following packages are available:
  1  SMCsquid     squid
                  (sparc) 2.6.STABLE16

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all

bash-2.05# cd /usr/local/squid/  ---安装好squid,目录下面的文件.
bash-2.05# ls
bin      doc      etc      libexec  sbin     share    var

c. 设置squid的运行环境,添加squid用户和它的组.---squid 是以squid 自己的身份去运行的.
bash-2.05# useradd squid
bash-2.05# groupadd squid

d. 为了让squid能运行起来,需要手动添加及改动其配置文件.(也不是一定要手动生成.
如果在第一次运行squid时,根据运行脚本的提示,报错信息来决定)
并把他们加入到squid组和为squid所有. 文件的权限设为644.
bash_2.05# mkdir /usr/local/squid/var/cache
bash-2.05# touch /usr/local/squid/var/logs/squid.pid
bash-2.05# touch /usr/local/squid/var/logs/access.log
bash-2.05# touch /usr/local/squid/var/logs/store.log
bash-2.05# touch /usr/local/squid/var/logs/cache.log
bash-2.05# chown squid:squid /usr/local/squid/var/logs/*

bash-2.05# chomd 644 var/logs/*
bash-2.05# ls -l var/logs/
total 116
-rw-r--r--   1 squid    squid          0 Nov 20 14:26 access.log
-rw-r--r--   1 squid    squid      58062 Nov 21 15:39 cache.log
-rw-r--r--   1 root     squid          4 Nov 21 15:39 squid.pid
-rw-r--r--   1 squid    squid          0 Nov 20 15:11 store.log

编辑配置文件:
bash-2.05# vi /usr/local/squid/etc/squid.conf

第936行:去掉注释并插入( 本主机的IP和端口,默认是3128 )
http_port 192.168.0.213:3128

在第632(写入你允许访问的网段)和633行去掉注释,
并特别注意636行是否有这个声明--允许的条件写在它的前面(所有的字符区分大小写):
   631  # be allowed
   632  acl our_networks src 192.168.0.0/24 192.168.1.0/24 192.168.2.0/24
   633  http_access allow our_networks
   634
   635  # And finally deny all other access to this proxy
   636  http_access deny all

在第2969行,更改它的默认用户(默认没有设置),去掉注释:
  #  supplementary group list from the from groups membership of
  2966  #       cache_effective_user.
  2967  #
  2968  #Default:
  2969  cache_effective_user squid  ---(这里设为squid,这个比较重要,否则会启动不了.报有关无法写入cache, cache.log的错误)

在第2981行,更改它的默认组(默认没有设置),去掉注释:
  2977  #  If Squid is not started as root the user starting Squid must be member of the specified
  2978  #       group.
  2979  #
  2980  #Default:
  2981  cache_effective_group squid ---(这里设为squid)

在第2997行,更改它的错误报告发送主机名(默认没有设置),去掉注释:
  2993  #       get errors about IP-forwarding you must set them to have individual
  2994  #       names with this setting.
  2995  #
  2996  #Default:
  2997  visible_hostname 192.168.0.213 ---(这里指定IP地址)

e. 运行squid.
(1.)运行前检查DNS服务要正常启用:

bash-2.05# netstat -avn |grep 53
127.0.0.1.53                                Idle
192.168.0.213.53                            Idle
      *.*                0 00000000 00000000 49152 00000000 00000000  3375   536 LISTEN
      *.*                0 00000000 00000000 49152 00000000 00000000  3375   536 IDLE
      *.*                0 00000000 00000000 49152 00000000 00000000  3375   536 LISTEN

(2.)第一次运行squid前先建立cache_swap的目录文件.
bash-2.05# /usr/local/squid/sbin/squid -z  ---运行此命令,返回下面结果,表示cache建立成功.

2007/11/21 15:39:16| Starting Squid Cache version 2.6.STABLE16 for sparc-sun-solaris2.9...
2007/11/21 15:39:16| Process ID 363
2007/11/21 15:39:16| With 32768 file descriptors available
2007/11/21 15:39:16| Using poll for the IO loop
2007/11/21 15:39:16| Performing DNS Tests...
2007/11/21 15:39:16| Successful DNS name lookup tests...
2007/11/21 15:39:16| DNS Socket created at 0.0.0.0, port 32815, FD 5
2007/11/21 15:39:16| Adding nameserver 192.168.0.213 from /etc/resolv.conf
2007/11/21 15:39:16| Unlinkd pipe opened on FD 10
2007/11/21 15:39:16| Swap maxSize 102400 KB, estimated 7876 objects
2007/11/21 15:39:16| Target number of buckets: 393
2007/11/21 15:39:16| Using 8192 Store buckets
2007/11/21 15:39:16| Max Mem  size: 8192 KB
2007/11/21 15:39:16| Max Swap size: 102400 KB
2007/11/21 15:39:16| Rebuilding storage in /usr/local/squid/var/cache (DIRTY)
2007/11/21 15:39:16| Using Least Load store dir selection
2007/11/21 15:39:16| Set Current Directory to /usr/local/squid/var/cache
2007/11/21 15:39:16| Loaded Icons.
2007/11/21 15:39:16| Accepting proxy HTTP connections at 192.168.0.213, port 3128, FD 12

bash-2.05# /usr/local/squid/sbin/squid ---用此命令启动服务  
2007/11/21 16:21:49| Squid is already running!  Process ID 363

bash-2.05# netstat -avn |grep 3128 ---表示squid已经正常起用了.
192.168.0.213.3128

(3.)编辑squid服务自动起用的脚本.
bash-2.05# vi /etc/rc3.d/S50squid
#!/sbin/sh
#
#
#ident  "@(#)squid"

case "$1" in
start)
        [ -f /usr/local/squid/etc/squid.conf ] || exit 0

/usr/local/squid/sbin/squid
        ;;
stop)
        pkill squid
        ;;
*)
        echo "Usage: $0 { start | stop }"
        exit 1
        ;;
esac
exit 0

bash-2.05# ls -l /etc/rc3.d/S50squid --此文件设定为744, sys组, 所有者为root:
-rwxr--r--   1 root     sys          301 Nov 21 10:59 /etc/rc3.d/S50squid
bash-2.05# chgrp sys /etc/rc3.d/S50squid
bash-2.05# chown root /etc/rc3.d/S50squid
bash-2.05# chmod 744 /etc/rc3.d/S50squid

3.测试:
设置:
windows 用户端: 浏览器---工具---Internet选项---连接---局域网设置---代理服务器--
输入: IP 192.168.0.213 ; 端口: 3128 ;确定,退出; 然后在IE地址拦输入你要访问的网络地址.
linux 或 Unix 用户: bash-2.05# route add default gateway 192.168.0.213 ;
或 bash-2.05# vi /etc/defaultrouter  加入代理服务器的地址: 192.168.0.213

如果觉得起用squid访问的速度慢, 你可以设置第1601行, cache_mem 把默认的8MB 改成32MB或者更大,
看机器的情况. 我这里是默认(注意: 有关default 项原配置文件是有# 号的,  改好后,记得把注释去掉, 如果没有修改,就不要去掉注释,切记!!)

bash-2.05# pwd
/usr/local/squid
bash-2.05# tail -30 var/logs/access.log ---查看访问日志文件,留下了用户访问的记录.
1195638014.409     66 192.168.0.131 TCP_MISS/304 249 http://bbs.chinaunix.net/icon/- DIRECT/60.28.166.83 -
1195638014.411     64 192.168.0.131 TCP_MISShttp://bbs.chinaunix.net/icon/DIRECT/60.28.166.83 -
1195638014.418     69 192.168.0.131 TCP_MISS/http://bbs.chinaunix.net/icon/book- DIRECT/60.28.166.83 -
1195638014.430     77 192.168.0.131 TCP_MISS/304 249http://bbs.chinaunix.net/icon/ - DIRECT/60.28.166.83 -
1195638014.449    170 192.168.0.131 TCP_MISS/http://www.chinaunix.net/top100_ - DIRECT/60.28.166.84 -
1195638014.467    163 192.168.0.131 TCP_MISS/http://www.chinaunix.net/job_banner160 - DIRECT/60.28.166.84 -
1195638014.478    170 192.168.0.131 TCP_MISShttp://www.chinaunix.net/download- DIRECT/60.28.166.84

4. 结束.
有关squid的配置文件多达4500行,有很多高级的配置应用.功能很强大.如 acl 访问控制列表; cache_mem;
也可以配置成防火墙,监控用户访问,监控你的企业网络等等
下面是这里过滤了注释的配置文件(但不包含默认的,注释了的部分)

bash-2.05# cat etc/squid.conf |grep -v "#"|grep " "
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
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
acl our_networks src 192.168.0.0/24 192.168.1.0/24 192.168.2.0/24
http_access allow our_networks
http_access deny all
icp_access allow all
http_port 192.168.0.213:3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
access_log /usr/local/squid/var/logs/access.log squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_effective_user squid
cache_effective_group squid
visible_hostname 192.168.0.213
coredump_dir /usr/local/squid/var/cache

5. 一点心得.
此次配置是参考RHEL4下的配置完成的. 是一步一步根据运行的错误信息来排除解决问题的,需要说明
值得注意的是; cache_effective_user 和 cache_effective_group 必需指明正确;这里都是squid;
还有cache_mem 这个数据,默认是8MB , 为了加快访问速度把这个设得尽可能的大,128MB;256MB,一般
是你机器内存的一半.

有更好的方法, 希望多多交流, 不足请指正!!

想继续深入了解请参考:
官方网站: http://www.squid-cache.org

Sun Solaris 9 下Squid 代理服务器的配置笔记相关推荐

  1. Redhat5下haproxy+keepalived+nginx配置笔记

    Redhat5下haproxy+keepalived+nginx配置笔记 ----by knight HA:高可用性 keepalived个人简单理解就是实现一个虚IP在keepalived主从服务器 ...

  2. CentOS 6.4下Squid代理服务器的安装与配置

    一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用 ...

  3. Squid代理服务器及配置

    文章目录 一.缓存代理概述 二.实验:使用Squid实现传统代理与透明代理 ①实验一:传统代理 ②试验二:透明代理 一.缓存代理概述 (一)代理的基本类型 传统代理:适用于Internet,需明确指定 ...

  4. Sun Solaris 10 bind 9.x DNS 配置

    公司新购两台Sun ultra 20 工作站和两台DELL server 作为公司对外提供的DNS server, 这是我第一次自己动手安装 solaris 10 x86 系统,并在上面配置DNS s ...

  5. Squid代理服务器基本配置(三)

    建立账户文件 为了建立供用户认证使用的账户文件,可以利用 Apache 的 htpasswd 程序生成账户文 件 /etc/squid/ passwd ,该账户文件每行包含一个用户的信息,即用户名和经 ...

  6. 在Solaris系统下如何更改网络配置?

    修改/etc/hostname.qfe0 =>附檔名,依照網卡種類不同,有不同的名稱 再依照上述檔案內容,再去查看/etc/hosts中相對應的名稱,並修改IP 转载于:https://blog ...

  7. Centos6.3下rsync+sersync安装配置笔记

    最近单位活比较多,所以就很少更新,晚上上网碰巧看到一篇关于sersync的介绍,个人感觉较rsync+inotify配置更加规范,刚好最近手痒,就总结了下,分享给大家. 目前业内比较靠谱的同步解决方案 ...

  8. Centos6.3下DRBD+HeartBeat+NFS配置笔记

    --------------闲   扯------------------ 这里首先感谢酒哥的构建高可用的Linux服务器的这本书,看了这本书上并参考里面的配置让自己对DRBD+HeartBeat+N ...

  9. nginx php-fpm 安装,Linux下nginx php-fpm安装配置笔记

    一.安装php5.5 1.安装依赖包 yum -y install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-d ...

最新文章

  1. Win10系统如何在防火墙里开放端口
  2. iphonex黑屏开不了机_iphonexr黑屏,iphonexr突然开不了机
  3. php 批量修改文件,php如何批量修改文件名
  4. 58 Openstack基础、openstack之glance、openstack之keystone
  5. JavaScript中对象的构造方法
  6. shell 定时删除制定目录下过期文件
  7. JS设置CSS样式的集中方式
  8. python集合set,frozenset--笔记
  9. 本期课程已满,欢迎关注后续期次 | 临床基因组学数据分析实战助力解析Case,快速发表文章...
  10. 允许保存文件 html5,html5 保存文件
  11. Spark Streaming ReceiverTracker架构设计
  12. C语言w10输入法打不出中文,win10系统输不了中文怎么办
  13. ERP : 产出控制
  14. 到底linux下的管道是什么?
  15. 【C++ 科学计算】矩阵元素绝对值小于设定值时,元素值变为零
  16. QPS、TPS、并发用户数、吞吐量关系
  17. Blinn-Phong反射模型
  18. 尽管有节制的努力,pinterest仍保留着年轻女孩的反色情模因图片
  19. mysql的复杂查询
  20. opengl 编程指南源码下载与环境配置

热门文章

  1. 练习markdown语法
  2. 【iOS开发】静态库 a文件合成脚本解释
  3. MultiThreadedHttpConnectionManager
  4. Unity下的ECS框架 Entitas简介
  5. logging 模块记录日志
  6. Starting MySQL....The server quit without updating PID file 处理方法
  7. BIND9配置文件详解模板
  8. jQuery插件—获取URL参数
  9. websocket工作原理
  10. go 用的不多的命令