macOS 优化配置

这两天阅读国光师傅文章的时候看到了之前一篇记录 macOS Ventura 13 优化配置 的文章,读下来受益匪浅,学到了很多 macOS 下优化配置的新姿势。恰好一直使用的 MacBook 好久没有整理过了,各种软件环境还有依赖一团糟,借着这个机会全格了重装系统跟着国光师傅的脚步走一遍优化流程,于是便有了本文。

需要注意的是,本文整体大部分内容是依托于国光师傅的大框架来的,一部分依据自己的使用习惯进行了删减或新增,余下部分直接引用了国光师傅原文。再次感谢国光师傅提供的优化思路,原文链接如下:

国光的 macOS Ventura 13 优化配置(基于 ARM 平台)

系统配置

实用命令

  1. 允许安装任意来源的 App,基本上是必开的,很多软件在 App Store 里都没有
1
sudo spctl --master-disable
  1. 程序坞自动隐藏加速
1
2
3
4
5
6
7
8
9
10
11
# 设置启动坞动画时间设置为 0.5 秒 
defaults write com.apple.dock autohide-time-modifier -float 0.5 && killall Dock

# 设置启动坞响应时间最短
defaults write com.apple.dock autohide-delay -int 0 && killall Dock

# 恢复启动坞默认动画时间
defaults delete com.apple.dock autohide-time-modifier && killall Dock

# 恢复默认启动坞响应时间
defaults delete com.apple.Dock autohide-delay && killall Dock
  1. 启动台自定义行和列,这部分我没有设置,macOS 默认的行列我个人就习惯
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 设置列数
defaults write com.apple.dock springboard-columns -int 7

# 设置行数
defaults write com.apple.dock springboard-rows -int 6

# 重启 Dock 生效
killall Dock

# 恢复默认的列数和行数
defaults write com.apple.dock springboard-rows Default
defaults write com.apple.dock springboard-columns Default

# 重启 Dock 生效
killall Dock

个人习惯

触控板设置

个人比较习惯这种触控板滑动方向:

三指拖移是资深 macOS 用户提高搞活效率的隐藏利器:

访达设置

调整访达侧边栏,个人喜欢这样的结构:

设置打开新放大窗口打开的默认页面,个人喜欢设置为用户家目录:

启用访达的显示完整文件扩展名,关闭修改扩展名警告,设置默认搜索当前目录而不是整个 Mac:

开启iCloud文档

对于苹果生态用户来说 iCloud 同步相当方便,尤其是使用多台 Mac 办公,或是想在 iPhone 上查看电脑中的文件时,开启桌面和文档文件夹 iCloud 存储是一个不错的选择:

唯一缺点是在新版本 macOS 中位于 iCloud 中的文件夹不再支持第三方 APP 右键菜单造成些许不便,对我来说倒也问题不大,无伤大雅。

终端 Profile

macOS 终端默认界面丑的一批,一般第一次使用终端就是修改 Profile,我一般直接就在默认的 Basic Profile 上修改了,没有再创建新的 Profile。

大致修改的点背景透明度和字体,透明度我一般设置在 50%-60% 之间:

字体设置为了 MesloLGS NF Regular,主要是为了适配终端主题 Powerlevel10k,使用这个主题不用配套字体的话会出现图标乱码的情况:

控制中心展示项

macOS 右上角控制中心的位置也可谓是寸土寸金,软件稍一多就挤不开了,尤其是刘海屏机型,甚至会被挤到刘海后面去,虽然有各类折叠或是二层显示软件,但是个人并不太喜欢用,关掉一部分没用的系统图标也可节省出不少空间,例如聚焦搜索、Siri、时间机器等不常用的图标都设置为了隐藏:

其他图标也可根据个人习惯设置:

Safari 配置

Safari 第一次打开第一件事就是修改搜索引擎,这个大家懂得都懂:

第二点就是打开 Safari 的开发者选项,可以进行一些简单的调试:

关于 Safari 的浏览器插件目前我只使用了 3 个: Immersive Translate、Noir、Userscripts,分别用作网页翻译、网页暗色模式、网页脚本:

Immersive Translate 是逐句翻译,保留原始语言,个人感觉这样对照起来看比浏览器原生分翻译整页翻译更舒服一些:

有时候机翻非常生硬很容易误解原文的意思,这个插件也支持大模型翻译,只需要设置好自己的 API Key 就可以:

