Vsftpd(very secure FTP deamon)是众多Linux发行版中默认的FTP服务器。本文以CentOS 8(腾讯云)服务器为例,使用vsftpd搭建Linux云服务器的FTP服务器。

环境

 CentOS 8(1核2GB,1Mbps) 64位 ,已安装Docker(CentOS 8 的docker安装 https://www.cnblogs.com/luyj00436/p/14515187.html)。

步骤

步骤1:登录云服务器

登录服务器的方法有三种。根据情况选择合适的。

步骤2:安装vsftpd.

1. 安装vsftpd。

yum install -y vsftpd

2. 设置vsftpd开机启动。

systemctl enable vsftpd

3. 启动FTP服务。

systemctl start vsftpd

4. 确认服务是否启动。

netstat -antup | grep ftp

显示结果如下,则说明服务已成功启动。

此时,vsftpd已默认开启匿名访问模式,无需通过用户名和密码即可登录FTP服务器,使用此方法登录FTP服务器的用户没有权限修改或上传文件的权限。

步骤3:配置vsftpd

1. 为FTP服务器创建一个Linux用户,本文以ftpuser为例。

useradd ftpuser

2. 设置ftpuser用户名的密码。

passwd ftpuser

输入密码后请安Enter确认设置,密码默认不显示,本文以tf7295TFY为例。

3. 创建FTP服务使用的文件目录,本文以/var/ftp/test为例。

mkdir /var/ftp/test

4. 修改目录权限。

chown -R ftpuser:ftpuser /var/ftp/test

5. 打开vsftp.conf文件。

vim /etc/vsftpd/vsftpd.conf

6. 按i切换至编辑模式,根据实际需求选择FTP模式,修改配置文件vsftp.conf。

注:FTP可通过主动模式和被动模式与客户机进行连接并传输数据。由于大多受客户端机器的防火墙设置无法获取真实IP等原因,建议选择被动模式下搭建FTP服务。以下以被动模式为例。如果需要主动模式,请参考:主动模式

1) 修改以下配置参数,设置匿名用户和本地用户的登录权限,设置指定例外用户列表文件的路径,并开启IPv4 sockets。

1 anonymous_enable=NO
2 local_enable=YES
3 chroot_local_user=YES
4 chroot_list_enable=YES
5 chroot_list_file=/etc/vsftpd/chroot_list
6 listen=YES

设置用户

2) 在行首添加#,注释listen_Ipv6=YES配置参数,关闭IPv6 sockets。

#listen_ipv6=YES

3) 添加以下配置参数,开启被动模式,设置本地用户登录后所在目录,以及服务器建立数据传输可使用的端口范围值。

1 local_root=/var/ftp/test
2 allow_writeable_chroot=YES
3 pasv_enable=YES
4 pasv_address=xxx.xx.xxx.xx #请修改为您的 Linux 云服务器公网 IP
5 pasv_min_port=40000
6 pasv_max_port=45000

开启被动模式、用户登录目录、端口范围

7. 按ESC后输入:wq保存后退出。

8. 创建并编辑chroot_list文件。

vim /etc/vsftpd/chroot_list

9.按i进入编辑模式,输入用户名,一个用户名占据一行,设置完成后按Esc并输入:wq保存后退出。您若没有设置例外用户的需求,看跳过此步骤,输入:wq退出文件。

10. 重启FTP服务器。

1 systemctl restart vsftpd

步骤4:设置安全组

搭建好FTP服务后,您需要根据实际使用的FTP模式给Linux云服务器放入入站规则,详情请参考添加安全组规则

大多数客户端及其在局域网中,IP地址经过转换的,如果您选择了FTP主动模式,请确保客户端机器已获取真实的IP地址,否则可能会导致无法登录FTP服务器。

  • 主动模式:放通端口21。
  • 被动模式:放通端口21,,及修改配置文件中设置的pasv_min_port到pasv_max_port之间的所有端口,本文放通端口为40000~45000。

步骤5:验证ftp服务

