ftp PASV 不一致

ftp PASV 不一致

我正在使用pyftpdlibpython ftp 服务器和 filezilla 作为客户端:我的一些同事无法上传任何文件,而我却完全没有问题。

我检查了 filezilla 调试日志,发现了一个我不理解的奇怪行为

Command:    PASV
Trace:  CFtpControlSocket::OnReceive()
Response:   227 Entering passive mode (185,125,25,44,207,87).
Trace:  CFtpRawTransferOpData::ParseResponse() in state 2
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpRawTransferOpData::Send() in state 4
Trace:  Binding data connection source IP to control connection source IP 10.8.8.15

10.8.8.15是我的 vpn 地址:我在日志的这一部分获取我的 vpn ip 是否正常?

陌生人,当同事无法上传到 ftp 时,他会得到

Command:    PASV
Trace:  CFtpControlSocket::OnReceive()
Response:   227 Entering passive mode (185,125,25,44,207,87).
Trace:  CFtpRawTransferOpData::ParseResponse() in state 2
Trace:  CControlSocket::SendNextCommand()
Trace:  CFtpRawTransferOpData::Send() in state 4
Trace:  Binding data connection source IP to control connection source IP 127.0.0.1

对我来说,filezilla 将数据连接绑定到 127.0.0.1 似乎很奇怪,我认为这解释了为什么上传失败。

这种行为怎么会发生呢?

此外:我不明白问题从何而来:是客户端/服务器/网络问题吗?

仅供参考:我在 pyftpdlib 上编辑的唯一配置指令是:

permit_foreign_addresses: True
use_sendfile: False
ac_in_buffer_size: 1000000
ac_out_buffer_size: 500000

编辑:使用时WinSCP,行为似乎更加一致

. 2021-06-11 09:02:52.363 Début de l'envoi de C:\Users\pouet\Downloads\181015_13_Venice Beach Drone_11.mp4
> 2021-06-11 09:02:52.363 TYPE I
< 2021-06-11 09:02:52.377 200 Type set to: Binary.
> 2021-06-11 09:02:52.377 PASV
< 2021-06-11 09:02:52.393 227 Entering passive mode (185,125,25,44,250,39).
> 2021-06-11 09:02:52.393 STOR 181015_13_Venice Beach Drone_11.mp4
. 2021-06-11 09:02:52.393 Connexion à 185.125.25.44:64039...
. 2021-06-11 09:02:52.408 Data connection opened
< 2021-06-11 09:02:52.408 150 File status okay. About to open data connection.

您可以看到客户端尝试连接到正确的 ip/端口,而 filezilla 的行为略有不同(连接到我的网络 iface??)

Commande :  TYPE I
Suivi : CFtpControlSocket::OnReceive()
Réponse :   200 Type set to: Binary.
Suivi : CFtpRawTransferOpData::ParseResponse() in state 1
Suivi : CControlSocket::SendNextCommand()
Suivi : CFtpRawTransferOpData::Send() in state 2
Commande :  PASV
Suivi : CFtpControlSocket::OnReceive()
Réponse :   227 Entering passive mode (185,125,25,44,211,253).
Suivi : CFtpRawTransferOpData::ParseResponse() in state 2
Suivi : CControlSocket::SendNextCommand()
Suivi : CFtpRawTransferOpData::Send() in state 4
Suivi : Binding data connection source IP to control connection source IP 192.168.1.66
Commande :  STOR 181015_13_Venice Beach Drone_11.mp4
Suivi : CTransferSocket::OnConnect
Suivi : First EAGAIN in CTransferSocket::OnSend()
Suivi : CFtpControlSocket::OnReceive()
Réponse :   150 File status okay. About to open data connection.
Suivi : CFtpRawTransferOpData::ParseResponse() in state 4
Suivi : CControlSocket::SendNextCommand()
Suivi : CFtpRawTransferOpData::Send() in state 5
Suivi : Made progress in CTransferSocket::OnSend()

编辑2:

附加日志:

工作上传

上传失败 1

上传失败 2

相关内容