NotePublic/Software/Applications/NFS/NFS_服务安装和配置.md

103 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# NFS 服务安装和配置
## 1.安装
```bash
# Ubuntu
sudo apt install nfs-kernel-server
sudo apt install nfs-common
# Manjaro
sudo pacman -S nfs-utils
```
## 2.配置
```bash
sudo vim /etc/exports
```
在该文件末尾添加下面的一行:
```ini
<NFS share dir> *(rw,sync,no_root_squash,no_subtree_check) # * 表示允许任何网段 IP 的系统访问该 NFS 目录
```
新建“\<NFS share dir\>”目录,并为该目录设置最宽松的权限:
```bash
sudo mkdir <NFS share dir>
# -R 表示递归更改该目录下所有文件
sudo chmod -R 777 <NFS share dir>
sudo chown <usr>:<group> <NFS share dir> -R
```
如果修改了 exports 文件需要通过以下命令使修改生效:
```bash
sudo exportfs -arv
```
## 3.使能/启动 NFS 服务
```bash
# Ubuntu
sudo systemctl enable nfs-kernel-server
sudo systemctl start nfs-kernel-server
# Manjaro
sudo systemctl enable nfs-server
sudo systemctl start nfs-server
```
## 4.停止/禁用 NFS 服务
```bash
# Ubuntu
sudo systemctl stop nfs-kernel-server
sudo systemctl disable nfs-kernel-server
# Manjaro
sudo systemctl stop nfs-server
sudo systemctl disable nfs-server
```
## 5.防火墙配置
```bash
firewall-cmd --permanent --zone public --add-service mountd
firewall-cmd --permanent --zone public --add-service rpc-bind
firewall-cmd --permanent --zone public --add-service nfs
firewall-cmd --reload
```
## 6.挂载 NFS 文件系统
### 6.1.Linux 下挂载 NFS
```bash
sudo mount -t nfs <nfs server ip>:<NFS share dir> <mount point> -o nolock
```
### 6.2.Windows 下挂载 NFS
打开“控制面板->程序->打开或关闭 Windows 功能”勾选“NFS 服务->NFS 客户端”和“NFS 服务->管理工具”。
由于字体编码问题NFS 中的中文字符可能乱码,如果是 Win10 系统可打开“控制面板->时钟和区域->区域->管理->更改系统区域设置”勾选“Beta 版:使用 Unicode UTF-8 提供全球语言支持”。然后重启系统。
在 Windows CMD 中使用下列命令即可挂载 NFS 到指定盘符上。
```bash
mount \\<IP or host name>\<NFS share dir> <mount point>
# 如
mount \\192.168.1.100\home\share x:\
```
## 7.查看状态
```bash
# 查看NFS的运行状态
sudo nfsstat
# 查看rpc执行信息可以用于检测rpc运行情况
sudo rpcinfo
# 在服务端查看哪些客户访问过哪些 NFS 目录
showmount -a
```