当前位置: 首页 > article >正文

对于MacOSX开启稳定SMB分享的研究

0x00 缘起

MacOS以其相比Windows稳定而著称,使用MacOS开启SMB服务器作为家庭影音服务器的做法屡见不鲜。在使用MacOS开启SMB服务作为局域网网络存储器,并在Windows 11中映射为网络存储器进行Goland或者Pycharm开发时,出现了IDE中无法“稳定”加载在网络存储器的工程项目的现象,常常会出现项目突然“消失”的现象,多次进行“从磁盘中重新加载文件”的操作,也无法让项目“稳定”的存在。针对上述问题,经过有限的研究,可能是由于MacOS对SMB支持不完全所致,使用Docker搭建一个SMB服务器即可解决SMB链接不稳定。

0x01 方法

通过安装开源项目OrbStack为MacOS开启Docker服务,OrbStack是运行Docker容器和Linux的快速、轻便和简单的软件。相比Docker官方所提供Docker管理软件,OrbStack启动Docker容器速度更快,而且所占用内存资源更低。

SMB镜像使用评分较高的“dperson/samba”,使用Docker的Pull命令拉取镜像,注意配置代理以能够访问到Docker服务器(或者配置可访问到Docker源):

docker pull dperson/samba

关闭MacOS所启用的共享功能并确保MacOS所启用的SMB共享已经关闭,配置容器参数并启动容器:

docker run -it --name samba -p 139:139 -p 445:445 -v /Users/unicico/Documents/BaiduSync:/mount -d dperson/samba -u "username;password" -s "share;/mount/;yes;no;no;all;username;username"

上述命令除了配置端口映射以及容器名称等配置外,还了以下参数:

1. -v,/Users/unicico/Documents/BaiduSync:/mount : 

将宿主机目录 /Users/unicico/Documents/BaiduSync 映射到容器内的 /mount 目录。这样容器内的 Samba 服务可以访问宿主机的该目录。

2.  -d, 在后台运行容器。

3. dperson/samba: 使用 dperson/samba 镜像。

4. -u "username;password":

为 Samba 用户指定用户名和密码,这里用户名为 username,密码为 password。

5.  -s "share;/mount/;yes;no;no;all;username;username":

  • share: 共享的名字。
  • /mount/: 共享的目录路径(映射到容器内的 /mount)。
  • yes: 是否可写(yes 表示可写)。
  • no: 是否浏览(no 表示不可浏览)。
  • no: 共享时使用的 guest 访问权限(no 表示不使用)。
  • all: 访问控制列表配置(all 表示所有用户都可访问)。
  • username: 允许访问的用户。
  • username: 只读访问的用户。

在运行容器成功后,在Windows 11中即可映射为网络存储器,同时也进行上述使用IDE的开发操作,经过PyCharm以及Goland的运行实验,在36小时IDE运行过程中,没有出现上述项目文件加载不稳定的情况。

测试硬件环境:

1. MacBook:

- CPU: Apple M1;

- RAM: 16GB;

2. Windows:

- CPU: AMD Ryzen 9 6900HX with Radeon Graphics;

- RAM: 16GB;

测试软件环境:

1. MacOS:Sonoma 14.6.1 (23G93)

2. OrdStack:Version 1.7.5 (18165)

3. Windows:Windows 11 专业版 24H2

4. Goland(Windows):2024.2.3

5. PyCharm(Windows):2024.2.4 (Professional Edition)

0x02 结论

MacOS所提供的原生SMB服务在某些特定场景下不稳定,可通过Docker安装容器化的SMB服务器开启稳定SMB文件共享服务。上述方法通过了36小时使用PyCharm或者Goland进行网络存储器开发实验,证明该方法能够解决问题。

0x03 参照

1. docker搭建samba服务smb网络磁盘共享_docker samba挂多个盘-CSDN博客

2. Docker搭建smb共享服务器 - biiigwang - 博客园

3. Orbstack官网

0x04 格言

- 己欲立而立人,己欲达而达人。


http://www.kler.cn/news/363289.html

相关文章:

  • Flutter 12 实现双击屏幕显示点赞爱心多种动画(AnimationIcon)效果
  • 数据降维与主成分分析
  • 【C++11】右值引用和移动语义
  • CUDA 共享内存 shared memory
  • 053_python基于深度学习的短视频内容理解与推荐系统
  • 安全边际篇
  • 讲个故事:关于一次接口性能优化的心里路程
  • 数据库运行原理图
  • JVM锁升级的过程(偏向锁,轻量级锁,重量级锁)
  • String的运算符重载
  • C#中跨线程调用的方法一点总结
  • 数据仓库基础概念
  • 新探索研究生英语读写教程pdf答案(基础级)
  • 阿里云服务器如何安装宝塔
  • jupyter DatabaseError: database disk image is malformed 解决办法
  • 分布式检测线路、精准定位故障:输电线路故障定位监测系统
  • 国外电商系统开发-运维系统Docker镜像
  • 构建高效在线教育平台:Spring Boot的力量
  • iPhone图片/照片/视频复制到win10系统的简单方法 - 照片导出
  • Vue 3中的国际化(i18n)实践指南
  • C语言中MySQL库函数
  • MySQL【知识改变命运】09
  • 携程后端JAVA面试汇总
  • SolarWinds Web Help Desk曝出严重漏洞,已遭攻击者利用
  • Golang | Leetcode Golang题解之第496题下一个更大元素I
  • docker清理未使用的 Docker 资源