--socket 옵션이 필요하고, 재부팅 시 프로세스가 종료되어 접속이 끊김.원인 Tailscale 소켓 파일 경로 불일치 (CLI 기본 경로와 사용자 홈 경로),
launchd 자동 시작 등록 누락.해결
~/.zshrc에 ts() 함수를 추가하여 --socket 옵션 자동 적용, ~/Library/LaunchAgents에 launchd plist 파일을 생성 및 등록하여 자동 시작 설정.확인법
ts status 명령으로 Tailscale 상태 확인, launchctl list | grep tailscaled로 launchd 등록 및 PID 확인 후 재부팅 테스트.관리자 권한 없이 Tailscale을 설치하면 네트워크에 연결은 된다. 하지만 사용하다 보면 몇 가지 불편함이 생긴다. CLI 명령마다 옵션을 붙여야 하고, 재부팅하면 프로세스가 꺼지며, 웹 브라우저에서는 Tailscale 네트워크로 접속이 안 되는 문제다.
이 글에서는 앞의 두 가지 불편함을 해결하는 방법을 다룬다. 마지막 브라우저 문제는 Tailscale의 구조적인 한계로 해결이 불가능하다.
Tailscale 설치가 아직이라면, 먼저 이 글을 참고하면 된다. 맥에 Tailscale 설치, 권한 없이 태블릿에서 SSH 접속까지.
명령마다 --socket을 붙여야 하는 문제 해결
권한 없이 Tailscale을 실행하면 소켓 파일이 사용자 홈 디렉터리($HOME) 밑에 생성된다. 그런데 Tailscale CLI는 기본적으로 시스템 경로(/var/run/tailscaled.socket)만 확인한다. 그래서 --socket 옵션을 붙이지 않고 명령을 실행하면 다음과 같은 에러 메시지가 나온다.
Error: dial unix /var/run/tailscaled.socket: connect: no such file or directory
이 때문에 매번 다음과 같이 전체 명령을 입력해야 하는 번거로움이 있다.
tailscale --socket=$HOME/.tailscale/tailscaled.sock status
하루에 몇 번만 입력해도 상당히 성가시다. 이 불편함을 해소하려면 ~/.zshrc 파일에 간단한 함수를 추가하면 된다.
ts() { tailscale --socket="$HOME/.tailscale/tailscaled.sock" "$@"; }
이제 ts status처럼 짧은 명령으로 Tailscale 상태를 확인할 수 있다. $@ 덕분에 ts ip, ts up과 같이 뒤에 어떤 인자를 붙여도 함수가 그대로 넘겨받아 실행된다. 별칭(alias) 대신 함수를 사용한 이유가 바로 여기에 있다.

