FTP文件传输与vsftpd配置

一 存储类型

直连式存储DAS

适用于那些数据量不大,对磁盘访问速度要求较高的中小企业

存储区域网络SAN

用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低

网络附加存储NAS

适用于大型应用或数据库系统,缺点是成本高、较为复杂

FTP工作原理

1文件传输协议

是典应用层协议, c/s架构

20数据端口 用于建立数据连接,并传输文本数据

21命令端口 建立控制连接,并传输FTP控制命令

2 数据传输格式:二进制 文本

3 双通道协议:命令与数据的连接

从服务器角度

主动模式:服务器主动开启20端口连接客户端传输真实数据

被动摸式:服务器随机开启端口等待客户端连接,客户机通过21命令来获取 服务端的随机端口

数据给客户端

被动(PASV style):服务器被动等待客户端连接

FTP服务状态码

服务器数据端口为:

用户认证:

  • 匿名用户:ftp,anonymous,对应Linux用户ftp root,两种协议

  • 一般提供公共文件的下载,如免费文件,学习资料,百度网盘

  • 系统用户: Linux用户,用户/etc/passwd,密码/etc/shadow

  • 虚拟用户: 特定服务的专用用户,独立的用户/密码文件

常见 FTP 相关软件

vsftpd:

ftp.redhat.com数据

Wu-ftpd

vsftpd 软件介绍

用户认证配置文件: /etc/pam.d/vsftpd

配置文件或子目录: /etc/vsftpd

:/usr/sbin/vsftpd

:/var/log/vsftpd.log

用户和其共享目录

  • 匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp

  • 系统用户共享文件位置:用户家目录

  • 虚拟用户共享文件位置:为其映射的系统用户的家目录

安装服务端

客户端连接服务端

vsftpd服务常见配置

修改默认命令端口

服务端:修改 默认命令端口号

客户端:连接时需要指明 端口号

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

listen_port=2121 #默认值为21

root@localhost \~#systemctl restart vsftpd

#ss -ntl #查看端口

主动模式端口

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

connect_from_port_20=YES #主动模式端口为20

ftp_data_port=20 #指定主动模式的端口,默认为20

root@localhost \~#systemctl restart vsftpd

被动模式端口

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

pasv_min_port=6000

pasv_max_port=6010

root@localhost \~#systemctl restart vsftpd

#0为随机分配,规定端口范围会影响客户端的并发数

使用当地时间

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

use_localtime=YES #使用当地时间 , 默认为NO,使用GMT

root@localhost \~#systemctl restart vsftpd

匿名用户登录

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES #支持匿名用户,

no_anon_password=YES #匿名用户略过口令检查 , 默认NO

root@localhost \~#systemctl restart vsftpd

匿名用户上传

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES 匿名上传,注意:文件系统权限

anon_mkdir_write_enable=YES 匿名建目录

还需要开启文件系统访问的权限,不能给FTP根目录写权限否则报如下错误

匿名用户 下载 删除文件
指定匿名用户的上传文件的默认的所有者是ftp用户,这是可以修改的

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

chown_uploads=YES #默认NO

chown_username=mcb #匿名用户的上传文件的默认的所有者用户

chown_upload_mode=0644 #指定上传文件的权限

root@localhost \~#systemctl restart vsftpd

Linux 系统用户

系统用户登录:使用普通用户登录默认是在 系统用户的 家目录

将所有系统用户映射为指定的guest用户

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

guest_enable=YES #所有系统用户都映射成guest用户

guest_username=ftp #配合上面选项才生效,指定guest用户

#local_root=/ftproot #注释此行,默认所有用户都在ftp用户的家目录

user_config_dir=/etc/vsftpd/conf.d/ #每个用户独立的配置文件目录,可自由指定

root@localhost \~#systemctl restart vsftpd

禁锢系统用户

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO #默认YES

root@localhost \~#systemctl restart vsftpd

禁锢所有系统用户在家目录中

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

guest_enable=YES #所有系统用户都映射成guest用户

guest_username=ftp #配合上面选项才生效,指定guest用户

#local_root=/ftproot #注释此行,默认所有用户都在ftp用户的家目录

user_config_dir=/etc/vsftpd/conf.d/ #每个用户独立的配置文件目录,可自由指定

root@localhost \~#systemctl restart vsftpd

禁锢用户开启白名单和黑名单

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

chroot_list_enable=YES #默认是NO

chroot_list_file=/etc/vsftpd/chroot_list #默认值

当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单,只允许名单里的用户登录

当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单,只有文件里的用户禁锢

root@localhost \~#systemctl restart vsftpd

ftp 默认启动日志

#wu-ftp 日志:默认启用

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

xferlog_enable=YES #启用记录上传下载日志,此为默认值

xferlog_std_format=YES #使用wu-ftp日志格式,此为默认值

xferlog_file=/var/log/xferlog #可自动生成, 此为默认值

root@localhost \~#systemctl restart vsftpd

#vsftpd日志:默认不启用

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

dual_log_enable=YES #使用vsftpd日志格式,默认不启用

vsftpd_log_file=/var/log/vsftpd.log #可自动生成, 此为默认值

root@localhost \~#systemctl restart vsftpd

提示信息

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

ftpd_banner="welcome to mcb ftp server"

banner_file=/etc/vsftpd/ftpbanner.txt

root@localhost \~#systemctl restart vsftpd

传输速率,单位:字节/秒 百度网盘限速就是这样玩

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

anon_max_rate=1024000 #1024000表示1MB/(数字随时改)

local_max_rate=102400

root@localhost \~#systemctl restart vsftpd

pam模块实现用户访问

在内网环境ftp下,搭建本地yum仓库

①服务端搭建本地yum仓库,并下载vsftp软件

服务端IP 192.168.11.9

客户端搭建yum仓库下载vsftpd软件与ftp协议

客户端192.168.11.5 搭建仓库

教训

在内网环境下http搭建yum仓库

服务端IP192.168.11.9

指令小金刚

1 root@localhost \~#sort --help

sort -t

sort -n

2 root@localhost \~#cut --help

用法:cut 选项... 文件...

cut -d 使用指定分界符代替制表符作为区域分界

3 root@localhost \~#seq --help

seq -s

4 root@localhost \~#tr --help 转换 压缩 删除

5 root@localhost \~#uniq --help

相关推荐
zzzzzz3106 小时前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode6 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220701 天前
如何搭建本地yum源(上)
运维
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz4 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化