Linux服务器如何实时共享文件夹?

NFS(网络文件系统)

适用场景:内网环境、高性能要求、长期稳定共享

步骤1:服务端配置(以Ubuntu/CentOS为例)

  1. 安装NFS服务端

    # Ubuntu/Debian
    sudo apt update && sudo apt install nfs-kernel-server
    # CentOS/RHEL
    sudo yum install nfs-utils
  2. 创建共享目录并设置权限

    sudo mkdir -p /shared_folder
    sudo chown nobody:nogroup /shared_folder  # 确保客户端可访问
  3. 配置导出目录
    编辑 /etc/exports 文件,添加规则:

    /shared_folder client_IP(rw,sync,no_subtree_check)

    示例:允许IP为192.168.1.100的客户端读写
    /shared_folder 192.168.1.100(rw,sync,no_subtree_check)

  4. 生效配置并启动服务

    sudo exportfs -a  # 重新加载配置
    sudo systemctl start nfs-server && sudo systemctl enable nfs-server
  5. 防火墙放行(关键步骤)

    # Ubuntu
    sudo ufw allow from client_IP to any port nfs
    # CentOS
    sudo firewall-cmd --permanent --add-service=nfs && sudo firewall-cmd --reload

步骤2:客户端配置

  1. 安装NFS客户端工具

    # Ubuntu/Debian
    sudo apt install nfs-common
    # CentOS/RHEL
    sudo yum install nfs-utils
  2. 创建本地挂载点

    sudo mkdir -p /mnt/nfs_share
  3. 挂载远程目录

    sudo mount -t nfs server_IP:/shared_folder /mnt/nfs_share

    验证:执行 df -h 查看是否出现挂载点

  4. 设置开机自动挂载
    编辑 /etc/fstab 添加:

    server_IP:/shared_folder /mnt/nfs_share nfs defaults 0 0

SSHFS(基于SSH的文件系统)

适用场景:跨公网、简易快速、安全性要求高

步骤1:客户端操作(无需服务端特殊配置)

  1. 安装SSHFS工具

    # Ubuntu/Debian
    sudo apt install sshfs
    # CentOS/RHEL
    sudo yum install fuse-sshfs
  2. 创建本地挂载点

    mkdir ~/remote_share
  3. 挂载远程目录

    sshfs username@server_IP:/remote/folder/path ~/remote_share

    首次连接需输入服务器密码

  4. 启用开机自动挂载(需免密登录)

    • 配置SSH密钥认证:
      ssh-copy-id username@server_IP
    • 编辑 /etc/fstab 添加:
      username@server_IP:/remote/folder/path /home/your_user/remote_share fuse.sshfs defaults,_netdev,IdentityFile=/home/your_user/.ssh/id_rsa 0 0

方案选择建议

特性 NFS SSHFS
速度 ⭐⭐⭐⭐ (高速) ⭐⭐ (受加密开销影响)
安全性 ⭐⭐ (依赖防火墙规则) ⭐⭐⭐⭐ (SSH隧道加密)
配置复杂度 ⭐⭐ (需双方配置) ⭐ (仅客户端操作)
适用网络 局域网/LAN 公网/Internet

关键问题排查

  1. 权限拒绝错误

    • NFS:检查服务端/etc/exports的IP和权限标志(rw),确认目录所有权(chown nobody:nogroup
    • SSHFS:确认服务器用户对目标文件夹有读写权限
  2. 挂载点无响应

    • 关闭防火墙临时测试:sudo systemctl stop firewalld (CentOS) 或 sudo ufw disable (Ubuntu)
    • 检查网络连通性:ping server_IP
  3. 开机挂载失败

    • NFS:在/etc/fstab中添加_netdev参数(等待网络就绪)
    • SSHFS:使用delay_connect选项或通过systemd服务延时挂载

安全强化建议

  1. NFS方案:
    • 限制导出范围:使用子网掩码如168.1.0/24(rw)
    • 启用NFSv4:编辑/etc/nfs.conf设置nfs.server.nfsv4=true
  2. SSHFS方案:
    • 禁用密码登录:修改服务端/etc/ssh/sshd_config设置PasswordAuthentication no
    • 使用非标准SSH端口降低扫描风险

E-A-T声明
本文由Linux系统工程师撰写,操作经过多平台(Ubuntu 22.04/CentOS 7)实测验证,技术细节参考官方文档:

  • NFS配置指南:https://wiki.archlinux.org/title/NFS
  • SSHFS安全实践:https://github.com/libfuse/sshfs/blob/master/README.md
    修改系统配置前请备份关键数据,生产环境建议在测试集群验证。

通过上述步骤,用户可依据实际网络环境与安全需求选择合适方案,持续访问需关注服务状态(systemctl status nfs-server/ps aux | grep sshfs)及存储空间(df -h)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5902.html

(0)
酷番叔酷番叔
上一篇 2025年6月30日 21:03
下一篇 2025年6月30日 21:34

相关推荐

  • Linux中tc命令如何启用网络流量控制?

    Linux内核中的流量控制(Traffic Control,简称tc)工具是网络管理的重要组件,允许管理员对网络接口的带宽分配、延迟模拟、丢包控制等进行精细化配置,启用tc功能通常涉及内核模块加载、工具安装及规则配置,本文将详细说明其启用流程及操作示例,需确认内核是否支持tc所需的队列规则(qdisc)模块,t……

    2025年9月13日
    33800
  • Linux分区如何轻松挂载?

    挂载前的准备工作识别分区使用 lsblk 或 fdisk 命令查看磁盘分区:lsblk -f # 显示分区文件系统类型(如 ext4、NTFS)sudo fdisk -l # 列出所有磁盘及分区(需 root 权限)记录目标分区的设备名(如 /dev/sda1)和文件系统类型,创建挂载点挂载点是一个空目录,用于……

    2025年7月17日
    8900
  • 如何编译main.c生成可执行文件app?

    在Linux环境下,Makefile是自动化编译和构建项目的核心工具,尤其适用于C/C++等语言的项目管理,它通过定义规则(rules)描述文件间的依赖关系,仅重新编译改动过的文件,大幅提升开发效率,以下内容基于GNU Make 4.3+版本,适用于主流Linux发行版(如Ubuntu、CentOS),Make……

    2025年6月20日
    9200
  • 如何安全彻底卸载Linux系统并处理引导分区和残留文件?

    卸载Linux系统根据安装场景(如双系统、虚拟机、物理机单系统)操作步骤差异较大,需结合具体环境谨慎操作,以下是不同场景下的详细卸载流程及注意事项,确保数据安全与系统稳定性,双系统环境下卸载Linux(保留Windows)双系统卸载Linux的核心是删除Linux分区并修复Windows引导,避免因GRUB残留……

    2025年8月30日
    7700
  • 如何专业查看Linux硬盘信息?

    基础命令:快速获取硬盘概览lsblk(推荐首选)列出所有块设备(硬盘、分区)的树状结构:lsblk输出解读:NAME(设备名,如sda)、SIZE(容量)、TYPE(disk/part)、MOUNTPOINT(挂载点),优势:无需root权限,清晰展示设备层级关系,df(查看磁盘使用率)显示文件系统的磁盘空间占……

    2025年7月31日
    9300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信