【服务器】教程 — Linux上如何挂载服务器NAS

发布于:2025-06-28 ⋅ 阅读:(20) ⋅ 点赞:(0)

摘要

本文系统地演示了在 Linux 服务器上挂载 Windows/CIFS NAS 的全过程,主要包括以下几个步骤:

  1. 确认共享路径
    通过浏览器访问 NAS 客户端(如 http://59.xx.xx.xx:8080/cgi-bin/),定位目标共享文件夹(格式 //<IP>/<共享名>)。

  2. 创建本地挂载点
    在服务器上执行:

    mkdir -p /home/qwt/nas
    
  3. 执行挂载操作
    使用以下命令将远程 CIFS 共享挂载到本地目录:

 
sudo mount -t cifs -o username=qwt,password=qwt,iocharset=utf8,uid=1005,gid=1006,file_mode=0664,dir_mode=0775 //59.xx.xx.xx/qwt /home/qwt/nas
  • username/password:登录 NAS 的凭据
  • iocharset=utf8:保证文件名的字符集转换
  • uid/gid:挂载后文件归属的本地用户和组
  • file_mode=0664:文件权限 -rw-rw-r--
  • dir_mode=0775:目录权限 drwxrwxr-x
  1. 取消挂载
sudo umount /home/qwt/nas
  1. 验证挂载与读写

    • 进入挂载目录:cd /home/qwt/nas

    • 下载测试文件:

      wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
      
    • 使用 df -h 查看挂载容量

【教程】如何挂载服务器NAS

首先你可能可以登录你的nas客户端查看是否有你的文件夹
比如http://59.xx.xx.xx:8080/cgi-bin/

查看你对应的文件夹
在这里插入图片描述

后续要使用这个进行登录,格式为IP/文件夹
比如//59.xx.x.xx/qwt

服务器连接NAS

在你的服务器创建一个文件夹用于挂载NAS
比如/home/qwt/nas
然后挂载nas可能会需要sudo权限

然后使用以下命令行进行加载:

sudo mount -t cifs -o \
username=qwt,password=qwt,iocharset=utf8,uid=1005,\
gid=1006,file_mode=0664,dir_mode=0775 \
//59.xx.xx.xx/qwt /home/qwt/nas

在这里插入图片描述

  • 连接成功不会输出消息
  • 在这里插入图片描述

以下命令取消挂载

sudo umount  /home/qwt/nas
  • 下面我按执行顺序,逐项详细拆解这条 CIFS 挂载命令中的各个参数及用法:
sudo mount -t cifs -o \
    username=qwt,password=qwt,iocharset=utf8,uid=1005,\
gid=1006,file_mode=0664,dir_mode=0775 \
    //59.xx.xx.xx/qwt  /home/qwt/nas

1. sudo

  • 作用:以超级用户(root)权限运行后面的命令
  • 使用场景:挂载操作需要写入系统的 /proc/mounts、创建设备节点或设置文件属主等,普通用户通常无法完成,需要提权

2. mount

  • 作用:将一个文件系统(本地或网络)“挂载”到系统的某个目录,使其内容可通过该目录访问

  • 常见用法

    mount [参数] <设备或网络共享> <挂载点>
    

3. -t cifs

  • 含义:指定文件系统类型为 CIFS(Common Internet File System),即 Windows/SMB 网络共享协议
  • 可选值cifssmbfs(过时)
  • 何时必要:如果不加 -t cifsmount 会尝试自动检测,但显式指定更可靠

4. -o(options)

所有挂载选项统一放在 -o 之后,用逗号分隔。下面依次说明本例中的每个选项:

选项 含义 示例
username=qwt 用于登录远端 SMB 共享的用户名 如果共享需要域账号,可写成 username=DOMAIN\\user
password=qwt 与用户名配套的密码 安全建议:可用 credentials=/path/to/credfile 避免明文出现在命令行
iocharset=utf8 指定客户端字符集,将远端文件名的编码(如 GBK、ISO8859-1)转换为本地 UTF-8 确保中日韩等非 ASCII 名称能正确显示
uid=1005 挂载后,所有文件默认归属的 Linux 本地用户 ID 可写用户名形式:uid=qwt
gid=1006 挂载后,所有文件默认归属的 Linux 本地组 ID 可写组名形式:gid=qwt
file_mode=0664 当服务器不支持 UNIX 扩展时,给挂载的文件统一设定的权限位 0664-rw-rw-r--
dir_mode=0775 当服务器不支持 UNIX 扩展时,给挂载的目录统一设定的权限位 0775drwxrwxr-x

Tip:如果远端支持 CIFS UNIX 扩展(nounix 未启用),客户端会读取真实的服务端权限,此时这两项可以省略。


下面分别用两个表格列出常见的 file_modedir_mode 代码示例、对应的权限位、含义及典型适用场景。

1. file_mode 常用代码示例

代码 权限位 含义 适用场景
0644 -rw-r--r-- 拥有者可读写,组和其他用户只读 公开只读文件;仅管理员/拥有者可修改
0664 -rw-rw-r-- 拥有者和组可读写,其他用户只读 小团队协作,共享组内可写,外部只读
0666 -rw-rw-rw- 所有人都可读写 临时共享目录,任何人都可上传/下载
0777 -rwxrwxrwx 所有人可读、写、执行(对文件仅意义为可执行位) 脚本或二进制需要所有人可执行

2. dir_mode 常用代码示例

代码 权限位 含义 适用场景
0755 drwxr-xr-x 拥有者可读写执行,组和其他用户可读执行 公开目录;他人可浏览/下载,但只能拥有者可写入
0775 drwxrwxr-x 拥有者和组可读写执行,其他用户可读执行 小团队共享目录;组内成员可创建/删除,外部成员只能浏览
0777 drwxrwxrwx 所有人可读写执行 无访问限制的目录;可任意上传、下载、进入

5. //59.xx.xx.xx/qwt

  • 含义:要挂载的网络共享路径

    • //<服务器 IP 或域名>/<共享名>
    • 支持使用 DNS 名称://fileserver.example.com/qwt
  • 注意

    • 如果共享在特定端口(非 445),可以在 IP 后加端口://59.xx.xx.xx:139/qwt
    • 路径要与服务端配置的“共享名称”严格一致

6. /home/qwt/nas

  • 含义:本地挂载点目录,挂载成功后,通过该目录就能访问远端共享里的所有文件和子目录

  • 前置条件

    • 目录必须存在:mkdir -p /home/qwt/nas
    • 当前用户(或 Nginx、Apache 等进程,如有需要)要对该目录有读写/执行权限

完整示例

# 1. 创建挂载点
mkdir -p /home/qwt/nas

# 2. 执行挂载
sudo mount -t cifs -o \
    username=qwt,password=qwt,iocharset=utf8,uid=1005,\
gid=1006,file_mode=0664,dir_mode=0775 \
    //59.xx.xx.xx/qwt  /home/qwt/nas

# 3. 验证
mount | grep /home/qwt/nas
ls -l /home/qwt | grep nas

若要卸载,共执行:

sudo umount /home/qwt/nas

uid gid可以使用以下命令查询:

> id qwt
输出:uid=1005(qwt) gid=1006(qwt) groups=1006(qwt),27(sudo)

在这里插入图片描述

测试是否成功连接并可读写

进入对应文件夹

cd /home/qwt/nas

尝试下载文件至nas

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

在这里插入图片描述
下载成功,说明连接成功

使用 df -h也可以看到挂载容量
在这里插入图片描述

参考文章

  1. Linux 挂载 nas 服务器实现方案与详细分步指南
  2. Linux 挂载nas盘