由 ai_2 在 11-20-2002 19:51 发表:
linux下使用squid设置代理成功,但有些问题希望高手帮忙解决一下
linux下使用squid设置代理成功,但有些问题希望高手帮忙解决一下
我下载了squid的2.5版本,然后安装设置完成
启动后客户机能通过3128端口代理上网,但现在还是不能实现透明代理
我的squid.conf文件配置如下:
http_port 3128
acl rule1 url_regex sex
acl rule2 url_regex game
http_access deny rule1
http_access deny rule2
http_access allow all
启用透明代理
http_accel_host virtual
http_accel_port 80
http_accel_with_proxy on
http_accel_uses_host_header on
网络配置为双网卡eth0为adsl固定ip网关和dns.ip均为电信提供的,eth1为局域网网卡,ip192.168.0.1
firewall文件内容为:
#!/bin/sh
echo "Enable IP Forwarding...."
echo "1">/proc/sys/net/ipv4/ip_forward
echo "Starting iptables rules..."
/sbin/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
#Refresh all chains
/sbin/iptables -F -t nat
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to a.b.c.d
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
为何不能实现nat透明代理??????????
由 ai_2 在 11-20-2002 20:24 发表:
我输入以下命令后出现错误,这是什么意思呢??
[root@localhost root]# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24
-j MSQUERADE
iptables v1.2.6a: Couldn't load target `MSQUERADE':/lib/iptables/libipt_MSQUERADE.so: cannot open shared object file: No such file or directory
Try `iptables -h' or 'iptables --help' for more information.
由 小红帽 在 11-20-2002 20:31 发表:
应该是你的iptables还少一句转发规则
iptables -A FORWARD -i eth1 -s 192.168.0.0/24 -j ACCEPT
由 ai_2 在 11-20-2002 21:29 发表:
还是不行,运行firewall后连自己都上不了网了~~~
由 solaris 在 11-21-2002 09:40 发表:
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -o eth0 -j MASQUERADE -t nat
这样写试试看
由 ai_2 在 11-21-2002 19:51 发表:
问题暂时用其他的软件解决,用squid+iptables只能慢慢研究了,现在我用BBIagent做完全nat代理了~管理功能上差点,但应用上没问题!
谢谢各位能回复我的问题,感谢!!
“用ntsysv看看chainps和iptables是不是同时启动了”
我用setup设置一下,把chains和ip6……都关了,只剩一个iptables还是不行~
因最近时间太紧张了,忙着28号的知识竞赛,还有由于我老在公司通宵,办公室主任找我说了好几次了~现在只好用别的软件先把上网的问题弄好,剩下的只能慢慢来了~………………
由 笨猪猎人 在 12-19-2002 15:36 发表:
#!/bin/sh
echo "Enable IP Forwarding...."
echo "1">/proc/sys/net/ipv4/ip_forward
echo "Starting iptables rules..."
/sbin/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
#Refresh all chains
/sbin/iptables -F -t nat
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o eth0 -s 192.168.0.0/24 -j ACCEPT #防火墙允许通过的规则应该放在前面
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 # 如果你已经起用透明代理,就不需要端口重定向了
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to a.b.c.d
另外 目标MASQUERADE 第二个字母A,不要漏写。
上面是我的一些看法,只希望对你有帮助。可能会有失误,尽请原谅。
由 jamlee800 在 12-26-2002 16:35 发表:
不知道你不用代理(squid)时能不能上网,我觉得你的INPUT语句不够。我现在使用下面的配置,没用代理可以正常上网:
echo "Enable IP Forwarding..."
echo "1">/proc/sys/net/ipv4/ip_forward
echo "Starting iptables rules..."
/sbin/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT(*)
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 192.168.0.192/26 -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.192/26 -j MASQUERADE
其中(*)一句很重要,因为我的DNS装在本地,没有这个,DNS不能正常工作。另外,在DNS中最好加上“转发”功能。
由 jamlee800 在 12-27-2002 12:37 发表:
我的SQUID已安装调试好,最后的iptables是这样,运行很正常
echo "Enable IP Forwarding..."
echo 1 >/proc/sys/net/ipv4/ip_forward
echo "Starting iptables rules..."
/sbin/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 21 --syn -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 80 --syn -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -s 192.168.0.192/26 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.192/26