概述

在本篇博文中,我将会介绍如何搭建你自己的FTP服务


FTP是什么

FTP 是文件传输协议File Transfer Protocol的缩写。顾名思义,FTP用于计算机之间通过网络进行文件传输。你可以通过FTP在计算机账户间进行文件传输,也可以在账户和桌面计算机之间传输文件,或者访问在线软件归档。但是,需要注意的是多数的FTP站点的使用率非常高,可能需要多次重连才能连接上。

FTP地址和HTTP地址(即网页地址)非常相似,只是FTP地址使用ftp://前缀而不是http://


FTP服务器是什么

通常,拥有FTP地址的计算机是专用于接收FTP连接请求的。一台专用于接收FTP连接请求的计算机即为FTP服务器或者FTP站点。

现在,我们来开始搭建一个FTP服务文件共享。在本博文,我们将以vsftpd作为ftp服务。

VSFTPD是一个自称为最安全的FTP服务端软件。事实上VSFTPD的前两个字母表示“非常安全的very secure”。该软件的构建绕开了FTP协议的漏洞。

尽管如此,你应该知道还有更安全的方法进行文件管理和传输,如:SFTP(使用OpenSSH)。FTP协议对于共享非敏感数据是非常有用和可靠的。


安装VSFTPD

CentOS

# 安装vsftpd
yum -y install vsftpd
# 启动
service vsftpd start
# 开启启动
chkconfig vsftpd on

VSFTPD相关命令

# 启动ftp服务
service vsftpd start
# 查看ftp服务状态
service vsftpd status
# 重启ftp服务
service vsftpd restart
# 关闭ftp服务
service vsftpd stop

配置FTP服务

多数的VSFTPD配置项都在/etc/vsftpd.conf配置文件中。这个文件本身已经有非常良好的文档说明了,因此,在本节中,我只强调一些你可能进行修改的重要选项。使用man页面查看所有可用的选项和基本的 文档说明:

man vsftpd.conf

根据文件系统层级标准,FTP共享文件默认位于/srv/ftp目录中。

允许上传:

为了允许ftp用户可以修改文件系统的内容,如上传文件等,“write_enable”标志必须设置为 YES。

write_enable=YES

允许本地(系统)用户登录:

为了允许文件/etc/passwd中记录的用户可以登录ftp服务,“local_enable”标记必须设置为YES。

local_enable=YES

匿名用户登录

下面配置内容控制匿名用户是否允许登录:

允许匿名用户登录

anonymous_enable=YES

匿名登录不需要密码(可选)

no_anon_password=YES

匿名登录的最大传输速率,Bytes/second(可选)

anon_max_rate=30000

匿名登录的目录(可选)

anon_root=/example/directory/

根目录限制(Chroot Jail)

( chroot jail是类unix系统中的一种安全机制,用于修改进程运行的根目录环境,限制该线程不能感知到其根目录树以外的其他目录结构和文件的存在。详情参看chroot jail)

有时我们需要设置根目录(chroot)环境来禁止用户离开他们的家(home)目录。在配置文件中增加/修改下面配置开启根目录限制(Chroot Jail):

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

“chroot_list_file”变量指定根目录限制所包含的文件/目录( 即用户只能访问这些文件/目录)

最后你必须重启ftp服务,在命令行中输入以下命令:

sudo systemctl restart vsftpd

到此为止,你的ftp服务已经搭建完成并且启动了。

配置文件vsftpd.conf

#进入vsftpd配置文件
vim /etc/vsftpd/vsftpd.conf
# 禁止匿名用户anonymous登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 让登录的用户有写权限(上传,删除)
write_enable=YES
# 默认umask
local_umask=022
# 把传输记录的日志保存到/var/log/vsftpd.log
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO
# 允许ASCII模式上传
ascii_upload_enable=YES
# 允许ASCII模式下载
ascii_download_enable=YES
# 使用20号端口传输数据
connect_from_port_20=YES
# 欢迎标语
ftpd_banner=Welcome to use my test ftp server.
# 接下来的三条配置很重要
# chroot_local_user设置了YES,那么所有的用户默认将被chroot,
# 也就用户目录被限制在了自己的home下,无法向上改变目录。
# chroot_list_enable设置了YES,即让chroot用户列表有效。
# ★超重要:如果chroot_local_user设置了YES,那么chroot_list_file
# 设置的文件里,是不被chroot的用户(可以向上改变目录)
# ★超重要:如果chroot_local_user设置了NO,那么chroot_list_file
# 设置的文件里,是被chroot的用户(无法向上改变目录)
chroot_list_enable=YES
# touch /etc/vsftpd/chroot_list 新建
chroot_list_file=/etc/vsftpd/chroot_list
use_localtime=YES
# 以standalone模式在ipv4上运行
listen=YES
# PAM认证服务名,这里默认是vsftpd,在安装vsftpd的时候已经创建了这个pam文件,
# 在/etc/pam.d/vsftpd,根据这个pam文件里的设置,/etc/vsftpd/ftpusers
# 文件里的用户将禁止登录ftp服务器,比如root这样敏感的用户,所以你要禁止别的用户
# 登录的时候,也可以把该用户追加到/etc/vsftpd/ftpusers里。
pam_service_name=vsftpd
# 重启 vsftpd
service vsftpd restart

