1配置

    vsftpd-3.0.2-27.el7.x86_64

    阿里云 centos 7.0

2 ftp工作模式

2.1 ftp通道

ftp工作会启动两个通道:

控制通道,数据通道

在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式)

2.2 port模式

在客户端需要接收数据时,ftp_client(大于1024的随机端口)----port命令-----ftp_server(21)发送port命令,这个port命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通过自己的tcp 20端口和port中包含的端口建立新的连接来传送数据。

2.3 pasv模式

传送数据时,ftp_client---pasv命令---ftp_server(21)发送pasv命令时,ftp_server自动打开一个1024--5000之间的随机端口并且通知ftp_client在这个端口上传送数据,然后客户端向指定的端口发出请求连接,建立一条数据链路进行数据传输。

3 安装vsftp

# rpm -qa vsftpd     #检查是否已安装

# yum -y install vsftpd

# chkconfig --level 35 vsftpd on     #设置开机自启动

# chkconfig --list|grep vsftpd       #检查开机是否是自动启动

4 ftp文件说明

# rpm -ql vsftpd

/etc/logrotate.d/vsftpd       #vsftpd的日志文件

/etc/pam.d/vsftpd           #PAM认证文件

/etc/rc.d/init.d/vsftpd        #启动脚本

/etc/vsftpd                 #vsftpd的配置文件存放目录

/etc/vsftpd/ftpusers         #禁止使用vsftpd的用户列表文件

/etc/vsftpd/user_list         #禁止或允许使用vsftpd的用户列表文件

/etc/vsftpd/vsftpd.conf       #ftp的主配置文件

/etc/vsftpd/vsftpd_conf_migrate.sh      #vsftpd操作的一些变量和设置

/var/ftp                 #匿名用户目录

/var/ftp/pub             匿名用户的下载目录

5 配置ftp

5.1 vsftpd.conf文件参数说明

# vim /etc/vsftpd/vsftpd.conf

在编写完之后,想要保存并退出,必须先敲击键盘Esc键从输入模式返回命令模式,然后再输入 :wq!切换到末行模式才能完成保存退出操作,如图


#修改下列参数的值
#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#监听IPv4 sockets
listen=YES
#在行首添加#注释掉以下参数,关闭监听IPv6 sockets,ipv4和ipv6二者只能开其一
#listen_ipv6=YES
#添加下列参数
#设置本地用户登录后所在目录
local_root=/var/ftp/test
#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
#chroot_list_enable=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式
pasv_enable=YES
allow_writeable_chroot=YES
#本教程中为Linux实例公网IP
pasv_address=<FTP服务器公网IP地址>
#设置被动模式下,建立数据传输可使用的端口范围的最小值
pasv_min_port=<port number>
#设置被动模式下,建立数据传输可使用的端口范围的最大值
pasv_max_port=<port number>

5.2 关闭selinux

# setenforce 0

# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

6 创建虚拟用户

6.1 创建一个用户

创建用户后修改用户的shell为nologin,让用户不能登录系统,只能使用ftp之内的服务
法一:
# useradd -d /home/ftp/test -g ftp -s /sbin/nologin test # echo 123456|passwd --stdin test #设置test密码为123456
  “注:1、echo “新密码”|passwd --stdin 用户名”
     2、这里建议密码难度稍大一点,不然很容易被暴力破解

法二:
1、运行以下命令为FTP服务创建一个Linux用户。本示例中,该用户名为ftptest。

 # adduser ftptest

2、运行以下命令修改ftptest用户的密码。

# passwd ftptest

3、运行以下命令创建一个供FTP服务使用的文件目录。

# mkdir /var/ftp/test

4、运行以下命令更改/var/ftp/test目录的拥有者为ftptest。

hown -R ftptest:ftptest /var/ftp/test

6.2 将用户test添加到chroot_list中

# touch /etc/vsftpd/chroot_list  

# echo test >>/etc/vsftpd/chroot_list

“注:目录/etc/vsftpd.chroot_list,加入可以到家目录外的用户,一行一个用户”

6.3 启动vsftp服务

法一:
# service vsftpd start 法二:
# /etc/init.d/vsftpd start listen=YES

若法一错误
激活vsftpd,并设置其运行级别:
# chkconfig --level 35 vsftpd on
# service vsftpd start

Vsftpd服务重启、暂停命令

在使用Vsftp服务是经常需要启动、停止、重启vsftp服务,下面是这几个操作使用的指令:

  1、启动Vsftpd服务其命令为: service vsftpd start 或 /etc/init.d/vsftpd start

  2、停止Vsftpd服务的命令为:service vsftpd stop 或 /etc/init.d/vsftpd stop

  3、重新启动Vsftpd服务的命令为:service vsftpd restart 或 /etc/init.d/vsftpd restart

  4、检查Vsftpd服务的运行状态:service vsftpd status

6.4 登陆ftp方式

6.4.1 文件夹登陆

在文件夹路径框输入:ftp:// ip:port  按回车登陆(端口默认21,可以省略)

6.4.2 浏览器登陆

浏览器里输入   输入用户名test和密码123456进行测试

6.4.3 cmd命令行登陆

打开windows cmd窗口输入:ftp ip 按回车输入用户名和密码登陆

6.4.4 第三方客户端登陆

比如xftp客户端登陆

7 其他参数说明

max_client=100              #vsftpd最大支持链接数100个ip

max_per=5                  #每个ip能支持的5个链接

local_max_rate=81920         #限制传输速度

listen_address=ip              #绑定某个ip到vsftpd,只允许该ip访问

xferlog_file=/var/log/vsftpd.log   #日志存放位置

开放FTP端口的方法:

