Linux系列讲解 —— FTP协议的应用
简单介绍一下FTP文件传输协议在linux系统中的应用。
目录
- 0. 基本概念
- 1. FTP Server
- 1.1 安装FTP Server
- 1.2 FTP Server开启和关闭
- 1.3 查看FTP Server是否开启
- 1.4 FTP服务器配置
- 2. FTP Client
- 2.1 lftp
- 2.2 ftp
- 2.3 sftp
- 2.4 文件资源管理器集成的ftp和sftp
- 3. ftp常用命令
0. 基本概念
FTP (File Transfer Protocol):文件传输协议。
FTP是一种用于在TCP/IP网络上进行通信和文件传输的协议。FTP大概可以分为两部分:FTP Server
和FTP Client
。用户可以在FTP服务器(也称为FTP主机/站点)上接收和传输文件。FTP客户端通过TCP协议连接到FTP服务器,并使用FTP指令与其进行通信。FTP客户端可以浏览远程FTP服务器中的文件和目录,并从FTP服务器下载文件或将文件上传到FTP服务器。
FTP数据传输可以使用两种模式:主动模式和被动模式。在主动模式下,FTP服务器向FTP客户端发送数据;而在被动模式下,FTP客户端向FTP服务器发送数据。
FTP通常使用标准的21号端口进行通信。但是,FTP协议不支持加密,因此在传输敏感信息时需要采取其他安全措施。例如,SFTP (Secure File Transfer Protocol)是一种基于SSH(Secure Shell)协议的加密协议,用于在安全网络上进行文件传输。
1. FTP Server
1.1 安装FTP Server
sudo apt install vsftpd
1.2 FTP Server开启和关闭
#启动服务
sudo service vsftpd start#关闭服务
sudo service vsftpd stop#重启服务
sudo service vsftpd restart
1.3 查看FTP Server是否开启
sudo service vsftpd status
开启状态:
关闭状态:
1.4 FTP服务器配置
vsftpd的配置文件为/etc/vsftpd.conf
,下面讲一下必要的配置选项。
1.使用本地用户登录ftp服务器
参数 | 说明 |
---|---|
local_enable=YES | 允许本地用户登录。 |
write_enable=YES | 允许写,如果不设置或者为NO,则不能上传或删除文件。 |
local_umask=077 | 本地用户的权限掩码,不设置的情况下默认为八进制数077。 |
注:要保证登录ftp的用户或者该用户所在组对目标目录有读写权限,反例如下
2.使用匿名用户登录ftp服务器
参数 | 说明 |
---|---|
anonymous_enable=YES | 允许匿名登录。 |
anon_root=/home/sun/anondir | 匿名用户的根目录,自定义路径。必须设置,否则匿名登录后,没有目录可用。 |
write_enable=YES | 允许写,如果不设置或者为NO,则anon_other_write_enable,anon_upload_enable的设置都会无效。 |
anon_other_write_enable=YES | 允许匿名用户写操作,不设置或者为NO,则无法删除文件。需要 write_enable=YES ,否则无效。 |
anon_upload_enable=YES | 允许匿名用户上传文件,需要 write_enable=YES ,否则无效。 |
anon_mkdir_write_enable=YES | 允许匿名用户创建文件夹,需要 write_enable=YES ,否则无效。 |
anon_umask=077 | 匿名用户的权限掩码,不设置的情况下默认为八进制数077。 |
关于匿名用户登录有两个注意点:
(1) 和本地用户登录ftp服务器情况的注意点类似,ftp匿名用户就相当于other用户,保证other用户对目标目录拥有读写权限。
(2) 在ftp服务器上,匿名用户根目录
的其他人权限
不能设置可写权限,如果设置了可写权限,那么ftp匿名登录会报错。
2. FTP Client
2.1 lftp
lftp比ftp多了tab键补全,命令行显示当前路径,推荐用这个。
安装命令:
sudo apt install lftp
基本用法:
lftp ip地址
例:用administrator登录192.168.1.7主机
例:匿名登录192.168.1.7主机
需要ftp服务器配置了匿名登录。如何配置ftp服务器匿名登录,linux系统可以看上面FTP Server的部分。
sun@sun-pc:~$ lftp 192.168.1.7
lftp 192.168.1.7:~>
2.2 ftp
ubuntu自带,明文传输,没有tab补全功能,命令行不显示当前路径。
安装命令:
sudo apt install ftp
基本用法:
ftp ip地址
例:用户administrator登录192.168.1.7主机
例:匿名登录192.168.1.7主机
需要ftp服务器配置了匿名登录。如何配置ftp服务器匿名登录,linux系统可以看上面FTP Server的部分。
2.3 sftp
sftp也是ubuntu自带的,和ftp客户端类似,多了一个ssh加密传输,这里就不细讲了。
2.4 文件资源管理器集成的ftp和sftp
ubuntu的文件资源管理器自带了ftp和sftp等客户端,如下
3. ftp常用命令
ftp的命令基本都和linux内建命令相同,但是没有linux命令多。登录ftp服务器后,就可以使用下面命令了。
# 上传文件到当前ftp服务器,put的时候可以按tab键会提示本地机器当前目录有哪些文件
put 文件# 从当前ftp服务器下载文件
get 文件# 查看有哪些文件,文件夹
ls 或 ls -l# 查看文件内容
cat 文件# 切换目录
cd 路径# 创建文件夹
mkdir 文件夹# 删除文件或目录
rm 或 rm -r# 退出登录,其中exit只有linux系统的ftp客户端有效
bye 或 quit 或 exit
相关文章:

Linux系列讲解 —— FTP协议的应用
简单介绍一下FTP文件传输协议在linux系统中的应用。 目录 0. 基本概念1. FTP Server1.1 安装FTP Server1.2 FTP Server开启和关闭1.3 查看FTP Server是否开启1.4 FTP服务器配置 2. FTP Client2.1 lftp2.2 ftp2.3 sftp2.4 文件资源管理器集成的ftp和sftp 3. ftp常用命令 0. 基本…...

Rancher-RKE-install 部署k8s集群
一、为什么用Rancher-RKE-install 1.CNCF认证的k8s安装程序。 2.有中文文档。 二、安装步骤 1.下载Rancher-Rke的二进制包-下面是项目的地址 GitHub - rancher/rke: Rancher Kubernetes Engine (RKE), an extremely simple, lightning fast Kubernetes distrib…...

PHP8的正则表达式-PHP8知识详解
在网页程序的时候,经常会有查找符合某些复杂规则的字符串的需求。正则表达式就是描述这些规则的工具。 正则表达式是把文本或者字符串按照一定的规范或模型表示的方法,经常用于文本的匹配操作。 例如:我们在填写手机号码的时候,…...

SpringCloud实用篇7——深入elasticsearch
目录 1 数据聚合1.1 聚合的种类1.2 DSL实现聚合1.2.1 Bucket聚合语法1.2.2 聚合结果排序1.2.3 限定聚合范围1.2.4 Metric聚合语法1.2.5.小结 1.3 RestAPI实现聚合1.3.1 API语法1.3.2 业务需求1.3.3 业务实现 2 自动补全2.1 拼音分词器2.2 自定义分词器2.3 自动补全查询2.4 实现…...

uni-app 经验分享,从入门到离职(二)—— tabBar 底部导航栏实战篇
文章目录 📋前言⏬关于专栏 🎯关于小程序 tabbar 的一些知识🎯创建一个基本的 tabBar📝最后 📋前言 这篇文章的内容主题是关于小程序的 tabBar 底部导航栏的入门使用和实战技巧。通过上一篇文章的基础,我们…...

Java虚拟机(JVM):内存区域
一、内存区域介绍 Java虚拟机(JVM)内存可以分为以下几个区域: 程序计数器(Program Counter Register):用于记录当前线程执行的字节码指令的地址,属于线程私有的区域。在任意时刻,一…...

