欢迎来到千汐

 

博客名称:千秋云染
博客网址:https://www.cnblogs.com/skyrainmom

寄语:在混乱不堪的世界里你只管前行,时间替会证明一切

world cookie

Hello,World!

 

FTP服务器:

文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的协议。如果用户需要将文件从本机发送到另一台计算机,可以使用FTP上传操作;反之,用户可以使用FTP从其他计算机将文件下载到本机。

FTP不挑操作系统,可支持Windows与Linux,且两大操作系统的FTP服务端口号均为21,客户端端口随机,但PORT >1024。

FTP采用C/S架构,用户通过FTP客户端程序连接到FTP服务器,实现文件传输

1,控制连接(存在传输端口)

FTP客户端希望与FTP服务器建立上传,下载的数据时,它首先向FTP服务器的TCP21号端口发起连接的请求,FTP服务器接受来自FTP客户端的请求,完成控制连接的建立。

2,数据连接(存在数据端口)

控制连接建立后,可以开始传输文件,传输文件数据的连接称为数据连接,数据连接使用TCP20号端口。

注意:数据连接存在的时间段内,控制连接也同时存在,一旦控制连接断开,数据连接也会自动关闭。

FTP的数据传输模式:

1,主动模式(POST)

在主动模式下,客户端随机打开一个端口号大于1024的N号端口,向服务端的21号端口发起连接,并向服务器发出“PORT N+1”命令,同时开放N+1号端口进行监听。服务器接受到该命令后,默认使用服务器的20号端口主动与客户端指定的N+1号端口建立数据连接,进行数据传输。

2,被动模式(PASV)

在被动模式下,客户端随机打开两个端口,分别是端口号大于1024的N号端口和N+1号端口,然后使用N号端口向服务器的21号端口发起连接,并向服务器发出“PASV”命令,通知服务器使用被动模式。服务器收到命令后,开放一个端口号大于1024的P端口进行监听,然后用“PORT P”命令通知客户端自己的数据端口是P。客户端收到指令后,再通过N+1号端口与服务器的P端口建立数据连接,然后进行数据传输

两种模式的不同点及优缺点:

1,主动模式的FTP的控制方向与数据连接方向相反,客户端向服务器建立控制连接,而服务器主动向客户端建立数据连接;被动模式下FTP的控制方向与数据连接方向相同,被动模式中控制连接与数据连接都由客户端发起,服务器只是被动地接受连接。

2,主动模式对于客户端的防火墙来说,数据连接是从外部到内部的连接,可能会被防火墙阻塞;被动模式解决了从服务器主动连接客户端的数据端口被防火墙阻塞的问题,在互联网上,客户端通常没有独立的公网IP地址,服务器主动连接客户端的难度太大,因此,FTP服务器大多采用被动模式。

主动传输:下载文件

被动传输:上传文件

FTP服务器用户:

1,匿名用户

如果FTP服务器提供匿名访问功能,则该类用户可以匿名访问服务器上的某些公开资源。使用匿名用户访问FTP服务器时,使用anonymous或ftp账户及任意口令登录(NULL也行)。匿名用户登录后,默认目录为匿名FTP服务器的根目录(不是系统根目录)。一般情况下,匿名FTP服务器只会提供下载功能,不提供上传功能或上传功能受到一定的限制。

2,本地用户(服务器上创建好的用户)

本地用户在FTP服务器上拥有shell登录用户。该类用户访问FTP服务器时,可以通过

自己的账户和口令授权登录。本地用户登录后,默认目录就是该用户自己的家目录,而且可以变更到其他目录(可以访问宿主目录和其他目录)。本地用户在FTP服务器中既可以下载内容,又可以上传内容。

3,虚拟用户

虚拟用户在FTP服务器上只能访问其主目录中的文件。不能访问其主目录以外的文件(只能访问宿主目录)。由于虚拟用户并非系统中真实存在的用户,仅供FTP服务器认证使用(仅用来进行口令认证),因此,FTP服务器通过这种方式来保障服务器上其他用户的安全。通常,虚拟用户在FTP服务器中即可以下载内容,又可以上传内容。

