FTP被动模式返回服务器地址为0.0.0.0

这就是传说中的,老革命遇到新问题。果然在一次证明了我的签名,一个老而没有多大用处的程序员。

今天在配置一个新的项目的时候,发现项目程序所需要FTP无法正常使用。于是自己用命令行进行排查,登录后,用put命令上传文件, 得到了一个错误提示:

Passive mode address mismatch.

于是想当然的认为,肯定是被动模式没有配好,于是上服务器,打开vsftp.conf修改配置,打开被动模式,设置端口范围。 然后配置防火墙,允许端口出入。

搞完这一切,再继续尝试,然而神奇的是,错误依旧:

Passive mode address mismatch.

于是仔细查看了所有的提示,发现put的时候,FTP返回的服务器地址和实际的服务器地址不一致。详情如下:

230 Login successful.
ftp> passive
Passive mode on.
ftp> put *
local: sketch_imu_reader_V5.ino remote: sketch_imu_reader_V5.ino
227 Entering Passive Mode (152,38,148,xx,197,220).
Passive mode address mismatch.
225 No transfer to ABOR.

注意 Passvie Mode 里面的6个数字,前四个,是服务器的IP地址 152.38.148.xx(安全起见,最后一个数字我隐藏掉了,用XX待敌), 后两个是端口号2个字节的值,实际端口号=197*255+220

由于服务器在云端,显然这个服务器是位于内网的,所以返回的地址是服务器的出口地址而不是真实地址,对于这个问题,很简单,vsftp.conf 里面有一个配置 pasv_address 把它配成服务器的外网地址就好,于是修改配置,大致如下:

listen_port=5617
pasv_enable=YES
pasv_min_port=49000
pasv_max_port=51000
pasv_address=aa.bb.cc.dd

其中,aa.bb.cc.dd 是服务器的实际外网地址。OK,打完收工。

可是,你以为事情就这样结束了,绝对不会这么简单的。

回头用命令行一试,卖糕的,卖芝麻糕的,问题依旧,还是那个扎眼的一行字:

Passive mode address mismatch.

再仔细一看,passive mode后面的提示变成了:

227 Entering Passive Mode (0,0,0,0,197,149).

0.0.0.0 ???! 

为什么pasv_address 没生效?反而搞成了0.0.0.0 ? 仔细一查配置文件,发现配置文件中有这么两个配置:

listen=NO
listen_ipv6=YES

这样的配置,会导致返回的服务器地址被错误按照IPV6解析,从而出错。于是调整过来,变成正确的:

listen=YES
listen_ipv6=NO

再次重启服务。

这下终于对了,客户端得到嘞正确的服务器地址,文件终于上传成功了

相关推荐

  1. FTP被动模式返回服务器地址0.0.0.0

    2024-03-25 10:20:04       43 阅读
  2. frpFTP服务

    2024-03-25 10:20:04       19 阅读
  3. 0060__设计模式

    2024-03-25 10:20:04       40 阅读
  4. C++返回值、返回引用、返回地址

    2024-03-25 10:20:04       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-25 10:20:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-25 10:20:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-25 10:20:04       87 阅读
  4. Python语言-面向对象

    2024-03-25 10:20:04       96 阅读

热门阅读

  1. redis优化--来自gpt

    2024-03-25 10:20:04       38 阅读
  2. Android 14.0 SystemUI下拉状态栏增加响铃功能

    2024-03-25 10:20:04       32 阅读
  3. springboot多线程的原理剖析

    2024-03-25 10:20:04       89 阅读
  4. 统计文件夹下所有文件的字数

    2024-03-25 10:20:04       42 阅读
  5. 手机IP地址如何更换

    2024-03-25 10:20:04       44 阅读
  6. 想注册滴滴司机驾龄不够怎么办?

    2024-03-25 10:20:04       34 阅读
  7. 测试缺陷定位的基本方法

    2024-03-25 10:20:04       37 阅读
  8. Spark—GraphX实战 ID Mapping

    2024-03-25 10:20:04       32 阅读
  9. 想注册滴滴司机驾龄不够怎么办?

    2024-03-25 10:20:04       40 阅读
  10. 10种常用排序算法简介

    2024-03-25 10:20:04       39 阅读