Apple Silicon(M1)使用体验与软件配置

Published: 日 02 十月 2022

In Misc.

背景板

为啥买啊

大学时玩过黑苹果,作为一个颜值党太喜欢它的UI了,当然它的外观自不必多说,很漂亮,狂舔!当然还有些其他因素就不多说了,本来20年就打算换的,可是大学室友突然找我借钱于是只能先放弃了,又隔一年苹果出的M1芯片生态基本成熟,于是买了丐版(~~因为想着换工作肯定得配顶配MBP啊!~~)的MBA试试水,开箱瞬间就被惊艳到了,啊,这触感,啊,这质量...接下来感受到它的续航,OMYGA!想想我那坚如磐石硕刚入手也只能用两小时,而它10几个小时无压力太爽了再也不用到哪去都背着几公斤的充电器(指之前游戏本的充电器),用了一年由于丐版8G内存让自己总有内存焦虑,就升级了14寸的MBP 32G 次顶配CPU版(~~唔想多了新东家不提供电脑~~),再也没有内存焦虑了!

推荐买吗

墙裂推荐,但是...需求不同啊,可能很多人并不习惯/喜欢Mac,然后接受不了它的一些不便...

工作起来如何

因为已经推出快两年了,苹果的生态,它的能力,你懂的,那是相当滴厉害,因此mac上的程序基本都能运行了,目前我遇到还不能运行不了的有:

1.gdb:arm版还不支持,可用lldb替代

2.android模拟器:三方的都还没适配,讲道理都是arm的应该性能会高很多,现在就android studio可用(附root方式),等吧

image-20221017223047733

3.arm版的windows无法支持底层软件,如需要加载驱动的VPN,ida里的scyllahide插件等

其他应该没了,想不起了,windows上的程序可装arm版的windows11虚拟机,它自动转译x86/x64的程序,因此大多数软件也是运行一点问题都没有(它和rosetta2性能也挺强普通程序根本感觉不到卡顿),但它无法装x86的驱动,这类软件是跑不起来的。

很重要的,虚拟机咋样,众所周知,现代的处理器还能不支持虚拟化?M1本身支持,且Apple也给了框架,并把以前的Hypervisor框架再封了一层,现在PD/Vmware Fusion/UTM都可以以原生速度跑ARM虚拟机了(GPU支持还不好)

img

而x86虚拟机嘛,基于QEMU的UTM当然也能跑,但是我之前说过QEMU跑其他CPU平台的系统时,很容易出现各种问题,所以运气好是能跑的,速度嘛,能用的水平,要是运气不好就只能用x86的硬件跑了!!!

注:新版系统的rosseta2可以在linux上运行咯!这意味着在arm版linux上运行x86的程序,妙不妙,妙啊~

如何使用x86资源

由于rosetta2和windows11自带的转译功能,基本能无感的使用任何arm/x86的程序,但是有时还是有使用真实x86硬件的需求

网络连接

由于这里的光猫管理页进不去,改不了桥接和端口转发,且不能进行P2P打洞,只能通过第三方中转了。下面规定提供资源的为资源端,如家里的NAS/台式机为资源端,而使用资源的为用户端,如在手机/公司里的笔记本儿电脑儿。

frp+lighted server

买了轻量级服务器,毕竟就用它做中转,标准就是其他不论带宽要大,可惜囊中羞涩只买的起8M带宽的,不过勉强能用了,再配置下:

1.服务端把6000-7000范围的端口放开,并安装frps服务,配置下:

[common]
bind_port = 7000
authentication_method = token
authenticate_heartbeats = false
authenticate_new_work_conns = false
token = A413D0A7-83CF-45AC-AA57-18947443A794 # 防止别人乱用
log_file = /var/log/frps.log
log_level = info

2.资源端安装frpc服务(windows可创建计划任务,开机自启),配置下:

[common]
server_addr = mylighted.betamao.me
server_port = 7000
log_file = ./frpc.log
log_level = info
log_max_days = 3
token = A413D0A7-83CF-45AC-AA57-18947443A794

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389          # 远程桌面:将本地的3389端口映射到服务器的6000端口
remote_port = 6000

[plugin_socks5]
type = tcp
remote_port = 6001          # 再映射个socks5代理,记住设置账号密码
plugin = socks5
plugin_user = wangdawei
plugin_passwd = A331949A-AA72-4E59-9F12-F237148BECE1

3.客户端使用RDP直接连就好了,但是要访问内网的其他资源,如虚拟机上的数据,则需要通过socks代理,这里mac可用proxfier,配置下代理规则就好啦,例如下,则相关IP的访问会自动转发:

image-20221015172946286

附:proxifier Mac v3 激活码:3CWNN-WYTP4-SD83W-ASDFR-84KEA

cloudflare zero trust

CF嘛财大气粗,cloudflare零信任是免费的,可惜在国内是减速器,但是有时它还是挺要用的!

准备工作

