当前位置: 首页 > news >正文

CentOS 下 FTP 与 NFS 服务深度解析:从基础配置到实战应用

一、FTP 服务:跨平台文件传输的经典方案

1. Linux 下的 FTP 客户端工具

(1)ftplftp 的安装与基础使用
# 安装客户端工具
yum install ftp lftp -y
  • ftp 工具
    通过交互式命令行实现文件传输,适合基础场景:

    ftp 10.1.1.10  # 连接 FTP 服务器
    # 输入账号密码后,使用 ls/get/put 等命令操作
    

    常用命令

    命令说明
    ls查看远程目录文件
    put上传单个文件
    mput批量上传多个文件
    quit退出 FTP 会话
  • lftp 工具
    支持多协议(FTP/SFTP/HTTP)和批量操作,效率更高:

    lftp user@192.168.1.10  # 连接服务器(自动识别协议)
    mirror -R local_dir     # 递归上传本地目录到远程
    mirror remote_dir       # 递归下载远程目录到本地
    

2. FTP 访问控制与安全加固

(1)用户黑名单与白名单
  • 黑名单文件
    • /etc/vsftpd/ftpusers:系统默认禁止登录的用户(如 rootnobody)。
    • /etc/vsftpd/user_list:默认同为黑名单,需配合配置文件修改为白名单:
      vim /etc/vsftpd/vsftpd.conf  
      userlist_deny=NO  # 将 user_list 切换为白名单模式
      
    规则:若用户同时存在于 ftpusersuser_listftpusers 拒绝优先级更高。
(2)网络访问控制(TCP Wrappers)

通过 /etc/hosts.allow/etc/hosts.deny 控制客户端 IP 访问:

# 拒绝所有 IP 访问 FTP(白名单模式需配合 hosts.allow)
vim /etc/hosts.deny  
vsftpd:all  # 允许特定 IP 访问(白名单)
vim /etc/hosts.allow  
vsftpd:192.168.1.100
(3)流量限速

/etc/vsftpd/vsftpd.conf 中配置上传/下载速度(单位:字节/秒):

local_max_rate=1048576  # 限制本地用户下载速度为 1MB/s
anon_max_rate=524288    # 限制匿名用户上传速度为 512KB/s

二、NFS 服务:Linux 集群的高效共享存储

1. NFS 核心原理与应用场景

NFS(Network File System) 基于 RPC 协议,允许跨主机共享文件系统,常用于:

  • 集群中多台 Web 服务器共享静态资源(如图片、CSS)。
  • 分布式存储场景下的数据集中管理。
    特点:无用户认证、明文传输(建议仅用于局域网)、支持并发挂载。

2. 环境准备与软件安装

角色IP 地址任务
NFS 服务器192.168.66.138提供共享目录 /share
Web 客户端192.168.66.143挂载共享目录并运行 Apache
# 安装 NFS 服务端与客户端(双机均需执行)
yum install nfs-utils rpcbind -y

3. NFS 服务端配置

(1)创建共享目录并配置权限
mkdir -p /share  # 创建共享目录
vim /etc/exports  # 编辑共享配置

配置示例

/share 192.168.66.0/24(rw,        # 读写权限sync,      # 数据实时同步到磁盘no_root_squash,  # 客户端 root 用户映射为服务端 rootanonuid=1000, anongid=1000  # 普通用户映射为本地用户 u1000
)
(2)启动服务并验证
systemctl start rpcbind nfs-server  # 先启动 rpcbind,再启动 nfs
systemctl enable rpcbind nfs-server # 设置开机自启
exportfs -rv  # 重新加载配置
showmount -e  # 查看当前共享目录

4. NFS 客户端挂载与实战

(1)挂载共享目录
mkdir /var/www/html/media  # 创建本地挂载点
mount -t nfs 192.168.66.138:/share /var/www/html/media  # 临时挂载
(2)设置开机自动挂载

编辑 /etc/fstab 实现持久化挂载:

192.168.66.138:/share /var/www/html/media nfs 
defaults,_netdev 0 0  # _netdev 确保网络可用后挂载
(3)结合 Apache 搭建静态资源服务器
yum install httpd -y  # 安装 Web 服务
systemctl start httpd  # 启动 Apache
# 将静态资源上传到 NFS 服务器的 /share 目录,客户端通过浏览器直接访问

5. 高级配置与故障处理

(1)性能优化
  • 异步模式:将 sync 改为 async(提升性能但牺牲数据一致性)。
  • 调整缓冲区大小
    mount -o rsize=32768,wsize=32768 192.168.66.138:/share /mnt  # 增大读写缓冲区
    
(2)强制卸载与故障排查

若 NFS 服务器异常导致客户端卡死,使用强制卸载:

umount -lf /var/www/html/media  # -l 延迟卸载,-f 强制终止进程

日志定位:查看 /var/log/messagesdmesg 排查挂载错误。

三、FTP vs. NFS:场景选择指南

维度FTPNFS
协议基于 TCP,支持跨平台(Windows/Linux)基于 RPC,仅限 Linux 生态
安全性可通过 SSL/TLS 加密(FTPS)明文传输,依赖防火墙与 VLAN
性能单连接传输,适合小文件支持并发挂载,适合大文件/目录
典型场景跨平台文件传输、远程备份集群共享存储、静态资源服务

总结

FTP 和 NFS 是 Linux 系统中文件共享的两大核心方案:

  • FTP 以跨平台兼容性和成熟的认证体系,适用于需要与 Windows 交互或对安全要求较高的场景。
  • NFS 以高效的局域网性能和无缝的 Linux 集成,成为集群存储的首选方案。
    通过合理配置访问控制、性能优化和故障处理机制,两者均可在企业级环境中稳定运行。如需进一步探讨高可用部署(如 NFS + DRBD)或安全增强方案,欢迎留言交流!

相关文章:

  • 深度学习推理引擎---OpenVINO
  • Android核心系统服务:AMS、WMS、PMS 与 system_server 进程解析
  • 如何在纷杂的环境当中保持保持独立思考能力?
  • linux c++头文件生成源文件 使用python脚本 配置vim快捷键
  • Unity3D仿星露谷物语开发44之收集农作物
  • OAuth2.0
  • 6to4、6over4的类比解释
  • 使用tensorRT10部署低光照补偿模型
  • MySQL相关
  • [强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程
  • 支持selenium的chrome driver更新到136.0.7103.94
  • 【2025年软考中级】第一章1.6 安全性、可靠性、性能评价
  • Python爬虫实战:获取1688商品信息
  • 无需配置光猫,使用网管交换机配合路由器的IPTV功能实现单线复用
  • Uniapp开发鸿蒙应用时如何运行和调试项目
  • Kotlin与机器学习实战:Android端集成TensorFlow Lite全指南
  • 从神经架构到万物自动化的 AI 革命:解码深度学习驱动的智能自动化新范式
  • 人工智能100问☞第25问:什么是循环神经网络(RNN)?
  • 基于OpenCV的SIFT特征和FLANN匹配器的指纹认证
  • 互联网大厂Java面试:从Spring到微服务的全面探讨
  • 复旦建校120周年大型义诊举行,百余名专家服务市民超三千人次
  • 广西北流出现强降雨,1人被洪水冲走已无生命体征
  • 一旅客因上错车阻挡车门关闭 ,株洲西高铁站发布通报
  • 官方通报汕头违建豪宅“英之园”将强拆:对有关人员严肃追责问责
  • 网易一季度净利增长三成,丁磊:高度重视海外游戏市场
  • 透视社会组织创新实践中的花开岭现象:与乡村发展的融合共进