다음은 ts status 명령을 실행한 결과 예시다.
100.119.37.84 me-mac macOS -
100.125.149.95 desktop-putfua9 windows offline, last seen 138d ago
100.95.8.92 me-macmini macOS offline, last seen 149d ago
100.95.145.34 tab-s9-fe android offline, last seen 3h ago
재부팅하면 Tailscale이 꺼지는 문제 해결
nohup 등으로 백그라운드에서 띄운 Tailscale 프로세스는 맥을 재부팅하면 종료된다. 재부팅 후 갑자기 접속이 안 될 때 원인을 바로 떠올리기 어렵다는 점이 더 큰 문제다. 많은 사람이 이 지점에서 포기하지만, 자동 시작에는 관리자 권한이 필요 없는 별도의 위치가 있다.
macOS의 launchd는 두 가지 주요 경로를 제공한다. /Library/LaunchDaemons는 시스템 전체 서비스용으로 관리자 권한이 필요하다. 반면 ~/Library/LaunchAgents는 사용자 홈 디렉터리 밑에 있어 관리자 권한 없이 사용할 수 있다. 여기에 등록된 서비스는 사용자가 로그인할 때 자동으로 시작되고, 프로세스가 죽으면 launchd가 자동으로 다시 띄워준다.
~/Library/LaunchAgents/com.me.tailscaled.plist 파일을 다음과 같이 생성한다.
<?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.me.tailscaled</string>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/bin/tailscaled</string>
<string>--tun=userspace-networking</string>
<string>--statedir=/Users/me/.tailscale</string>
<string>--socket=/Users/me/.tailscale/tailscaled.sock</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/Users/me/.tailscale/tailscaled.log</string>
<key>StandardErrorPath</key>
<string>/Users/me/.tailscale/tailscaled.log</string>
<key>ProcessType</key>
<string>Background</string>
</dict>
</plist>
위 파일의 /Users/me 경로는 본인 계정 이름으로 변경해야 한다. 파일을 생성했다면, 다음 명령으로 launchd에 등록하고 작동 여부를 확인할 수 있다.
launchctl load ~/Library/LaunchAgents/com.me.tailscaled.plist
launchctl list | grep tailscaled
두 번째 명령의 출력에 pid가 찍히면 tailscaled가 정상적으로 실행 중이라는 뜻이다. 이제 재부팅해도 로그인하면 Tailscale이 자동으로 실행된다. KeepAlive 설정을 true로 해두었기 때문에 프로세스가 예기치 않게 종료되어도 launchd가 다시 시작시켜준다.
launchd에 등록할 때 프로그램 경로는 반드시 절대 경로로 지정해야 한다. launchd는 셸 환경을 상속받지 않으므로 which tailscaled로 확인한 전체 경로를 넣어야 한다.
해결 안 되는 것: 브라우저에서는 Tailscale이 안 열린다
이 문제는 해결 방법이 없다. Tailscale의 동작 방식을 이해하고 사용하는 수밖에 없다.
userspace 모드는 시스템 전체 네트워크 설정을 변경하지 않는다. 오직 프록시 설정을 통과하도록 구성된 애플리케이션만 Tailscale 네트워크(tailnet)를 이용한다. 따라서 웹 브라우저 주소창에 100.으로 시작하는 집 서버 주소를 입력해도 바로 접속되지 않는다. 브라우저의 프록시 설정을 Tailscale이 제공하는 SOCKS5 프록시로 변경해야만 접속이 가능하다.
처음에는 이 점을 몰라서 한참 헤맸다. status 명령으로는 분명 Tailscale이 연결되어 있다고 나오는데 브라우저만 안 되니 설치가 잘못된 줄 알았다. 하지만 이는 원래 Tailscale이 userspace 모드에서 동작하는 방식이다.
결론적으로, 외부에서 들어오는 접속(예: SSH)은 문제없이 작동한다. 하지만 외부로 나가는 접속은 앱마다 별도의 설정이 필요하다. 관리자 권한을 포기한 대가가 여기서 드러나는 것이다.
오해하기 쉬운 것: 자기 자신에게는 접속이 안 된다
맥에서 자기 자신의 Tailscale IP 주소로 접속을 시도하면 타임아웃이 발생한다. 이는 고장이 아니라 앞서 설명한 이유와 동일하다. 나가는 트래픽이 tailnet을 타지 않기 때문에 자기 자신에게 나갔다 들어오는 경로가 성립하지 않는다.
따라서 Tailscale 연결 테스트는 반드시 다른 기기(태블릿이나 스마트폰 등)에서 해야 한다.
다음 글
- 개념부터: Tailscale이란? 회사 컴퓨터에서도 집 서버에 붙습니다
- 설치 순서: 맥에 Tailscale 설치, 권한 없이 태블릿에서 SSH 접속까지
이 글에 제시된 plist와 명령 출력은 현재 운영 중인 맥에서 직접 가져온 것이다.

'맥미니를 서버로' 카테고리의 다른 글
| ffmpeg 사용법, 맥에서 자주 쓰는 명령만 골라서 (0) | 2026.09.13 |
|---|---|
| 맥미니를 24시간 서버로 돌리면 뜨거워질까 (0) | 2026.09.12 |
| Tailscale이란? 회사 컴퓨터에서도 집 서버에 붙습니다 (0) | 2026.09.10 |
| 클로드를 디스코드 봇으로 쓰기, 맥미니에서 24시간 (0) | 2026.09.07 |
| Claude Code 사용법, 맥에서 설치하고 첫 작업까지 (0) | 2026.09.01 |