> ## Documentation Index
> Fetch the complete documentation index at: https://frp.xdr.ooo/llms.txt
> Use this file to discover all available pages before exploring further.

# macOS 클라이언트

> v2.2.1 stable 기준으로 Apple Silicon macOS 클라이언트를 등록하고 운영합니다.

# macOS 클라이언트

Published stable v2.2.1은 **Apple Silicon(`arm64`) + macOS 11 Big Sur 이상**의 macOS Client를 지원합니다. Intel Mac은 이 stable release의 지원 범위가 아닙니다. macOS Client도 다른 플랫폼과 동일한 enrollment protocol과 pinned FRP **0.71.0**을 사용합니다.

## 요구사항

* Apple Silicon Mac (`arm64`)
* macOS 11 이상
* `sudo`를 사용할 수 있는 관리자 권한
* `launchd`, `curl`, `openssl`, `python3`, `tar`, `shasum`

필요한 Command Line Tools가 없으면 다음으로 설치할 수 있습니다.

```bash theme={null}
xcode-select --install
```

<Note>
  FRP Auto Deploy는 **Remote Login을 켜거나**, macOS 사용자 계정을 만들거나, firewall을 변경하거나, Homebrew package를 설치하지 않습니다. SSH를 게시하려면 SSH 서비스와 계정이 먼저 로컬에서 정상 동작해야 합니다.
</Note>

## Mac 등록

FRP Auto Deploy Server에서 Zero-Touch enrollment를 생성합니다.

```bash theme={null}
sudo frpctl
```

그 다음:

```text theme={null}
create zero-touch
```

Server가 출력한 명령을 Mac으로 안전하게 전달하고 **stable server가 출력한 명령 그대로** 실행하세요. Shared bootstrap이 Darwin/Apple Silicon을 감지하고, pinned macOS `frpc`를 다운로드해 SHA-256을 검증한 뒤 verified HTTPS enrollment와 launchd runtime 설치를 진행합니다.

SSH용 profile이라면 관리자가 지정한 SSH 계정이 Mac에 이미 존재해야 하고, SSH 접속이 필요하면 Remote Login도 미리 활성화돼 있어야 합니다.

## 상태 확인

```bash theme={null}
sudo frpctl show status
sudo frpctl show services
sudo frpctl doctor
```

launchd를 직접 확인하려면:

```bash theme={null}
sudo launchctl print system/com.datarelay.frp-auto-deploy.frpc
```

Client state는 다음 위치에 저장됩니다.

```text theme={null}
/Library/Application Support/frp-auto-deploy
```

LaunchDaemon:

```text theme={null}
/Library/LaunchDaemons/com.datarelay.frp-auto-deploy.frpc.plist
```

## 재부팅 동작

Stable macOS Client는 system LaunchDaemon을 사용하므로 interactive login 없이도 재부팅 후 FRP Client가 다시 올라오도록 설계되어 있습니다. v2.2.1 qualification에는 macOS lifecycle과 reboot/autostart 검증이 포함됩니다.

## 서비스 게시

Mac 자체의 서비스뿐 아니라 Mac이 접근할 수 있는 다른 LAN host의 서비스도 게시할 수 있습니다. Linux와 동일하게 SSH, HTTP, HTTPS passthrough, Custom TCP 서비스에 persistent public service port가 배정됩니다.

자세한 내용은 [서비스 관리](/ko/guides/services)를 확인하세요.

## 제거와 Release

```bash theme={null}
sudo frpctl uninstall
```

Uninstall은 로컬 client software와 LaunchDaemon을 제거하지만 server-side client record와 public-port reservation은 자동으로 반환하지 않습니다.

장비를 영구 폐기할 때는 Server에서 별도로 release합니다.

```bash theme={null}
sudo frpctl release client <CLIENT-ID>
```

<Warning>
  Uninstall과 Release는 서로 다른 작업입니다. 단순 재설치나 일시 중지 목적이라면 Client를 release하지 마세요.
</Warning>

정확한 stable validation claim은 [지원 플랫폼 & 제한](/ko/reference/platforms)을 확인하세요.
