Sockets FTP客户端从服务器接收到错误的端口

Sockets FTP客户端从服务器接收到错误的端口,sockets,ftp,passive-mode,Sockets,Ftp,Passive Mode,我从头开始编写FTP客户端,在打开PASV连接时遇到问题。服务器似乎发送了正确的端口,但客户端接收到不同的原始字符串,因此无法连接 这是服务器日志(Filezilla): 这是客户端日志(我的程序): 显示的输出是从套接字接收的原始数据。所有服务器输出都已到达,但227响应的端口号错误。我不知道这怎么可能 从越南到德国的连接是通过VPN(OpenVPN),服务器也位于德国。我已经验证了Filezilla和我的客户机在同一台机器上运行时能够协同工作(没有互联网流量)。我还验证了我的客户端与独立服务

我从头开始编写FTP客户端,在打开PASV连接时遇到问题。服务器似乎发送了正确的端口,但客户端接收到不同的原始字符串,因此无法连接

这是服务器日志(Filezilla):

这是客户端日志(我的程序):

显示的输出是从套接字接收的原始数据。所有服务器输出都已到达,但227响应的端口号错误。我不知道这怎么可能


从越南到德国的连接是通过VPN(OpenVPN),服务器也位于德国。我已经验证了Filezilla和我的客户机在同一台机器上运行时能够协同工作(没有互联网流量)。我还验证了我的客户端与独立服务器(本地和不安全的internet)一起工作,所以问题似乎出在Filezilla?

交叉发布到服务器端的NAT可能正在更改您的端口号?一些NAT/路由器知道FTP协议,并会自动为您处理FTP数据连接的路由,当
端口
PASV
命令通过指针时,相应地改变它们,好主意,我会检查!纳特似乎没有参与。我控制的路由器不进行NAT。另外,使用完全相同的设置(端口、PASV范围),Filezilla连接更改字符串,而另一台服务器则不更改。
2018.07.19 16:29:44 - (not logged in) (x.x.10.33)> Connected on port 21, sending welcome message...
2018.07.19 16:29:44 - (not logged in) (x.x.10.33)> 220 Hello from FileZilla Server 0.9.60 beta
2018.07.19 16:29:44 - (not logged in) (x.x.10.33)> USER test
2018.07.19 16:29:44 - (not logged in) (x.x.10.33)> 331 Password required for test
2018.07.19 16:29:45 - (not logged in) (x.x.10.33)> PASS test
2018.07.19 16:29:45 - test (x.x.10.33)> 230 Logged on
2018.07.19 16:29:45 - test (x.x.10.33)> PASV
2018.07.19 16:29:45 - test (x.x.10.33)> 227 Entering Passive Mode (y,y,105,118,93,232)
> USER test
2018.07.19 14.29.02 - 220 Hello from FileZilla Server 0.9.60 beta
2018.07.19 14.29.02 - 331 Password required for test
> PASS test
2018.07.19 14.29.02 - 230 Logged on
> PASV
2018.07.19 14.29.03 - 227 Entering Passive Mode (y,y,105,118,214,224)