11 - git stash 开发中临时加塞了紧急任务怎么处理
查看所有文章链接:(更新中)GIT常用场景- 目录 文章目录 开发中临时加塞了紧急任务怎么处理 开发中临时加塞了紧急任务怎么处理 当你此时工作区已经修改了 Readme 文件,然后突然需要解决其他问题(紧急问题、新任务&…...

高效的WMS系统手持盘点方案
WMS系统手持盘点就是指利用WMS系统支持的手持式电子盘点设备进行库存盘点的方式。 具体来说: - 手持盘点设备是一种小型的电子设备,具有移动条形码扫描功能,可以实时与WMS系统联通。 - WMS系统利用手持设备,可以给仓储人员下发具体的盘点任务,例如需要盘点的货位、商品等信息…...

Oracle分页技术
1、使用两层嵌套 SELECT *FROM (SELECT A.*, ROWNUM RNFROM (SELECT * FROM edw_t100_bal_all) AWHERE ROWNUM < 40)WHERE RN > 21; 2、使用between..and.. SELECT *FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM edw_t100_bal_all) A)WHERE RN between 21 and 40…...

2023-08-15 Untiy进阶 C#知识补充6——C#7主要功能与语法
文章目录 一、字面值改进二、out 内部声明 / 弃元三、ref 返回值四、本地函数五、抛出表达式六、元组七、模式匹配 注意:在此仅提及 Unity 开发中会用到的一些功能和特性,对于不适合在 Unity 中使用的内容会忽略。 C# 7 对应 Unity 版本࿱…...

