Liunx系统中FTP与NFS
目录
一、FTP文件传输协议
1.1、FTP工作原理
1.2、FTP状态码
1.3、FTP用户类型
1.4、FTP软件vsftpd
1.4.1、安装vsftpd
1.4.2、vsftpd配置文件
二、NFS网络文件系统
2.1、NFS工作原理
2.2、NFS软件
2.3、NFS共享配置文件格式
2.4、NFS相关命令
2.4.1、exportfs
2.4.2、showmount
2.5、NFS模拟实操
2.5.1、服务器安装软件并进行配置
2.5.2、客户端进行挂载
一、FTP文件传输协议
FTP 是一种用于在网络上进行文件传输的协议,通常用于从远程服务器下载文件或向服务器上传文件。它工作在客户端-服务器架构下,客户端通过 FTP 客户端程序连接到 FTP 服务器进行文件操作。
1.1、FTP工作原理
FTP 使用TCP协议进行通信,通过21端口进行控制连接,数据传输默认使用20端口。FTP主要有两种模式:

- 主动模式:服务器主动连接客户端的数据端口。
- 被动模式:客户端请求服务器打开一个端口并进行数据连接。
1.2、FTP状态码
- 1XX:信息 125: 数据连接打开
- 2XX:成功类状态 200:命令OK 230:登录成功
- 3XX:补充类 331:用户名OK
- 4XX:客户端错误 425:不能打开数据连接
- 5XX:服务器错误 530:不能登录
1.3、FTP用户类型
- 匿名用户:anonymous,对应Linux用户ftp。
- 系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow。
- 虚拟用户:特定服务的专用用户,独立的用户/密码文件(这个用户不在 /etc/passwd 中,只是用来登录ftp的)
1.4、FTP软件vsftpd
1.4.1、安装vsftpd
[root@localhost ~]# yum install vsftpd -y //安装vsftpd软件
[root@localhost ~]# systemctl start vsftpd //开启软件
[root@localhost ~]# rpm -qc vsftpd //查看配置文件
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
1.4.2、vsftpd配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
//通过以下选项,可以对ftp协议做自定义设置
listen_port=xxx //默认端口为21,可改成指定端口
connect_from_port_20=YES //主动模式端口为20
ftp_data_port=20 //指定主动模式的端口pasv_min_port=6000 //被动模式,0为随机分配,端口范围会影响客户端的并发数
pasv_max_port=6010 //被动模式anonymous_enable=YES //支持匿名用户,CentOS8 默认不允许匿名
no_anon_password=YES //匿名用户略过口令检查 , 默认NOanon_upload_enable=YES //匿名上传,注意:文件系统权限
anon_mkdir_write_enable=YES //匿名建目录local_enable=YES //是否允许linux用户登录
write_enable=YES //允许linux用户上传文件
local_umask=022 //指定系统用户上传文件的默认权限对应umaskchroot_local_user=YES //禁锢系统用户,默认NO,即不禁锢
chroot_list_enable=YES //禁锢白名单,默认是NO
chroot_list_file=/etc/vsftpd/chroot_list //禁锢黑名单,当前为默认值
二、NFS网络文件系统
Network File System网络文件系统,允许在网络中不同的计算机之间共享文件系统。NFS使得远程的计算机能够像访问本地文件一样访问网络中的共享文件,非常适合在局域网(LAN)中进行文件共享。
2.1、NFS工作原理

