linux 实现文件共享的实现方式比较

1. NFS(Network File System)

  • 适用场景:Linux/Unix 之间高速共享,适合局域网(LAN)。

  • 特点

    • 原生支持 Linux,性能高。
    • 需要配置 /etc/exports 和防火墙规则。
  • 示例命令

    复制代码
      # 服务端
      sudo apt install nfs-kernel-server  # Debian/Ubuntu
      sudo yum install nfs-utils         # CentOS/RHEL
      echo "/shared 192.168.1.0/24(rw,sync,no_subtree_check)" | sudo tee -a /etc/exports
      sudo systemctl start nfs-server
    
      # 客户端
      sudo mount -t nfs 192.168.1.100:/shared /mnt/nfs

    2. Samba/CIFS

  • 适用场景:Linux 与 Windows 混合环境共享。

  • 特点

    • 兼容 Windows 的 SMB/CIFS 协议。
    • 支持用户认证和权限控制。
  • 示例命令

    复制代码
    # 服务端
      sudo apt install samba              # Debian/Ubuntu
      sudo smbpasswd -a username         # 添加Samba用户
      sudo systemctl start smbd
    
      # 客户端挂载
      sudo mount -t cifs //192.168.1.100/shared /mnt/smb -o username=user,password=pass

    3. SSHFS(基于 SSH 的文件系统)

  • 适用场景:通过加密通道安全访问远程文件。

  • 特点

    • 无需额外服务端配置,仅需 SSH 访问权限。
    • 适合临时挂载或远程编辑文件。
  • 示例命令

    复制代码
    # 客户端安装
      sudo apt install sshfs             # Debian/Ubuntu
    
      # 挂载远程目录
      sshfs user@192.168.1.100:/remote/path /mnt/sshfs

    4. WebDAV

  • 适用场景:通过 HTTP/HTTPS 共享文件(如 Nextcloud/ownCloud)。

  • 特点

    • 跨平台支持,适合云存储。
    • 需配置 Apache/Nginx。
  • 示例配置(Apache)

    复制代码
    <Directory /var/www/webdav>
          DAV On
          AuthType Basic
          AuthName "WebDAV"
          AuthUserFile /etc/apache2/webdav.passwd
          Require valid-user
      </Directory>

    5. rsync(增量同步)

  • 适用场景:定期备份或单向同步文件。

  • 特点

    • 仅传输差异部分,节省带宽。
    • 可结合 cron 定时任务。
  • 示例命令

    复制代码
      rsync -avz /local/path user@remote:/backup/

    6. GlusterFS / Ceph(分布式存储)

  • 适用场景:高可用、可扩展的集群存储。

  • 特点

    • 支持 PB 级存储,冗余备份。
    • 适用于企业级应用。
  • GlusterFS 示例

    复制代码
    # 节点间组成存储池
      gluster peer probe node2
      gluster volume create gv0 replica 2 node1:/data node2:/data
      gluster volume start gv0

    7. FTP/SFTP

  • 适用场景:简单文件上传/下载。

  • 特点

    • FTP 明文传输(不安全),SFTP 基于 SSH。
    • 适合匿名共享或脚本自动化。
  • SFTP 示例

    复制代码
    sftp user@192.168.1.100
      put /local/file /remote/path

    8. Syncthing(P2P 同步)

  • 适用场景:去中心化多设备同步(如个人文件同步)。

  • 特点

    • 无需服务器,直接设备间同步。
    • 支持版本历史和加密。
  • 安装

    复制代码
    sudo apt install syncthing       # Debian/Ubuntu
      systemctl start syncthing@user

    (通过 http://localhost:8384 配置)

对比总结

方案 协议 适用场景 安全性 性能
NFS NFS Linux 间高速共享 ⭐⭐⭐⭐
Samba SMB Linux-Windows ⭐⭐⭐
SSHFS SSH 安全临时访问 ⭐⭐
WebDAV HTTP 云存储/Web 集成 ⭐⭐
rsync 自定义 增量备份 ⭐⭐⭐
GlusterFS 分布式 企业级存储 ⭐⭐⭐⭐
SFTP SSH 安全文件传输 ⭐⭐
Syncthing P2P 多设备同步 ⭐⭐⭐

选择建议

  • Linux 间共享 :优先用 NFS(性能最佳)。
  • 跨平台共享 :选择 SambaWebDAV
  • 安全临时访问SSHFSSFTP
  • 企业级扩展GlusterFSCeph
  • 个人同步Syncthingrsync
相关推荐
筝筝ba几秒前
extended/factory_reset.robot
linux·运维·服务器·网络·网络协议·p2p
网安小学生(兼顾数据库版)2 分钟前
CRA漏洞通报义务倒计时:9.11生效要求深度解读
网络·安全·web安全
wangduqiang7474 分钟前
如何借助AI申请专利不依靠代理机构
linux
优化Henry6 分钟前
5G网络切片之S-NSSAIlist相关参数解析
运维·服务器·网络·笔记·学习·信息与通信
子有内涵12 分钟前
【Linux】C++ 实现可扩展 TCP 服务器|回响、字典、远程命令
linux·运维·服务器
新兴AI民工17 分钟前
# 【Linux内核三十六】进程管理模块:CFS负载均衡(一):sched_domain与sched_group层级构建
linux·运维·负载均衡
pride.li21 分钟前
WSL教程-WSL安装与配置Ubuntu
linux
luj_176822 分钟前
毒素驱动的生物自毁机制探析
服务器·c语言·开发语言·经验分享·算法
某林21225 分钟前
机器人收不住、转不动?执行器死区的原理与三层补偿设计
前端·网络·c++·架构·机器人
躺不平的理查德29 分钟前
Nginx与Ajax 备忘录
linux·运维·服务器