#mac-mini #frp #frpc #macos #gatekeeper

```table-of-contents
```

- **FRP版本**：0.65.0
- **CPU架构**：Apple Silicon（arm64）
- **安装路径**：`/opt/frp/frp_0.65.0_darwin_arm64`
- **下载地址**：GitHub Release
- **配置文件**：`frpc.toml`
- **包含 macOS Gatekeeper 处理**

此文档可以直接保存为 **README.md 或运维手册**。

---

## 一、环境信息

| 项目    | 内容                                 |
| ----- | ---------------------------------- |
| 系统    | macOS（Mac Mini M4）                 |
| 架构    | Apple Silicon (ARM64)              |
| 软件    | FRP 0.65.0                         |
| 安装目录  | `/opt/frp/frp_0.65.0_darwin_arm64` |
| 客户端程序 | `frpc`                             |
| 配置文件  | `frpc.toml`                        |

---

## 二、创建安装目录

macOS 默认 `/opt` 需要手动创建。

```bash
sudo mkdir -p /opt/frp
sudo chown -R $(whoami) /opt/frp
```

进入目录：

```bash
cd /opt/frp
```

---

## 三、下载 FRP

下载 **ARM64 版本**：

```bash
wget https://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_darwin_arm64.tar.gz
```

如果没有 wget：

```bash
brew install wget
```

---

## 四、解压 FRP

```bash
tar -xzf frp_0.65.0_darwin_arm64.tar.gz
```

解压后目录结构：

```
/opt/frp
└── frp_0.65.0_darwin_arm64
    ├── frpc
    ├── frps
    ├── frpc.toml
    ├── frps.toml
    └── LICENSE
```

进入目录：

```bash
cd /opt/frp/frp_0.65.0_darwin_arm64
```

---

## 五、解除 macOS Gatekeeper 限制

macOS 会阻止未签名程序运行。

需要删除 quarantine 属性：

```bash
xattr -rd com.apple.quarantine .
```

验证：

```bash
xattr frpc
```

如果没有输出说明解除成功。

---

## 六、修改 frpc.toml 配置

编辑配置：

```bash
nano /opt/frp/frp_0.65.0_darwin_arm64/frpc.toml
```

示例配置：

```toml
serverAddr = "192.227.222.142"
serverPort = 7000

auth.method = "token"
auth.token = "your_token_here"

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
```

参数说明：

|参数|说明|
|---|---|
|serverAddr|frps服务器地址|
|serverPort|frps监听端口|
|auth.token|认证token|
|localIP|本地服务地址|
|localPort|本地端口|
|remotePort|frps映射端口|

---

## 七、测试运行

进入目录：

```bash
cd /opt/frp/frp_0.65.0_darwin_arm64
```

启动客户端：

```bash
./frpc -c frpc.toml
```

成功日志示例：

```
login to server success
proxy added: ssh
start proxy success
```

---

## 八、后台运行方式

推荐三种方式。

---

### 方式一：tmux（推荐）

安装 tmux：

```bash
brew install tmux
```

创建会话：

```bash
tmux new -s frpc
```

启动程序：

```bash
cd /opt/frp/frp_0.65.0_darwin_arm64
./frpc -c frpc.toml
```

后台运行：

```
Ctrl + B
D
```

重新进入：

```bash
tmux attach -t frpc
```

查看会话：

```bash
tmux ls
```

---

### 方式二：nohup

后台启动：

```bash
cd /opt/frp/frp_0.65.0_darwin_arm64

nohup ./frpc -c frpc.toml > frpc.log 2>&1 &
```

查看进程：

```bash
ps aux | grep frpc
```

查看日志：

```bash
tail -f frpc.log
```

停止：

```bash
pkill frpc
```

---

### 方式三：launchd（推荐开机自启）

创建配置文件：

```bash
nano ~/Library/LaunchAgents/com.frpc.client.plist
```

配置内容：

```xml
<?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.frpc.client</string>

<key>ProgramArguments</key>
<array>
<string>/opt/frp/frp_0.65.0_darwin_arm64/frpc</string>
<string>-c</string>
<string>/opt/frp/frp_0.65.0_darwin_arm64/frpc.toml</string>
</array>

<key>RunAtLoad</key>
<true/>

<key>KeepAlive</key>
<true/>

<key>StandardOutPath</key>
<string>/opt/frp/frp_0.65.0_darwin_arm64/frpc.log</string>

<key>StandardErrorPath</key>
<string>/opt/frp/frp_0.65.0_darwin_arm64/frpc.error.log</string>

</dict>
</plist>
```

加载服务：

```bash
launchctl load ~/Library/LaunchAgents/com.frpc.client.plist
```

启动：

```bash
launchctl start com.frpc.client
```

停止：

```bash
launchctl stop com.frpc.client
```

卸载：

