一、下载(在线安装可跳过)

1、下载(见网盘)

  • 下载服务端 vsftpd:下载地址

  • 下载客户端 ftp

注:如果需要使用ftp命令,则客户端必须安装,否则无法使用(-bash: ftp: command not found)

二、安装

1、检查是否已经安装了vsftp

首先查看系统中是否成功安装了vsftpd,执行下面命令(有内容则安装了ftp)

rpm -qa | grep vsftpd

2、开始安装

  • 在线安装
yum install vsftpd -y
  • 若linux处于离线状态则无法使用yum命令安装
离线下载vsftp:
http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64)上传安装包到服务器,放在安装目录,比如/home/ 下离线安装
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm

安装过程可能会报错,缺少依赖:

解决:安装相关依赖(centos7 的最新依赖包在博客资源里,可自行去下载)
rpm -ivh libcap-2.16-5.5.el6.x86_64.rpm
rpm -ivh libcap-devel-2.16-5.5.el6.x86_64.rpm

检查是否安装成功

rpm -qa | grep vsftpd

服务启动

systemctl start vsftpd.service

三、配置

1、进入cd /etc/vsftpd目录

cd /etc/vsftpd

2、编辑vsftpd.conf文件

养成备份的好习惯cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.backup.confvim vsftpd.conf

修改如下:

#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#本地用户上传文件的umask
local_umask=022
#设置本地用户登录后所在目录
local_root=/home/vsftpd/ftpuser
#全部用户是否被限制在主目录
#如果设置成YES会导致你用java代码创建文件夹时失败,因为他被限制在了宿主目录
#chroot_local_user=YES
#开启被动模式
pasv_enable=YES
pasv_addr_resolve=YES
#FTP服务器公网IP(也就是当前阿里云服务器的公网 IP)
pasv_address=120.xx.xx.xx
#设置被动模式下,建立数据传输可使用port范围的最小值
pasv_min_port=10000
#设置被动模式下,建立数据传输可使用port范围的最大值
pasv_max_port=10088#是否在进入新目录时显示 message_file 文件中的内容
dirmessage_enable=YES
#启用日志
xferlog_enable=YES
#日志是否进行格式化
xferlog_std_format=YES
#独立服务
listen=YES
#centos7增加此设置,开启后默认监控ipv4和ipv6
listen_ipv6=NO
#认证模式
pam_service_name=vsftpd
#启用用户列表
userlist_enable=YES
#可以上传(全局控制)
write_enable=YES
#允许下载
download_enable=YES

3、创建ftp用户

这里主要需要创建的用户无法使用普通登录功能或者telnet,只允许使用ftp登录

useradd -s /sbin/nologin -d /home/vsftpd/ftpuser ftpuser

4、为用户设置密码

passwd ftpuser

5、将该用户加入到用户列表中(可选)

vi /etc/vsftpd/user_list

6、防火墙设置

# 方法一:关闭防火墙
systemctl stop firewalld# 方法二:开放端口
# 提示:防火墙iptables是centos7之前的服务,centos7开始是firewalld服务,开放端口流程请自行百度。另外注意云服务器需要在云平台上设置安全组开放端口
开启
# iptables -I INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
# iptables  -I OUTPUT -o eth0 -p tcp --sport 20 -j ACCEPT
保存
# /etc/rc.d/init.d/iptables save
重启防火墙
# service iptables restart

7、修改selinux,将SELINUX改为disabled

SELINUX=disabled

8、设置自启

chkconfig vsftpd on

9、服务重启

systemctl restart vsftpd.service其他命令#开启
service vsftpd start
#停止
service vsftpd stop
#重启
service vsftpd restart

四、测试

  • 安装ftp客户端后,可以进行测试。230代表连接成功

    #连接ftp服务
    [root@fan102 ~]# ftp 172.16.1.102 21
    Connected to 172.16.1.102 (172.16.1.102).
    220 (vsFTPd 3.0.2)
    Name (172.16.1.102:root): zion
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> quit
    221 Goodbye.
    
  • windows使用FileZilla可以测试ftp是否可以登录

  • linux或mac使用命令

    sftp 用户名@地址登录
    

​ 注:如果登录出现提示331 Please specify the password,执行下面命令即可:

echo "/sbin/nologin" >> /etc/shells

设置ftp用户只能在自己目录中,这里有两种方式

第一种:

chroot_local_user=YES   #设置是否锁定本地用户在自己的主目录中,将所有用户限定在主目录内(登录后无法cd到父目录或同级目录中)
chroot_list_enable=YES   #设置是否将用户锁定在自己的主目录中 ,YES表示要启用chroot_list_file
chroot_list_file=/etc/vsftpd/chroot_list      #定义哪些用户将会锁定在自己的主目录中,即全体用户都被“限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“不会被限制在主目录下”的用户。

第二种:

chroot_local_user=NO    #NO则所有用户不被限定在主目录内
chroot_list_enable=YES #YES表示要启用chroot_list_file
chroot_list_file=/etc/vsftpd/chroot_list   #因为chroot_local_user=NO,这时列出的是那些“会被限制在主目录下”的用户。

五、登录失败

1.错误代码:530

530 Login incorrect

#查看日志
tail /var/log/secure

