请教一个 ftp 下载的问题

2017-02-23 18:17:48 +08:00
 Sh888

ftp 服务器在国内,放在路由器后面,路由器上设置了 PAT 端口映射,路由器 wan 口是联通公网固定 ip 。 ftp 服务器软件为 pure-ftpd 1.0.33 ,数据目录在网络 nas 上, mount 到服务器使用。

有 2 个客户端, 1 个在 us(ping 路由器 wan 口延迟在 330ms 左右), 1 个在 sh(ping 路由器 wan 口延迟在 80ms 左右),都使用 filezilla 3.24 作为客户端软件

问题:

sh 的客户端可以正常下载所有文件。

us 的客户端有 1 个 260KB 左右的二进制文件无法下载(默认使用 binary 传输模式),传输模式改成 ascii 模式后倒是可以下载,但是因为模式问题,下载后是无法使用的。比较奇怪的是:同目录下,另一个 258B 左右的二进制文件是能正常下载的。

把这个不能下载的 260KB 文件复制到 us 机房的一台 ftp 服务器上,使用同样的 sh 客户端或 us 客户端却又都能正常下载。

us 客户端 Filezilla 下载时的日志:

2017-02-23 13:35:20 7828 3 Command: RETR test.so

2017-02-23 13:35:20 7828 3 Response: 150-Accepted data connection

2017-02-23 13:35:20 7828 3 Response: 150 250.7 kbytes to download

2017-02-23 13:35:40 7828 3 Error: Connection timed out after 20 seconds of inactivity

2017-02-23 13:35:40 7828 3 Error: File transfer failed

2017-02-23 13:35:40 7828 3 Status: Disconnected from server

之前验证什么的都正常,等到下载时就只有 timeout 的记录。

这个问题测试了一个下午,目前没有其它思路了。不知道这里的老司机有没有其它想法?谢谢!

1513 次点击
所在节点    Linux
5 条回复
ahhui
2017-02-23 20:54:03 +08:00
1. 改个文件名看看能不能下
2. 文件 xor 一下看看能不能下

以上 2 个任何 1 个能成功,原因就不言自明了。
Sh888
2017-02-24 10:24:58 +08:00
@ahhui 改了名字也是不行。把 ftp 发布到了 HK 专线出口上,从 us 下载也是失败。
xor 的话,我再看看。不过如果 xor 的话, hash 值也变了,这就应该算是另外一个文件了吧。
ahhui
2017-02-24 17:37:40 +08:00
@Sh888 那你试试 3. 改用 sftp 传输,如果可以的话,那原因也不难理解了。
Sh888
2017-02-24 23:23:29 +08:00
@ahhui 是的
popkara
2017-03-12 22:54:47 +08:00
真是可怕的事情啊...虽然早就知道了,但是每次看到这种类型的文字总是毛骨悚然。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/342709

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX