原因

因为公司有公司的规章制度,有信息安全保护,有数据规范保护。我们在研发更是这样子,作为HBI 电脑 公司的监控的非常严格。

然后我觉得也是,做一下数据隔离也是挺好的,保护了公司的隐私,我也希望我的个人数据不要在公司的电脑上,一旦发生了什么状况之后,搞的自己的数据全部丢失,也是得不偿失。

我可以很方便的在家里,通过局域网访问它,基本上没有什么延迟,通过我的 chrome os 访问,非常完美。在公司也能很方便的访问它,延迟之类的也能接受,能够达到能用的状态了。最起码可以保证我随时随地访问我想访问的内容。

与此之外,通过surge 我还能将其作为一个软路由,管理家里的上网设备,这样,对于我的chrome os 我就可以自由了。

本来我有一个ubuntu 的服务器,8g+128g 的配置,但是,怎么说呢,

  1. 它需要订阅费用,500+ 一年,而且这个是第一次的新手价格,如果需要一直保有的话,则这个价格更加的贵
  2. 它的配置虽然看上去不错,但是装了vscode chrome zotero obsidian 等一些软件之后,这个基本上都会卡死,连接不上,需要ssh 之后重启
  3. 然后买了一个丐版的 Mac Mini M2 8+256G,足够能够应付我现在的需求。如果后期,过了几年需要升级,到时候可以再说,攒攒钱。
  4. 轻度的办公基本就没有什么问题,我以后想要升级也简单得多

上云架构图

Mac Mini M2

这是我在 youtube 上找到的一个介绍,大概解释了下,做到这些个需要哪些能力。 嘿嘿,我刚巧都差不多具备,何况还有 chatgpt 和claude 的加持。

frp 内网穿透

最重要的其实为了公司也能访问,就是需要进行内网的穿透

  1. Mac 机器上安装 frp 的client 端,写好toml 文件,并设置自动启动并后台运行

  2. 阿里云服务器上安装frp 的server 端,写好toml 文件,并设置自动启动并后台运行

  3. 编写配置文件,目前支持的文件格式包括 TOML/YAML/JSON,旧的 INI 格式仍然支持,但已经不再推荐。

  4. 使用以下命令启动服务器:./frps -c ./frps.toml

  5. 使用以下命令启动客户端:./frpc -c ./frpc.toml

Mac 端

阿里云 server 端 frps.toml

确认server端的处理器型号

1
2
root@shanghai-aliyun:~# lscpu | grep "Vendor ID"
Vendor ID: GenuineIntel

下载 解压 frp: 使用 wget 命令下载:

1
2
3
4
5
6
7
wget https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_amd64.tar.gz
tar -zxvf frp_0.59.0_linux_amd64.tar.gz
cd frp_0.59.0_linux_amd64
sudo cp frps /usr/local/bin/
sudo mkdir /etc/frp
sudo cp frps.toml /etc/frp/
sudo nano /etc/frp/frps.toml

文件内容如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20

[common]
bind_port = 7000
vhost_http_port = 8081
vhost_https_port = 443
dashboard_port = 81

[auth]
method = "token"
token = "XXXXXXXX"

[dashboard]
# 使用用户名和密码而不是 token
auth_method = "password"
user = "admin"
password = "XXXXXXXX"

[webServer]
addr = "0.0.0.0"
port = 81

利用systemd 进行开机启动和后台运行管理

1
sudo nano /etc/systemd/system/frps.service

文件内容如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[Unit]
   Description=Frp Server Service
   After=network.target

   [Service]
   Type=simple
   User=root
   Restart=on-failure
   RestartSec=5s
   ExecStart=/usr/local/bin/frps -c /etc/frp/frps.toml

   [Install]
   WantedBy=multi-user.target

确保文件权限正确

1
2
3
4
sudo chmod 644 /etc/systemd/system/frps.service
sudo systemctl daemon-reload
sudo systemctl start frps
sudo systemctl status frps

Mac 端配置 frpc.toml

导航到对应的文件夹,将frpc.toml 改成以下内容

 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
38
39
[common]
server_addr = "XXXXXXXXXX"
server_port = 7000

[auth]
method = "token"
token = "XXXXXXXX"

[transport]
protocol = "tcp"
tls_enable = true

[[proxies]]
name = "ssh_m2"
type = "tcp"
local_ip = "127.0.0.1"
local_port = 22
remote_port = 33

[[proxies1]]
name = "smb_m2"
type = "tcp"
local_ip = "127.0.0.1"
local_port = 445
remote_port = 445

[[proxies2]]
name = "vnc_m2"
type = "tcp"
local_ip = "127.0.0.1"
local_port = 5900
remote_port = 5900

[[proxies3]]
name = "Nx_m2"
type = "tcp"
local_ip = "127.0.0.1"
local_port = 4000
remote_port = 4000

然后运行

1
sudo ./frpc -c ./frpc.toml

然后说是frpc can’t be opened becuase apple cannot check it for malicious software,需要到setting - privacy and security 那边手动开启这个。

开机自动启动并后台运行,利用的是MacOS 的launchd 系统

  1. 创建一个创建一个 Launch Agent plist 文件:
1
2
mkdir -p ~/Library/LaunchAgents
nano ~/Library/LaunchAgents/com.frp.frpc.plist
  1. 黏贴以下内容
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.frp.frpc</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/huashan/Documents/frp_0.59.0_darwin_arm64/frpc</string>
        <string>-c</string>
        <string>/Users/huashan/Documents/frp_0.59.0_darwin_arm64/frpc.toml</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/frpc.err</string>
    <key>StandardOutPath</key>
    <string>/tmp/frpc.out</string>
</dict>
</plist>
  1. 设置正确的权限并加载,启动服务
1
2
3
chmod 644 ~/Library/LaunchAgents/com.frp.frpc.plist
launchctl load ~/Library/LaunchAgents/com.frp.frpc.plist
launchctl start com.frp.frpc

如果你需要停止服务,可以使用:

launchctl stop com.frp.frpc

如果你想完全移除这个自动启动项,可以使用:

launchctl unload ~/Library/LaunchAgents/com.frp.frpc.plist

然后删除 plist 文件: rm ~/Library/LaunchAgents/com.frp.frpc.plist

如果您在使用 frp 时遇到任何问题,或者需要对配置进行任何更改,请记住:

如果您更改了 frpc.toml 配置文件,只需要重启 frpc 服务:

1
2
launchctl stop com.frp.frpc
launchctl start com.frp.frpc

`

如果您更改了 plist 文件,您需要卸载然后重新加载: launchctl unload ~/Library/LaunchAgents/com.frp.frpc.plist launchctl load ~/Library/LaunchAgents/com.frp.frpc.plist

Mac mini 基本设置

需要防止休眠,提供share的权限 setting 里main screen saver never energy saver 全部打开 user and group 自动登陆 General - Sharing - screen sharing, file sharing, remote login, remote manager, content catching