最近在搞VSFTPD+Nginx结合,但是发现上传文件大小总是为0,#

由于最开始在搞的时候不知道主动模式和被动模式到底是什么鬼东西,所以遇到问题根本找不到根的原因,遇到问题只是乱搜,好像是解决了问题,但实际不然。#

就像我们最开始的时候,来说下最开始瞎搞的情况吧:

环境:Linux+VSFTPD+FTPClient
想要实现一个,文件上传到服务器的功能,根据百度的VSFTPD搭建,步骤如下
1.安装VSFTPD
2.VSFTPD把配置文件vsftpd.conf里面的anonymous_enable=YES 改为anonymous_enable=NO
3.重启服务 service vsftpd restart
然后呢,就是开始使用FTPClient开始上传文件,但是,问题来了,根本上传不了啊,上传总是失败,文件大小为0.....
接下来你们懂得,就是开始找百度乱搞一气,认为所谓的可行的办法就是把Linux防火墙关闭,然后在FtpClient上传的代码中添加如下代码
ftp.enterLocalPassiveMode();
意思是开启被动模式,别说,还真的可以了,但是这只是表象,你的配置文件你真的知道配置了什么??你到底干了什么?----- 还有,你把Linux防火墙开启你看看还Ok不??肯定凉凉的!(而且生产环境下防火墙基本上不可能会关闭的)


好了,我们要开始解决问题了,一步一步的跟我正确的配置(我们以主动模式为例)#

那么大概的说一下什么主动和被动,具体详情百度!!#

主动模式(PORT)(Server->Client)
客户端打开端口N(N为>1024的随机端口)连接服务器21端口建立命令通道;
客户端通过N+1端口与服务器20端口建立数据传输通道。被动模式(PASV)(Client->Server)
客户端打开端口N(N为>1024的随机端口)连接服务器21端口建立命令通道(同上);
客户端通过N+1端口与服务器>1024随机端口建立数据传输通道,客户端使用PASV命令。

  问题解决步骤:

  1.开放你的21端口可以直接按照你默认的22端口编写,把22原封不动弄一行,然后把复制的22换成21即可(技巧:在22那行按esc,然后按yyp即可复制本行)

  开放完你的21端口后记得重启:service iptables restart

[root@rebirth vsftpd]# vim /etc/sysconfig/iptables下面的是我的防火墙配置,不需要跟我的全部一样,只需要开启你的21端口即可
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 177 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1777 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

  2.首先我们打开vsftpd.conf的配置文件(在你安装的路径) vim vsftpd.conf

  3.在你的vsftpd.conf里面开启主动模式的配置:(如果没有则自己加上去这段命令 一般会有:connect_from_port_20=YES )   connect_from_port_20=YES 主动模式    pasv_enable=NO 关闭被动模式

  4..重启vsftpd服务 service vsftpd restart

这时候我们在重新执行我们上传,如果通过FtpClient的话,不要添加开启被动的那句代码:

ftp.enterLocalPassiveMode();

如果此时你的文件直接完整的上传成了那么直接恭喜你!你的问题得以解决!下面的内容你可以选择跳过咯!


如果此时你的文件大小还是为0的话,那么恭喜你,你跟我一样,我们继续搞!

原因是:我们本地的防火墙原因,防火墙的入站规则阻碍了我们

解决方案:

  1.最简单,最直接的就是直接把本地的防火墙全部关闭

再来试试吧!ok完美解决!

2.如果你不想全部关闭防火墙(我也一样)那么就要稍微配置一些高级的防火墙规则了!跟我来

接下来右键入站规则,点击新建入站规则(由于截图快捷键一按按钮就消失,导图不全谅解哈!)

直接下一步即可

下一步很重要,你可以直接选择默认的配置,任何ip都可以

当然,你是一位非常重视安全的决策者,那么你可以这么做

你可以选择指定的IP可以通过此规则,例如本次我们配置的vsftpd的虚拟机所在的IP!当然你也可以配置虚拟机所在的网段,由你自行决策!决策者

然后我们只需要确认下一步即可

默认下一步即可

好了,我们的配置结束了,如果你已经者却的配置了,那么来启动你的程序来看下你的成果吧!

PS:

了解原理很重要喔!  