Noir 是我目前用过效果最好的网页暗色模式插件,同时也支持指定网页采用不同策略,显示效果:

Userscripts 我是当作 Tampermonkey 油猴来用的,只开了一个 CSDN Green 优化阅读体验:

Dock 常驻软件

这个也就是按照自己的习惯来设了:

软件配置

社交娱乐

文档办公

编程开发

媒体设计

系统增强

资源下载

浏览器

虚拟远程

信息安全

监控测试

效率规划

开发配置

网络环境

这个应该就不用过多解释了,网路环境不好连 docker 镜像都 pull 不下来是非常难受的,intel 芯片的 Mac 可以使用各类猫咪,Apple 芯片的使用和 iOS 一样的 🚀 就可以。

与之相关的还有终端代理工具 proxychains-ng,可以让指定命令走代理,内网渗透下还是比较好用的,XX上网的话一般就用猫猫的增强模式或者TUN模式了,可以接管全部流量。

xcode 命令行工具

这可以说是 macOS 上做开发必备的了,不管是 git 还是各类库都依靠它:

1
xcode-select --install

防火墙

在 macOS 上 Little Snitch 这款防火墙软件用起来不错,我从 5 版本用到 6,没遇到什么问题,唯一就是定价不便宜,官方定价如下:

当然也可以自行寻找破解版,但是总觉得一个为了安全而装的软件用破解版怪怪的。我的方案是官网下载试用版软件导入 tb 十几块钱的序列号。

Homebrew

Homebrew 是 macOS(或 Linux)缺失的软件包的管理器,但是一般网络情况下都会安装不成功,这里推荐使用这个命令:

1
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

感谢:zhuanlan.zhihu.com

安装完成后重启终端就可以使用 brew 命令了,基本命令如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 更新 Homebrew
➜ brew update

# 搜索相关的包
➜ brew search [关键词]

# 查看包的信息
➜ rew info [软件名]

# 查看已安装的包
➜ brew list

# 更新某个软件
➜ brew upgrade [软件名]

# 清理所有软件的旧版
➜ brew cleanup

# 卸载某个软件
➜ brew uninstall [软件名]

Git

如果要使用 Github 协作项目的话,那么 GitHub 会根据我们本地的 Git 配置去箱显示对应的 commit 记录的头像:

1
2
3
4
5
# 配置邮箱 
➜ git config --global user.email "xxxxx@xxx.com"

# 配置用户名
➜ git config --global user.name "国光"

Oh My Zsh

一般网络不好的情况下安装也比较困难,我在这里使用的是 Gitee 的镜像来安装:

Gitee 极速下载/oh-my-zsh

GitHub - LeoK77S/ohmyzsh-gitee: 通过gitee镜像下载、安装及更新oh-my-zsh

1
sh -c "$(curl -fsSL https://gitee.com/leok77s/ohmyzsh-gitee/raw/main/install.gitee.sh)"

Oh My Zsh 装好后,我比较喜欢使用 powerlevel10k 这个主题:

GitHub - romkatv/powerlevel10k: A Zsh theme

使用这个主题需要先安装 4 个字体,否则会造成图标乱码无法正常显示(上文配置终端时提到过):

安装好字体后便可以开始安装主题了,开发者还贴心地为中国大陆用户提供了 Gitee 专用链接:

1
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

下载好后仅需在~/.zshrc文件中配置ZSH_THEME="powerlevel10k/powerlevel10k" 便可启用主题。

Zsh 插件推荐:

1
2
3
4
5
6
7
8
# 目录切换神器
➜ brew install autojump

# 自动建议提示接下来可能要输入的命令
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

# 命令语法检测
git clone https://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

在 ~/.zshrc 中配置启用这些插件:

1
plugins=(其他的插件...... autojump zsh-autosuggestions zsh-syntax-highlighting)

其他功能配置:

1
2
3
4
5
# 关掉 URL 反斜杠转义
echo "DISABLE_MAGIC_FUNCTIONS=true" >> ~/.zshrc

# 禁用 on my zsh 自动更新
echo " zstyle ':omz:update' mode disabled" >> ~/.zshrc

Vim

macOS 自带的 vim 是没有任何配色的,可以下面是国光常用的配色方案,先在用户目录下新建一个 vim 的配置文件:

1
vim ~/.vimrc
1
2
3
set nu                " 显示行号
colorscheme desert " 颜色显示方案,其他方案查看:ls /usr/share/vim/vim*/colors
syntax on " 打开语法高亮