配置FTP服务:

FTP在Linux中即为vsftpd

1,实现服务器与客户端网路互通,进行Linux的网路配置环节,改网卡配置文件(切换root用户登录,root用户才有改的权限),实现Linux与Windowns互ping,二者ping通即可。

2,配置yum仓库

(1)挂载镜像:进入虚拟机设置连接镜像,终端输入以下命令:mount  /dev/cdrom /media(cdrom后面一定要加空格再加/media或/mnt均可)

(2)创建yum仓库:终端输入以下命令:vim /etc/yum.repo.d/local.repo

写local.repo文件参数:

[local(不唯一,与name后面跟的参数相同即可)]

name=local(上面中括号内对应参数名)

baseurl=file:///media(光盘挂载目录)

gpgcheck=0 (用于校验软件包来源的安全性,0为不校验,1为校验)

enabled=1 (用于设置是否启用该仓库源,0为不启用,1为启用)

(3)清空缓存:终端输入以下命令:yum clean all

(4)检索:终端输入以下命令:yum repolist

3,创建共享文件夹

终端输入以下命令:mkdir /opt/fipdir

4,安装vsftpd(FTP)服务的安装包

终端输入以下命令:yum -y install vsftpd

5,配置vsftpd.conf文件

终端输入以下命令:vim /etc/vsftpd/vsftpd.conf

(1)在第一个参数前加:anon_root=/opt/ftpdir  (等号两侧不允许有空格)

6,重启服务

(1)终端输入以下命令:systemctl restart vsftpd

(2)确认vsftpd服务正常运行,查看21号端口是否被监听

终端输入以下命令:netstat -ntlp | grep vsftpd

7,设置自启动

终端输入以下命令:systemctl enable vsftpd

8,关防火墙

终端输入以下命令:systemctl stop firewalld (注意:Windowns也要关防火墙)

9,关闭SELinux安全子系统

终端输入以下命令:setenforce 0 (或者vi /etc/selinux/config 出现SELINUX,改它的 参数为disabled)

10,测试

在客户端为Windowns上,在“我的电脑”中“此电脑”一栏输入:ftp://(Linux配置的 IP地址)

访问不成功的原因与注意事项:

1,对于文件夹权限不足,自vsftpd2.3.5版本开始,如果用户被限定在FTP根目录下,则不允许对自己的根目录具有写权限,但对子目录并不限制写入,所以一般只修改根目录下的子目录问修改权限,权限问题还在于子目录的所有者是否为ftp,如需更改所有者,则:chown ftp:ftp <子目录文件名>

2,防火墙,通常解决防火墙阻拦的方法是直接关闭,一劳永逸,但是如果在开启的状态下设置放行ftp规则也是可以的:firewall-cmd --permanent --add-service=ftp

3,配置文件/etc/vsftpd/vsftpd.conf里面没有开启对于用户的写权限,以匿名用户为例:

A)anon_upload_enabled=YES     允许匿名用户上传文件

B)anon_mkdir_write_enable=YES   允许匿名用户创建文件

C)anon_other_write_enable=YES    允许匿名用户有其他写权限,如删除和重命名文件

值得注意的一点是:A,B项只有当write_enable=YES时,才会生效

4,安全子系统,selinux非常不建议改它的上下文和bool值,一般是直接setenforce 0关掉,若不关,就只有执行setsebool -P ftp_full_access=on的命令,去改bool值

