Linux搭建FTP服务器

一、概念简介
vsftpd(very secure FTP daemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件,本次实验介绍如何在Linux上安装并配置vsftpd。

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

主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。
被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。
FTP支持以下三种认证模式:

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

二、搭建FTP服务器
1、运行命令安装vsftp

apt-get install vsftpd
或者
yum install vsftpd

安装成功后一般会自动启动。
2、检查是否安装成功

dpkg -l | grep vsftpd

在这里插入图片描述
或者

rpm -qa | grep vsftpd

在这里插入图片描述
3、查看FTP服务监听的端口

netstat -antup | grep ftp

如图所示,代表FTP服务已经启动,监听的端口号是21,vsftpd默认已开启本地用户模式,下面我们需要继续配置用户名密码文件目录才能使用FTP服务。
在这里插入图片描述
4、其他常用的ftp命令

service vsftpd status    #查看FTP服务运行状态

在这里插入图片描述

systemctl list-unit-files | grep vsftpd    #查看FTP服务是否开机自启动

在这里插入图片描述

systemctl enable vsftpd.service    #设置FTP服务开机自启动
systemctl start vsftpd   #启动ftp

三修改配置文件

vim /etc/vsftpd.conf
local_enable=YES  #本地用户登录
write_enable=YES  #允许上传,通常会设置为NO
chroot_local_user=YES
chroot_list_enable=YES
utf8_filesystem=YES  #linux的专用编码
chroot_list_file=/etc/vsftpd.chroot_list      #指定了chroot_list_file列表的路径和名称。一行一个用户名
local_root=/home/desktop     #设置fpt的默认下载目录,也即FTP用户的本地根目录,FTP用户登录后,其工作目录将被限制在该目录及其子目录下。

四、配置vsftpd
1、设置用户
运行以下命令为FTP服务创建一个Linux用户,本示例中,该用户名为ftptest
出现“新的密码”时输入密码即可
在这里插入图片描述
如需修改密码可以运行一下命令,根据命令行提示完成FTP用户的密码修改

passwd ftptest

2、添加vsftpd.chroot_list
编辑/etc/vsftpd.chroot_list文件,用于存放允许ftp访问的地址,从名字不难看出,这是一个链表。

输入如下命令

sudo vim /etc/vsftpd.chroot_list

将刚刚创建的文件夹名字添加进去,这里我创建的是ftptest,可以添加多个。

五、重启ftp服务
重启ftp服务
使用命令重启ftp服务

sudo service vsftpd restart

六、使用
方式1:ftp://192.168.100.20连接FTP服务器,用户名:ftptest ;密码:设置的密码
打开一个文件夹,在地址栏输入ftp://ip,会弹出输入用户名密码的界面,输入后点击确定
方式2:使用winscp
方式3:使用FTP客户端

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/457628.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】

爬虫开发从0到1全知识教程完整教程(附代码资料)主要内容讲述:爬虫概述。selenium的其它使用方法。Selenium课程概要。常见的反爬手段和解决思路。验证码处理。chrome浏览器使用方法介绍。JS的解析。Mongodb的介绍和安装,小结。mongodb的简单使…

人工智能|机器学习——CURE聚类算法(层次聚类)

1.CURE聚类概述 绝大多数聚类算法或者擅长处理球形和相似大小的聚类.或者在存在孤立点时变得比较脆弱。CURE采用了一种新颖的层次聚类算法.该算法选择基于质心和基于代表对象方法之间的中间策略。它不同于单个质心或对象来代表一个类,而是选择…

远程办公、企业内网服务器的Code-Server上如何配置使用CodeGeeX插件

很多小伙伴都会在工作中使用code-server,比如说远程办公,当你需要在家访问你的工作环境,亦或者是你们公司的Docker是放入服务器中。code-server 无疑是最好的选择,它可以让你通过互联网安全地连接到远程服务器上的开发环境并且使用…

UE5 android打包

下载安装JDK https://repo.huaweicloud.com/java/jdk/https://repo.huaweicloud.com/java/jdk/ 选择对应的jdk版本 配置环境变量 编辑Path 验证是否成功 java -version 安装Android Studio https://developer.android.google.cn/studio?hlzh-cnhttps://developer.androi…

C# 连接neo4j数据库,包括非默认的neo4j默认库

官方文档没找见,自己在源码里面找到的 private string _dbHost "bolt://localhost:7687"; private string _dbUser "neo4j"; private string _dbPassword "******"; private IDriver? _driver;public CQLOperation(string _data…

HTTPS基础

目录 HTTPS简介 HTTP与HTTPS的区别 CA证书 案例 服务器生成私钥与证书 查看证书和私钥存放路径 Cockpit(图像化服务管理工具) HTTPS简介 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密&…

以题为例浅谈SSRF

什么是ssrf SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。 一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连…

怎么避免电脑数据被拷贝?电脑如何禁用USB功能?

在无纸化办公的今天,很多重要数据都存放在电脑中。为了避免数据泄露,需要采用安全的方式保护电脑数据。那么,该如何避免电脑数据被拷贝呢?下面我们就来了解一下。 方法一:物理隔绝 物理隔绝是一种原始但有效的USB禁用…

数码管的动态显示(三)

1.原理 data_reg寄存,只寄存符号位和数据位不包含小数点位。 动态数码管每个显示1ms,所以计数到5*10^4-1 为了将sel和seg同步,把sel打了一拍。 6位都使用到了可以这么计算,6位都显示的是数据。或者最高位显示的是小数点&#xff…

ubuntu 下git常用指令【持续更新中】

1.下载 sudo apt install git 2. 查看版本 git --version3. 登录git账号 git config --global user.email "youexample.com" git config --global user.name "Your Name"4.生成密钥对 ssh-keygen -t rsa -C "your_emailyouremail.com"复制公…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:EffectComponent)

特效合并容器组件,用于子节点特效绘制的合并,实现特效的绘制性能优化。 说明: 该组件从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 该组件为系统接口。 目前该组件仅支持子组件背景…

LORA_ LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

paper: https://arxiv.org/pdf/2106.09685.pdf code: https://github.com/microsoft/LoRA 摘要 作者提出了低秩自适应,或称LoRA,它冻结了预先训练的模型权值,并将可训练的秩分解矩阵注入变压器架构的每一层,大大减少了下游任务的…

接上一篇:分布式调用链追踪系统设计

所以必须得记录父子关系: A---->B 是 B---->C 的父调用 A---->D 是 D---->E 的父调用 A---->D 还是 D---->F 的父调用 如何记录呢?需要给每个调用分配一个ID (称为 SpanID),并且把这个 ID 传递给子调用, 子…

网络基础 - 预备知识(协议、网络协议、网络传输流程、地址管理)

文章目录 1. 认识 协议2. 了解 网络协议2.1 引入 协议分层2.2 OSI 七层模型 与 TCP/IP 四层模型 3. 网络传输 流程!!!3.1 网络传输流程图3.2 关于报头3.3 实例解释 传输过程(封装与解包) 4. 网络中的地址管理4.1 认识 …

使用Python批量实现在Excel里新加一列

目录 一、引言 二、所需库介绍 三、代码实现 四、批量处理多个Excel文件 五、注意事项与扩展 六、案例演示 七、总结与展望 一、引言 Excel作为广泛使用的电子表格软件,在数据处理和分析中扮演着重要角色。然而,当面对大量Excel文件需要批量处理…

Apache Paimon 的 CDC Ingestion 概述

CDC Ingestion 1)概述 Paimon支持schema evolution将数据插入到Paimon表中,添加的列将实时同步到Paimon表,并且无需重启同步作业。 目前支持的同步方式如下: MySQL Synchronizing Table: 将MySQL中的一个或多个表同步到一个Pa…

win11系统qtcreator构建运行程序首次启动卡顿(win11首次启动应用程序卡顿)

首先可以参考一下这个博客:为什么win11系统开机后第一次打开一个软件很慢,关闭进程重新打开速度就正常了,该怎样解决呢? - 知乎 经过上述博客,但是我没有完全解决,这里说一下自己的方法: 打开任…

ArrayList 和 LinkedList 有什么区别?

1、典型回答 ArrayList 和 LinkedList 是 Java 中常用的集合类,它们都实现了 List 接口,如下图所示: 但二者有以下几点不同: 1、底层数据结构实现不同: ArrayList 底层使用数组实现,它通过一个可调整大小…

泽众云真机-机型支持ADB调试功能即将上线

最近云真机平台在线客服,收到很多咨询关于ADB调试功能,什么时候能更新?据小编所知,正在升级之中,有一块专门为了解决ADB调试功能提前准备,升级网络硬件设备,目前平台的功能已开发完成&#xff0…

Python Web开发记录 Day8:Django part2 部门管理

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、部门列表2、模板的继承3、添加部门4、编辑部…