NFS
背景#
NFS(Network File System,网络文件系统)只提供了基本的文件处理功能,而不提供任何 TCP/IP 数据传输功能。
它需要借助 RPC 协议才能实现 TCP/IP 数据传输功能。
RPC(Remote Procedure Call,远程过程调用)是一种网络程序的编程方法,它定义了一种进程间通过网络进行交互通信的机制。
rpc.nfsd
进程
NFS 服务的主进程,主要管理客户端是否能够接入 NFS 服务器以及数据的传输。
该进程固定监听 TCP/UDP 2049
端口。
rpc.mountd
进程
管理和维护 NFS 文件系统,根据所设定的权限决定是否允许客户端挂载指定的共享目录。
rpcbind
进程
RPC 的端口映射器进程,监听 UDP 111
端口。
该进程监听的端口默认是不固定的。
安装NFS#
yum install -y nfs-utils rpcbind
nfs-utils:提供了NFS服务器程序和对应的管理工具
rpcbind:获取nfs服务器端的端口等信息
启动rpcbind检查是否启动了rpcbind服务并监听111端口
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# netstat -tunlp | grep 111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 598/rpcbind
tcp6 0 0 :::111 :::* LISTEN 598/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 598/rpcbind
udp6 0 0 :::111 :::* 598/rpcbind
配置共享#
编辑 exports 文件:
vim /etc/exports
这个文件的格式是:
共享目录路径 允许的 IP 或主机名 1(选项 1,选项 2,...) 允许的 IP 或主机名 2(选项 1,选项 2,...) ...
选项 | 功能 |
---|---|
ro | 以只读方式共享(默认) |
rw | 以读写方式共享 |
sync | 客户端写入的数据立即写入到磁盘中去(默认) |
async | 客户端写入的数据先保存到内存中再写入到磁盘中去 |
root_squash | 把root用户映射为匿名用户(默认) |
no_root_squash | 允许使用root用户 |
all_squash | 把所有用户映射为匿名用户 |
anonuid= |
指定匿名用户的UD |
anongid= |
指定匿名用户的GD |
insecure | 允许客户端使用大于1024的端口连接 |
比如把 /tmp 设置成允许任意主机以匿名身份读写 /tmp 目录
/tmp *(rw,all_squash)
只允许 1.1.1.1 以 root 只读 /root
/root 1.1.1.1(ro,no_root_squash)
启动服务#
systemctl start nfs
如果修改了 NFS 配置文件,我们可以通过以下命令直接使新的配置文件生效而不用中断服务。
exportfs -ra
关闭防火墙
systemctl stop firewalld && setenforce 0
查看是否生效#
showmount -e
访问#
win 11,步骤是:
- 打开“控制面板”: 在 Windows 11 中搜索栏中键入“控制面板”,然后打开它。
- 选择“程序” -> “启用或关闭 Windows 功能”: 点击左侧菜单中的“程序”选项,然后选择“启用或关闭 Windows 功能”。
- 勾选“NFS 客户端”: 在弹出的窗口中找到并勾选“NFS 客户端”,然后点击“确定”并等待功能安装完成。
但是这个我自己是不行的。
这边我用ubuntu来连接,先安装 nfs 工具:
apt install nfs-common
使用以下命令:
root@ubuntu:/home/ming# mkdir /mnt/nfs # 创建本地挂载点
root@ubuntu:/home/ming# mount -t nfs 192.168.91.168:/tmp /mnt/nfs # 挂载 NFS 共享目录到本地目录
root@ubuntu:/home/ming# cd /mnt/nfs/
root@ubuntu:/mnt/nfs# ls
hsperfdata_root
ks-script-ri08Ay
ks-script-TaQfPj
lua_NncYtN
ssh-50UpIqz22VoE
ssh-zc0nKv2xmCMJ
systemd-private-54a432bfa8674d438894e543725d7b9e-bolt.service-rF8dnV
systemd-private-54a432bfa8674d438894e543725d7b9e-chronyd.service-Tn5xKw
systemd-private-54a432bfa8674d438894e543725d7b9e-colord.service-F9x5LU
systemd-private-54a432bfa8674d438894e543725d7b9e-cups.service-4SB9gK
systemd-private-54a432bfa8674d438894e543725d7b9e-fwupd.service-aRFJf4
systemd-private-54a432bfa8674d438894e543725d7b9e-rtkit-daemon.service-ZZ5NdU
systemd-private-c2e0544d4a2046068bdae3218a053ffd-bolt.service-kaqZsH
systemd-private-c2e0544d4a2046068bdae3218a053ffd-chronyd.service-lQSMge
systemd-private-c2e0544d4a2046068bdae3218a053ffd-colord.service-s7BQfl
systemd-private-c2e0544d4a2046068bdae3218a053ffd-cups.service-3813TD
systemd-private-c2e0544d4a2046068bdae3218a053ffd-fwupd.service-7yQGJJ
systemd-private-c2e0544d4a2046068bdae3218a053ffd-rtkit-daemon.service-tYPsSB
tmp.RdLUogaC77
tracker-extract-files.1000
vmware-root_638-2722304702
vmware-root_651-4013395565
vmware-root_90197-2801210396
yum.log
yum_save_tx.2023-09-10.06-23.y8LpMc.yumtx
可以发现已经出现了 yum 这个不属于 Ubuntu 的日志了。
卸载#
umount /mnt/nfs # 卸载共享目录
作者:qianyuzz
出处:https://www.cnblogs.com/qianyuzz/p/17923890.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)