```bash
launchctl unload ~/Library/LaunchAgents/com.frpc.client.plist
```

---

## 九、常用维护命令

### 查看 frpc 进程

```bash
ps aux | grep frpc
```

---

### 查看日志

```bash
tail -f /opt/frp/frp_0.65.0_darwin_arm64/frpc.log
```

---

### 重启 frpc

```bash
pkill frpc
cd /opt/frp/frp_0.65.0_darwin_arm64
./frpc -c frpc.toml
```

---

## 十、升级 FRP

升级步骤：

```
停止 frpc
↓
下载新版本
↓
解压
↓
替换目录
↓
重新运行
```

示例：

```bash
pkill frpc
cd /opt/frp
wget 新版本
tar -xzf
```

---

## 十一、最终目录结构

```
/opt/frp
└── frp_0.65.0_darwin_arm64
    ├── frpc
    ├── frps
    ├── frpc.toml
    ├── frpc.log
    └── frpc.error.log
```

---

## 十二、快速启动命令

日常手动运行：

```bash
cd /opt/frp/frp_0.65.0_darwin_arm64

xattr -rd com.apple.quarantine .

./frpc -c frpc.toml
```

---

## 十三、生产环境最佳实践

建议：

### 1 统一路径

```
/opt/frp/<version>
```

方便版本切换。

例如：

```
/opt/frp/frp_0.65.0_darwin_arm64
/opt/frp/frp_0.66.0_darwin_arm64
```

---

### 2 创建软链接

```
/opt/frp/current
```

示例：

```bash
ln -sfn /opt/frp/frp_0.65.0_darwin_arm64 /opt/frp/current
```

启动时：

```
/opt/frp/current/frpc
```

升级时只需要切换 symlink。

---

### 3 日志独立

```
/opt/frp/logs
```

更利于监控。

---

如果你愿意，我可以再帮你整理一份 **Mac Mini 服务器化运维方案（FRP + OpenClaw + n8n + Clash）统一进程管理架构**，解决几个你现在已经遇到的问题：

- frp
    
- openclaw
    
- proxychains
    
- tmux
    
- telegram bot
    
- n8n
    

统一用 **macOS launchd + 进程依赖管理** 管理，这样你的 **Mac Mini 就可以像一台真正的 Linux server 一样稳定运行**。


---
## 十四、实际案例：通过 FRP 远程 SSH 登录 Mac Mini

本案例用于 **通过 VPS 作为中转服务器，从公网 SSH 访问 Mac Mini**。

架构如下：

本地 Mac Mini  
      │  
      │ SSH 22  
      │  
frpc 客户端  
      │  
      │  FRP 隧道  
      │  
远端 VPS (frps)  
      │  
      │ 60026  
      │  
公网 SSH 访问

公网访问方式：

ssh 用户名@VPS_IP -p 60026

---

### 1 VPS 服务器开放防火墙端口

如果 VPS 使用 **UFW 防火墙**，需要允许 FRP 映射端口。

执行：

sudo ufw allow 60026

检查防火墙状态：

sudo ufw status

输出示例：

60026/tcp ALLOW Anywhere

说明端口已开放。

---

### 2 修改 frpc.toml 配置

编辑配置文件：

nano /opt/frp/frp_0.65.0_darwin_arm64/frpc.toml

增加如下代理配置：

[[proxies]]  
name = "macmini-ssh"  
type = "tcp"  
localIP = "127.0.0.1"  
localPort = 22  
remotePort = 60026

配置说明：

|参数|说明|
|---|---|
|name|代理名称|
|type|TCP转发|
|localIP|本地 SSH 地址|
|localPort|本地 SSH 端口|
|remotePort|VPS 上映射端口|

---

### 3 完整 frpc.toml 示例

示例：

serverAddr = "VPS_IP"  
serverPort = 7000  
  
auth.method = "token"  
auth.token = "your_token"  
  
[[proxies]]  
name = "macmini-ssh"  
type = "tcp"  
localIP = "127.0.0.1"  
localPort = 22  
remotePort = 60026

---

### 4 重启 frpc

重新启动客户端：

pkill frpc  
  
cd /opt/frp/frp_0.65.0_darwin_arm64  
  
./frpc -c frpc.toml

成功日志示例：

proxy added: macmini-ssh  
start proxy success

---

### 5 测试远程 SSH

在任意公网机器执行：

ssh username@VPS_IP -p 60026

示例：

ssh billy@192.227.xxx.xxx -p 60026

成功后即可登录 Mac Mini。

---

### 6 推荐 SSH 使用方式

为了方便使用，可以在 **客户端 ~/.ssh/config** 添加配置：

nano ~/.ssh/config

增加：

Host macmini  
HostName VPS_IP  
Port 60026  
User billy

之后直接：

ssh macmini

即可登录 Mac Mini。