简介:

vsftpd是“very secure FTP daemon”的缩写,是一个完全免费的、开放源代码的ftp服务器软件。

 

工作原理:

vsftpd使用ftp协议,该协议属于应用层协议。它是典型的c/s架构,ftp服务端用来存储文件,ftp客户端可以通过ftp协议连接服务端实现上传和下载资源。

ftp使用tcp的21端口进行命令传输,然后用tcp的20端口进行数据传输(主动模式)。

 

特点:

非常高的安全性需求、带宽限制、良好的可伸缩性等。

 

安装部署:

yum install vsftpd ftp lftp -y

PS:

vsftpd为服务端软件;ftp、lftp为客户端工具,推荐使用lftp。

部署详情可参照《如何在Centos服务器上搭建起Oracle10、VNC、以及FTP》

 

启动服务:

service vsftpd start

systemctl start vsftpd

 

查看状态:

service vsftpd status

systemctl status vsftpd

 

用户登录:

  • 用本地用户登录需要输入用户名及密码验证。
  • 用ftp客户端匿名登录需要输入用户名及密码验证,匿名用户名为:ftp或者anonymous,密码为空。
  • 用lftp客户端匿名登录则不需要输入以上信息。
本地用户登录:

[root@TEST ~]# ftp
ftp> open 8.8.8.8
Connected to 8.8.8.8 (8.8.8.8).
220 (vsFTPd 2.2.2)
Name (8.8.8.8:root): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
登录失败时:

[root@TEST ~]# ftp 8.8.8.8
Connected to 8.8.8.8 (8.8.8.8).
220 (vsFTPd 2.2.2)
Name (8.8.8.8:root): root
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> close
221 Goodbye.
ftp> open 8.8.8.8
Connected to 8.8.8.8 (8.8.8.8).
220 (vsFTPd 2.2.2)
Name (8.8.8.8:root): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp客户端匿名登录:

