关于ftp编程方面的一个问题

unkill 2002-07-08 10:54:40
我通过socket编写一个ftp客户程序,现有个问题不解。
由于我的机器是在局域网中,防火墙的后面,所以采用PASV模式进行
数据传输。我现在设置一台ftp服务器,服务器的防火墙设置了禁止
低端端口的访问(标准协议端口除外),那么我应该无法连接到ftp服务器
返回给我的数据传输端口,在我的程序也确实是这样。
但我如果通过系统的ftp软件却可以从服务器上下载软件,为什么?
它是如何进行连接的。
...全文
62 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
unkill 2002-07-11
  • 打赏
  • 举报
回复
现在我将防火墙关掉,连接就成功了。怎么也想不明白。
unkill 2002-07-11
  • 打赏
  • 举报
回复
现在我将防火墙关掉,连接就成功了。怎么也想不明白。
unkill 2002-07-11
  • 打赏
  • 举报
回复
可是我的client端是在局域网中,通过代理出去连接ftp服务器的,
ftp服务器应该也连不进来吧。
victts 2002-07-11
  • 打赏
  • 举报
回复
PASV command telling Server to "listen" on his data port rather than
initiate a connection.
用 PASV command 告诉Server 在PORT监听,等client去连接data port,在防火墙下肯定失败,系统的ftp 是在client端等server来连data port.
unkill 2002-07-09
  • 打赏
  • 举报
回复
但该程序我在局域网中多台ftp服务器上都已经测试成功了。
xuying 2002-07-08
  • 打赏
  • 举报
回复
可能是你取的pasv返回的端口号不对,所以连接失败了。
unkill 2002-07-08
  • 打赏
  • 举报
回复
是的,端口一般是大于1500的,但我查过防火墙的日志,确实是将ftp数据连接端口的连接给屏蔽掉了,所以导致无法连接(socket在connect时返回错误
号,10060,由于连接方在一段时间后没有正确的答复或连接的主机没有反应,连接尝试失败),可系统ftp是怎么实现的?
xuying 2002-07-08
  • 打赏
  • 举报
回复
pasv返回给你的端口号一般会大于1024,不属于低端端口吧?
用netstat -n看一下连接的端口号是多少就知道了。

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