两台ubuntu的ECS机器共享一个存储

要在两台 Ubuntu 机器之间共享文件,常见的方法是使用 网络文件系统 (NFS)、Samba 、SSH 共享等方法。这里我将介绍两种常见的方式来实现文件共享:

方法 1: 使用 NFS(Network File System) 共享文件

NFS 允许你在网络上共享文件系统,在一台机器上挂载另一个机器的文件系统。

步骤:
1. 在共享文件的机器上配置 NFS 服务器(Server)
  1. 安装 NFS 服务器 :

    在共享文件的 Ubuntu 机器(假设它是 Server)上,首先安装 NFS 服务器:

    bash 复制代码
    sudo apt update
    sudo apt install nfs-kernel-server
  2. 创建共享目录并设置权限 :

    假设你要共享 /mnt/shared 目录,你可以通过以下命令创建该目录并设置权限:

    bash 复制代码
    sudo mkdir -p /mnt/shared
    sudo chmod 777 /mnt/shared
  3. 配置 NFS 共享 :

    编辑 /etc/exports 文件,添加你要共享的目录及访问权限:

    bash 复制代码
    sudo nano /etc/exports

    在文件中添加以下内容(将 <client_IP> 替换为另一台机器的 IP 地址,或者使用 * 来允许所有机器访问):

    bash 复制代码
    /mnt/shared <client_IP>(rw,sync,no_subtree_check)

    示例:

    bash 复制代码
    /mnt/shared 192.168.1.100(rw,sync,no_subtree_check)
  4. 导出共享文件夹 :

    运行以下命令使配置生效:

    bash 复制代码
    sudo exportfs -a
  5. 启动 NFS 服务器 :

    确保 NFS 服务正在运行:

    bash 复制代码
    sudo systemctl restart nfs-kernel-server
2. 在另一台机器上挂载共享目录(Client)
  1. 安装 NFS 客户端 :

    在另一台机器(假设它是 Client)上安装 NFS 客户端:

    bash 复制代码
    sudo apt install nfs-common
  2. 挂载共享目录 :

    使用以下命令挂载 NFS 共享的目录:

    bash 复制代码
    sudo mount <server_IP>:/mnt/shared /mnt/shared

    例如:

    bash 复制代码
    sudo mount 192.168.1.10:/mnt/shared /mnt/shared
  3. 验证挂载 :

    可以使用 df -h 命令查看挂载的共享目录:

    bash 复制代码
    df -h

    你应该能够看到 /mnt/shared 目录已挂载。

  4. 自动挂载(可选) :

    如果你希望每次启动时自动挂载共享目录,可以在 /etc/fstab 中添加条目:

    bash 复制代码
    sudo nano /etc/fstab

    添加以下内容:

    bash 复制代码
    <server_IP>:/mnt/shared /mnt/shared nfs defaults 0 0

    这样就可以自动挂载 NFS 共享目录。

方法 2: 使用 Samba 共享文件(跨平台兼容)

如果你需要在 Windows 和 Linux 系统之间共享文件,可以使用 Samba。

步骤:
1. 在共享文件的机器上安装 Samba 服务器(Server)
  1. 安装 Samba:

    bash 复制代码
    sudo apt update
    sudo apt install samba
  2. 创建共享目录并设置权限 :

    假设你要共享 /mnt/shared 目录:

    bash 复制代码
    sudo mkdir -p /mnt/shared
    sudo chmod 777 /mnt/shared
  3. 配置 Samba 共享 :

    编辑 /etc/samba/smb.conf 文件,添加共享设置:

    bash 复制代码
    sudo nano /etc/samba/smb.conf

    在文件的末尾添加以下内容:

    ini 复制代码
    [shared]
    path = /mnt/shared
    browseable = yes
    read only = no
    guest ok = yes
  4. 重启 Samba 服务:

    bash 复制代码
    sudo systemctl restart smbd
2. 在另一台机器上访问 Samba 共享(Client)
  1. 在客户端机器上安装 Samba 客户端(如果未安装):

    bash 复制代码
    sudo apt install smbclient
  2. 挂载 Samba 共享 :

    使用以下命令挂载共享目录:

    bash 复制代码
    sudo mount -t cifs //<server_IP>/shared /mnt/shared -o guest

    例如:

    bash 复制代码
    sudo mount -t cifs //192.168.1.10/shared /mnt/shared -o guest

    这样你就可以访问 /mnt/shared 目录了。

方法 3: 使用 SSH 文件传输

如果你只需要偶尔传输文件,可以使用 scp 或 rsync 来通过 SSH 传输文件。

示例:使用 scp 命令

在目标机器上,从源机器传输文件:

bash 复制代码
scp user@<source_machine_ip>:/path/to/file /path/to/destination

总结

  1. NFS 是一种高效的方式,适合 Linux 之间共享文件。
  2. Samba 更适合 Linux 和 Windows 之间的文件共享。
  3. SSH 文件传输 适合偶尔传输文件,不需要持续共享。

你可以根据需要选择适合的方式进行配置。如果你只是要在两台 Ubuntu 机器之间共享文件,使用 NFS 会是一个很好的选择。

相关推荐
IvorySQL4 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)
数据库·postgresql
优橙教育7 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
工业一体机老司机10 小时前
工业一体机选购后的系统部署:Ubuntu下Docker容器化运行与GPIO配置
linux·ubuntu·docker·人机交互
郭萌69611 小时前
多商户平台的优惠券,真正的设计对象是「适用范围」而不是券模板
php
额额额对了11 小时前
嵌入式 Linux 启动程序文件
开发语言·嵌入式硬件·php
夏虫不可与之言冰11 小时前
Windows WSL2 (Ubuntu) 搭建 ESP‑IDF 6.1 开发环境全过程演示
linux·windows·ubuntu·esp32·乐鑫科技·乐鑫eim·乐鑫代理商
余槐i11 小时前
200万行表加索引锁死写入:PostgreSQL CONCURRENTLY 的三类等待与重建路径
数据库·postgresql·性能优化·索引·explain
v:ychya201812 小时前
独立站外贸建站公司怎么选?建站就要建营销型网站
前端·php
梅菲塔亚13 小时前
华为云从入门到实战
开发语言·华为云·php
要吃这碗饭13 小时前
AI 智能体如何通过 auth.md 注册 Bright Data 账号
数据库·人工智能·php