暂时开放 ftp 服务

firewall-cmd --add-service=ftp

永久开放 ftp 服务

firewall-cmd --add-service=ftp --permanent

永久关闭ftp服务

firewall-cmd --remove-service=ftp --permanent

重启防火墙让设定生效

systemctl restart firewalld

firewalld的基本使用--------

启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld

CentOS7使用firewalld打开关闭防火墙与端口

本文参考:阿里云手册

阿里云 CentOS7中搭建FTP服务器的更多相关文章

  1. [FTP]通过FileZilla在阿里云主机上搭建ftp服务器

    前一阵子租了一台服务器主机来玩,正好周末有时间研究了一下怎么搭建ftp server. 准备.首先要下载filezilla client和filezilla server, 下载地址: server: ...

  2. centos7中搭建ftp服务

    博客搬家: centos7中搭建ftp服务 最近想和同学共享一些文件资源,于是在实验室服务器上搭建个ftp服务,本博客记录一下配置的流程.过程基本是参照别人的方法来做的,博客也是在别人博客基础上修改的 ...

  3. Windows中搭建ftp服务器

    使用工具Quick Easy FTP Server Windows中搭建FTP服务器有什么用呢? 确实没有用,直到有一次,我在VM中安装了Linux虚拟机,但是文件怎么也上传不到这个虚拟机中. 然后用 ...

  4. 腾讯云服务器linux centOS7.4 搭建ftp服务器 vsftpd

    腾讯云服务器linux centos 7.4 搭建ftp服务器 vsftpd 在centos 7.3测试也是OK的,其它版本没有实验 # 安装 vsftpd $ yum install vsftpd ...

  5. 在Ubuntu Server 14.04中搭建FTP服务器(VMWare)

    自己搭建ftp服务器,方便主机与虚拟机中的Ubuntu传输文件. 选用的ftp软件为vsftpd. 1.命令行: sudo apt-get install vsftpd 2.安装完配置: vsftpd ...

  6. Linux中搭建FTP服务器

    FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp 2 ...

  7. 白嫖永久免费云服务器教程,永久免费虚拟主机、永久免费云数据库、搭建FTP服务器、服务器安装Linux / windows操作系统、服务器部署网站、宝塔一键部署多网站、独立ip、永久国内高速云服务器

    一.准备工作 1. 注册账号 声明:切记不可用服务器做违法的事情 申请地址:https://www.sanfengyun.com/ 图文教程地址:https://www.cnblogs.com/zwn ...

  8. 阿里云CentOS7.3搭建多用户私有git服务器(从安装git开始)

    起因 自己会有练手的不敢公开的项目,就自己搭建个服务器放自己的渣代码了. 在经历了连不上服务器.没有访问权限.没法提交以后,我打通了任督二脉. 我这个git服务器适合条件:1.就那么几个人小项目,不是 ...

  9. 阿里云 CentOS7.2 配置FTP+Node.js环境

    本人小白,写下这篇博客意在记录踩过的坑,大神请绕道~ 准备工作 安装自己喜欢的连接软件(一般是putty或者xshell),本人选择的是xshell,软件如图 : 通过软件中的ssh连接连接上已经购买 ...

随机推荐

  1. 一听就懂:用Python做一个超简单的小游戏

    写它会用到 while 循环random 模块if 语句输入输出函数

  2. draggable()拖拽时限制移动区域

    jQuery-UI为我们提供了一个非常便捷的拖拽方法:draggable(),在使用此方法时,我们可能会希望控件只在某一区域中移动,不能被拖出边界,这样的话我们可以使用下面的方法: 调用draggab ...

  3. MGRE实验--内网为OSPF

    实验要求: R2为ISP,只能配置IP地址 R1.R3.R4之间构建MGRE环境,仅R1IP地址固定 内网使用OSPF获取路由,全网可达 拓扑: 1.配置IP地址 2.配置缺省 3.配置MGRE环境 ...

  4. 深入浅出JVM(一):你写得.java文件是如何被加载到内存中执行的

    众所周知,.java文件需要经过编译生成.class文件才能被JVM执行. 其中,JVM是如何加载.class文件,又做了些什么呢? .class文件通过 加载->验证->准备->解 ...

  5. 又一个小而美的Java 开发框架: Solon 1.2 新篇

    Solon 1.2 发布后,取消了X类名前缀.故对此文做些调整. Solon 是Java世界里一个新的极易上手的Java开发框架.参考过 Javalin . Spring boot 等很多现有框架的设 ...

  6. 用yum安装软件提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法

    *无法联网的明显表现会有: 1.yum install出现 Error: cannot find a valid baseurl or repo:base 2.ping host会提示unknown ...

  7. mysql数据库连接java

    1 1.创建配置文件jdbc.properties 2 3 jdbc.driver=com.mysql.jdbc.Driver 4 jdbc.url=jdbc:mysql://localhost:33 ...

  8. [linux]makefile多目录

    在使用makefile多目录编写前需要掌握几个函数及符号 自定义变量 target=edit 引用的时候直接使用 $(target) 有点像C语言中的#define,这里的 $(target)会被替换 ...

  9. Java GC --- Java堆内存

    Java堆是被所有线程共享的一块内存区域,所有对象实例和数组都在堆上进行内存分配.为了进行高效的垃圾回收,虚拟机把堆内存划分成: 1. 新生代(Young Generation): 由 Eden 与 ...

  10. 风炫安全WEB安全学习第二十三节课 利用XSS获取COOKIE

    风炫安全WEB安全学习第二十三节课 利用XSS获取COOKIE XSS如何利用 获取COOKIE 我们使用pikachu写的pkxss后台 使用方法: <img src="http:/ ...