我在linux下安装squid完成后,squid.conf文件的配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在linux下安装squid完成后,squid.conf文件的配置相关的知识,希望对你有一定的参考价值。
我在linux环境下装好squid后,然后配置了squid.conf文件,但在我执行usr/local/squid/sbin/squid -z 命令时总是出错。不知道是什么情况。
下面是出错的提示:
WARNING: Cannot write log file: /usr/local/squid/var/logs/cache.log
/usr/local/squid/var/logs/cache.log: Permission denied
messages will be sent to 'stderr'.
WARNING: Cannot write log file: /usr/local/squid/var/logs/cache.log
/usr/local/squid/var/logs/cache.log: Permission denied
messages will be sent to 'stderr'.
2011/05/01 05:04:42| WARNING: Closing open FD 2
2011/05/01 05:04:42| Starting Squid Cache version 3.0.STABLE25 for i686-pc-linux-gnu...
2011/05/01 05:04:42| Process ID 3137
2011/05/01 05:04:42| With 1024 file descriptors available
2011/05/01 05:04:42| Performing DNS Tests...
这是什么意思?
我用的版本是squid-3.0.STABLE25。是不是在squid.conf的配置上有什么不一样?
http_port 80 transparent
http_access allow all
2、注意,以上是squid2.6及以后版本的配置,如果是2.6以前版本的squid,配置如下:
http_port 80
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
3、/usr/local/squid/sbin目录下的squid为运行文件。
第一次运行时,先运行squid -z创建缓存文件夹。缓存文件夹在/usr/local/squid/var下创建,因此创建缓存前还需运行chmod 777 /usr/local/squid/var给该文件夹权限。
再运行squid -d 1开启squid即可。
如果要关闭squid,运行squid -k shutdown则是安全关闭。
注意,如果没有将新装的squid配置成环境变量的话,尽量在sbin目录下运行./squid,以免运行了服务器上已有的旧squid。
4、设置一个DNS服务器,将所有域名解析指向到需要被代理的服务器的IP,例如使用Bind,WinMyDns软件。将squid所在服务器的DNS设置成该DNS服务器。
5、将被代理的服务器所有域名解析到squid所在服务器,这时该服务器即可作为中转。 参考技术A /usr/local/squid/var/logs/cache.log: Permission denied
你用什么用户启动的服务?
理论上这种服务应该用 root 启动。
yueyang8089 那家伙是刷分来的吧? 参考技术B /usr/local/squid/var/logs/ 目录权限不对,一般情况下squid启动是root,但输出日志的用户是squid.conf中
cache_effective_user squid
cache_effective_group squid
配置的用户,默认是squid用户和组,请检查是否有这方面的配置,对无法写入的目录加上用户写的权限本回答被提问者采纳 参考技术C 1. 源NAT(SNAT)
更改所有来自192.168.1.0/24的数据包的源ip地址为1.2.3.4:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 1.2.3.4
这里需要注意的是,系统在路由及过虑等处理直到数据包要被送出时才进行SNAT。
有一种SNAT的特殊情况是ip欺骗,也就是所谓的Masquerading,通常建议在使用拨号上网的时候使用,或者说在合法ip地址不固定的情况下使用。比如
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
可以看出,这时候我们没有必要显式的指定源ip地址等信息。
2. 目的SNAT(DNAT)
更改所有来自192.168.1.0/24的数据包的目的ip地址为1.2.3.4:
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -i eth1 -j DNAT --to 1.2.3.4
这里需要注意的是,系统是先进行DNAT,然后才进行路由及过虑等操作。
有一种DNAT的特殊情况是重定向,也就是所谓的Redirection,这时候就相当于将符合条件的数据包的目的ip地址改为数据包进入系统时的网络接口的ip地址。通常是在与squid配置形成透明代理时使用,假设squid的监听端口是3128,我们可以通过以下语句来将来自 192.168.1.0/24,目的端口为80的数据包重定向到squid监听
端口:
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 --dport 80
-j REDIRECT --to-port 3128
以上是关于我在linux下安装squid完成后,squid.conf文件的配置的主要内容,如果未能解决你的问题,请参考以下文章