Ubuntu nfs服务器共享文件夹

实现文件共享的前提:两台机器能够相互ping通!!!

服务器端设置如下:
1. 安装NFS server软件

sudo apt-get install nfs-kernel-server

2. 创建共享目录并将目录的权限改为777

mkdir -p share
chmod 777 share

3. 配制文件vi /etc/exports

sudo vi /etc/exports

添加以下条目

/share *(rw,sync,no_root_squash)

其中/share为共享目录, rw为可读写操作
共享目录 可以访问的主机(权限) 代表所有用户(权限)
这个配置文件很简单,每一行前面是要共享的目录,是以目录为单位。然后这个目录可以依照不同的权限共享给不同的主机,不同的主机用空格分开,主机后面是以小括号"()“定义权限参数,若权限参数不只一个时,则以逗号”,“分开,并且主机名与小括号是连在一起的,主机与共享目录之间用空格分开,在这个文件内也可以利用#号来进行注释。
可以使用完整的IP或者网络号,例如:
单个主机:192.168.1.100 网络号:192.169.1.0/24或192.168.1.0/255.255.255.0
可以使用主机名,但这个主机名必须要在/etc/hosts内,或可以使用DNS找到该名称,重点是可以找到IP地址,如果是主机名可以支持通配符,例如”*“或”?"均可接受。
小括号内常用的权限参数如下:

  • ro:共享目录只读;
  • rw:共享目录可读可写
  • sync:同步,将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
  • async:异步,将数据先保存在内存缓冲区中,必要时才写入磁盘,效率高,但有丢失数据的风险;
  • wdelay(默认):如果有多个客户端要对同一个共享目录进行写操作,则将这些操作集中执行。对有很多小的IO写操作时,使用该选项可以有效的提高效率;
  • no_wdelay:如果有多个客户端要对同一个共享目录进行写操作则立即写入。当设置了async选项时,no_wdelay选项无效,应与sync配合使用;
  • root_squash(默认):将来访的root用户映射为匿名用户或用户组;
  • no_root_squash:来访的root用户保持root帐号权限;
  • all_squash:所有访问用户都映射为匿名用户或用户组;
  • no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
  • anonuid=:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534);
  • anongid=:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534);
  • secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
  • insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
  • subtree_check :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
  • no_subtree_check(默认) :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
  • hide:共享一个目录时,不共享该目录的子目录;
  • no_hide:共享子目录;

如果想了解更多的参数,可以使用man exports
4. 开启nfs服务

sudo systemctl start nfs-kernel-server

客户端设置如下:

  1. 安装nfs-common (在另一台机器执行以下命令)
sudo apt-get install nfs-common
  1. 远程mount
sudo mount x.x.x.12:/share /home/share

把远程目录mount到本地/media/share下

遇到的问题及对策:

1)mount.nfs: access denied by server while mounting x.x.x.124:/home/share
对策:如果客户端的端口号大于1024,则需要将 insecure 选项加入到配置文件(/etc/exports)相关选项中mount客户端才能正常工作
修改配置文件/etc/exports,加入 insecure 选项

/home/share  *(insecure,rw,async,no_root_squash)

保存退出
然后重启nfs服务:

service nfs restart

然后问题就解决了
2)文件夹访问失败
对策:将当前访问文件夹统一给权限,服务端和客户端给一样的权限

chmod 777 /share

3)两台机器连不通
对策:关闭两台机器的防火墙

sudo ufw disable

4)客户端开机没有共享文件夹

重启nfs服务+重新挂载即可
sudo /etc/init.d/rpcbind restart 重启rpcbind
sudo /etc/init.d/nfs-kernel-server restart 重启nfs

sudo mount x.x.x.124:/share/home/share

5)Ubuntu nfs重启服务**

sudo systemctl restart nfs-kernel-server

如果报错,有可能是/etc/exports配置错误,检查错误,重新启动

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在Linux中使用NFS(Network File System)共享文件夹,可以按照以下步骤进行设置: 1. 在两台电脑上安装NFS软件包。在大多数Linux发行版上,可以通过包管理器来安装。例如,在Ubuntu上,可以使用以下命令安装: ``` sudo apt-get install nfs-kernel-server nfs-common ``` 2. 在服务器上创建一个共享文件夹。可以选择一个现有的文件夹或创建一个新的文件夹。假设要共享的文件夹是`/home/user/shared`。 3. 编辑NFS服务器的导出文件`/etc/exports`。可以使用文本编辑器进行编辑,例如: ``` sudo nano /etc/exports ``` 4. 在配置文件中添加以下内容: ``` /home/user/shared <client_IP>(rw,sync,no_subtree_check) ``` 将`<client_IP>`替换为允许访问共享文件夹的客户端IP地址。如果要允许多个客户端访问,可以用逗号分隔它们。 5. 保存并关闭文件。 6. 重新加载NFS服务器配置: ``` sudo exportfs -a ``` 7. 在客户端电脑上,安装NFS软件包(如果尚未安装)。 8. 在客户端电脑上创建一个用于挂载共享文件夹的目录。假设要将共享文件夹挂载到`/mnt/shared`目录。 9. 使用以下命令在客户端上挂载共享文件夹: ``` sudo mount <server_IP>:/home/user/shared /mnt/shared ``` 将`<server_IP>`替换为NFS服务器的IP地址。 10. 现在,你可以在客户端上访问`/mnt/shared`目录,其中包含NFS服务器共享文件夹的内容。你可以在此目录中读取和写入文件。 请注意,为了进行访问,你可能需要在防火墙中允许NFS流量(默认为UDP端口2049)。 这样,你就可以在两台Linux电脑之间使用NFS共享文件夹及其子文件了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值