在Ubuntu 22.04上使用NFS和CIFS

2024-05-14 15:04
文章标签 ubuntu 使用 nfs 22.04 cifs

本文主要是介绍在Ubuntu 22.04上使用NFS和CIFS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Ubuntu 22.04上使用NFS(Network File System)进行挂载,你可以按照以下步骤操作:

服务器端配置

  1. 安装NFS服务器
    首先,你需要在Ubuntu服务器上安装NFS服务器。打开终端并输入以下命令:

    bash复制代码

    sudo apt update 
    sudo apt install nfs-kernel-server

    如果系统提示需要更新,请先执行sudo apt update

  2. 创建共享目录
    创建一个你想要共享的目录。例如,在/home/username/nfsdir下创建一个目录:

    sudo mkdir -p /home/username/nfsdir

    请将username替换为你的用户名。

  3. 配置NFS
    打开NFS的配置文件/etc/exports。你可以使用任何文本编辑器,如vimgedit。这里以vim为例:

    sudo vim /etc/exports

    在文件末尾添加一行来定义你的共享目录和访问权限。例如:

    /home/username/nfsdir *(rw,sync,no_root_squash)

    这表示/home/username/nfsdir目录对所有客户端都是可读写的(rw),数据是同步写入的(sync),并且NFS客户端上的root用户具有与服务器上的root用户相同的权限(no_root_squash)。

    注意:如果你只想允许特定的IP地址或网络段访问,你可以替换*为相应的IP地址或CIDR表示法。

  4. 重启NFS服务
    保存并关闭/etc/exports文件后,重启NFS服务以使更改生效:

    sudo systemctl restart nfs-kernel-server

客户端配置

  1. 安装NFS客户端(如果尚未安装):
    在Ubuntu客户端上,你可能需要安装NFS客户端工具。不过,这些工具通常作为NFS服务器包的一部分一起安装。如果没有,你可以使用以下命令安装:

    sudo apt install nfs-common

  2. 挂载NFS共享
    现在你可以在Ubuntu客户端上挂载NFS共享了。使用mount命令并指定服务器地址、共享目录和本地挂载点。例如:

    sudo mount -t nfs server_ip:/home/username/nfsdir /mnt/nfs

    请将server_ip替换为你的NFS服务器IP地址,/mnt/nfs替换为你想要挂载到的本地目录(如果目录不存在,需要先创建它)。

  3. 验证挂载
    使用df -h命令来查看已挂载的文件系统,确认NFS共享已成功挂载:

    df -h

    你应该能在输出中看到类似于server_ip:/home/username/nfsdir的条目。

现在,你的Ubuntu客户端应该能够像访问本地文件系统一样访问NFS共享了。

如果出现报错mount.nfs: access denied by server while mounting

当您遇到 mount.nfs: access denied by server while mounting  错误时,这通常意味着NFS服务器拒绝了客户端的挂载请求。以下是几个可能的解决方案:

  1. 检查NFS导出配置
    • 确保NFS服务器的 /etc/exports 文件中包含了对应的导出目录和允许访问的客户端IP或子网。例如:
      /yww_nfs_ssd 172.26.111.0/24(rw,sync,no_root_squash)
    • 如果您使用的是NFSv4,请确保您使用的是正确的访问控制机制(如sec=syssec=krb5等)。
    • 导出目录的权限也需要是适当的,以便NFS服务可以访问它们。
  2. 重新加载NFS导出
    • 在NFS服务器上,每次更改 /etc/exports 文件后,您都需要重新加载NFS配置。可以使用以下命令:
      sudo exportfs -ra
  3. 检查NFS服务状态
    • 确保NFS服务正在运行。在大多数Linux发行版中,可以使用以下命令检查:
      sudo systemctl status nfs-server
    • 如果NFS服务没有运行,请使用以下命令启动它:
      sudo systemctl start nfs-server
  4. 检查防火墙设置
    • 确保NFS服务器和客户端的防火墙都允许NFS相关的端口。NFS通常使用111端口(rpcbind/portmapper)和一系列动态分配的端口。
    • 如果您使用的是云服务提供商的安全组或VPC设置,请确保这些设置允许NFS通信。
  5. 检查NFS版本和挂载选项
    • 如果您的NFS服务器和客户端使用的NFS版本不同,可能会出现兼容性问题。请确保它们使用相同的NFS版本(通常是NFSv3或NFSv4)。
    • 使用正确的挂载选项。例如,如果您使用的是NFSv4,您可能需要指定 sec=sys 或其他安全选项。
  6. 检查NFS客户端ID映射
    • 如果您使用的是NFSv4并且遇到了ID映射问题,请确保NFS服务器和客户端都正确配置了ID映射。
  7. 查看日志
    • 在NFS服务器和客户端上查看系统日志,以获取更多关于为什么访问被拒绝的信息。在大多数Linux系统上,您可以使用 dmesgjournalctl 或直接查看 /var/log/ 目录下的日志文件。
  8. 测试NFS连接
    • 在客户端上,使用 showmount -e 172.26.111.1 命令来查看NFS服务器上的导出列表。这可以帮助您验证NFS服务器是否可访问以及是否列出了您尝试挂载的目录。

