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

相关推荐
snow@li1 小时前
Java:Java 服务器(Web 容器 / Servlet 容器)完整工作清单
java·服务器·前端
胖兔纸21 小时前
OpenStack 1.7.2 & Ceph 9.2.1 运维命令
运维·ceph·openstack
JL152 小时前
Agent工程-为什么Agent必须有观测和Tracing
服务器·网络·人工智能·安全
不会C语言的男孩2 小时前
Docker 在嵌入式设备中的常用玩法
运维·docker·容器
神州世通2 小时前
IP Office内置外显卡兼容性说明
服务器·网络·tcp/ip
ylscode2 小时前
CVE-2026-31694 漏洞深度分析:Linux 内核 FUSE 组件存在本地提权风险,普通用户可直取 root 权限
linux·运维·服务器
frank00600713 小时前
Rocky 9.8设置本地yum源
服务器
智脑API平台3 小时前
Codex CLI 怎么用 .env 配置 API Key?本地项目和自动化脚本接入教程
运维·自动化
土星云SaturnCloud3 小时前
边缘计算在储气库调峰智能管控中的应用:架构设计与技术解析
服务器·人工智能·ai·边缘计算
weixin_307779133 小时前
Linux下Docker Compose里运行的MySQL数据库故障诊断Shell脚本
linux·运维·mysql·docker·自动化