您可通过FTP客户端软件、浏览器或文件资源管理器等工具验证FTP服务,本文以客户端的文件资源管理器为例。

1. 打开客户端的IE浏览器,选择【工具】>【Internet选项】>【高级】,根据您的FTP模式进行修改:

  • 主动模式:取消勾选【使用被动FTP】
  • 被动模式: 勾选【使用被动FTP】。

2. 打开客户端计算机,在路径栏中访问以下地址,如下图所示:

3. 在弹出的“登录身份”窗口输入已设置的用户名及密码。

本文使用的用户名为 ftpuser,密码为 tf7295TFY

4. 成功登录后,即可上传和下载文件。

附录

设置FTP主动模式

主动模式需修改的配置如下,其他配置保持默认设置:

 1 anonymous_enable=NO      #禁止匿名用户登录
2 local_enable=YES #支持本地用户登录
3 chroot_local_user=YES #全部用户被限制在主目录
4 chroot_list_enable=YES #启用例外用户名单
5 chroot_list_file=/etc/vsftpd/chroot_list #指定用户列表文件,该列表中的用户不被锁定在主目录
6 listen=YES #监听IPv4 sockets
7 #在行首添加#注释掉以下参数
8 #listen_ipv6=YES #关闭监听IPv6 sockets
9 #添加下列参数
10 allow_writeable_chroot=YES
11 local_root=/var/ftp/test #设置本地用户登录后所在的目录

FTP主动模式配置

按ESC后输入:wq保存后退出。并继续完成剩余的步骤。然后重启FTP服务。

FTP客户端上传文件失败

Linux系统环境下,通过vsftp上传文件时,提示如下报错信息。

553 Could not create file

解决方法

1. 检查服务器磁盘的使用率。

df -h

如果磁盘空间不足,将会导致文件无法上传,建议删除磁盘容量较大的文件。

  • 如果磁盘空间正常,请执行下一步。

2. 检查FTP目录是否有写的权限。

1 ls -l /home/test
2 # /home/test 为 FTP 目录,请修改为您实际的 FTP 目录。
  • 若返回结果没有w,则表示该用户没有写的权限,请执行下一步。
  • 若返回结果已有w,请提交工单进行反馈。

3. 为FTP目录加上写的权限。

1 chmod +w /home/test
2 # /home/test 为 FTP 目录,请修改为您实际的 FTP 目录。

4. 重新检查写权限是否设置成功。

1 ls -l /home/test
2 # /home/test 为 FTP 目录,请修改为您实际的 FTP 目录。

参考网址

Linux 云服务器搭建 FTP 服务: https://cloud.tencent.com/document/product/213/10912

