대상 문제: OpenClaw Gateway는 이미 동작하지만 18789를 공중망에 두고 싶지 않고, 노트북·CI·상시 서버가 동일한신뢰 메시에서 CLI와 채널로 핸드셰이크를 끝내야 한다는 상황.핵심 결론: gateway.bind를 tailnet 의미에 맞추고 Tailscale ACL로 누가 누구에게 18789를 열 수 있는지를 글로 남긴다. 검증 순서는 openclaw gateway status 이후 tailnet ping, 최소 대화.글 분할: 《Nginx/Caddy 반대 TLS 체크리스트》《Cloudflare Tunnel + systemd》와 함께 공역 TLS, 아웃바운드 터널, 완전 tailnet 고립을 덮으며, Compose 세부 내용은 《Docker Compose 페어링》《영 트러스트 원격 Mac》로 순환합니다.
WAN 플레인만 제거했다고 ACL이 줄지는 않으며, 같은 증상이 모델 지연처럼 보일 수 있습니다. 메시 시간대와 게이트웨이 업그레이드 시간을 UTC로 표기해 교차 검증하세요.
*:* 등) 은 모든 노드가18789를 스윕 가능하게 만드는 새 위협 플레인입니다.ACL hujson은 이제 방화벽 정책 창고입니다. CVE 대응·포트·비밀 로테이션 Runbook의 최소 권한 원칙을 tailnet 주체에도 그대로 적용합니다.
| 노출 모델 | 적합 전제 | 주요 트레이드오프 |
|---|---|---|
| 공역 + TLS 역프록시 | 외부 SaaS 웹훅이나 단말마다 에이전트를 깔기 어려운 이동형 클라이언트. | 인증서·WAF·레이트 제한 복잡도 상승. 반대 TLS 글 참고. |
| Cloudflare Tunnel 등 아웃바운드 터널 | 원본 IP를 숨기고 인바운드 포워딩을 열기 싫을 때. | POP·제3자 제어 의존. Tunnel Runbook. |
tailnet 전용 + gateway.bind=tailnet |
전 직원이 Tailscale에 등록했고 Gateway가 여섯 지역 전용 Mac 또는 Linux에 상주. | 태그를 명확히 써야 함. Tailscale 비클라이언트가 도달하지 못하는 것은 설계상 정상일 수 있음. |
tailnet을 비밀 관리자 VPN으로 착각하지 마세요. group:dev만 붙이고 전원 ping을 허용하면 감사 시 누가 18789에 붙었는지 설명할 수 없습니다. 모든 ACL은 티켓으로 추적합니다.
tailscale up 이후 G는 태그된 피어만 향해 TCP 18789를 선언합니다. O는 OPENCLAW_GATEWAY_URL에 MagicDNS 또는 tailnet IP를 기입하고 tailnet-only 선언 이후 LAN URL을 제거합니다.
CI는 tag:ci로 등록하고 ACL은 tag:ci → tag:gateway:18789 한 줄로 제한합니다.
SSH·클라우드플레어드 조합은 《영 트러스트 원격 Mac》를 읽고, OpenClaw 리스너 조항을 같은 변경 티켓에 묶습니다.
tailscale status 이름·IP를 변경 기록에 복사.~/.openclaw/openclaw.json 또는 볼륨)에 tailnet 설정, gateway.mode를 릴리스 문서와 대조.필드 경로는 버전마다 변할 수 있습니다.gateway.auth.token 지문 맞춤(Cf. Compose 페어링 표).openclaw gateway status 후 openclaw doctor, 실패 시 양쪽 로그를 동시간대로 수집.curl -v --max-time 5 혹은 문서의 WS 경로, 최소 대화로 컨텍스트 유지 확인. 《doctor 1차 트러블슈팅》로 남은 가지를 정렬합니다.{
"gateway": {
"mode": "local",
"bind": "tailnet",
"port": 18789,
"auth": {
"mode": "token",
"token": "${OPENCLAW_GATEWAY_TOKEN}"
}
}
}
// NOTE: 예시일 뿐입니다. 스키마 검증 후 게이트웨이 프로세스나 컨테이너를 재시작하세요.
// ACL 예: ops가 gateway의 18789만 열도록 허용 — 태그 명은 조직 규칙에 맞게 변경
{
"groups": { "group:ops": ["[email protected]"] },
"tagOwners": { "tag:gateway": ["autogroup:admin"], "tag:ops": ["autogroup:admin"] },
"acls": [
{
"action": "accept",
"src": ["tag:ops"],
"dst": ["tag:gateway:18789"],
"proto": "tcp"
}
]
}
tailscale ping으로 조각화 여부를 확인합니다.gateway healthy가 녹색이어도 webhook DNS 실패가 있을 수 있으니 MagicDNS 분할 정책을 티켓에 적습니다.수면·덮개·패치 재부팅·가정용 업링크는 18789 SLA를 흔들고, 개인 데이터와 게이트웨이 로그가 섞이면 포렌식이 어렵습니다. 여섯 지역 전용 Apple 실리콘 원격 Mac이 상시 OpenClaw 신경절에 더 잘 맞습니다.
세 경로(공역 TLS, 터널, tailnet)는 환경별 RACI가 필요합니다. MACCOME은 탄력 임대와 하드웨어를 정렬해 주며, 공개 요금과 고객센터를 먼저 확인한 뒤 바인딩 Runbook을 채웁니다.
누가 누구에게 18789를 열었는지 설명할 수 없다면 설정 편집은 위험합니다. “tailnet-only”는 반복해서 설명 가능한 경로를 뜻합니다.
다음으로 읽을 문서는 Compose, TLS 반대, Tunnel, 보안 강화 중 필요한 조합을 고릅니다. SLA가 물리 노드와 묶일 때 비용 페이지를 재검토하세요.
자주 묻는 질문
Docker를 포기해야 하나요?
아니요. 컨테이너는 netns만 옮깁니다. 《Compose 페어링》을 유지하되 호스트 tailnet IP·DNS와 publish 포트가 일치하는지 확인하세요.
tailnet 이후에도 SSH 점프를 겹쳐도 되나요?
가능합니다. 《영 트러스트 원격 Mac》이 경로 선택을 설명합니다. OpenClaw 측에서는 TCP 18789 ACL을 22/tcp와 별도 항목으로 유지하세요.