1.注册cloudflare(下文简称cf)账号

2.将自己的域名接入到cf(在原始解析处设置转出,在cf面板的站点里选择接入)或在cf面板的域名里注册一个新的域名

资源端配置

1.在资源端上下载并安装cloudflared,运行cloudflared tunnel login登录,它会打开web页面进行登录,之后自动下载证书到~/.cloudflared/目录(后简称家目录)

2.运行cloudflared tunnel create b3tama0创建一个隧道,此时会在家目录创建<tunnelid>.json的凭证文件

3.手动在家目录创建config.yml文件:

tunnel: <tunnel id>
credentials-file: ~/.cloudflared/<tunnel id>.json
ingress:
  - hostname: rdp.b3tama0.me
    service: rdp://127.0.0.1:3386
  - hostname: web.b3tama0.me
    service: http://127.0.0.1:8888
  - service: http_status:404

4.执行cloudflared tunnel --config ~/.cloudflared/config.yml run运行隧道

5.执行cloudflared tunnel route dns b3tama0 {web|rdp}.b3tama0.me将上面的两条dns注册解析

6.执行cloudflared.exe service installcloudflared安装为服务

7.修改服务配置,如Linux需要将配置放到/etc/cloudflared,而windows修改注册表

此时对于web服务就可以直接使用浏览器访问,而对于其他协议的服务,则需要用户端也是用相关软件连接cf来建立隧道。

用户端配置

用户端可使用cloudflaredwarp,以前者为例:

1.先登录,同资源端第一步

2.执行cloudflared access rdp --hostname rdp.b3tama0.me --url localhost:3389将服务映射到本地的3389端口

3.使用rdp工具,如royal tsx连接localhost:3389即可访问rdp资源

优化方式

套隧道

它支持任意TCP协议,但是每个服务需要单独配置,可以ssh/web套socks隧道或直接装台vpn

优选IP

cloudflare使用anycast ip,可使用better-cloudflare-ip/cfip等工具获取延迟低的IP,再修改host将上面注册的域名与IP绑定

文件资源

由于工作中需要安装大量的虚拟机,需要大量空间,因此我是在x86的台式上装了共8T的硬盘,大部分不常用的数据都是放这上面的,需要时再远程获取就好了。

小文件:everything

x86的windows上装了evetything,那是相当的好用,而且它自带http/ftp的支持,因此将端口暴露即可进行文件上传和下载,而且这两个功能都支持密码保护,不过实际还是有点不放心,万一有漏洞或后门咋办,于是在前面再加一道门吧!

1.windows安装nginx最新版

2.配置为反向代理给everything的http服务

3.配置nginx鉴权,并限制登录错误限制(注意此时真实IP需要从请求头里获取)

4.配置everything开启http服务设置密码并绑定到127.0.0.1接口

image-20221013085119305

大文件:百度云/onedrive

如果文件特别大,那么用百度云或one drive做中转速度会更快,不多说...

虚拟机资源

RDP+VMware Workstation

这是最直接的办法,既然网络已经通了直接RDP连回台式机,再使用上面的vmware workstation/virtualbox等就好了,远程桌面可使用微软官方提供的mac客户端也可以使用royal tsx,只是需要注意默认的配置对网络要求较高,可能需要根据网速调整分辨率,动画效果等...

image-20221013090044914

Fusion+Vsphere

但如果只是想用虚拟机,那么client+hypervisor会更舒服,比如这里的fusion+vsphere或者用hyperv,由于vmware的镜像更通用,且hyperv管的太宽了(开启直接把windows作为guest了),因此选择者,vsphere的esxi本应装在物理机上的,但通常的家用主机网卡驱动需要手动安装(另外原有的物理机可以直接转换为虚拟机)且可能没有驱动,而且我对性能要求没那么高因此选择嵌套虚拟化方案,将其装在workstation上,如上节的图。

装好后给它分配块大的磁盘(比如2T),之后直接把ova等导入即可远程使用:

image-20221013091134067

注:其实vmware workstation的共享虚拟机在此处更方便,但是它从v16开始不再支持该功能,实在要用可以下v16.1或v15及其之前的版本。

常用软件

开发

Jetbrains

JB家的,当然还是使用知了的ja-netfilter,顾名思义它是个网络请求过滤器,hook java的api匹配特定请求并可决定拒绝还是修改请求响应等,下好后配合jetbrai.in checker里提供的规则与注册码就可以破解使用最新版的全家桶。

java

java版本太多了,用jenv管理...

审计

understand

下载mac版根据这个破解

BeyondCompare

下载mac版根据这个破解

安全

Burpsuite

下载后,使用BurpLoaderKeygen破解,202209之后的版本需要用ja-netfilter才行了...

其他

royal tsx

直接使用盗版,要使用X11先安装XQuartz,再设置Advanced -> SSH -> "Enable X11 Forwarding"

ParallelDesktop

使用这个补丁...

未完待续...