84580799 2008-10-15
Linux Fedora 8安装并配置squid代理服务器
1.非透明代理
1》.squid3.0的安装就省略了,我的系统刚更新的,自己就是3.0了,不过安装它应该不难
2》.对于没有特殊要求的,采用默认的配置文件就ok了,在/etc/squid/squid.conf,如果你一起有改过的话,可以copyd同目录squid.conf.default到里面。
whereis squid,看看安哪了,也可以rpm -ql squid
sudo /usr/sbin/squid -z,初始化目录
sudo /etc/rc.d/init.d/squidstart
此时默认的是3128端口,防火墙是通不过的,在防火墙-》可信端口-》添加3128,tcp
》可信的服务->WWW选上
另外,要确认服务中squid是enabled,而对于初始的默认cache目录,/var/spool/squid和/var/log/squid,我改变了他们的属主,但估计是多余了(squid用户和群早就有了,忘了是自己建的还是系统代的,哈哈)
sudo chown -R squid:squid~~~
3》.在客户端ie,设置好ip:port就好了。
2.改成透明代理
1》.同样,没有特殊要求,还是采用默认的,只是在http_port 3128 后加一个transparent
2》.关键是配置iptables控制转发
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT--to-ports 3128
3》.如果是在命令行输入的话,那么每次重启系统和iptables后都要重新输入,可以这样解决:
iptable的配置,在/etc/rc.d/目录下用touch命令建立firewall文件,执行chmod u+xfirewll以更改文 件属性,编辑/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/firewall以确保开机时能自动执行该脚本。
echo "starting ip forward"
echo 1 >/proc/sys/net/ipv4/ip_forward
echo "starting iptables rules"
modprobe ip_tables
modprobe ip_nat_ftp
/sbin/iptables -F -t nat
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -jREDIRECT --to-ports3128 #将所有80#端口的包转发到3128端口
//iptables -t nat -A POSTROUTING -o eth0 -jMASQUERADE #对eth0端口进行欺骗,单网卡用不到
4》.配置完以上内容后就可以配置客户端上网了
ie里取消代理的设置,将客户端的网关指向服务器ip,设置好dns,然后就可以上网了
如果不设好dns的话,就只有人工解析了,比如百度,202.108.22.43
关键是这里的dns的设置,网上说的都比较模糊,我猜测,应该有两种方法:
<1>.通过转发,就是讲内网的dns请求转发到外网的dns服务器进行解析
<2>.Linux同时充当dns服务器,关于dns服务器的文章也很多,但本人菜鸟,要求不高,只有能用就ok了。(将客户端dns指定为服务器ip)
A.我用的是dnsmasq:Linux下可以用Iptables加Dnsmasq做透明DNS代理。我并没有这么做,只是简单的开启了dnsmasq而已
B.就是用bind,有空再说吧
5》.发现这样配置的透明代理上不了qq,但设置代理可以上,这应该是和squid有关