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 的记录。
这个问题测试了一个下午,目前没有其它思路了。不知道这里的老司机有没有其它想法?谢谢!
1
0TSH60F7J2rVkg8t 2017-02-23 20:54:03 +08:00 via iPhone 1
1. 改个文件名看看能不能下
2. 文件 xor 一下看看能不能下 以上 2 个任何 1 个能成功,原因就不言自明了。 |
2
Sh888 OP @ahhui 改了名字也是不行。把 ftp 发布到了 HK 专线出口上,从 us 下载也是失败。
xor 的话,我再看看。不过如果 xor 的话, hash 值也变了,这就应该算是另外一个文件了吧。 |
3
0TSH60F7J2rVkg8t 2017-02-24 17:37:40 +08:00 1
@Sh888 那你试试 3. 改用 sftp 传输,如果可以的话,那原因也不难理解了。
|
5
popkara 2017-03-12 22:54:47 +08:00
真是可怕的事情啊...虽然早就知道了,但是每次看到这种类型的文字总是毛骨悚然。
|