[root@TEST ~]# ftp 8.8.8.8
Connected to 8.8.8.8 (8.8.8.8).
220 (vsFTPd 2.2.2)
Name (8.8.8.8:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
lftp客户端连接:

[root@TEST ~]# lftp 8.8.8.8
lftp 8.8.8.8:~>

 

下载命令:

get用于下载单个文件:

可以先切换到**本地指定目录**(data)进行文件的下载,保存:

ftp> lcd /data1/
Local directory now /data1
ftp> cd /data2/
ftp> get file001.txt

ps:

当客户端已经连接上服务端,cd是用于切换服务器中的目录命令,lcd是用于切换客户端本地的目录。

 

mget用于批量下载:

ftp> mget file00*
Total 7 files transferred

 

上传命令:

put用于下载单个文件:

要想使用上传命令,需要开启上传权限和可写权限,可往下看。

直接上传不改名,可以省去-o refile:

ftp> !dir
file001.txt file002.txt
ftp> bin
421 Timeout.
ftp> put /etc/file003.txt
501 bytes transferred
ftp> !dir
file001.txt file002.txt file003.txt

PS:

如果不知道本地目录有哪些文件,可以使用!dir查看;

而且,一定要使用bin二进制传输!!!

上传文件之后,并改名,就要带-o refile了:

ftp> bin
421 Timeout.
ftp> put /etc/file003.txt -o file004.txt
501 bytes transferred
ftp> ls
drwx------ 2 14 50 6 Aug 08 06:27 file001.txt
-rw------- 1 14 50 501 Aug 08 06:34 file002.txt
-rw------- 1 14 50 501 Aug 08 06:34 file003.txt
-rw------- 1 14 50 501 Aug 08 06:34 file004.txt

 

mput用于批量上传:

上传多个文件,可以使用putmput命令上传,多个文件之间用空格分隔;

如果想使用通配符,只有mput命令支持:

ftp> bin
421 Timeout.
ftp> put /etc/file005.txt /etc/file006.txt
1580 bytes transferred
Total 2 files transferred
ftp> ls
drwx------ 2 14 50 6 Aug 08 06:27 abc
-rw------- 1 14 50 1079 Aug 08 06:40 file005.txt
-rw------- 1 14 50 501 Aug 08 06:40 file006.txt ftp> bin
421 Timeout.
ftp> mput /etc/file00*
1688 bytes transferred
Total 2 files transferred
ftp> ls
drwx------ 2 14 50 6 Aug 08 06:27 abc
-rw------- 1 14 50 1079 Aug 08 06:41 file005.txt
-rw------- 1 14 50 501 Aug 08 06:41 file006.txt

 

匿名用户权限:

匿名用户的默认配置只能进行文件的读取和下载,不能进行写入和上传文件:

lftp 8.8.8.8:~> put /etc/fstab
put: Access failed: 550 Permission denied. (fstab)
lftp 8.8.8.8:/> mkdir abc
mkdir: Access failed: 550 Permission denied. (abc) 可以看到上传命令和创建命令都失败了,没有响应的权限!

开启匿名用户创建文件,重命名,删除,上传权限:

#开启上传权限
anon_upload_enable=YES
#开启创建文件权限
anon_mkdir_write_enable=YES
#开启重命名,删除权限
anon_other_write_enable=YES

重启服务,再次进入,发现还是没法创建目录,但是报错信息不一样,如下:

lftp 8.8.8.8:/> mkdir abc
mkdir: Access failed: 550 Create directory operation failed. (abc)

这是因为目录没有写权限,给pub目录授权,如下:

[root@localhost ~]# chmod o+w /var/ftp/pub/
[root@localhost ~]# ll /var/ftp/pub/ -d
drwxr-xrwx 3 root root 192 8月 7 08:37 /var/ftp/pub/

再次进入,创建目录,如下:

lftp 8.8.8.8:/pub> mkdir abc
mkdir 成功, 建立 `abc'

PS:

要想匿名用户有写的权限,一是需要服务端配置文件开启写的权限,二是所在的目录本身有其他用户写的权限!

 

禁止匿名用户登录:

你甚至可以修改配置文件,只让本地用户登录:

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES

 

故障解决:

如果重启或者登陆服务器时,报错如下:

[root@localhost ~]# systemctl restart vsftpd
Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details. [root@localhost ~]# journalctl -xe
-- Unit vsftpd.service has begun starting up.
8月 08 02:59:14 localhost.localdomain vsftpd[12751]: 500 OOPS: bad bool value in config file for: anonymous_en
8月 08 02:59:14 localhost.localdomain systemd[1]: vsftpd.service: control process exited, code=exited status=2

解决办法:

这种问题一般就是空格导致的,是每一行配置后面都不能有空格,也不能跟注释。

vsftpd超实用技巧详解的更多相关文章

  1. VSFTPD全攻略(/etc/vsftpd/vsftpd.conf文件详解)

    /etc/vsftpd/vsftpd.conf文件详解,分好类,方便大家查找与学习 #################匿名权限控制############### anonymous_enable=YE ...

  2. 前端html、CSS快速编写代码插件-Emmet使用方法技巧详解

    前端html.CSS快速编写代码插件-Emmet使用方法技巧详解   Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来 ...

  3. 3dmax联机分布式渲染方法技巧详解

      3dmax联机分布式渲染方法技巧详解 \测试环境:win7系统 3DMAX2009 Vray2.0 .首先要保证你的两台电脑能在局域网里互相访问如图: 其他电脑上也一样都能打开对方的电脑! 步! ...

  4. 训练技巧详解【含有部分代码】Bag of Tricks for Image Classification with Convolutional Neural Networks

    训练技巧详解[含有部分代码]Bag of Tricks for Image Classification with Convolutional Neural Networks 置顶 2018-12-1 ...

  5. MySQL SQL查询优化技巧详解

    MySQL SQL查询优化技巧详解 本文总结了30个mysql千万级大数据SQL查询优化技巧,特别适合大数据里的MYSQL使用. 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 ...

  6. MyEclipse使用技巧详解

    MyEclipse使用技巧的掌握是和我们开发效率挂钩的,那么如何掌握MyEclipse使用技巧呢?这里向你详细介绍了几种使用技巧的操作方法. 在了解MyEclipse使用技巧之前我们来看看MyEcli ...

  7. ping命令技巧详解 windows下ping命令知识大全

    windows ping命令对于多数电脑爱好者都不会陌生,通过ping ip可以知道网络是否畅通或者网络传输质量如何等,是网络技术人员常用的检测网络命令,多数朋友对ping命令知道的并不多,接下来本文 ...

  8. 常见26个jquery使用技巧详解(比如禁止右键点击、隐藏文本框文字等)

      来自:http://www.xueit.com/js/show-6015-1.aspx 本文列出jquery一些应用小技巧,比如有禁止右键点击.隐藏搜索文本框文字.在新窗口中打开链接.检测浏览器. ...

  9. vsftpd.conf配置详解

    根据 /etc/vsftpd/vsftpd.conf默认配置给出设定功能   # Example config file /etc/vsftpd/vsftpd.conf # The default c ...

随机推荐

  1. Docker系列(一):容器监控工具Weave Scope安装

    项目进行容器化之后,配套的基础设施包括监控.编排.管理等都需要进行一并完善.这里也是自己一边学习一边进行记录. Weave Scope 的最大特点是会自动生成一张 Docker 容器地图,让我们能够直 ...

  2. 防DOS攻击-网络连接法

    #!/bin/bash netstat -antup | grep SYN_RECV | awk '{print $5}' |awk -F: '{print $1}'|sort|uniq -c > ...

  3. word2vec预训练词向量

    NLP中的Word2Vec讲解 word2vec是Google开源的一款用于词向量计算 的工具,可以很好的度量词与词之间的相似性: word2vec建模是指用CBoW模型或Skip-gram模型来计算 ...

  4. .NET斗鱼直播弹幕客户端(上)

    现在直播平台由于弹幕的存在,主播与观众可以更轻松地进行互动,非常受年轻群众的欢迎.斗鱼TV就是一款非常流行的直播平台,弹幕更是非常火爆.看到有不少主播接入弹幕语音播报器.弹幕点歌等模块,这都需要首先连 ...

  5. 03 python基础作业(一)

    1.将['alex','eric',’rain’]用下划线拼接成字符串.(['alex','eric',123]呢?) li=['alex','eric','rain'] v='_'.join(li) ...

  6. spring-boot-plus XSS跨站脚本攻击处理

    XSS跨站脚本攻击处理 XSS:Cross Site Scripting 跨站脚本攻击(XSS),是目前最普遍的Web应用安全漏洞.这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当 ...

  7. 纯C语言写的按键驱动,将按键逻辑与按键处理事件分离~

    button drive 杰杰自己写的一个按键驱动,支持单双击.连按.长按:采用回调处理按键事件(自定义消抖时间),使用只需3步,创建按键,按键事件与回调处理函数链接映射,周期检查按键. 源码地址:h ...

  8. JNDI-Injection-Exploit

    介绍 最近把自己之前写的JNDI注入利用工具改了一下push到了github,地址:https://github.com/welk1n/JNDI-Injection-Exploit,启动后这个工具开启 ...

  9. 讲真,MySQL索引优化看这篇文章就够了

    本文主要讨论MySQL索引的部分知识.将会从MySQL索引基础.索引优化实战和数据库索引背后的数据结构三部分相关内容,下面一一展开. 一.MySQL——索引基础 首先,我们将从索引基础开始介绍一下什么 ...

  10. 第3章(1) Linux内核相关概念

    Linux内核的组成 1. Linux内核源代码的目录结构 arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如 i386.arm. arm64.powerpc.mips 等.Linu ...