logstash配置文件
input { kafka { topics > “xxxx” bootstrap_servers > “ip:port” auto_offset_reset > “xxxx” group_id > “xxxx” consumer_threads > 3 codec > “json” } } filter { grok { match > { “message” > ‘%{IP:client_ip} - - [%{HTTPDATE:…...

docker搭建lnmp(nginx+mysql57+php7.4)
docker搭建lnmp(nginxmysql57php7.4) 1. 准备工作 docker安装 $ sudo yum update $ sudo sudo yum install -y yum-utils device-mapper-persistent-data lvm2 $ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo $ sudo…...

专访 BlockPI:共建账户抽象未来的新一代 RPC 基础设施
在传统 RPC 服务板块上,开发者一直饱受故障风险、运行环境混乱等难题的折磨。实现 RPC 服务的去中心化,且保持成本优势和可扩展性,始终是区块链基础设施建设的重要命题之一。从 2018 年观察中心化 RPC 供应商服务现状开始,BlockPI…...

js fetch请求中断的几种方式
1、通过AbortController 这是官方标准手段,真正意义的阻止请求(不支持ie) 后端接口设置的两秒返回数据 function myFetch() {const controller new AbortController();const signal controller.signal;fetch(http://localhost:3000/aaa/…...

Python自动化实战之使用Selenium进行Web自动化详解
概要 为了完成一项重复的任务,你需要在网站上进行大量的点击和操作,每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中,我们将会介绍如何使用Python的Selenium库进行Web自动化,以及如何…...

“之江数据安全治理论坛”暨《浙江省汽车数据处理活动规定(专家建议稿)》研讨会顺利召开
研讨会主题 8月10日,“之江数据安全治理论坛”暨《浙江省汽车数据处理活动规定(专家建议稿)》研讨会在浙江大学计算机创新技术研究院举办。 本次研讨会的主题聚焦于“智能网联汽车的数据安全与数据合规”,邀请行业主管部门和数据…...

消息中间件面试题
异步发送(验证码、短信、邮件…) MYSQL和Redis,ES之间的数据同步 分布式事务 削峰填谷 RabbitMQ如何保证消息不丢失? 开启生产者确认机制,确保生产者的消息能到达队列 开启持久化功能,确保消息未消费前在队列中不会丢失 开启消费…...

麻辣烫数据可视化,麻辣烫市场将持续蓬勃发展
麻辣烫,这道源自中国的美食,早已成为人们生活中不可或缺的一部分。它独特的香辣口味,让人忍不住每每流连忘返。与人们的关系,简直如同挚友一般。每当寒冷的冬日或疲惫的时刻,麻辣烫总是悄然走进人们的心房,…...

大数据课程J1——Scala的概述
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Scala的特点; ⚪ 了解Scala的开发环境搭建; ⚪ 了解Scala的开发工具; 一、概述 1.简介 Scala既是面向对象的语言,也是面向函数的语言。scala可以为你在做大量代码重用和扩展是提…...

第二章:25+ Python 数据操作教程(第十三节NUMPY 教程与练习)
NumPy(“Numerical Python”或“Numeric Python”的缩写)是 Python 中对数组和矩阵进行快速数学计算的最基本的软件包之一。在处理多维数据时它也非常有用。集成C、C++和FORTRAN工具是一件幸事。它还提供了许多傅里叶变换 (FT) 和线性代数函数。 为什么使用 NumPy 而不是列…...

【Java面试】如果一个线程两次调用start(),会出现什么问题?
这个问题出自阿里p6岗位第一面的提问,你会回答吗? 在Java里面,一个线程只能调用一次start()方法,第二次调用会抛出IllegalThreadStateException异常。 一个线程本身是具备一个生命周期的。 在Java里面,线程的生命周…...

购买steam余额有风险吗?以及N种被红锁的情况
购买steam余额有风险吗?以及N种被红锁的情况 无论是打游戏的玩家,还是像我们这类靠倒卖装备赚钱的小商贩,都面临充值美金余额的问题,我们现在主要是找的专业充值渠道做代充。 最近我发现群里有极个别学员通过自己的方法找到了一…...

使用 BERT 进行文本分类 (02/3)
一、说明 在使用BERT(1)进行文本分类中,我向您展示了一个BERT如何标记文本的示例。在下面的文章中,让我们更深入地研究是否可以使用 BERT 来预测文本是使用 PyTorch 传达积极还是消极的情绪。首先,我们需要准备数据…...

基于Hadoop的表级监管
现状 大数据平台中,采用hadoop的方式存储数据,hdfs本质上是文件系统,而文件系统对数据的监管能力有限,但是数据安全领域问题日渐凸显,现目前,大数据平台一般以分层结构进行授权,但是对于一线开发人员而言,是能够接触到整个大数据平台中的所有表的,那么如何实现这样一…...

【学习日记】【FreeRTOS】延时列表的实现
前言 本文在前面文章的基础上实现了延时列表,取消了 TCB 中的延时参数。 本文是对野火 RTOS 教程的笔记,融入了笔者的理解,代码大部分来自野火。 一、如何更高效地查找延时到期的任务 1. 朴素方式 在本文之前,我们使用了一种朴…...

LeetCode解法汇总833. 字符串中的查找与替换
目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 你会得到一…...

ide internal errors【bug】
ide internal errors【bug】 前言版权ide internal errors错误产生相关资源解决1解决2 设置虚拟内存最后 前言 2023-8-15 12:36:59 以下内容源自《【bug】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是h…...

阿里云与中国中医科学院合作,推动中医药行业数字化和智能化发展
据相关媒体消息,阿里云与中国中医科学院的合作旨在推动中医药行业的数字化和智能化发展。随着互联网的进步和相关政策的支持,中医药产业受到了国家的高度关注。这次合作将以“互联网 中医药”为载体,致力于推进中医药文化的传承和创新发展。…...

【Redis】Redis 的学习教程(五)之 SpringBoot 集成 Redis
在前几篇文章中,我们详细介绍了 Redis 的一些功能特性以及主流的 java 客户端 api 使用方法。 在当前流行的微服务以及分布式集群环境下,Redis 的使用场景可以说非常的广泛,能解决集群环境下系统中遇到的不少技术问题,在此列举几…...

github以及上传代码处理
最近在github上传代码的时候出现了: /video_parser# git push -u origin main Username for https://github.com: gtnyxxx Password for https://gtny2010github.com: remote: Support for password authentication was removed on August 13, 2021. remote: Plea…...