Linux 在 linux 中搭建 FTP 服务相关推荐

  1. 腾讯云Linux云服务器如何搭建FTP服务?

    Vsftpd(very secure FTP daemon)是众多 Linux 发行版中默认的 FTP 服务器.本文以 CentOS 7.6 64位操作系统的腾讯云服务器(CVM)为例,使用 vsft ...

  2. Linux中如何搭建FTP服务

    文章目录 如何搭建FTP服务,并设置匿名用户访问FTP服务的最大权限 设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录) 修改匿名用户,本地用户登录的默认根 ...

  3. 【深度学习】基于深度学习的linux服务器,需要搭建哪些服务,一步步搭建深度学习的环境,cuda,pytorch,opencv,ftp服务, nfs服务 docker等等

    来来回回的安装服务器,是时间写个pipline了,在这里主要记录下生产环境下的一台基于深度学习的linux服务器,需要搭建那些服务 文章目录 前言 一.开工 1.1 切换yum源 1.2 minico ...

  4. 【Linux学习笔记】Linux Centos7.4下的Ftp服务的搭建和使用及加密

    Linux Centos7.4下的Ftp服务的搭建和使用 服务简介 一.Ftp服务的安装 1.1.安装ftp服务 1.2.启动ftp服务 1.3.将ftp服务设置为开机启动 1.4.停止ftp服务 二 ...

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

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

  6. Xshell使用xftp传输文件,使用pure-ftpd搭建ftp服务

    笔记内容: 15.4 xshell使用xftp传输文件 15.5 使用pure-ftpd搭建ftp服务 笔记日期:2017-11-03 15.4 xshell使用xftp传输文件 在官网下载xftp, ...

  7. Centos搭建FTP服务

    前言: Centos 搭建FTP服务学习记录 FTP简介 FTP简称"文件传输协议",用于Internet上的控制文件的双向传输. 在FTP中常遇到两个概念: 下载和上传 &quo ...

  8. Ubuntu麒麟下搭建FTP服务

    一.怎么搭建FTP服务: 第一步>>更新库 linuxidc@linuxidc:~$ sudo apt-get update 第二步>>采用如下命令安装VSFTPD的包 lin ...

  9. 阿里云 ECS 7 天实践训练营 - day01 -基于ECS搭建FTP服务

    前段时间无意间看到了阿里云7天实践ECS训练营的活动,因为我本身自己也已经使用了两年的阿里云学生机,但是全凭自己的喜好来的,没有经过一个系统的训练,这次看到这个活动,便马上参加了,所以特在此记录每天的 ...

最新文章

  1. 嵌入式学习笔记之一:嵌入式linux中混合编译入门
  2. 学习 Git 玩转 GitHub
  3. Gradle 的使用
  4. 十天征服单片机百度云_单片机资料百度盘.
  5. 国际主流云厂商生存画像:三大赛道愈发清晰
  6. 国内人工玻璃体和日本人工玻璃体的区别
  7. 计算机中丢失了ll是什么意思,丢失了ntoskrnl.exe和hal.ll
  8. linux指令解压rpm,dpkg rpm apt yum 的常用指令 +linux 各种解压缩方法.docx
  9. 镇江高等专科学校计算机考试,镇江市人事考试考工服务平台
  10. SpringCloud工作笔记060---SpringBoot中使用WebSocket实现即时通讯_实现呼叫中心业务封装
  11. 无法启动此程序因为计算机中丢失msvcr71
  12. ITIL 4 Foundation 思维导图笔记整理
  13. 阜南一中2021高考成绩查询,高考喜报出炉!阜南一中、阜阳一中、三中……取得了怎样的好成绩?(附名单)...
  14. win10笔记本 CMD命令直接开启热点(WIFI)
  15. Kubernetes利用CNI-bridge插件打通网络
  16. 重磅消息:微信支付分最新开通方法!
  17. Loj #3124. 「CTS2019 | CTSC2019」氪金手游
  18. 餐馆会员管理系统 - MySQL数据库课程设计
  19. 构造方法:构造方法的格式和执行时机;构造方法的作用;构造方法的注意事项;
  20. Hive经典面试题——级联求和(访客访问统计报表)

热门文章

  1. C++学习 之 fill和memeset的区别
  2. orb_slam 编译错误
  3. keras 提取某一层的feature_map
  4. 华为手机接计算机,华为手机怎么连接电脑,详细教您华为手机怎么连接电脑
  5. 6. Leetcode 11. 盛最多水的容器 (数组-双向双指针)
  6. Leetcode 75. 颜色分类 (每日一题 20210817)
  7. NLP-基础知识-005(专家系统)
  8. 纯干货-多场景下大屏可视化应用(文中含可视化源代码链接)
  9. Tableau必知必会之通过 tabadmin 备份 Tableau Server
  10. oracle net manager没有orcl_Oracle-数据库基础知识