
登陆linux的ftp服务器没问题,只是登陆windows的有问题,当列表时无法列出.
解决通过nat的ftp无法列表问题:
登陆linux的ftp服务器没问题,只是登陆windows的有问题,当列表时无法列出.
modprobe ip_nat_ftp 时出现:
modprobe: Too deep recursion in module dependencies!
modprobe: Circular dependency? ip_nat_proto_udp ip_conntrack ip_nat_core ip_nat_helper ip_nat_ftp
已放弃
用insmod ip_nat_ftp 后就解决问题.
之后找了些资料.他们是这样讨论的:
加载模块:
modprobe ip_tables
insmod ip_conntrack
insmod ip_conntrack_ftp
insmod ip_nat_ftp
关于有状态功能,重点在于后三个模块:
ip_conntrack模块能够使防火墙具有连接跟踪能力。(通过输入 "cat /proc/net/ip_conntrack" 能查看你的机器参和的活动网络连接。)
加载这个模块后,基本上所有有状态的返回包都能识别,例:telnet,http,QQ,mail,ping,dns等。
实际上,加载了ip_conntrack模块,ftp已能够登陆,并能使用象pwd,cd等命令,但当使用ls命令显示文件内容时,就会timeout。原因在于
显示文件列表的包防火墙无法识别,就会进入默认策略----禁止,此时就需要加载ip_conntrack_ftp模块。
ip_conntrack_ftp模块使防火墙能够识别FTP某类特别的返回包。
如果防火墙上对所有出去的返回包作了伪装,就需要加载ip_nat_ftp模块。
ip_nat_ftp模块在出去的包作了伪装以后,必须加载,否则防火墙无法知道返回的包该转发到哪里。
http://www.chinaunix.net/jh/4/517901.html
?中人 回复于:2005-03-29 15:22:36
在做??之前, 可先用所?的基????一下, ?更有助理解.
首先要理解前面 platinum 兄?的?明, 也就是?於 ftp 的????模式.
然後再??分出 port command 的?容是在 ftp packet ?的, 而不是??在 tcp/ip header ?.
?我?的 firewall/nat 在?有 modules ?忙的情?下,
只??查及修改 tcp/ip header 的?容而不?去理? ftp packet 的?容.
如此, 在 ftp active mode 下,
??自 ftp server port 20 的 NEW packet 到? firewall/nat ?,
由於?有????也??先?好的??? packet 通?, 那?? ftp-data channel 就??掉.
若有 ip_conntack_ftp module 的?忙, firewall ???所有 port 21 相?的 tcp packet 展?查看?面的 ftp packet.
如??有 port command, 那可事先??? RELATED ???通??, ? ftp-data packet 穿? firewall .
然而 conntrack module 只是?控??, 不?? packet 做所有的修改.
?在 direct-routing ?境下的 firewall 就?用了.
不过在 nat ?境下呢?
先?我?看看 ftp packet ?的 port command 所使用的 address :
是使用 nat 之後的外部地址?是 nat 之前的?部地址呢?
如果?有 ip_ftp_nat module 的?忙, 那肯定是使用 nat 之前的?部地址.
??, ??另一端的 server/client 的 ftp-data packet 要送到哪?去?
呵, ?然是送到?部地址去啦. 但, ?在 internet 上是行不通的. 或根本就送?地方而遭 reset !
okay, 如此, 怎才能?另一端的 packet 送回?端的外部地址? 且?能改回到正?的?部地址去呢?
答案呼之欲出---就是 ip_nat_ftp 要做的事情!