Python

pyenv 是一个强大 Python 包管理工具,可以灵活地切换各种 Python 版本,Linux 和 macOS 强烈建议使用 pyenv 来管理我们的 Python 版本,优雅高效且不会破坏掉系统自带的 Python 环境:

1
2
# 安装 pyenv
➜ brew install pyenv

接着为 pyenv 配置 shell 环境,提高工作效率,可自动联想 Tab 补全我们本地安装的 Python 版本:

1
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

安装 Python 也很简单:

1
2
3
4
5
6
7
8
9
10
11
12
# 查看已经安装的Python版本
➜ pyenv versions

# 查看当前的 Python 版本
➜ pyenv version

# 查看可安装的版本
➜ pyenv install -l

# 安装与卸载 pypy3.8-7.3.11
➜ pyenv install pypy3.8-7.3.11
➜ pyenv uninstall pypy3.8-7.3.11

版本切换确实很方便,所安装的版本都在 ~/.pyenv/versions 目录下:

1
2
3
4
5
6
7
8
9
10
# global 全局设置 一般不建议改变全局设置
➜ pyenv global <python版本>

# shell 会话设置 只影响当前的shell会话
➜ pyenv shell <python版本>
# 取消 shell 会话的设置
➜ pyenv shell --unset

# local 本地设置 只影响所在文件夹
➜ pyenv local <python版本>

pyenv 的 global、local、shell 的优先级关系是:shell > local > global

Java

我们切换版本时候就不是很优雅,这里推荐使用 jevn 来切换我们的 Java 版本,类似于 pyenv 一样,很优雅:

1
2
# 安装 jenv
brew instal jenv

brew 安装后我们得配置一下 zshrc 的环境:

1
2
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc

然后新开个标签页即可正常使用 jenv 来管理我们的 Java 环境了,下面是 jenv 的基本使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 查看当前的 Java 版本
jenv version

# 手动添加本地的 Java Home 路径
jenv add /Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home/
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/
jenv add /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home/

# 列出目前 jenv 所有可切换管理的版本
jenv versions

#global 全局设置 一般不建议改变全局设置
➜ jenv global <java 版本>

# shell 会话设置 只影响当前的shell会话
➜ jenv shell <java 版本>
# 取消 shell 会话的设置
➜ jenv shell --unset

# local 本地设置 只影响所在文件夹
➜ jenv local <java 版本>

Node.js

因为 Node.js 版本也比较凌乱,所以这里主要是通过 nvm 来进行配置管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 安装 nvm
➜ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

# 新开个终端,输入下面命令,完善 zsh 补全配置
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

# 查看版本信息
➜ zsh
➜ nvm --version
0.39.3

# 查看当前 node 的版本
➜ nvm version

# 安装最新稳定版 node
➜ nvm install stable

# 列出所有远程服务器的版本
➜ nvm ls-remote

# 安装指定版本
➜ nvm install v18.16.1
➜ nvm install <version>

# 列出所有已安装的版本
➜ nvm ls

# 卸载指定的版本
➜ nvm uninstall <version>

# 切换使用指定的版本node
➜ nvm use <version>

# 显示当前的版本
➜ nvm current

MySQL & Redis

我本地用到数据库的情况比较少,一般 SSH 服务器跑或者本地 docker 起一个,用完就删,详细的本地部署优化详见国光师傅原文:

国光的 macOS Ventura 13 优化配置(基于 ARM 平台)

MkDocs

MkDoc 是有一个优雅的写文档神器,使用 Python 安装很方便:

1
2
3
4
5
6
7
8
# pyenv 切换合适的版本
➜ pyenv local 3.9.17

# 安装 mkdocs
➜ pip install mkdocs

# 安装 material 主题
➜ pip install mkdocs-material

Hexo

快速简约强大的博客框架:

1
2
3
4
5
6
7
# 安装 hexo
➜ brew install hexo

# Hexo 基础命令
➜ hexo clean # 清除缓存
➜ hexo g # 生成静态文件
➜ hexo s # 启动 Hexo 服务

Docker Desktop

1
2
3
4
5
6
# 使用 brew cask 可以很快的安装好 Docker 官方客户端
➜ brew install --cask docker

# 跑个 Kali Linux 看看
➜ docker pull docker.io/kalilinux/kali-rolling
➜ docker run --name "KaliLinux" --tty --interactive kalilinux/kali-rolling

OrbStack

OrbStack 是一种在 macOS 上运行 Docker 容器和 Linux 机器的快速、轻便且简单的方法。可以将其视为强大的 WSL 和 Docker Desktop 替代方案,全部集成在一个易于使用的应用程序中。

1
2
3
4
5
# Homebrew Cask 安装更优雅一点
➜ brew install orbstack

# docker 切换 OrbStack
➜ docker context use orbstack

Parallels Desktop

Parallels Desktop for mac Crack 18.1.1.53328 破解项目:https://git.icrack.day/somebasj/ParallelsDesktopCrack.git

根据教程下载指定版本的 PD:https://download.parallels.com/desktop/v18/18.1.1-53328/ParallelsDesktop-18.1.1-53328.dmg

正常安装好,先不要登录 PD 账号。接着克隆项目并运行自动化破解脚本:

1
2
3
4
5
# 克隆项目地址
➜ git clone https://git.icrack.day/somebasj/ParallelsDesktopCrack.git

# 进项目文件夹并运行脚本
cd ParallelsDesktopCrack && chmod +x ./install.sh && sudo ./install.sh

我们需要屏蔽以下的 Hosts:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
127.0.0.1 download.parallels.com
127.0.0.1 update.parallels.com
127.0.0.1 desktop.parallels.com
127.0.0.1 download.parallels.com.cdn.cloudflare.net
127.0.0.1 update.parallels.com.cdn.cloudflare.net
127.0.0.1 desktop.parallels.com.cdn.cloudflare.net
127.0.0.1 www.parallels.cn
127.0.0.1 www.parallels.com
127.0.0.1 www.parallels.de
127.0.0.1 www.parallels.es
127.0.0.1 www.parallels.fr
127.0.0.1 www.parallels.nl
127.0.0.1 www.parallels.pt
127.0.0.1 www.parallels.ru
127.0.0.1 www.parallelskorea.com
127.0.0.1 reportus.parallels.com
127.0.0.1 parallels.cn
127.0.0.1 parallels.com
127.0.0.1 parallels.de
127.0.0.1 parallels.es
127.0.0.1 parallels.fr
127.0.0.1 parallels.nl
127.0.0.1 parallels.pt
127.0.0.1 parallels.ru
127.0.0.1 parallelskorea.com
127.0.0.1 pax-manager.myparallels.com
127.0.0.1 myparallels.com
127.0.0.1 my.parallels.com

但是 Parallels Desktop 会很猥琐的去偷偷注释我们的 hosts 文件,所以我们一上来就安利的 Little Snitch 就很优雅,很有必要了。

实用工具

命令增强

tree

1
2
# tree 命令列文件也很方便
➜ brew install tree

neofetch & fastfetch

1
2
3
# 查看系统状态信息
➜ brew install neofetch
➜ brew install fastfetch

网络工具

iproute2mac

1
2
# ip 命令 查看ip地址很方便
➜ brew install iproute2mac

frp

1
2
3
# frps 与 frpc 穿透神器
➜ brew install frps # 配置文件 frps -c /opt/homebrew/etc/frp/frps.ini
➜ brew install frpc # 配置文件 frpc -c /opt/homebrew/etc/frp/frpc.ini

安全工具

主机探测

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 安装  nmap 与自带的 ncat 命令
brew install nmap

# 安装扫描速度更快的 masscan
brew install masscan

# 使用 ARP 协议来发现本地网络上的 IPv4 主机并指纹识别
➜ brew install arp-scan
➜ arp-scan --localnet
Interface: en0, type: EN10MB, MAC: c8:89:f3:b3:24:1d, IPv4: 10.1.1.180
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
10.1.1.1 00:0c:29:7c:19:2f VMware, Inc.
10.1.1.10 a0:36:9f:89:ad:30 Intel Corporate
10.1.1.11 00:0c:29:b1:fa:11 VMware, Inc.
10.1.1.100 00:11:32:fa:6e:7c Synology Incorporated
10.1.1.218 a8:a1:59:9f:57:aa ASRock Incorporation
10.1.1.128 ec:4d:3e:86:cb:2e Beijing Xiaomi Mobile Software Co., Ltd
10.1.1.199 78:11:dc:7d:d5:9a XIAOMI Electronics,CO.,LTD

# go 编写的快速高效的端口扫描工具
➜ brew install naabu

子域收集

1
2
3
4
5
# 快速被动子域枚举工具
➜ brew install subfinder

# 新生代子域名检测工具
➜ brew install findomain

目录扫描

1
2
# 基本上 dirsearch 足够使用了
pip3 install dirsearch

SQL 注入

1
2
# 基本上 sqlmap 足够了
brew install sqlmap

文件分析

1
2
3
4
5
# binwalk CTF MISC 神器
brew install binwalk

# EXIF 元数据信息查看
brew install exiftool

移动安全

1
2
# brew 安装 adb
➜ brew install --cask android-platform-tools

密码破解

1
2
3
4
5
6
7
8
# 密码破解神器
➜ brew install hashcat

# 经典老牌的 UNIX 密码破解工具
➜ brew install john

# WiFi 无线安全必备
➜ brew install aircrack-ng

Metasploit

下载最新版本的安装包:https://osx.metasploit.com/metasploitframework-latest.pkg

安装很简单,双击 metasploitframework-latest.pkg 安装包,一步步往下安装就可以了,macOS 下手动升级 Metasploit 版本国光这里建议也这样升级,比较方便省心。

macOS 下 Metasploit 的可执行文件的位置为:/opt/metasploit-framework/bin,所以我们需要收到配置一下环境变量:

1
echo 'export PATH="$PATH:/opt/metasploit-framework/bin/"' >> ~/.zshrc

BurpSuite

综合扫描

AWVS

使用 Docker 搭建 Acunetix Web Vulnerability Scanner(AWVS)扫描器的很方便的, 我的 M1 Macbook 测试也可以跑 x86 的 Dokcer 容器:

1
2
3
4
5
# 拉取 awvs 镜像
docker pull secfa/docker-awvs

# 将 容器的 3443 端口映射到 13443 端口
docker run -d --name "AWVS" -p 13443:3443 --cap-add LINUX_IMMUTABLE secfa/docker-awvs

搭建完成后访问:https://YOUR_IP:13443/ 即可

默认的用户名为:admin@admin.com 密码为:Admin123

Nessus

Tenable Nessus® Essentials 是一款免费漏洞扫描程序,可作为漏洞评估的绝佳切入点。可获得无异于 Nessus Professional 订阅用户所享的强大扫描程序,支持扫描 16 个 IP 也足够我们个人使用了。

简而言之就是 Essentials 是 适用于教育工作者、学生以及网络安全领域的入门从业人员,功能和 Nessus Professional 没区别,只是批量扫描的 IP 变少了。

首先我们得使用企业域名注册获取激活码,注册地址:https://zh-cn.tenable.com/products/nessus/nessus-essentials

有激活码的话,Docker 搭建 Nessus 就简单很多了。

1
2
3
4
5
拉取镜像创建
docker pull tenableofficial/nessus

创建容器映射到宿主机的 8834 端口
docker run -d --name "Nessus" -p 18834:8834 -e ACTIVATION_CODE=<你的激活码> -e USERNAME=<自定义用户名> -e PASSWORD=<自定义密码> tenableofficial/nessus

搭建完成后访问:https://YOUR_IP:18834/ 即可:

访问出现没有出现 Nessus 界面?(移动网络可能会初始化识别,建议电信或者企业专线网络,或者挂代理或者软路由)

1
2
3
docker exec -it Nessus bash
cd /opt/scripts
./configure_scanner.py # 重新初始化操作

搭建好看了,看了可以看到我们的免费激活码支持做多 16 台设备,且插件都可以保持更新到最新版本,且激活码有效期有好几年呢,足够我们日常使用了

OSV-Scanner

Google 新开源的漏洞扫描器,主要使用了 OSV-Scanner 来查找项目依赖漏洞。

漏洞来源全球各大漏洞库:

支持扫描自以下项目的漏洞:AlmaLinux、Alpine、Android、crates.io、Debian GNU/Linux、GitHub Actions、Go、Hex、Linux kernel、Maven、npm、NuGet、OSS-Fuzz、Packagist、Pub、PyPI、Rocky Linux、RubyGems……

使用细节大家可以参考官方文档:https://google.github.io/osv-scanner/usage/

国光这里只做简单的的使用:

1
osv-scanner -r /path/to/your/dir

macOS 优化配置
https://blog.tddt.cc/posts/9.Optimize-macOS-Configuration.html
作者
TechPANG
发布于
2024年9月10日
许可协议