洞洞! | 原喵空间

正文

【转载】解决通过nat的ftp无法列表问题

作者:xiaowuhello
登陆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 要做的事情!

回复

0%
站点地图友情链接:
喵宅苑
喵空间社区程序
络合兔
技术宅
莉可POI
Mithril.js
枫の主题社
Project1
午后少年
机智库
七濑胡桃
xiuno
幻想の博客