出错提示:
第一个 主要是权限问题,在启动过程中,多次提示权限有问题,会指出具体目录.因此需要使用chown -R nobody:nobody 相关目录 来把目录权限分配给nobody这个用户
第二个 查看日志 日志都在/var/log/squid目录下面 主要两个:cache.log 还有一个 squid.log 都需要查看
第三个 如果主机域名 /etc/hosts这个文件配置有问题,会出很多奇怪的问题,比如squid.log中提示
FATAL: Could not determine fully qualified hostname. Please set ''visible_hostname'' /etc/hosts 这个里面设置的不正确
ALERT: setgid: (1) Operation not permitted 用户权限有问题,需要把相关目录权限赋予给nobody:nobody
Creating Swap Directories squid: ERROR: No running copy 无法找到squid.pid这个文件
解决方案:直接使用下面命令:
#ps -ef | grep squid
root 22394 1 0 00:41 ? 00:00:00 sbin/squid -D
squid 22396 22394 12 00:41 ? 01:18:46 (squid) -D
squid 22402 22396 0 00:41 ? 00:00:00 (unlinkd)
squid 29682 22396 0 11:19 ? 00:00:00 (dnsserver)
squid 29683 22396 0 11:19 ? 00:00:00 (dnsserver)
squid 29684 22396 0 11:19 ? 00:00:00 (dnsserver)
squid 29685 22396 0 11:19 ? 00:00:00 (dnsserver)
squid 29686 22396 0 11:19 ? 00:00:00 (dnsserver)
root 29804 29638 0 11:30 pts/1 00:00:00 grep squid
echo "22396" > /opt/app/squid3/run/squid.pid
#/opt/app/squid3/sbin/squid -k reconfigure
客户端配置:
使用代理服务器:
我这里使用192.168.64.129 端口:3128
squid 控制权限
squid 使用acl来定义用户组,并使用http_access来控制用户组的权限.acl后面可以试src,dst,protocol,port,srcdomain,dstdomain等,squid的控制功能十分强大,你甚至可以用acl aclname time 指定用户组生效的时间,不过要注意,用http_access设置不用用户组的权限时,squid是按从上到下的顺序执行的,如果你想关闭一个组的某些站点的权限,就把deny的相应句子放在这个组的前面.
如果没有相应的access设置,那么默认的权限与一行相反,因此在一行设置http_access deny all 是很有必要的.
设置完成后,就可以直接运行squid来启动它,如果配置文件有误,squid会给出相应的提示.然后在使用IPchain设置包的转发规则,如:只允许客户机使用POP3 ,SMTP,DNS这几个端口收发信件.浏览网页只能使用代理,这样网络就安全多了
实例:
acl all src 0.0.0.0/0.0.0.0 定义acl
acl head src 192.168.0.2/255.255.255.255 192.168.0.3/255.255.255.255 定义acl
acl normal src 192.168.0.21-192.16.0.99/255.255.255.255 定义acl
acl denysite dstdomain tw net 定义acl
|