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客户端

相关推荐
ALex_zry2 小时前
SSH主机密钥验证失败:全面解决方案与技术手册
运维·ssh
厦门辰迈智慧科技有限公司3 小时前
城市排水管网流量监测系统解决方案
运维·服务器
我没有开挂3 小时前
旧 docker 版本通过 nvkind 搭建虚拟多节点 gpu 集群的坑
运维·docker·容器
qq_339282233 小时前
centos中libc.so.6No such file的解决方式
linux·运维·centos
leoufung3 小时前
ECPF 简介
linux·网络·kernel
小鸡,啄米4 小时前
centos9安装docker 配置docker代理
运维·docker·容器
水银嘻嘻4 小时前
12 web 自动化之基于关键字+数据驱动-反射自动化框架搭建
运维·前端·自动化
在肯德基吃麻辣烫4 小时前
Netdata在Ubuntu环境下的安装与配置:构建实时系统监控与性能分析平台
linux·运维·ubuntu
国际云,接待5 小时前
云服务器的运用自如
服务器·架构·云计算·腾讯云·量子计算
不念霉运5 小时前
Gitee DevOps:中国企业数字化转型的“本土化加速器“
运维·gitee·团队开发·代码规范·devops·代码复审