Linux网络驱动器:NFS /etc/export配置

nfs服务器的配置,配置文件/etc/exports:

ro 该主机对该共享目录有只读权限

rw 该主机对该共享目录有读写权限

root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户

no_root_squash 客户机用root访问该共享文件夹时,不映射root用户

all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户

anonuid 将客户机上的用户映射成指定的本地用户ID的用户

anongid 将客户机上的用户映射成属于指定的本地用户组ID

sync 资料同步写入到内存与硬盘中

async 资料会先暂存于内存中,而非直接写入硬盘

insecure 允许从这台机器过来的非授权访问

例子

/  zhang (rw) wang (rw,no_root_squash)

表示共享服务器上的根目录(/)只有zhang和wang两台主机可以访问,且有读写权限;

zhang主机用root用户身份访问时,将客户机的root用户映射成服务器上的匿名用户(root_squash,该参数为缺省参数),相当于在服务器使用nobody用户访问目录;

wang主机用root用户身份访问该共享目录时,不映射root用户(no_root_squash),即相当于在服务器上用root身份访问该目


/root/share/ 192.168.1.20 (rw,insecure,sync,all_squash)

表示共享服务器上的/root/share/目录只有192.168.1.20主机可以访问,且有读写权限;

此主机用任何身份访问时,将客户机的用户都映射成服务器上的匿名用户(all_squash),相当于在服务器上用nobody用户访问该目录(若客户机要在该共享目录上保存文件(即写操作),则服务器上的nobody用户对该目录必须有写的权限)

/home/ljm/ *.gdfs.edu.cn (rw,insecure,sync,all_squash)

表示共享/home/ljm/目录,*.gdfs.edu.cn域中所有的主机都可以访问该目录,且有读写权限

/home/share/ .gdfs.edu.cn (ro,sync,all_squash,anonuid=student,anongid=math) 

表示共享目录/home/share/,*.gdfs.edu.cn域中的所有主机都可以访问,但只有只读的权限,所有用户都映射成服务器上的uid为student、gid为math的用户


启动nfs后又修改了/etc/exports,不用重启该服务,使用exports命令即可:


exports [-aruv]

-a 全部mount或umount文件/etc/exports中的内容

-r 重新mount文件/etc/exports中的共享内容

-u umount目录

-v 在export的时候,将详细的信息输出到屏幕上


例:

[root@localhost ~]#/usr/sbin/exportfs –rv 全部重新export一次
[root@localhost ~]#/usr/sbin/exportfs –au 全部卸载


nfs客户端的配置:

若是临时使用可直接执行mount命令:mount servername(or IP): 共享目录 本地挂载目录

若客户机启动就自动挂载服务器的共享目录,则需修改客户机上的/etc/fstab文件

/etc/fstab格式:

(192.168.233.139:/share /mnt nfs defaults 0 2)

  fs_spec fs_file fs_type fs_options fs_dump fs_pass

fs_spec:定义希望加载的文件系统所在的设备或远程文件系统,对于nfs则设为IP:/共享目录

fs_file:本地挂载点

fs_type:挂载类型

fs_options:挂载参数

fs_dump:该选项被“dump”命令使用来检查一个文件系统该以多快频率进行转储,若不需转储即为0

fs_pass:该字段被fsck命令使用来决定在启动时需要被扫描的文件系统的顺序,根文件系统“/”对应该字段值为1,其他文件系统为2,若该文件系统无需在启动时被扫描则为0

 

[root@localhost ~]#vi /etc/hosts.allow
Portmap:192.168.5.123:allow
[root@localhost ~]#vi /etc/hosts.deny
Portmap:ALL:deny

 

安全提醒:确保网络安全,使用nfs时结合tcp_wrappers来限制使用范围(如只想192.168.5.123主机可挂载nfs服务器上的共享目录),另外还可结合iptables来加强
关机时若nfs server上有client联机时,先关掉portmap与nfs两个系统服务。若无法正确将此2项服务关掉,用netstat –utlp找出PID,然后用kill杀掉进程才关机

nfsstat查看NFS的运行状态,调整NFS运行大有帮助
rpcinfo查看rpc执行信息,用于检测rpc运行情况


挂载格式:

mount –t nfs hostname(or IP):/directory /mount point

卸载:

umount /本地挂载目录(本地client卸载方法,但用exports –au为server卸载)

 

showmount –e IP(查看NFS服务器上共享了那些目录)
showmount –a IP(用于nfs server上,显示已经mount上本机NFS服务器的client(客户机))