vsftpd安装配置_vsftpd上传文件大小为0(主动模式)相关推荐

  1. 【FTP】java FTPClient 文件上传内容为空,文件大小为0

    问题:如题所述,使用FTPClient上传至FTP服务器, 表现如下:①文件大小为0 ②上传很小的文件,但是要花费很长的时间,20K要花费2分钟甚至更久 ③没有任何的报错,没有任何的乱码 解决方法: ...

  2. oracle 文件大小为零,windows Oracle数据文件大小为0的恢复case

    本站文章除注明转载外,均为本站原创: 转载自love wife love life -Roger 的Oracle技术博客 本文链接地址: windows Oracle数据文件大小为0的恢复case 一 ...

  3. 文件上传控件-如何上传文件-大文件断点续传

    需求: 项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在20G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以20G来进行限制. PC端全平台支持,要求支持Window ...

  4. JAVA-超大文件上传-如何上传文件-大文件上传

    java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接 ...

  5. 七牛云配置 koa 上传文件到七牛云

    一.七牛云配置 七牛官网 1.创建七牛存储空间 2.空间添加备案的域名 (若是测试空间可不需要配置) 3.解析CNAME 添加域名后会有CNAME(别名记录),需要将它解析到你的备案域名下 链接-CN ...

  6. 华为交换机导入配置_华为交换机怎么配置FTP上传文件?

    现在一些比较高端一点点的三层交换机都是FTP和TFTP的功能:比如华为的S5700系列的三层交换机:你可以用FTP功能上传bin文件或者是zip文件也可以是.cc文件:这些文件是华为交换机的OS文件和 ...

  7. FCKeditor的配置,上传文件的文件名乱码和目录的设定,加入兔斯基表情

    今天,需要一个简单的编辑器,找来找去还是感觉FCKeditor比较完美. 但是感觉有点庞大,Nothing,去定制看看 一.简单模式定制 默认的Toolbar=Default,图标太多了 Toolba ...

  8. VUE-超大文件上传-如何上传文件-大文件上传

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

  9. 实现文件上传,从配置到上传文件到获取文件

    目录 前言 功能介绍 实现 依赖 配置 Controller 效果-单文件 效果-多文件 前言 上传文件功能是每个项目必备的功能,通过多个项目不断升级而来,在实现相同效果的情况下,代码越来越简化. 代 ...

  10. xshell 上传文件 速度为0的解决方法

    如果在xshell下上传文件速度一直为0,可以尝试安装 yum -y install lrzsz 亲测,实用!

最新文章

  1. 弱口令的分析和爆破工具使用
  2. k8s集群部分常见问题处理
  3. Zookeeper权限控制ACL详解
  4. poj 3468 A Simple Problem with Integers 线段树!!!!
  5. 为什么我严重不建议去培训机构参加SAP培训?
  6. 中国VR/AR技术的日渐成熟,带动行业领域巨大发展!
  7. 【shapely】自相交问题
  8. android环信3.0v回撤,环信Android消息回撤
  9. 一个超简单的Qt数字按键
  10. 递归查询三种实现方式
  11. 清除maven仓库lastUpdated文件
  12. GHM:Gradient Harmonized Single-stage Detector
  13. java实现简单区块链毕业设计
  14. eeglab在MATLAB中安装教程
  15. oracle decode 01427,錯誤的ORA-01427:單行子查詢返回多個行。
  16. DB2查看执行过长的SQL
  17. 8421.5421.2421.余3码的区别
  18. android 动画循环移动图片
  19. 编程学习 | C语言结构组成
  20. 教育部重磅:179所高校新增人工智能本科专业!智能制造等九大专业井喷

热门文章

  1. linux BufferedImage.createGraphics()卡住不动
  2. 为何 Emoji 能给产品设计(营销)带来如此大的数据增长?
  3. Atitit 图像清晰度 模糊度 检测 识别 评价算法 原理
  4. 去掉博客复制下来的代码的行号
  5. c# 程序调试出现“未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。”...
  6. Win8 下配置Java开发环境
  7. 华为系列设备优先级总结(二)
  8. Pycharm乱码解决大全
  9. 如何定位http的url路径资源
  10. 使用windows 命令行创建一个空的文本文件