ubuntu下搭建nfs服务器

1.1       搭建NFS服务器

       NFS(Network FileSystem,网络文件系统)是由SUN公司发展,并于1984年推出的技术,用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。NFS设计之初就是为了在不同的系统间使用,所以它的通讯协议设计与主机及操作系统无关。

NFS分服务器和客户机,当使用远端文件时只要用mount命令就可把远端NFS服务器上的文件系统挂载在本地文件系统之下,操作远程文件与操作本地文件没有不同。NFS服务器所共享文件或目录记录在/etc/exports文件中。

       嵌入式Linux开发中,会经常使用NFS,目标系统通常作为NFS客户机使用,Linux主机作为NFS服务器。在目标系统上通过NFS,将服务器的NFS共享目录挂载到本地,可以直接运行服务器上的文件。在调试系统驱动模块以及应用程序,NFS都是十分必要的,并且Linux还支持NFS根文件系统,能直接从远程NFS root启动系统,这对嵌入式Linux根文件系统裁剪和集成也是十分有必要的。

安装nfs-kernel-server:

ky@ubuntu:~$ sudo apt-get install nfs-kernel-server

设置NFS-Server目录。修改/etc/exports文件,在其中增加NFS服务器目录。     一个NFS服务器可以共享多个NFS目录,在/etc/exports文件中,每个目录的设置独占一行,编写格式如下:

NFS共享目录路径    客户机IP或者名称(参数1,参数2,...,参数n)

       说明:

q  NFS共享目录可以是主机的任何一个目录,为了方便使用,最好将权限设置为777。

q  客户机指的是可以访问共享目录的客户机的IP或者主机名,可以是指定的IP或者主机名。如果使用IP,可以使用通配符。假如指定IP为192.168.1.x的客户机可以访问,可以写成192.168.1.*,如果设置为*,则表示任何客户机都可以访问。

q  访问参数可以是一个,也可以是多个,用逗号分开。可能的参数和说明如 REF _Ref286733518 \h 表 5.108D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200380036003700330033003500310038000000 所列。

表  STYLEREF 1 \s 5. SEQ 表 \* ARABIC \s 1 1 NFS设置参数和说明

参数

说明

ro

只读访问

rw

读写访问

sync

所有数据在请求时写入共享

async

nfs在写入数据前可以响应请求

secure

nfs通过1024以下的安全TCP/IP端口发送

insecure

nfs通过1024以上的端口发送

wdelay

如果多个用户要写入nfs目录,则归组写入(默认)

no_wdelay

如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置

hide

在nfs共享目录中不共享其子目录

no_hide

共享nfs目录的子目录

subtree_check

如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)

no_subtree_check

不检查父目录权限

all_squash

共享文件的UID和GID映射匿名用户anonymous,适合公用目录

no_all_squash

保留共享文件的UID和GID(默认)

root_squash

root用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squash

root用户具有根目录的完全管理访问权限

anonuid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的UID

anongid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的GID

 

假定NFS共享目录是/home/ky/nfs,允许所有客户机访问,/etc/exports文件可写为:

/home/ky/nfs *(rw,sync,no_subtree_check, no_root_squash)

启动NFS服务器。启动portmap(如果有必要)和nfs-kernel-server服务:

ky@ubuntu:~$ sudo service portmap start

ky@ubuntu:~$ sudo service nfs-kernel-server start

       本地验证NFS服务器。将NFS服务器目录挂载到本机另外一个目录下,可以看到挂载点目录下可以看到NFS服务器目录中的文件。

ky@ubuntu:~$ ls /home/ky/nfs/

aaaa

ky@ubuntu:~$ sudo mount -t nfs 127.0.0.1:/home/ky/nfs /mnt

ke@ubuntu:~$ ls /mnt

aaaa

ky@ubuntu:~$ sudo umount /mnt/

用开发板验证NFS服务器是否可用。启动开发板,进入系统,配置好开发板的IP地址后,用mount命令挂载NFS服务器的NFS目录:

target# mount  -t nfs 192.168.1.3:/home/ky/nfs /mnt -o nolock

target# ls /mnt

kingyee

target# umount /mnt/

       挂载成功后,可以在开发板的/mnt目录下看到NFS服务器上的文件。

说明,使用开发板与虚拟机安装的客户系统进行NFS挂载,需要将虚拟网卡设置为Bridged模式,并建议使用静态IP地址。

       如果在使用中需要增加新的NFS共享目录,直接修改/etc/exports文件即可。修改该文件后,可以不用重启NFS服务,用exportfs命令读取/etc/exports文件,重新共享输出。exportfs命令语法如下:

   exportfs  [-aruv]

       选项说明:

-a:全部挂载(或卸载) /etc/exports的设置;

-r:重新挂载/etc/exports的设置;

-u:卸载某一个目录;

-v:在输出的时候,把共享目录显示出来。

       如果NFS已经启动,修改了/etc/exports文件,执行如下命令,新的设置即可生效:

ky@ubuntu:~$ exportfs -ra

/etc/exports 可以如下配置:

/home/xuxuequan/AmBaWork/sharenfs *(rw,sync,no_root_squash,no_subtree_check)


可在修改/etc/exports后,不重启nfs service,直接执行如下指令,使得修改立即生效

exportfs -rv


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Linux 中搭建 NFS 服务器需要安装 NFS 相关的软件包,并进行配置。 首先,在服务器端安装 NFS 相关软件包,在 Ubuntu/Debian 系统中可以使用命令: ``` sudo apt-get install nfs-kernel-server ``` 然后,配置 NFS 服务器端的目录,在/etc/exports 中添加需要共享的目录,格式如下: ``` /path/to/shared/folder client1(rw,sync) client2(ro,sync) ``` 最后,启动 NFS 服务并设置开机启动: ``` sudo systemctl start nfs-kernel-server sudo systemctl enable nfs-kernel-server ``` 客户端可以使用 mount 命令来挂载 NFS 共享目录。 ``` mount -t nfs IP:/path/to/shared/folder /path/to/mount ``` 这样就成功搭建了一个NFS服务器。 ### 回答2: ### 回答3: NFS是Network File System的缩写,它是一种分布式文件系统,可以让不同的计算机之间、不同的操作系统之间共享文件。在Linux系统中搭建一个NFS服务器,可以方便地实现文件共享,以提高工作效率和方便管理文件。 下面我们介绍一些关于Linux中NFS服务器搭建的步骤: 1. 安装NFS服务器 可以使用命令行安装软件包。例如在ubuntu上: `sudo apt-get install nfs-kernel-server`。 2. 配置NFS服务器 首先打开/etc/exports文件,添加需要共享的目录。例如:/home/user/share 192.168.0.0/24(rw,sync,no_root_squash) 其中/home/user/share是要共享的目录,192.168.0.0/24是客户端的IP地址,rw表示可读写,sync表示同步写入,no_root_squash表示root用户对该目录具有管理员权限。 最后,重启NFS服务器:`sudo systemctl restart nfs-kernel-server.service` 3. 客户端连接NFS服务器 在客户端上,要连接到NFS服务器,需要安装nfs-common软件包。然后可以通过mount命令连接NFS服务器。 例如:`sudo mount -t nfs 192.168.0.1:/home/user/share /mnt/nfs` 其中192.168.0.1是NFS服务器的IP地址,/home/user/share是要共享的目录,/mnt/nfs是客户端上的挂载点,用于访问共享目录。 4. 验证NFS服务器 在客户端上,可以通过ls命令或者其他文件操作命令来验证NFS服务器是否正常工作。例如,执行`ls /mnt/nfs`命令来查看共享目录中的文件列表。 到此,我们完成了在Linux系统上搭建NFS服务器,实现文件共享的操作。但是需要注意的是,NFS不是一种非常安全的共享方式,因此需要在网络环境下更加注意一些安全策略,以保护数据的安全性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值