差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
软件:nfs [2025/09/01 13:11] – admin | 软件:nfs [2025/09/05 01:40] (当前版本) – admin | ||
---|---|---|---|
行 1: | 行 1: | ||
- | 网络文件系统,英文 | + | 网络文件系统(Network File System, NFS)是允许通过网络远程访问文件系统的协议。属于一种分布式文件系统协议。 |
- | 安装 | + | NFS协议必须限制为受信任的本地网络,因为数据在网络上不加密地传递,并且基于客户端的 IP 地址来授予访问权限。可通过嗅探程序进行拦截到,欺骗来获取到访问权限。 |
+ | |||
+ | 不使用Kerberos安全认证,需确保只允许使用NFS的设备连接到所需的设备。 | ||
+ | |||
+ | RPC服务器上是至关重要的,因为基本协议信任从网络接收到的数据。防火墙也必需阻挡IP嗅探,从而防止外部机器作为内部的机器工作,并且对适当端口的访问必须被限制给有意访问NFS共享的机器。 | ||
+ | |||
+ | RPC(Remote Procedure Call, 远程过程调用),用于在不同的计算机或进程之间进行通信和调用远程方法,一种通信协议。服务注册到一个portmapper的目录。执行NFS查询的客户端首先处理portmapper(在端口111,TCP或UDP),并查询NFS服务器;回复默认端口2049。不是所有的RPC服务有必要使用固定的端口。 | ||
+ | |||
+ | 在较新的NFS版本(如NFSv4)中,rpcbind并不是严格必需的,因为NFSv4使用了TCP作为传输协议,并且直接通过端口2049进行通信,不需要rpcbind来映射RPC(远程过程调用)服务到动态端口。然而,在某些情况下或使用旧版本的NFS时,rpcbind仍然是必要的。 | ||
+ | |||
+ | 功能 | ||
+ | |||
+ | 文件共享:允许多个客户端访问和使用存储在中央服务器上的文件。 | ||
+ | |||
+ | 透明性:对用户来说,访问远程文件系统与访问本地文件系统几乎没有区别。 | ||
+ | |||
+ | 分布式文件系统:支持多个客户端同时读写同一个文件系统,适合需要协作的工作环境。 | ||
+ | |||
+ | 原理 | ||
+ | |||
+ | NFS基于客户端-服务器架构,其中服务器共享一个或多个目录(称为“导出”),而客户端可以挂载这些共享目录并像操作本地文件一样进行操作 | ||
+ | |||
+ | 组件 | ||
+ | |||
+ | NFS服务器:导出(export)文件系统,使其在网络上可用。管理文件系统的访问权限。 | ||
+ | |||
+ | NFS客户端:挂载远程文件系统,使其在本地可见。执行文件操作(如读、写、删除等)并通过网络与服务器通信。 | ||
+ | |||
+ | RPC(Remote Procedure Call,远程过程调用):NFS依赖RPC机制来实现客户端和服务器之间的通信。对于NFSv4及以上版本,RPC不是必须的,因为它们使用固定的端口(2049)进行通信。 | ||
+ | |||
+ | Kerberos(验证), | ||
+ | |||
+ | 部署安装 | ||
<code -> | <code -> | ||
- | #服务端 | + | #普通磁盘挂载 |
+ | # | ||
+ | lsblk -f | ||
+ | blkid | ||
+ | # | ||
+ | sudo mkdir / | ||
+ | # | ||
+ | sudo vi / | ||
+ | UUID=1234-5678 | ||
+ | # | ||
+ | umount / | ||
+ | |||
+ | #nfs服务端 | ||
#安装 | #安装 | ||
sudo apt install nfs-kernel-server | sudo apt install nfs-kernel-server | ||
行 17: | 行 61: | ||
sudo showmount -e | sudo showmount -e | ||
- | #客户端挂载 | + | #客户端 |
+ | #安装 | ||
sudo apt install nfs-common | sudo apt install nfs-common | ||
+ | #挂载 | ||
sudo showmount -e 127.0.0.1 | sudo showmount -e 127.0.0.1 | ||
- | mkdir /mnt/nfs | + | sudo mkdir /mnt/nfs |
#手动 | #手动 | ||
sudo mount -t nfs 127.0.0.1:/ | sudo mount -t nfs 127.0.0.1:/ | ||
行 29: | 行 75: | ||
#查看 | #查看 | ||
df | df | ||
- | |||
# | # | ||
- | umount /media/user/mydisk | + | umount /mnt/nfs |
+ | </code> | ||
- | #自动 | + | < |
- | #查UUID | + | sudo apt install krb5-kdc krb5-admin-server |
- | lsblk -f | + | |
- | # 或 | + | sudo mount -t nfs -o vers=4, |
- | blkid | + | sudo mount -t nfs -o vers=3, |
- | # | + | |
- | sudo mkdir / | + | |
- | # | + | |
- | sudo vi /etc/fstab | + | |
- | UUID=1234-5678 /media/user/mydisk | + | |
</ | </ | ||