基于vsftpd搭建ftp服务器

article/2025/11/10 2:47:15

作者:【吴业亮】
博客:https://wuyeliang.blog.csdn.net/

1、FTP的传输有两种方式

  • ASCII传输方式  假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝。

  • 二进制传输模式  在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。如在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会损坏数据。(ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果传输二进制文件,所有的位都是重要的。)

FTP(File Transfer Protocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式:

  • 主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。
  • 被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。
    说明 大多数FTP客户端都在局域网中,没有独立的公网IP地址,且有防火墙阻拦,主动模式下FTP服务器成功连接到客户端比较困难。因此,如无特殊需求,建议您将FTP服务器配置为被动模式。

FTP支持以下三种认证模式:

  • 匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。
  • 本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。
  • 虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问
    在这里插入图片描述

2、安装vsftpd

# yum -y install vsftpd

3、备份配置文件/etc/vsftpd/vsftpd.conf

# cp -a /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak

4、配置/etc/vsftpd/vsftpd.conf内容如下:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=public_html
use_localtime=YES
seccomp_sandbox=NO

参数解释:

  • anonymous_enable=YES 是否允许匿名ftp(默认为YES),如否则选择NO,基于用户名与密码的访问
  • anon_upload_enable=YES 是否允许匿名ftp 用户上传(默认被注释即不支持)
  • chroot_list_enable=YES 是否将系统用户限制在自己的home目录下
  • chroot_list_file=/etc/vsftpd/chroot_list 如果chroot_list_enable=YES 那么在/etc/vsftpd/chroot_list 中列出的是被限制的用户的列表,这个和上面的连用。
  • ftpd_banner=Welcome to blah FTP service. 定制欢迎信息
  • local_enable=YES 是否允许本地用户登录
  • local_umask=022 默认的umask码 配置文件里面没有anon_umask,其实可以用这条, 权限掩码,比如umask是 022,你创建一个文件本来是666 就要 -022 = 644
  • connect_from_port_20=YES 是否确信端口传输来自20(ftp-data)
  • chown_username=username 是否改变上传文件的属主, 如果是需要输入一个系统用户名, 你可以把上传的文件都改成root 属主
  • xferlog_file=/var/log/vsftpd.log ftp 传输日志的路径和名字默认是/var/log/vsftpd.log
  • xferlog_std_format=YES 是否使用标准的ftp xferlog 模式
  • idle_session_timeout=600 设置默认的断开不活跃session的时间
  • data_connection_timeout=120 设置数据传输超时时间
  • ascii_upload_enable=YES 是否使用ascii码方式上传文件
  • ascii_download_enable=YES 是否使用ascii码方式下载文件
  • userlist_enable=YES 在/etc/vsftpd/user_list 文件中列出用户不能访问FTP 服务器
  • tcp_wrappers=YES 是否支持tcp_wrappers

5、创建用户

在/etc/vsftpd/chroot_list中写入可以登录的用户

admin

由于vsftp上述配置操作系统默认必须用改用户。
新建用户

# useradd admin

修改密码

# passwd admin
Changing password for user admin.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

6、配置防火墙

# firewall-cmd --add-service=ftp --permanent 
success
# firewall-cmd --reload 
success

7、配置selinux

# setsebool -P ftpd_full_access on

8、启动服务并设置开机启动

# systemctl start vsftpd 
# systemctl enable vsftpd

http://chatgpt.dhexx.cn/article/bnQiHgCA.shtml

相关文章

Linux服务器架设-FTP服务器配置实例

FTP服务器配置 任务背景: 学院准备搭建FTP服务器,对于所有的学生均以真实账号登录(学号:0800901),允许下载相关信息及学习资料,禁止上传,但操作目录只限于/students下。所有老师也…

架设FTP Server

第十八章 架 設 FTP Server 索引: 18.1 何謂 FTP 及 FTP 的連線流程 18.1.1FTP 簡介 18.1.2FTP 的連線流程18.2 架設 Pure-ftpd Server 18.2.1查詢套件安裝及檢視套件內容 18.2.2設定 Pure-ftpd Server 18.2.3設定虛擬帳號18.3 架設 vsftpd Server 18.3.1查詢套…

架设ftp,架设ftp的2种方法

架设FTP的服务器方法有很多种,各种软件有免费的有收费的,最基础最根本最万无一失的当然是window操作系统自带的“Internet 信息服务 (IIS)”,当然这个架设FTP服务器对于部署过网页的人来最简单不过的了。 IIS7服务器管理工具可以批量管理、定…

【FTP】FTP服务搭建

基本介绍: FTP是文件传输协议的缩写,基于网络来传输文件的应用层协议。 FTP支持两种模式:Standard(PORT方式,主动方式),Passive(PASV,被动方式)。 Port模式&…

FTP服务器架设

FTP服务器架设详细图解转载文章,网络共享 <script src"http://www.topc.cn/Click_ajax.asp?typejs&SubSysNS&spanidNS_id_click_HB25HJ3I099D1G6" language"JavaScript" type"text/javascript"></script> FTP 是File Tran…

FTP服务器—(5分钟快速搭建一个FTP服务器)

一.什么是FTP FTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议&#xff0c;使得主机间可以共享文件. 二.搭建前期准备 1.首先打开控制面板找到“程序”点击打开&#xff0c;如下图所示&#xff1a; 1 2.在打开的“程序”窗口中&#xff0c;找到“启用或…

搭建FTP服务器

Windows10搭建FTP服务 1、启用Windows10 Ftp服务 打开控制面板->程序和功能->启用或关闭windows功能然后如图&#xff1a; 2、配置FTP用户 我的电脑->右击点击管理->本地用户和组 在Administrator 用户组中添加一组ftp用户 For example 用户名&#xff1a;ftp1 …

架设个人FTP服务器的三种方法

若该文为原创文章&#xff0c;未经允许不得转载 原博主博客地址&#xff1a;https://blog.csdn.net/qq21497936 原博主博客导航&#xff1a;https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址&#xff1a;https://blog.csdn.net/qq21497936/article/…

FTP架设及本地分享局域保姆级教程

文章目录 FTP架设及本地分享局域保姆级教程前置准备&#xff1a;软件下载一、FTP环境配置1. 安装调试FileZilla_server安装&#xff1a;运行FileZilla服务端安装程序&#xff0c;参照下图进行默认安装即可&#xff1b;连接设定&#xff1a;通过主机名或IP端口进行连接&#xff…

搭建ftp服务器的超详细步骤。

第一步&#xff1a;打开控制面板。 1.1选择程序这个选项。 1.2选择启用或关闭window功能 1.3勾选如图有红箭头的这几个选项。 第二步&#xff1a;搜索iis且将其打开 。 2.1点击网站&#xff0c;且点击添加网站 物理路径可在除C盘以外的盘单独建立一个文件&#xff0c;用来存放上…

在本机搭建自己的ftp服务器--最简单的方法(详细教程)

目录 前言 具体步骤 总结 加油各位( •̀ ω •́ )y 期待与君再相逢 前言 FTP服务器可以在局域网中快速传输文件&#xff0c;是在互联网上提供文件存储和访问服务的计算机&#xff0c;它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义&#x…

浏览器执行原理、V8引擎

前言 对一个前端而言&#xff0c;思考JS在浏览器中如何被执行非常重要。笔者是通过codewhy的课程进行学习的&#xff0c;首先感谢codewhy。 浏览器的功能 浏览器的主要功能就是向服务器发出请求&#xff0c;在浏览器窗口中展示您选择的网络资源。这里所说的资源一般是指 HTM…

ARM v8 简介

ARMv8 Exception Level 在介绍其他概念前&#xff0c;先要了解 ARMv8 全新的异常级设计。 ARMv8 定义了4个异常级。EL0-EL3&#xff0c;数字越大&#xff0c;权限越高。其中 EL0 用于应用程序&#xff0c;EL1 用于操作系统&#xff0c;EL2 用于虚拟化&#xff0c;EL3 用于安全…

V8引擎解析JavaScript原理

为什么需要JavaScript引擎呢&#xff1f; 高级的编程语言都是需要转成最终的机器指令执行的 我们编写的JavaScript无论交给浏览器和Node执行&#xff0c;最后都是被CPU执行的 CPU只认识自己的指令集&#xff0c;实际上是机器语言&#xff0c;才可以被CPU所执行 所以需要借助Jav…

V8引擎详解(一)——概述

背景 在现有的javascript引擎中&#xff0c;V8引擎绝对是其中的佼佼者&#xff0c;chrome和node底层都使用了V8引擎&#xff0c;其中chrome的市场占有率已经达到70%&#xff0c;而node更是前端工程化以及扩展边界的核心支柱&#xff0c;V8引擎对于一个前端开发工程师来说重要程…

浏览器工作原理和V8引擎

一、浏览器的工作原理 比如在浏览器中输入网址&#xff0c;然后dns进行解析&#xff0c;解析出的就是服务器的一个ip地址。服务器返回一个html文件&#xff0c;浏览器内核在解析html文件的过程中&#xff0c;遇到link标签和script标签引用的css文件和JavaScript文件就会去下载…

V8引擎学习

计算机模型 寄存器 中央处理器的组成部分寄存器是有限存储容量额高速存储部件可以用来暂存指令&#xff0c;数据和地址存储器内的数据可以用来执行算术和逻辑运算。寄存器内的地址可用于指向内存的某个位置 内存 随机存取存储器也叫内存&#xff0c;英文缩写RAMRAM是与CPU直…

V8垃圾回收

来自李兵老师的《浏览器工作原理与实践》&#xff0c;太赞了 垃圾回收 内存空间栈空间和堆空间不同语言的垃圾回收策略调用栈中的数据是如何回收的堆中的数据是如何回收的副垃圾回收器主垃圾回收器总结 在我们说V8垃圾回收之前&#xff0c;先讲讲 数据是如何存储的&#xff1f;…

认识V8引擎

1、前言 编程语言一般分为两类&#xff0c;解释性语言和编译性语言。编译型语言在执行之前要先进行完全编译&#xff0c;而解释型语言一边编译一边执行&#xff0c;很明显编译型语言会比解释性语言快&#xff0c;而JavaScript就是一种解释型脚本语言&#xff0c;支持动态类型、…

V8引擎执行原理

v8是C编写的Google开源高性能JavaScript和WebAssembly引擎&#xff0c;它用于Chrome和Node.js等。 它实现ECMAScript和WebAssembly。 v8可独立运行&#xff0c;也可嵌入到任何C应用程序中。 parse模块 parse模块会将JavaScript代码转换成AST(抽象语法树)&#xff0c;因为…