squid的问题

squid的问题

squid做的代理上不了ftp,老是出错误是什么原因      
squid 只支持浏览器的FTP,
真正的FTP不支持。
这篇文章,看看有没有帮助。http://www.linuxeden.com/edu/doctext.php?docid=2355      
水鸟兄果真是个不菜的鸟呀

haha      
我用squid+ipfilter做透明代理

设置好squid
设置squid的ftp项目为:
ftp_user wangxi@mail.sky.net
后:

在客户机上用ie上ftp://ftp.freebsd.org/

出现错误:


打开ftp服务器上的文件夹发生错误,请检查是否有权限访问文件权限。

详细信息:

200 Type set to A

500 illegal port range rejected

然后,就不行了。

下面的192.168.0.1为代理服务器ip
1)我用ipfilter的nat功能上ftp:
nat规则如下:
rdr tun0 0.0.0.0/0 port 80 -> 192.168.0.1 port 3128
map tun0 192.168.0.0/24 -> 0/32

不行。
2)用squid转发ftp请求:
nat规则如下:
rdr tun0 0.0.0.0/0 port 80 -> 192.168.0.1 port 3128
rdr tun0 0.0.0.0/0 port 21 -> 192.168.0.1 port 3128
map tun0 192.168.0.0/24 -> 0/32

最后,在客户端用ie测试:两种方法都上不了ftp.freebsd.org(其他的ftp站点也不行)不知道是为什么?望赐教      
原来是没有好好研究ipfilter,在原来的nat规则上加上:
map tun0 192.168.0.0/24 -> 0/32 proxy port ftp ftp/tcp
就可以访问ftp站点了。

不过又发现了一个新的问题:

尝试多次后发现:

nat规则在拨号之前设置了没有用,要在拨号之后,再执行一遍/sbin/ipnat -f /etc/nat.conf(先要清除原有的nat规则:/sbin/ipnat -C)

但是我想在拨号之前,就使nat生效(注:在/etc/rc.local里面已经有/sbin/ipnat -f /etc/nat.conf了,而且,启动后可以用/sbin/ipnat -l看见设置的nat规则,好象在拨号成功以前,设置的nat规则没有效果,非要先拨一次号才行,可是这样做自动拨号的代理服务器就有问题啊(神啊!救救我吧),望赐教。