Linux搭建FTP服务的更多相关文章

  1. Linux——搭建FTP服务

    一.FTP基本概念: 1.FTP的作用: 实现文件系统的安全匿名访问:包括上传.下载和查看,可以应用于Windows和Linux系统 2.FTP的工作原理 server与client都支持ftp传输协 ...

  2. linux 搭建ftp服务并设置限制访问目录

    服务器有好几个项目,新项目前端外包,因为要微信授权登陆,所以前端没有办法本地调试,必须上次ftp在我们服务器上调试代码,当然要限制ftp访问的目录,否则整个服务器项目都能看到了. 安装vsftpd s ...

  3. linux 搭建ftp服务

    一. 安装ftp yum -y install vsftpd 二.配置 安装完之后在/etc/vsftpd/路径下会存在三个配置文件. vsftpd.conf: 主配置文件 ftpusers: 指定哪 ...

  4. Linux下搭建ftp服务

    Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包 ...

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

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

  6. Linux:服务器(CentOS)搭建FTP服务

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

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

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

  8. 使用Linux搭建FTP服务器实现文件共享

    使用Linux搭建FTP服务器实现文件共享... ---------------- Linux中的文件共享:FTPVSFTPDVSFTPD虚拟用户 FTP可以用在Linux与Linux 和Window ...

  9. Linux 搭建FTP

    Linux 搭建FTP 步骤一:安装 vsftpd 1,运行以下命令安装 vsftpd. yum install -y vsftpd 出现下图表示安装成功. 2,打开etc/vsftpd cd /et ...

  10. 快速搭建FTP服务

    Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包 ...

随机推荐

  1. Spring源码分析之注册BeanDefinition

    测试代码 public class ContextApplication { public static void main(String[] args) { ClassPathXmlApplicat ...

  2. 网络安全(中职组)-B模块:暴力破解

    任务环境说明: 服务器场景名称:sql008 服务器场景用户名:administrator:密码:未知(封闭靶机) 1.使用渗透机场景kali中工具扫描服务器场景,将iis的版本号作为flag提交: ...

  3. 针对于Sql server突然连接不到服务器的解决方法

    问题叙述 点击连接之后,总是会弹出一个错误弹窗: 方法解决 快捷键Win+R,输入services.msc,进入到服务界面: 找到SQL 代理(DEV) 将手动打开改成自动 再连接试一次 连上啦! ( ...

  4. Android笔记--文本显示

    文本显示 设置文本内容 方式一: 在.xml文件中利用android:text属性设置文本 新创建一个.xml文件示范一下: 方式二: 在java代码中调用文本视图对象的setText方法设置文本 还 ...

  5. D - Swap Free Gym - 102423D 二分图性质:补图最大团 = 点的个数 - 最大匹配数

    题意:给你一个串的某些全排列,没有重的,让你求一个最大的集合能有多少个元素,集合的满足条件:交换一个串的任意两个位置上的字母,不能变成集合里的另一个串. 思路:如果一个串不能通过交换一次字母位置变成另 ...

  6. 表现标准语言CSS3学习 入门+导入方式

    表现标准语言CSS3学习 入门+导入方式 如何学习: css是什么 css怎么用(快速入门) css选择器(重点+难点) 美化网页(文字.阴影.超链接.列表.渐变...) 盒子模型 浮动 定位 网页动 ...

  7. 全局唯一ID的实现方案

    为什么需要保证唯一ID? 在单机服务架构中,数据库的每一个业务表的主键ID都是允许自增的,但是在分布式服务架构的分库分表的设计,使得多个库或者多个表存储了相同的业务表,如果没有一个全局的唯一ID设计方 ...

  8. Wondershare Recovery - 万兴数据恢复专家,恢复你 Mac 上的重要文件

    Wondershare Recoverit 是恢复被删除文件最有效的软件之一.计算机用户面临的一个主要问题是失去机密信息.我们可能是误删除了数据和文件,或者可能是由于病毒袭击.操作系统故障或硬盘故障而 ...

  9. win32api中文在线文档

    中文文档http://www.yfvb.com/help/win32sdk/ 英文手册https://www.jb51.net/books/724576.html

  10. Redis 数据类型 Zset

    Redis 数据类型 Zset(有序集合) Redis 常用命令,思维导图 >>> zset是Redis提供的一个非常特别的数据结构,常用作排行榜等功能,以用户id为value,关注 ...