在Ubuntu 22.04中使用CIFS挂载共享文件夹,你可以按照以下步骤操作:

  1. 安装cifs-utils软件包
    首先,你需要安装cifs-utils软件包,该软件包包含CIFS挂载工具。在终端中执行以下命令进行安装:

    sudo apt update 
    sudo apt install cifs-utils

  2. 创建本地挂载点
    你需要在Ubuntu上创建一个本地目录,用于挂载共享文件夹。你可以在任何位置创建这个目录,但通常建议选择一个容易访问的位置。例如,在/mnt目录下创建一个名为share的目录:

    sudo mkdir /mnt/share

  3. 挂载共享文件夹
    使用mount命令来挂载共享文件夹。你需要提供共享服务器的IP地址、共享名称、本地挂载点以及你的用户名和密码。以下是一个示例命令的基本结构:

    sudo mount -t cifs //共享服务器IP地址/共享名称 /本地挂载点 -o 用户名=你的用户名,密码=你的密码,iocharset=utf8,sec=ntlm
    

    将命令中的共享服务器IP地址共享名称本地挂载点你的用户名你的密码替换为实际的值。例如:

    sudo mount -t cifs //192.168.1.100/myshare /mnt/share -o username=myuser,password=mypassword,iocharset=utf8,sec=ntlm

    输入你的用户密码以确认挂载操作。如果成功,你将能够在/mnt/share目录下访问共享文件夹的内容。

  4. (可选)自动挂载
    如果你希望在系统启动时自动挂载共享文件夹,可以编辑/etc/fstab文件并添加相应的条目。但是,请注意,将密码明文存储在/etc/fstab中可能存在安全风险。因此,建议仅在了解风险并接受其后果的情况下使用此方法。

    如果你选择使用/etc/fstab进行自动挂载,并希望避免在文件中明文存储密码,你可以考虑使用其他方法(如密钥环或凭证助手)来安全地存储和管理凭据。

完成上述步骤后,你就应该能够在Ubuntu 22.04上成功使用CIFS挂载共享文件夹了。

如果出现如下错误

mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

使用命令

tail -f /var/log/kern.log

 

这个错误消息是在警告你,使用SMB/CIFS协议的不太安全的版本(vers=1.0)通常是不被推荐的,除非你需要访问非常旧的服务器。SMB 1.0(也被称为CIFS 1.0)由于存在一些已知的安全漏洞,因此在许多现代环境中已经被禁用或不再推荐使用。

如果你确实需要访问一个只支持SMB 1.0的服务器,并且没有其他选择,你可以继续使用这个版本,但你应该非常清楚你正在承担的安全风险。

然而,如果可能的话,你应该尝试以下步骤来解决问题:

  1. 更新服务器:如果可能的话,尝试更新SMB服务器到支持更安全的SMB版本(如SMB 2.0、SMB 2.1、SMB 3.0等)。

  2. 使用更安全的SMB版本:在挂载命令中指定一个更安全的SMB版本。例如,使用vers=2.0vers=3.0(取决于服务器支持的版本)。

    sudo mount -t cifs //server-ip/share-name /mnt/cifs-share -o username=your-username,password=your-password,vers=3.0

    注意:在上面的命令中,我移除了sec=ntlm或类似的参数,因为当你指定一个较新的SMB版本时,通常不需要明确指定安全选项,除非服务器有特殊需求。

当你看到错误消息 "CIFS: VFS: bad security option: ntlm" 时,这通常意味着你尝试在挂载CIFS共享时使用了不被支持的安全选项ntlm。虽然NTLM曾经是一个常见的SMB认证协议,但随着时间的推移,它被认为是不够安全的,并且在现代Linux发行版中,默认可能不再支持或推荐使用。

要解决这个问题,你可以尝试以下几种方法:

  1. 使用ntlmv2ntlmssp
    尝试使用NTLMv2或NTLM Session Security Package(ntlmssp)代替NTLM。这些是NTLM的更新和更安全的版本。

    例如:

    sudo mount -t cifs //server-ip/share-name /mnt/cifs-share -o username=your-username,password=your-password,vers=3.0,sec=ntlmv2

    或者

    sudo mount -t cifs //server-ip/share-name /mnt/cifs-share -o username=your-username,password=your-password,vers=3.0,sec=ntlmssp
  2. 检查服务器配置
    确保SMB服务器支持你想要使用的安全选项。如果服务器只支持NTLM,并且你的Linux发行版不再支持NTLM,你可能需要更新服务器配置以使用更新的认证方法。

  3. 查看mount.cifs文档
    使用man mount.cifs命令查看mount.cifs的文档,了解可用的安全选项和其他挂载选项。

这篇关于在Ubuntu 22.04上使用NFS和CIFS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989066

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念