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中SVN锁定无法提交怎么解决?

    核心清理命令:svn cleanup当工作副本因锁定文件残留或状态异常无法更新/提交时,执行:svn cleanup [工作副本路径]作用:移除残留的锁定文件(*.lock)、恢复中断操作前的状态、清理临时文件,示例:cd /path/to/your/svn_working_copy # 进入工作副本目录svn……

    2025年7月8日
    900
  • Systemd启动为何变慢?

    理解 Linux 中的”刷新”在 Linux 中,“刷新”并非单一操作,而是根据场景分为四类:图形界面刷新:重载桌面或应用视图系统级刷新:同步数据、清理缓存或重载配置网络配置刷新:更新网络设置终端显示刷新:重置命令行显示图形界面刷新(桌面环境)适用于 GNOME、KDE 等桌面用户:快捷键刷新按 F5 或 Ct……

    2025年7月12日
    700
  • Linux如何快速测试网络连接?

    在 Linux 系统中,网络连接是日常操作的基础,无论是服务器运维还是个人使用,快速诊断网络状态都至关重要,以下是 7 种专业方法,涵盖从基础连通性测试到深度故障排查,帮助您全面确认网络状态,方法 1:使用 ping 测试基础连通性命令:ping -c 4 8.8.8.8 # 测试与 Google DNS 的连……

    2025年6月16日
    1500
  • Linux挂载硬盘如何确保安全可靠?

    准备工作识别硬盘设备使用 lsblk 或 fdisk -l 命令查看所有存储设备:sudo fdisk -l输出示例: /dev/sdb: 1.8T, 1800000000000 bytes # 新硬盘通常显示为 /dev/sdb 或 /dev/nvme0n1p1检查文件系统类型若硬盘已格式化,用 blkid……

    3天前
    800
  • 安装服务端失败怎么办?

    Telnet基础认知Telnet的作用Telnet是一种基于TCP/IP的远程登录协议(默认端口23),允许用户通过网络控制服务器,但请注意:Telnet传输数据为明文(包括密码),极易被截获,仅建议在内部安全环境或测试场景使用,生产环境强烈推荐SSH(加密协议)替代,服务端与客户端区分服务端:telnetd……

    2025年7月1日
    1000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信