Linux搭建FTP服务
欢迎来到千汐
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服务的更多相关文章
- Linux——搭建FTP服务
一.FTP基本概念: 1.FTP的作用: 实现文件系统的安全匿名访问:包括上传.下载和查看,可以应用于Windows和Linux系统 2.FTP的工作原理 server与client都支持ftp传输协 ...
- linux 搭建ftp服务并设置限制访问目录
服务器有好几个项目,新项目前端外包,因为要微信授权登陆,所以前端没有办法本地调试,必须上次ftp在我们服务器上调试代码,当然要限制ftp访问的目录,否则整个服务器项目都能看到了. 安装vsftpd s ...
- linux 搭建ftp服务
一. 安装ftp yum -y install vsftpd 二.配置 安装完之后在/etc/vsftpd/路径下会存在三个配置文件. vsftpd.conf: 主配置文件 ftpusers: 指定哪 ...
- Linux下搭建ftp服务
Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包 ...
- Linux(Centos7) 实例搭建 FTP 服务
本文以 CentOS 7.2 64位系统为例,使用 vsftpd 作为 FTP 服务端,FileZilla 作为客户端.指导您如何在 Linux 云服务器上搭建 FTP 服务. 操作步骤 安装 vsf ...
- Linux:服务器(CentOS)搭建FTP服务
Vsftpd(very secure FTP deamon)是众多Linux发行版中默认的FTP服务器.本文以CentOS 8(腾讯云)服务器为例,使用vsftpd搭建Linux云服务器的FTP服务器 ...
- Linux centosVMware xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务
一.xshell使用xftp传输文件 Ctrl+Alt+F 弹出 下载进入 填写任意名字,自己邮箱 进入邮箱点击网址就自动下载了 然后安装 二.使用pure-ftpd搭建ftp服务 yum insta ...
- 使用Linux搭建FTP服务器实现文件共享
使用Linux搭建FTP服务器实现文件共享... ---------------- Linux中的文件共享:FTPVSFTPDVSFTPD虚拟用户 FTP可以用在Linux与Linux 和Window ...
- Linux 搭建FTP
Linux 搭建FTP 步骤一:安装 vsftpd 1,运行以下命令安装 vsftpd. yum install -y vsftpd 出现下图表示安装成功. 2,打开etc/vsftpd cd /et ...
- 快速搭建FTP服务
Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包 ...
随机推荐
- Linux shell字符操作总结
各符号介绍 字符串长度统计 ${#string}: 字符串string的长度 字符串截取 ${string#*substring}: 从左到右截取特定字符substring第一次出现位置之后的字符串 ...
- 内存取证 volatility的使用
volatility 简介: volatility(挖楼推了推) 是一个开源的框架,能够对导出的内存镜像进行分析,能够通过获取内核的数据结构,使用插件获取内存的详细情况和运行状态,同时可以直接dump ...
- Sql 注入方案合集
[以mysql 数据库为例] [参考书目:sqlilabs过关手册注入天书 https://www.cnblogs.com/lcamry/category/846064.html] 推荐看原书,这篇文 ...
- 页面录制服务上线:RESTful API 调用实现,所见所录即所得
我们为很多实时互动场景提供了服务.在一些场景中,用户不仅需要实时互动,还需要把互动的过程录下来.那么一个好的录制解决方案究竟需要具备哪些特征呢? 在回答这个问题之前,先聊一下客户使用录制的原因.一般来 ...
- salesforce零基础学习(一百二十八)Durable Id获取以及相关概念浅入浅出
本篇参考: salesforce 零基础开发入门学习(十一)sObject及Schema深入 https://developer.salesforce.com/docs/atlas.en-us.api ...
- 制作一个同时具有PE和Windows原版安装方式的U盘
这个方法可能很多人已经制作成功过了,但是呢,也有些人不会的,也可能没想到过,那就是让Win PE与Windows原版安装包在一个U盘里面同时共存. 需要用到的软件有这几样:DiskGenius.Gim ...
- 谁能真正替代你?AI辅助编码工具深度对比(chatGPT/Copilot/Cursor/New Bing)
写在开头 这几个月AI相关新闻的火爆程度大家都已经看见了,作为一个被裹挟在AI时代浪潮中的程序员,在这几个月里我也是异常兴奋和焦虑.甚至都兴奋的不想拖更了.不仅仅兴奋于AI对于我们生产力的全面提升,也 ...
- 【论文翻译】LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 论文地址:https://arxiv.org/pdf/2106.09685.pdf 代码地址:ht ...
- python中的强制等待、隐性等待、显性等待
运行结果过程中出现Unable to locate element时,1.先确定元素是否定位有误.2.再确定运行过程中是否等待不到位,可以截图,查看查找时页面的状态. 1.使用强制等待 --辅助 2. ...
- PySimpleGU之运行多个窗口
这是PySimpleGUI继续简单的地方,但是问题空间刚刚进入了"复杂"领域. 如果您希望在事件循环中运行多个窗口,则有两种方法可以执行此操作. 当第二个窗口可见时,第一个窗口不会 ...