将MacMini/Macbook改为家庭服务器
本文最后更新于:2024年11月15日 凌晨
如果家里有一台闲置的Mac Mini或者是Macbook,将其改为Nas也是不错的选择,本文介绍了一些基本的改Nas的方法。
I. 前置设置
关闭休眠
如果是 MacbookPro 需要通过以下指令来避免盖下盖子被休眠了:
1 |
|
如果你想重新恢复原有的休眠能力可以用:
1 |
|
关闭登录验证
停电后自动开机
该设置这个在Mac Mini上有,在Macbook上是没有的:
II. 远程访问
远程桌面访问
此刻就可以将这台Mac放到任意的地方,如果是Macbook就可以盖上盖子,它已经变为一台服务器了。
在远程通过VNC客户端就可以通过vnc://ip
可以直接访问了,如果是Mac,自带的屏幕共享即可连接使用。
如果是Mac Mini由于服务器没有外接显示器,因此,默认VNC分辨率是比较低的,该问题问题可以通过安装一个叫BetterDummy
的软件,然后Create一个高清屏(如下图的16:9(HD/4K/5K/6K))来解决:
创建后,根据大小,比如我就最后选择1600x900显示刚刚好,分辨率越高显示内容会越小,越清晰,最后记得设置开启自动启动。
远程终端访问
此时即可在远程通过ssh访问:
(可选)设置仅仅支持public key的方式访问,禁止密码登录:
- 在
~/.ssh/authorized_keys
添加好需要访问的终端的public key - 编辑
/etc/ssh/sshd_config
并在其中添加:
1 |
|
- 重启服务
1 |
|
远程smb访问
当然如果你是有设备需要通过SMBv1来连接,需要注意做兼容开启:创建或者编辑文件/etc/nsmb.conf
,添加如下:
1 |
|
这里的protocol_vers_map
,表明了最低兼容SMBv1,虽然牺牲了部分性能,但是至少能用了。配置后,到共享里面重新打开关闭一次文件共享即可。
缓存服务器
III. 常用服务
Plex
Plex Server已经支持Silicon,直接到官网,下载后打开即可。
如果异常关机,有可能会引发Plex Server打开失败,现象就是一打开Menu Bar上面Plex的iCon出现立马消失,修复方法就是参考官方教程重新恢复数据库,大概步骤:
- 进入
/Users/[你的用户名]/Library/Application Support/Plex Media Server/Plug-in Support/Databases
- 将以下文件移动到任意其他目录用作备份
1 |
|
- 然后在目录下选一个备份的重命名为
db
与blobs.db
,这里案例我选了一个9.27自动备份的:
1 |
|
- 重新打开Plex Server就修复了
Nezha监控
参照官方教程,即可,唯一需要留意的是1
代表正常启动,0
代表没有启动,负数代表有错误。在启动时需要在设置里面点击仍然打开。
Radarr
主要参考该 Wiki
- 到Radarr官网下载最新版本
解压缩拷贝到
/System/Applications
目录下执行脚本使用
Self-sign
:
1 |
|
最后打开该 App 即可。
其他小工具
- AutoMounter:自动挂载
- Hazel: 文件自动迁移
IV. 路由
我们甚至可以让 Macmini 成为一台路由器,通过在虚拟机UMT上运行 OpenWrt来实现。
下载安装UTM
之前我使用过VMware Fusion,发现其根本跑不满网速,但是UMT可以跑满,这很重要,详情可以参照我在恩山发的帖子
大家直接到getutm.app 下载他的最新版本即可
准备好兼容的 OpenWrt 的img文件
方案一. K9 提供的 img
本案例以K9的这个为案例,主要是默认提供了一些基础的代理,配置过程有较好的容错,直接下载下图这个即可:
方案二. 官网提供的自行制作
当然也可以参考这个教程,到targets/armsr/arvm8/ 目录这个官方地址下载最新的generic-ext4-combined.img.gz
下载后先得到img
:
1 |
|
在UTM上跑起镜像
先新建,创建自定义虚拟机:
操作系统选择其他
:
Boot Device这里,选择无
:
然后这个内存与 CPU 你根据需求来就行,比如我家常年 50+设备需要接入路由,外加有比较多的服务需要,因此我设置了 2G 内存以及 2 个核心:
存储空间,默认就行,别管他,一会儿还得删除了:
共享目录,默认就行,用不到:
勾选打开虚拟机设置
,名称取一个你喜欢的,点击保存
虚拟机配置
保存后,自动进入到设置页面,之后移除掉声音,用不到:
然后删除掉 默认配置的驱动器,一会儿添加我们自己的:
添加我们自己的驱动器,在驱动器下面点击新建
->导入
:
然后导入刚刚我们制作好img文件:
然后配置网络,这里我的案例是,我有两个网口,一个是我用usb给 MacMini 拓展的网口,这里将用桥接方式,后面进入到OpenWrt后会自动将它作为 lan 口,这里我们修改原本的网络
:
这里留意下,如果你不知道这个是en几,可以直接到
系统信息
->网络
里面找到。
然后另一个网口,就是 MacMini 自带的千兆以太网口,这里我们创建一个,然后用桥接方式,后面进入到OpenWrt后会自动将它作为 wan 口,这里我们设备
->新建
->网络
:
自此网络这块配置完成了,需要特别注意的是,由于是桥接,在MacMini上这两个网口有自己的 IP 地址,但是在 OpenWrt 里面这两个网口也有自己的 IP,两者是不影响的,中间是一层虚拟的物理桥接。
配置并进入到 OpenWrt 管理页面
开机以后,我们手动设置下网络,让可以在外部局域网访问到OpenWrt的luci页面:
先编辑网络配置文件:
1 |
|
我们假设你家里的局域网网段是10.0.0.x
,这里我们指定 10.0.0.168
这里只需要确保这里的 IP 与你现在电脑在同一个局域网网段,并且这个 IP 没有和局域网中的其他 IP 冲突即可:
修改完后:wq
退出,然后重启网络/etc/init.d/network restart
重启后,此时你就已经可以在你当前电脑通过刚刚设定的IP访问到这台OpenWrt了:
特别说明
我说下网络情况,我的情况是做路由迁移
,也就是原本就有一个路由,另外 MacMini
- MacMini 没有屏幕,我需要始终通过
屏幕共享
可以访问到 MacMini,无论局域网里面有没有路由器存在 - 网络中原本就有一个
路由器
,这个路由器的 Lan 口对外提供 DHCP 服务的 IP 是10.0.0.1
在这个情况下我做了几件事情:
- 我手头的电脑固定了 IP 地址,确保无论局域网有没有路由,都在
10.0.0.x
网段,这里我将其固定为了10.0.0.233
,网关固定为10.0.0.1
- MacMini 那个被映射到 OpenWrt 为 Lan 口的那个网卡,我在MacMini 的系统设置上,我都固定IP地址,也是希望确保
10.0.0.x
网段,这里我将其固定为10.0.0.68
,网关固定为10.0.0.1
- MacMini 那个被映射到 OpenWrt 为 Lan 口的那个网卡,我在MacMini 上虚拟机的 OpenWrt 的设置上,将其固定 IP 为
10.0.0.168
,网关可以先不设定
这样以来无论要被迁移的路由器有没有关机,我手头电脑都能通过屏幕共享,访问到MacMini,以及OpenWrt的luci界面,方便配置使用。
现在我们做迁移,迁移期间,我有一个诉求,MacMini 虚拟机里面的 OpenWrt 与我旧的路由器的 OpenWrt 都需要开机状态,方便配置做一些参考(因为不同版本 OpenWrt 原因没办法直接备份与恢复),那么做了几件事情:
我先将旧的OpenWrt上的 Lan 口的 IP 改为非10.0.0.1
,因为这个需要给到MacMini 虚拟机里的 OpenWrt 使用
然后将旧的OpenWrt上的 Lan 口 DHCP 能力关闭了,这样以来局域网里面就只有虚拟机里的 OpenWrt 提供 DHCP 服务,就可以完成迁移:
其他大家有任何问题,欢迎探讨,这块已经非常清晰了
V. HomeAssistant
由于 UTM 出色的性能表现,我们直接使用 UTM 模拟x86框架运行即可。
下载 qcow2 文件
可以直接到HA的github 下载qcow文件:
下载后双击解压缩
配置运行
配置这块比较简单,更多可以参考上面的 OpenWrt的配置,我说下选项
- 打开 UTM 并且
创建一个新虚拟机
->模拟
->其他
- BootDevice 选择
无
- 架构: x86_64
- 系统默认的就行: (q35) Standard PC
- 内存: 2048 MB
- CPU 核心: 1
- 存储空间默认就行,晚点我们会添加我们自己的
- 共享目录默认就行: 用不上
右键新创建的虚拟机->编辑
:
- 网络 > 网络模式: 选择
桥接(高级)
- 桥接接口:如果你只有一个网口,你直接选择
自动
,否则你选择你家的 lan 口的(具体哪个是 lan 口参考前面 OpenWrt 提到在系统信息里面看) - 删除旧的驱动器,
新建
->IDE
->导入
:选择前面下面并且解压缩为了qcow2
镜像文件 - 保存
- 启动虚拟机
自此就可以了。(下面我家智能设备比较多,我分配了 2G 内存,一般 1G 就够了)
VI. Debian
有 debian 需求的建议直接到UTM 浏览库中找一个,点击打开即可下载并导入到 UTM 中,比如我就比较喜欢这个占用资源小并且我比较熟悉的 Debian 11(LXDE)
我唯一的修改就是,将这个的网络改成了桥接(具体怎么改,参考前面HomeAssistant/OpenWrt这两个相关配置)
另外一般来说你可以设置一个共享目录,比如我的诉求就是家里的小米监控对 MacMini 提供的 SMB 总是存在识别不稳定的问题,但是对 debian 的比较稳定,所以我才安装的 Debian,所以我需要共享一个目录进去:
如上图浏览
后选择一个目录,保存即可。进入到debian后,发现会被自动挂载在了/media/share
目录下: