--- title: "Mac Mini 安装 FRP 0.65.0(ARM64)操作笔记" type: source tags: [frp, frpc, gatekeeper, mac-mini, macos, arm64] date: 2026-04-14 --- ## Source File - [[raw/Home Office/Mac Mini 安装 FRP 0.65.0(ARM64)操作笔记.md]] ## Summary (用中文描述) - **核心主题**:在 Apple Silicon(ARM64)Mac Mini M4 上安装配置 FRP 0.65.0 内网穿透客户端,实现通过公网 VPS 远程访问本地服务 - **问题域**:macOS 服务器化运维、内网穿透、远程访问、SSH 安全隧道 - **方法/机制**:通过 FRP(frpc)客户端连接远程 VPS(frps)建立反向隧道,结合 tmux/nohup/launchd 三种方式实现后台持久运行;通过 SSH 客户端配置简化远程访问 - **结论/价值**:提供完整的 Mac Mini 服务器化运维指南,包含 macOS 特有障碍(Gatekeeper)的解决方案和 SSH 客户端优化配置 ## Key Claims (用中文描述) - macOS 默认 `/opt` 目录需要手动创建并授权才能使用 - macOS Gatekeeper 会阻止未签名程序运行,必须通过 `xattr -rd com.apple.quarantine .` 解除限制 - launchd 是 macOS 推荐的开机自启服务管理方式,可通过 `launchctl` 管理生命周期 - 软链接(symlink)策略可实现 FRP 版本无缝切换 - SSH 客户端配置(`~/.ssh/config`)可简化远程访问命令,只需 `ssh macmini` 即可登录 ## Key Quotes > "macOS 默认 `/opt` 需要手动创建" — 说明了 macOS 与 Linux 目录结构的差异,需手动初始化系统目录 > "xattr -rd com.apple.quarantine ." — macOS 特有的安全限制解除命令,针对整个目录递归执行 > "launchd(推荐开机自启)" — macOS 原生服务管理器,是进程持久化的推荐方案 > "ssh macmini" — SSH 客户端配置后的简化登录命令,通过 `~/.ssh/config` 定义 Host 别名 ## Key Concepts - [[内网穿透]]:通过反向隧道技术,使公网用户能够访问处于 NAT 或防火墙后的内网服务 - [[frp]]:Fast Reverse Proxy,开源内网穿透工具,包含 frps(服务端)和 frpc(客户端) - [[TCP隧道]]:基于 TCP 协议的端口转发机制,将本地端口映射到远程服务器 - [[launchd]]:macOS 原生服务管理器,用于管理系统级和用户级守护进程 - [[SSH隧道]]:通过 SSH 协议建立的加密隧道,实现安全的远程端口转发 ## Key Entities - [[Mac Mini M4]]:Apple Silicon Mac Mini,作为家庭服务器运行 FRP 客户端 - [[VPS]]:公网虚拟专用服务器,运行 frps 作为内网穿透的中转站(IP: 192.227.222.142) - [[frpc]]:FRP 客户端程序,运行在 Mac Mini 上,建立与 frps 的连接 - [[frps]]:FRP 服务端程序,运行在 VPS 上,接收公网请求并转发到 frpc - [[Gatekeeper]]:macOS 安全机制,阻止未签名应用运行 - [[UFW防火墙]]:VPS 上的防火墙,需开放 FRP 映射端口 ## Connections - [[Mac Mini M4]] ← runs_on ← [[frpc]] - [[VPS]] ← runs_on ← [[frps]] - [[frpc]] ← creates_tunnel ← [[frps]] - [[内网穿透]] ← enables ← [[远程SSH访问]] - [[launchd]] ← manages ← [[frpc]] 进程生命周期 - [[Gatekeeper]] ← blocks ← [[frpc]] (需解除) - [[UFW防火墙]] ← controls_access ← [[SSH隧道]](需开放 remotePort 60026) ## Contradictions - 无已知冲突 ## Environment Details | 项目 | 内容 | |------|------| | 系统 | macOS(Mac Mini M4)| | 架构 | Apple Silicon (ARM64) | | 软件 | FRP 0.65.0 | | 安装目录 | `/opt/frp/frp_0.65.0_darwin_arm64` | | 客户端程序 | `frpc` | | 配置文件 | `frpc.toml` | | frps服务器 | 192.227.222.142:7000 | | frps映射端口 | 6000(SSH),60026(实际案例端口)| ## Installation Steps 1. 创建安装目录:`sudo mkdir -p /opt/frp && sudo chown -R $(whoami) /opt/frp` 2. 下载 ARM64 版本:`wget https://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_darwin_arm64.tar.gz` 3. 解压:`tar -xzf frp_0.65.0_darwin_arm64.tar.gz` 4. 解除 Gatekeeper:`xattr -rd com.apple.quarantine .` 5. 配置 frpc.toml:设置 serverAddr、serverPort、auth.token 和 proxies 6. 启动 frpc:`./frpc -c frpc.toml` ## Background Running Methods 1. **tmux**(推荐开发环境):创建持久会话,断开 SSH 后仍保持运行 2. **nohup**(简单后台):重定向输出到日志文件,适合简单部署 3. **launchd**(生产环境):系统级服务,开机自启,推荐使用 plist 配置 ## Best Practices - 统一安装路径:`/opt/frp/` 便于版本管理 - 创建软链接:`ln -sfn /opt/frp/frp_0.65.0_darwin_arm64 /opt/frp/current` 简化启动命令 - 日志独立存储:配置 StandardOutPath 和 StandardErrorPath 分离日志 - 进程守护:使用 launchd KeepAlive=true 确保服务持续运行 ## SSH 远程访问案例(完整配置) ### 网络架构 ``` 本地 Mac Mini │ SSH 22 │ frpc 客户端 │ FRP 隧道 │ 远端 VPS (frps) │ 60026 │ 公网 SSH 访问:ssh username@VPS_IP -p 60026 ``` ### VPS 防火墙配置(UFW) ```bash sudo ufw allow 60026 sudo ufw status # 输出:60026/tcp ALLOW Anywhere ``` ### frpc.toml SSH 代理配置 ```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 ``` ### SSH 客户端配置(~/.ssh/config) ```ssh-config Host macmini HostName VPS_IP Port 60026 User billy ``` 配置后可直接使用 `ssh macmini` 登录 Mac Mini,无需记忆 IP 和端口。