Linux挂载非标准端口SMB

写在前面

最近开始换用Linux作为主要系统了,打算写一个系列来介绍为什么Linux比Windows好用。这是第一篇。

由于SMB服务的445端口会被用于传播例如永恒之蓝等的Windows病毒,所以一般国内的运营商会直接封锁445端口,这也就导致了我们无法直接在外网使用标准端口访问家中nas上的SMB服务。而Winodws又因为其非常弱智的设计——不允许用户使用非标准端口挂载SMB,所以在Windows的公网环境下无法愉快的使用网络硬盘。当然,你也可以用端口转发的方式实现Windows挂载非标准端口的SMB(反正我没有成功过)。

总之,我不喜欢使用Windows,也的确不熟悉这个系统的一些原理,所以我也不打算在Windows环境下折腾了。来玩Linux吧!

挂载SMB的前置准备

在挂载网络硬盘前首先要下载相关的软件包

Debian/Ubuntu下

sudo apt-get update
sudo apt-get install cifs-utils

CentOS/RHEL

sudo yum install cifs-utils

创建要挂载的目录

由于正常情况下我们都不会使用root用户进行日常的生产生活,所以我们把网络硬盘挂载到目前使用用户的家目录下的文件夹中才行,这里以挂载到/home/xianyu/mnt/nas/disk为例

mkdir -p /home/xianyu/mnt/nas/disk

如何挂载SMB

先看我的范例

sudo mount -t cifs -o username=user_name,password=your_password,uid=xianyu,gid=xianyu,port=10086 //example.com/disk /home/xianyu/mnt/nas/disk

首先来看-t cifs,这条指定了使用的档案系统的形态,也就是上一节安装的那个。

后面的-o参数只有root用户可以使用,所以前面要加上sudo

在来到-o后方跟着的一长串:username=user_name,password=your_password,uid=xianyu,gid=xianyu,port=10086,他们的含义如下:

username password uid gid port
SMB服务器上登陆用的用户名 SMB服务器上登陆的用户密码 挂载到本地后指定的用户 挂载到本地后指定的用户组 SMB的端口

这里尤其要说明一下uidgid,由于在Linux中root用户责任重大,在正常的生产环境及个人使用时都不建议直接使用root用户进行操作,所以我们需要在挂载时指定使用普通用户、用户组进行挂载。如果不添加uidgid参数的话,网络硬盘挂载到本地之后文件加的若属用户和用户组就是root,对于普通用户来说会没有权限对文件夹的内容进行操作。

最后的//example.com/disk /home/xianyu/mnt/nas/disk,前面的指的是SMB服务器的地址及路径,后面的就是挂载到本地的哪个位置。
了解完命令的意义,就可以根据自己的情况进行挂载了

如何卸载SMB

很简单,如下:

umount /home/xianyu/mnt/nas/disk

Linux挂载非标准端口SMB
https://blog.xianyu.one/2022/03/21/Linux/yes/SMB/
作者
咸鱼
发布于
2022年3月21日
许可协议