<think>好的,用户现在遇到了一个具体的NFS挂载问题,错误信息是“can't find in /etc/fstab”。我需要先理解这个错误的原因,然后给出解决方案。 首先,用户尝试用命令`mount -t nfs 127.0.0.1:/root/nfs_export`挂载NFS共享,但系统提示找不到/etc/fstab中的条目。这可能是因为用户没有指定挂载点,或者命令格式不正确。通常在mount命令中需要同时指定源和挂载点,但用户可能只提供了源,没有挂载点,导致系统去查找/etc/fstab中的配置,但没找到。 接下来,我需要检查用户可能的操作步骤。正确的挂载命令应该包括源地址和挂载点目录,比如`mount -t nfs 127.0.0.1:/root/nfs_export /mnt/mount_point`。用户可能漏掉了挂载点参数,导致命令不完整,从而系统尝试从/etc/fstab中寻找对应的配置,但因为没有预先配置,所以报错。 另外,还要考虑NFS服务器配置是否正确。用户需要确认是否已经正确导出/root/nfs_export目录,并且在/etc/exports文件中配置了允许本地挂载的权限。例如,检查是否有类似`/root/nfs_export 127.0.0.1(rw,sync,no_root_squash)`的条目,并且执行了exportfs -ra使配置生效。 此外,用户的权限问题也可能导致挂载失败。特别是如果导出目录是/root下的,可能需要确保NFS服务器配置允许root访问,比如使用no_root_squash选项,否则可能会因为权限问题无法挂载。 还需要考虑SELinux或防火墙的影响,虽然因为是本地挂载,防火墙可能不会阻止,但SELinux可能会限制NFS的访问。用户可能需要暂时禁用SELinux或调整策略。 总结下来,用户的问题可能出在:1)命令缺少挂载点参数;2)NFS导出配置不正确;3)权限问题;4)SELinux限制。需要逐步引导用户检查这些方面,并提供相应的解决步骤。同时,需要给出具体的命令示例和配置示例,确保用户能够一步步解决问题。</think>--- ### **问题分析** 你尝试使用 `mount -t nfs 127.0.0.1:/root/nfs_export` 挂载 NFS 共享,但系统提示 `can't find in /etc/fstab`。这是因为: 1. **未指定挂载点**:`mount` 命令需要同时指定**源路径**和**目标挂载点**。 2. **依赖 `/etc/fstab`**:如果不指定挂载点,系统会尝试从 `/etc/fstab` 中查找匹配项,但未找到相关配置。 --- ### **解决方案** #### **方法 1:直接指定挂载点** 1. **创建挂载目录**: ```bash mkdir -p /mnt/nfs_local # 创建一个本地挂载点(例如 `/mnt/nfs_local`) ``` 2. **重新执行挂载命令**: ```bash mount -t nfs -o vers=4 127.0.0.1:/root/nfs_export /mnt/nfs_local ``` - `vers=4`:指定 NFS 协议版本(推荐 v4)。 - `127.0.0.1:/root/nfs_export`:NFS 服务器导出的路径。 - `/mnt/nfs_local`:本地挂载点。 3. **验证挂载**: ```bash df -h | grep nfs_local ``` 若成功,会显示挂载信息。 --- #### **方法 2:通过 `/etc/fstab` 持久化挂载** 1. **编辑 `/etc/fstab`**: ```bash echo "127.0.0.1:/root/nfs_export /mnt/nfs_local nfs vers=4,defaults 0 0" | sudo tee -a /etc/fstab ``` 2. **挂载并生效**: ```bash mount -a # 自动挂载所有 `/etc/fstab` 中定义的条目 ``` --- ### **常见错误排查** #### **1. NFS 未正确导出目录** - **检查 `/etc/exports`**: ```bash cat /etc/exports ``` 确保包含以下内容: ```bash /root/nfs_export 127.0.0.1(rw,sync,no_root_squash) ``` - `no_root_squash`:允许 root 用户访问(需谨慎使用)。 - `sync`:同步写入磁盘。 - **重新加载 NFS 配置**: ```bash exportfs -ra ``` #### **2. 权限问题** - **目录所有权**: ```bash chown -R root:root /root/nfs_export # 确保导出目录权限正确 chmod 755 /root/nfs_export ``` - **SELinux 或 AppArmor**: ```bash setenforce 0 # 临时禁用 SELinux(仅用于测试) systemctl stop apparmor # 临时禁用 AppArmor(Ubuntu/Debian) ``` #### **3. 协议版本兼容性** - 如果挂载失败,尝试指定协议版本: ```bash mount -t nfs -o vers=3 127.0.0.1:/root/nfs_export /mnt/nfs_local ``` --- ### **示例验证** 1. **在导出目录创建文件**: ```bash touch /root/nfs_export/test.txt ``` 2. **检查挂载点是否同步**: ```bash ls /mnt/nfs_local # 应显示 test.txt ``` --- ### **总结** - **直接挂载**:需明确指定源路径和挂载点。 - **持久化配置**:通过 `/etc/fstab` 实现开机自动挂载。 - **关键排查点**:NFS 导出配置、权限、协议版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值