【服务器】教程 — Linux上如何挂载服务器NAS
【教程】如何挂载服务器NAS
- 摘要
- 【教程】如何挂载服务器NAS
- 服务器连接NAS
- 以下命令取消挂载
- 1. `sudo`
- 2. `mount`
- 3. `-t cifs`
- 4. `-o`(options)
- 5. `//59.xx.xx.xx/qwt`
- 6. `/home/qwt/nas`
- 完整示例
- 测试是否成功连接并可读写
- 参考文章
摘要
本文系统地演示了在 Linux 服务器上挂载 Windows/CIFS NAS 的全过程,主要包括以下几个步骤:
-
确认共享路径
通过浏览器访问 NAS 客户端(如http://59.xx.xx.xx:8080/cgi-bin/
),定位目标共享文件夹(格式//<IP>/<共享名>
)。 -
创建本地挂载点
在服务器上执行:mkdir -p /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
- username/password:登录 NAS 的凭据
- iocharset=utf8:保证文件名的字符集转换
- uid/gid:挂载后文件归属的本地用户和组
- file_mode=0664:文件权限
-rw-rw-r--
- dir_mode=0775:目录权限
drwxrwxr-x
- 取消挂载
sudo umount /home/qwt/nas
-
验证挂载与读写
-
进入挂载目录:
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 网络共享协议
- 可选值:
cifs
、smbfs
(过时) - 何时必要:如果不加
-t cifs
,mount
会尝试自动检测,但显式指定更可靠
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 扩展时,给挂载的目录统一设定的权限位 | 0775 → drwxrwxr-x |
Tip:如果远端支持 CIFS UNIX 扩展(
nounix
未启用),客户端会读取真实的服务端权限,此时这两项可以省略。
下面分别用两个表格列出常见的 file_mode
与 dir_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
- 路径要与服务端配置的“共享名称”严格一致
- 如果共享在特定端口(非 445),可以在 IP 后加端口:
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也可以看到挂载容量
参考文章
- Linux 挂载 nas 服务器实现方案与详细分步指南
- Linux 挂载nas盘