- NFS服务器:提供文件系统资源并将其共享给客户端
- NFS客户端:通过网络访问并操作 NFS 服务器上的文件系统,客户端通过挂载共享的远程目录来访问远程文件。
2.2、NFS软件
- 软件包:nfs-utils (包括服务器和客户端)
- 关联软件包:rpcbind(必须,不必单独启动,会自动启动,centos7之前版本需要提前启动)
- 端口:2049(nfsd), 其它端口由portmap(111)分配。
- NFS服务主要进程:
- rpc.nfsd:最主要的NFS进程,管理客户端是否可登录
- rpc.mountd:挂载和卸载NFS文件系统,包括权限管理
- rpc.lockd:非必要,管理文件锁,避免同时写出错
- rpc.statd:非必要,检查文件一致性,可修复文件
- 日志:/var/lib/nfs/
2.3、NFS共享配置文件格式
配置文件路径为/etc/exports
[root@localhost ~]# vim /etc/exports//共享目录 共享的主机1(权限) 共享的主机2(权限)
/dir 主机1(opt1,opt2) 主机2(opt1,opt2)... //主要格式默认选项:(ro,sync,root_squash,no_all_squash)
ro,rw 只读和读写async 异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性
低sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高root_squash (默认)远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS 7以前的版本为nfsnobodyno_root_squash 远程root映射成NFS服务器的root用户all_squash 所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobodyno_all_squash (默认)保留共享文件的UID和GIDanonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用
2.4、NFS相关命令
2.4.1、exportfs
功能是管理NFS共享文件系统列表。
| -v | 显示共享目录 | -r | 重新共享所有目录 |
| -a | 打开或取消所有共享目录 | -u | 取消一个或多个共享目录 |
2.4.2、showmount
功能是显示NFS服务器的共享信息。
| -e | 显示NFS服务器上所有的共享目录 |
2.5、NFS模拟实操
2.5.1、服务器安装软件并进行配置
[root@localhost ~]# systemctl stop firewalld.service //关闭防火墙
[root@localhost ~]# setenforce 0 //关闭selinux
[root@localhost ~]# yum install nfs-utils rpcbind -y //安装软件更新完毕:nfs-utils.x86_64 1:1.3.0-0.68.el7.2 完毕![root@localhost ~]# mkdir /data //创建需要共享的文件夹
[root@localhost ~]# vim /etc/exports /data 192.168.153.0/24 //新增共享配置[root@localhost ~]# exportfs -r //刷新NFS配置
exportfs: No options for /data 192.168.153.0/24: suggest 192.168.153.0/24(sync) to avoid warning
[root@localhost ~]# exportfs -v //查看配置
/data 192.168.153.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,root_squash,no_all_squash)
[root@localhost ~]# systemctl start nfs //启动rpcbind软件
[root@localhost ~]# systemctl start rpcbind //启动rpcbind软件
2.5.2、客户端进行挂载
[root@localhost ~]# systemctl stop firewalld.service //关闭防火墙
[root@localhost ~]# setenforce 0 //关闭selinux
[root@localhost ~]# showmount -e 192.168.153.223 //查看共享信息
Export list for 192.168.153.223:
/data 192.168.153.0/24
[root@localhost ~]# mount 192.168.153.223:/data /mnt //临时挂载,可通过fstab永久挂载[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls //共享文件成功
for.sh testread.sh vs.sh
相关文章:
Liunx系统中FTP与NFS
目录 一、FTP文件传输协议 1.1、FTP工作原理 1.2、FTP状态码 1.3、FTP用户类型 1.4、FTP软件vsftpd 1.4.1、安装vsftpd 1.4.2、vsftpd配置文件 二、NFS网络文件系统 2.1、NFS工作原理 2.2、NFS软件 2.3、NFS共享配置文件格式 2.4、NFS相关命令 2.4.1、exportfs 2.…...
uniapp 测试 IPA 包安装到测试 iPhone
将uniapp测试IPA包安装到测试iPhone有以下几种方法: 使用Xcode安装 确保计算机上安装了Xcode,并将iOS设备通过数据线连接到计算机。打开Xcode,在菜单栏中选择Window->Devices and Simulators,在设备列表中找到要安装的iPhone…...
结构体指针传递给函数注意事项
在 C 语言中,传递结构体指针给函数是一种常见且高效的编程方式。不过,在实际操作时,有一些重要的注意事项需要留意,下面为你详细介绍: 1. 避免空指针引用 在函数内部使用结构体指针前,要先检查该指针是否为…...
mfy学习笔记
创建表并导入数据 CREATE TABLE sales (id INT,salesperson STRING,region STRING,sales_amount INT,sale_date DATE );INSERT INTO sales (id, salesperson, region, sales_amount, sale_date) VALUES (1, Alice, North, 1000, 2023-01-01), (2, Bob, South, 1500, 2023-01-0…...
C语言--文件操作
第16讲:文件操作 1. 为什么使用文件? 如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的&…...
网络安全内参
在我的IT职业生涯的早期,Sun Microsystems被认为是一个计算机梦想家。Sun很早就创造了一个有趣的公司口号:“The network is the computer.”这是什么意思?这意味着IT基础设施以松散耦合的体系结构连接在一起,通过以太网电缆和TCP/IP协议等网…...
C++大整数类的设计与实现
1. 简介 我们知道现代的计算机大多数都是64位的,因此能处理最大整数为 2 64 − 1 2^{64}-1 264−1。那如果是超过了这个数怎么办呢,那就需要我们自己手动模拟数的加减乘除了。 2. 思路 我们可以用一个数组来存储大数,数组中的每一个位置表…...
在 macOS 系统上安装 kubectl
在 macOS 系统上安装 kubectl 官网:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-macos/ 用 Homebrew 在 macOS 系统上安装 如果你是 macOS 系统,且用的是 Homebrew 包管理工具, 则可以用 Homebrew 安装 kubectl。 运行…...
【人工智能】蓝耘智算平台盛大发布DeepSeek满血版:开创AI推理体验新纪元
📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 蓝耘智算平台 蓝耘智算平台核心技术与突破元生代推理引擎快速入门:三步调用大模型接口,OpenAI SDK无缝兼容实战用例文…...
构建数据治理闭环:DAMA视角下的全流程实践与价值变现
随着数字经济的迅速发展,数据已成为企业核心资产,高效的数据治理体系正变得至关重要。本文基于DAMA理论,从数据资产入表、分类分级、确权登记到元数据管理、数据质量监控,再到数据集成、互操作及主数据管理,全流程构建…...
《深度剖析:AI与姿态估计技术在元宇宙VR交互中的应用困境》
在元宇宙的宏大版图里,虚拟现实(VR)交互是构建沉浸式体验的关键支柱,而人工智能(AI)与姿态估计技术的融合,本应成为提升交互体验的强大引擎。但在实际应用中,它们面临着诸多复杂且棘…...
【Python LeetCode】面试经典 150 题
数组 / 字符串快慢指针(双指针)总结88. 合并两个有序数组27. 移除元素26. 删除有序数组中的重复项80. 删除有序数组中的重复项 II Boyer-Moore 投票算法169. 多数元素扩展:寻找 n/3 多数元素 翻转法189. 轮转数组 贪心121. 买卖股票的最佳时机…...
2011-2019年各省乡镇综合文化站机构数数据
2011-2019年各省乡镇综合文化站机构数数据 1、时间:2011-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区、年份、乡镇综合文化站机构数 4、范围:31省 5、指标解释:乡镇综合文化站是中国基层文化…...
LeetCode 热题100 226. 翻转二叉树
LeetCode 热题100 | 226. 翻转二叉树 大家好,今天我们来解决一道经典的算法题——翻转二叉树。这道题在 LeetCode 上被标记为简单难度,要求我们翻转一棵二叉树,并返回其根节点。下面我将详细讲解解题思路,并附上 Python 代码实现…...
mysql 拼接多行合并为一行
如图所示,在variety相同的前提下拼接rating为ratingList,year_term为yearTermList sql如下: SELECT variety,GROUP_CONCAT(rating ORDER BY rating SEPARATOR ,) AS ratingList,GROUP_CONCAT(year_term ORDER BY year_term SEPARATOR…...
【Java项目】基于Spring Boot的论坛管理系统
【Java项目】基于Spring Boot的论坛管理系统 技术简介:采用Java技术、Spring Boot框架、MySQL数据库等实现。 系统简介:论坛管理系统是一个基于Web的在线平台,主要分为前台和后台两大功能模块。前台功能模块包括(1)首…...
unity学习54:图片+精灵+遮罩mask,旧版文本 text 和新的TMP文本
目录 1 图片 image 1.1 如果直接导入image 1.2 图片 image 和精灵 sprite 1.2.1 继续修改上面的格式 texture type 是default 1.2.2 再次关联到UI的 image 物体上就可以了 1.3 图片和遮罩 mask 1.3.1 创建1个父物体和1个子物体,分别都是image 1.3.2 如果父…...
2024年国赛高教杯数学建模D题反潜航空深弹命中概率问题解题全过程文档及程序
2024年国赛高教杯数学建模 D题 反潜航空深弹命中概率问题 原题再现 应用深水炸弹(简称深弹)反潜,曾是二战时期反潜的重要手段,而随着现代军事技术的发展,鱼雷已成为现代反潜作战的主要武器。但是,在海峡或…...
什么是数字人
什么是数字人 Ultralight-Digital-Human 是一个能在移动设备上实时运行的数字人模型仓库,可能是第一个开源的如此轻量级的数字人模型。 主要特点 轻量级:能够在移动设备上实时运行。开源:代码和模型公开,方便开发者使用和改进。文件结构 根目录: README.md:项目的说明文…...
15.5 基于 RetrievalQA 的销售话术增强系统实战:构建智能销售大脑
基于 RetrievalQA 的销售话术增强系统实战:构建智能销售大脑 关键词:RetrievalQA 应用实战、销售知识增强、语义检索优化、上下文感知问答、多源知识融合 1. RetrievalQA 技术原理与销售场景适配 1.1 RetrievalQA 核心工作机制 #mermaid-svg-VL2yIusgl4oprXUr {font-family…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