Linux:服务器(CentOS)搭建FTP服务的更多相关文章

  1. 关于linux服务器上搭建ftp服务的流程

    小龙最近折腾了一个阿里云的服务器,买完了就要开始做那么多那么多的功课,小龙对ssh也是一知半解的状态,做个小笔记,发布下整个ftp服务的搭建过程,大神勿喷:) 一.aliyun Linux(Redha ...

  2. Linux(Centos7) 实例搭建 FTP 服务

    本文以 CentOS 7.2 64位系统为例,使用 vsftpd 作为 FTP 服务端,FileZilla 作为客户端.指导您如何在 Linux 云服务器上搭建 FTP 服务. 操作步骤 安装 vsf ...

  3. CentOS搭建FTP服务

    前言: 环境:centos7.5 64 位 正文: 使用 yum 安装 vsftpd yum install vsftpd -y 安装完成后,启动 FTP 服务: service vsftpd sta ...

  4. 【Linux】- CentOS搭建FTP服务器

    1.安装vsftpd yum install -y vsftpd 2.启动vsftpd服务 service vsftpd start 3.查看运行状态 netstat -nltp | 完毕!!! 参考 ...

  5. 在Linux服务器,搭建K8s服务【脚本篇】

    前言 好久没有写博客了,本文主要是对网上文章的总结篇,主要是将安装和运行代码做了一次真机实验,亲测可用.文章内包含的脚本和代码,多来自于网络,也有我自己的调整和配置,文章末尾对参考的文献做了列举,方便 ...

  6. 使用Samba在Linux服务器上搭建共享文件服务

    最近我们的小团队需要在服务器上共分出一个共享文件夹用于大家存放公共的资源文档, 大家想啊,这肯定很简单呀,在Windows下面只要创建相关的windows account,共享某个文件夹,把读/写权限 ...

  7. Linux centosVMware xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务

    一.xshell使用xftp传输文件 Ctrl+Alt+F 弹出 下载进入 填写任意名字,自己邮箱 进入邮箱点击网址就自动下载了 然后安装 二.使用pure-ftpd搭建ftp服务 yum insta ...

  8. windows server2008下搭建ftp服务

    在工作中不光使用linux系统下的ftp服务,也得使用windows下的,今天领导让我做一个,踩了很多坑,终于是做完了,重现下过程,我们就来一步一步搭建我们的windows下的ftp服务器: 1.环境 ...

  9. 在Win7的IIS上搭建FTP服务及用户授权

    FTP服务 FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为21),用于Internet上的双向文件传输(即文件的上传和下载).在网络上有 ...

  10. 在Win7的IIS上搭建FTP服务及用户授权——转载!!

    原文地址:http://blog.sina.com.cn/s/blog_6cccb1630100q0qg.html FTP服务 FTP是文件传输协议(File Transfer Protocol)的简 ...

随机推荐

  1. 使用Libusb测试USB device

    一. 先准备好测试工具 -- Libusb: 在Linux中使用的话: 首先从 http://www.libusb.org/官网中下载libusb 然后解压之后./configure --> m ...

  2. 至少有K个重复字符的最长子串

    传送门 /** * 分治 */ class Solution { // dp[i]:表示以i为结尾满足条件的子串的长度 public int longestSubstring(String s, in ...

  3. andriod app更新

    对于安卓用户来说,手机应用市场说满天飞可是一点都不夸张,比如小米,魅族,百度,360,机锋,应用宝等等,当我们想上线一款新版本APP时,先不说渠道打包的麻烦,单纯指上传APP到各大应用市场的工作量就已 ...

  4. IaaS--云硬盘(何恺铎《深入浅出云计算》笔记整理)

    [概念] 云硬盘,又叫做"云盘"或者"云磁盘",就是云虚拟机上可以挂载和使用的硬盘.这里,它既包含了用于承载操作系统的系统盘,也包括了承载数据的数据盘.云厂商对 ...

  5. VS2019编译Qt4.8.7

    下载4.8.7源码Index of /archive/qt/4.8/4.8.7 复制mkspecs\win32-msvc2015到mkspecs\win32-msvc2019 修改qmake.conf ...

  6. Katalon-获取文本内容和预期文本对比(get Test)

  7. SVN: E155004: THERE ARE UNFINISHED WORK ITEMS IN ''; RUN 'SVN CLEANUP' FIRST

    eclipse的SVN更新或者还原都报错 使用clean up也不好用 解决办法 通过网址https://www.sqlite.org/download.html下载这个软件 解压放到.svn文件夹下 ...

  8. 【NPDP专项练习】第六章 市场研究

    第六章 市场研究 1.VOC也叫客户心声,指的是. A 选择一个单一的投资组合项目,并保证所有项目都在策略内 B 利用迭代在专家组中形成共识的决策 C 通过人工"商店"引导潜在客户 ...

  9. RSS经典教程

    RSS经典教程 作者:OLD HELPSoldhelps@126.com RSS 指 Really Simple Syndication(真正简易联合) RSS 使您有能力聚合(syndicate)网 ...

  10. proguard-maven-plugin混淆代码排除方法

    当使用proguard-maven-plugin混淆代码时,如果要排除某个类中某个方法不混淆,务必参数指定全路径类名,否则会不生效.