日志内容:pam_unix(vsftpd:auth): authenticatio,pam_unix(vsftpd:auth): check pass pam_unix(vsftpd:auth): authentication failure,logname= uid=0

原因

这个是因为你创建的用户是不需要登陆的你设置了nologin,然后登陆的时候会去/etc/passwd下面检查这个用户,必须为/etc/shells类型才能登陆。

解决

#第四行 设置为nologin,或者注释掉

#修改配置文件
[root@fan102 ~]# vi /etc/pam.d/vsftpd
#第四行 设置为nologin,或者注释掉
1 #%PAM-1.0
2 session    optional     pam_keyinit.so    force revoke
3 auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
4 auth       required     pam_nologin.so
5 auth       include      password-auth
6 account    include      password-auth
7 session    required     pam_loginuid.so
8 session    include      password-auth

2.错误代码:500

500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list

原因:用户没有变更根目录的权限,ftp用户默认的根目录是/home/vsftpd/ftpuser,如果要切换登陆目录,需要给予权限

解决

第一步:

#修改配置文件
vi /etc/vsftpd/vsftpd.conf#内容如下
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

**第二步:**在/etc/vsftpd/vsftpd创建chroot_list并将用户(ftpuser)加入该文件

#创建chroot_list并将用户加入该文件
[root@fan102 ~]# /etc/vsftpd/vsftpd/chroot_list
#文件内容
ftpuser

FTP服务搭建(linux)相关推荐

  1. 详解FTP服务完成Linux和WIN10之间的信息传输(实验详解)

    详解FTP服务完成Linux和WIN10之间的信息传输(实验详解) 一.FTP简介 1. FTP服务--用来传输文件的协议 2.端口 3.数据连接模式 二.相关配置 1.安装FTP服务 2.设置匿名用 ...

  2. FTP服务搭建小白教程

    前言: 完成FTP服务搭建,实现局域网内所有用户电脑 可连接FTP服务 如 局域网内 所有用户电脑 都可以用 通过 此链接 ftp://10.14.152.150:21 链接到FTP服务器了 前期准备 ...

  3. linux下FTP服务搭建(1)

    1.FTP介绍: FTP (File Transfer Protocol,文件传输协议)主要用来文件传输,尤其适用于大文件传输,提供上传下载功能 FTP官方网站:https://filezilla-p ...

  4. 【FTP】FTP服务搭建

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

  5. FTP服务搭建与配置 (资源)

    2019独角兽企业重金招聘Python工程师标准>>> FTP介绍 • FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Inter ...

  6. FTP服务搭建与配置

    FTP介绍 大企业多使用自动化发布程序,例如:git等工具 使用vsftpd搭建ftp 安装vsftpd: yum install -y vsftpd 创建一个普通的系统用户: useradd -s ...

  7. linux下ftp服务教案,linux下ftp服务

    Linux ftp命令的一般格式如下: $ ftp 主机名/IP 其中"主机名/IP"是所要连接的远程机的主机名或IP地址.在命令行中,主机名属于选项,如果指定主机名,ftp将试图 ...

  8. FTP服务搭建(ftpd、pure-ftpd、vsftpd)

    1.简介: FTP(File Transfer Protocol)文件传输协议,用于控制网络文件双向 2.方式: FTP支持两种模式:Standard (PORT方式,主动方式),Passive (P ...

  9. windows server 2016下FTP服务搭建教程图文详解

    一.什么是FTP? FTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议,使得主机间可以共享文件. 接下来我给大家分享快速搭建FTP服务器的方法. 二.安 ...

最新文章

  1. MySQL 性能优化,索引和查询优化
  2. idea删除后能还原吗_热水管能过100度热水吗
  3. 人生致命的8个经典问题,你也常常犯傻
  4. MySQL 删除数据的最好的方式
  5. 聊一聊顺序消息(RocketMQ顺序消息的实现机制)
  6. Windows右键添加command(命令行)
  7. iText的一些总结
  8. DSSM模型的原理简介,预测两个句子的语义相似度
  9. 基础IT必备知识(一)
  10. java实现汽车租赁系统
  11. 混合 html5蓝牙打印小票怎么排版,蓝牙打印机打印小票项目版
  12. 美国无人机技术及相关项目
  13. OIS利率查询_图表加数据OIS隔夜基准利率掉期
  14. php网站扫描工具,网站目录文件扫描工具dirbuster
  15. 那李逵是穿山度岭 水浒
  16. 全面认识Scratch少儿编程
  17. Python socket 基于TCP协议智能门锁服务端
  18. 谜语大全及答案api调用实现
  19. 杭州儿童居住证续签(时间+入口)
  20. python 字节流分段_由Python历史「解密」Python底层逻辑

热门文章

  1. 家谱整站源码php_PHP中找家谱树的几种方法
  2. Vue 超级丝滑的路由动画
  3. 北斗三号频点_支持北斗三号全信号体制!第二代“天琴”芯片发布
  4. 什么是React受控组件和非受控组件
  5. 开机自动连接宽带方法
  6. 2021年量子计算的研发现状与未来展望
  7. oracle 自带性能监控,oracle的性能监控
  8. MapReducer——MapReduce编程案例:求部门的工资总额(2)
  9. 手机文件传云服务器失败怎么办,手机上传文件到云服务器上
  10. 服务器系统数据完全备份,2012服务器系统如何备份数据库