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…...
MIMO-UNet:重新思考单图像去模糊中的多尺度融合策略
1. 为什么我们需要重新思考图像去模糊? 每次看到手机里拍糊的照片,我都忍不住想:要是能一键修复该多好。这就是图像去模糊技术要解决的问题。传统方法就像用PS手动修复,费时费力效果还一般。后来深度学习来了,特别是那…...
5分钟掌握MouseJiggler:告别系统休眠的智能鼠标模拟解决方案
5分钟掌握MouseJiggler:告别系统休眠的智能鼠标模拟解决方案 【免费下载链接】mousejiggler Mouse Jiggler is a very simple piece of software whose sole function is to "fake" mouse input to Windows, and jiggle the mouse pointer back and forth…...
别再只调API了!深入OpenCV手势识别:肤色检测算法全解析与实战对比(RGB/YCrCb/OTSU)
深入OpenCV手势识别:肤色检测算法全解析与实战对比 手势识别作为人机交互的重要技术,其核心挑战之一是如何在复杂环境中准确分割皮肤区域。本文将深入探讨四种主流肤色检测算法——RGB阈值法、椭圆模型法、CrCb范围筛选法以及OTSU自适应阈值法࿰…...
从Simulink到LabVIEW:VeriStand联合仿真中人机交互界面的高效构建与数据联动
1. VeriStand联合仿真基础架构解析 当我们需要将Simulink的算法模型与LabVIEW的人机界面进行深度整合时,VeriStand就像一位专业的翻译官。这个实时测试与仿真平台能够把不同软件的语言"翻译"成彼此都能理解的形式。我去年参与的新能源汽车电控项目就采用了…...
终极指南:3分钟完成AI文本生成平台一键安装
终极指南:3分钟完成AI文本生成平台一键安装 【免费下载链接】one-click-installers Simplified installers for oobabooga/text-generation-webui. 项目地址: https://gitcode.com/gh_mirrors/on/one-click-installers 还在为复杂的AI环境配置而头疼吗&#…...
[信号与系统]双线性变换在数字滤波器设计中的核心应用
1. 双线性变换:数字滤波器设计的桥梁 第一次接触数字滤波器设计时,我被一个核心问题困扰:如何把教科书上那些完美的模拟滤波器搬到计算机里运行?直到遇到双线性变换这个"魔法公式",才真正打通了模拟与数字世…...
避坑指南:用CesiumLab处理LAS点云时文件打不开?试试CloudCompare预处理
避坑指南:CesiumLab处理LAS点云时的兼容性问题与CloudCompare预处理方案 当你在三维GIS项目中尝试用CesiumLab处理LAS点云数据时,是否遇到过文件无法打开的报错?这往往是数据格式兼容性导致的典型问题。本文将带你深入分析LAS文件的"暗坑…...
hadoop+Spark+Java基于搜索日志的图文推荐系统设计(源码+文档+调试+可视化大屏)
前言本文介绍了一款使用spring boot开发的搜索日志的图文推荐,及其设计与实现过程。根据软件工程对软件系统开发定制的规则和标准,详细的介绍了系统的分析与设计过程,并且详细的概括了系统的开发与测试过程,将其与JAVA语言紧密结合…...
ROS2多机通讯避坑指南:为什么你的节点突然失联了?
ROS2多机通讯避坑指南:为什么你的节点突然失联了? 当你在实验室里调试ROS2多机系统时,突然发现某个机器人节点从话题列表中消失了——这种场景对任何开发者来说都不陌生。不同于ROS1时代的主从架构,ROS2的分布式特性让节点失联问题…...
从CARRY4到高效加法器:揭秘FPGA进位链的优化实践
1. 从半加器到全加器:加法器的底层逻辑 第一次接触FPGA加法器设计时,我也被各种专业术语搞得晕头转向。直到有一天,我把加法器想象成小学生列竖式计算,突然就豁然开朗了。想象你在纸上计算1219,是不是要从右往左一位一…...
