성공 직후 멈추는 설치의 다섯 가지 시그니처
공식 문제 해결 문서는 여전히 gateway.mode, 루프백이 아닌 바인드, gateway.auth.token을 중심에 두며 2026년에도 자주 등장합니다. 그러나 VPS 이미지에서는 다른 부류의 조용한 장애가 많습니다. 사용자 세션 자체가 없어 systemctl --user가 유닛 기록보다 먼저 실패하거나 linger 없이 SSH 종료와 함께 프로세스가 죽거나 XDG_RUNTIME_DIR가 대화형에만 내보내져 세션이 끊기면 소켓 기반이 무너집니다. 오래된 리스너로 인한 EADDRINUSE, 중복 설치, 감독 프로세스와 JSON 포트 불일치도 묶여 나타납니다. 업그레이드로 인증 기본값이 강화되어 토큰 없는 LAN 바인드가 거절되는 경우, SELinux나 클라우드 보안 그룹이 발신 webhook을 막는 경우도 있습니다. 채널은 연결된 것처럼 보이지만 에이전트에 도달하지 않는 문제는 이 블로그 시리즈의 다른 글에 속합니다.
아래 통증 목록은 프로세스 건강과 메시지 정책을 분리하기 위한 것입니다. 포트만 만지기 전에 systemd가 실제 병목인지 확인합니다. 연결 배지 이후에만 침묵이 걱정이면 채널 전용 가이드를 먼저 읽고 베이스 호스트 검증은 나중에 해도 됩니다.
설치 말미에 systemctl --user를 쓸 수 없음: 최소 Ubuntu나 사용자 매니저가 빠진 벤더 이미지에서 자주 발생하며 설치 프로그램 결함으로 오해됩니다.
SSH를 닫으면 게이트웨이가 종료: linger 누락이거나 서비스 사용자 셸 프로필에 영구 XDG_RUNTIME_DIR가 없는 고전적 패턴입니다.
로그가 루프백이 아닌 바인드를 토큰 없이 거부: 채널을 반복 교체하기 전에 바인드를 강화하거나 인증을 추가합니다.
doctor가 CLI와 서비스 설정 불일치를 보고: gateway install --force로 맞추고 재시작하여 두 포트가 공존하지 않게 합니다.
데스크톱급 부작용이 지배적: Linux에서 브라우저와 서명 스택을 억지로 맞추는 것보다 macOS 베어메탈로 옮기는 편이 빠를 수 있습니다.
시그니처가 Runbook에 있으면 분류는 시간 단위에서 분 단위로 줄어듭니다. 게이트웨이 런타임과 사용자 세션을 확인한 뒤 채널과 페어링으로 내려갑니다. 분산 팀에서는 게이트웨이 리전과 멤버 및 모델 API 엔드포인트의 상대 위치도 그립니다. 프로세스가 살아 있어도 지연 체감이 크면 설정 오류가 아니라 지리입니다.
재부팅 후에는 콜드 스타트 확인으로 두 분 기다렸다가 channels 프로브를 실행하여 DNS와 인증서 일시 흔들림을 정책 실패와 혼동하지 않습니다. 업그레이드 전후 doctor 출력을 비교하여 설정 표류를 미리 잡습니다.
용량 계획은 init 동작과도 교차합니다. 두 vCPU VPS는 소규모 팀 게이트웨이에는 충분하지만 예약 작업이나 브라우저 의존 스크래이퍼와 상시 서브 에이전트를 더하면 CPU 부족이 전송 불안정처럼 보이고 프로브가 이벤트 루프 응답 전에 시간 초과합니다. 피크 시간대의 짧은 top이나 pidstat로 포화와 설정 오류를 나눕니다. 장황한 로그로 디스크가 눌리면 자격 증명 회전이나 상태 파일 손상이 생길 수 있으므로 로그 로테이션과 디스크 경보를 함께 운영합니다.
운영 측면에서는 변경마다 위험 소유자와 롤백 절차를 티켓에 붙여 심야 장애 때 자격 증명이 노트북에만 있는 상황을 피합니다. 모니터링은 채널 배지뿐 아니라 TCP 리스닝, 프로세스 생존, 디스크 워터마크를 분리합니다.
공개 리스너로 옮길 때 방화벽 허용과 온콜 연락을 같은 변경으로 갱신하여 게이트웨이는 정상인데 보안 그룹이 오래된 주소를 가리키는 두 번째 사고를 막습니다.
비슷한 예산 감각으로 보는 Linux VPS와 베어메탈 클라우드 Mac
단일 가격 열만으로는 결론 내리기 어렵습니다. 세션 안정성, 데스크톱 의존성, 격리 노력이 OpenClaw를 일주일 내내 돌리며 브라우저 자동화까지 얹을 때의 총비용을 지배합니다.
| 차원 | 헤드리스 Linux VPS | 베어메탈 클라우드 Mac 호스트 |
|---|---|---|
| 세션과 감독 | 사용자 systemd, linger, XDG 경로에 의존 | launchd와 macOS 세션 스택이 장수 에이전트에 익숙함 |
| 전형적 적합 | 가벼운 릴레이, webhook 유입, CLI 전용 흐름 | 브라우저 자동화, 데스크톱 권한, 팀 격리 |
| 운영 부하 | 배포판 편차가 큼 | Apple 스택이 비교적 균일하고 이미지 깜짝 출입이 적음 |
| 멀티 리전 | 클라우드는 많지만 규정과 이미지가 들쭉날쭉함 | 싱가포르, 도쿄, 서울, 홍콩, 미 동부·서부 등 사용자 근처 옵션 |
| 숨은 비용 | SSH 수리 루프의 엔지니어 분 | 임대료는 높지만 진화 총비용은 종종 더 낮음 |
호스트를 고르기 전에 사다리를 실행합니다. systemd가 아직 흔들릴 때 채널 분위기부터 만지지 마세요.
Lobster 캔버스나 잦은 브라우저 실행, macOS 키체인급 요구가 이미 보이면 VPS에 패키지를 더 쌓을수록 이전만 늦어집니다. 싱가포르나 미 서부의 주 단위 베어메탈을 일주일 시험하면 증거로 논쟁이 끝납니다.
관측 가능성에는 사무실 네트워크 밖에서의 합성 webhook 검사를 포함합니다. 기업 VPN은 공개 리스너 결함을 가립니다. 다른 리전에서 헬스 엔드포인트를 curl 하는 작은 cron은 거의 무료로 보안 그룹 후퇴를 일찍 잡습니다. 게이트웨이 앞 리버스 프록시에서 종료하는 TLS 만료도 알림하여 갱신이 대규모 릴리스 주말과 겹치지 않게 합니다.
사다리가 마지막으로 통과했을 때의 패키지 버전을 고정하고 프로덕션에 들이기 전 스테이징 VPS에서 업그레이드를 재현합니다.
다섯 명령 사다리와 최소 로그 기준선
순서는 의도적입니다. status가 개요를 주고 gateway status가 런타임과 프로브를 증명하며 logs가 서명을 잡고 doctor가 유닛과 설정 표류를 읽고 channels status --probe가 프로세스 건강에서 전송으로 진행합니다. gateway를 건너뛰고 모델 오류만 쫓으면 토큰과 재로그인을 낭비합니다.
openclaw status openclaw gateway status openclaw logs --follow openclaw doctor openclaw channels status --probe
VPS 호스트에서는 gateway status의 Runtime, Connectivity 프로브, Capability 줄에서 건강한 스니펫을 보관합니다. 업그레이드 후 한 줄만 바뀌면 롤백 경로가 짧아집니다. doctor가 시스템과 사용자 유닛 중복을 경고하면 수동 삭제 대신 복구 안내를 따르고 반쪽 리스너를 남기지 않습니다.
클라우드 Mac으로 옮기기 전 같은 사다리를 다시 실행하고 기준선을 비교하면 고통이 호스트에 따르는지 설정에 따르는지 분명해집니다. 배포판 순수성 논쟁보다 실험이 빠릅니다.
root와 일반 사용자 모두에 OpenClaw를 설치했다면 HOME과 OPENCLAW_STATE_DIR가 하나의 상태 트리를 가리키는지 확인합니다. 분열하면 Config(cli) 대 Config(service) 경고가 나오므로 JSON을 더하기 전에 합쳐야 합니다.
참고: 로그에 gateway.mode나 인증 차단이 나오면 노출을 넓히기 전에 게이트웨이 배포 긴글에서 바인드와 토큰 절을 교차 확인합니다.
VPS 게이트웨이를 유지 보수 가능하게 만드는 여섯 단계
배포판과 Node 기준선 고정: 이미지 이름, 커널, Node 메이저를 README에 기록합니다.
사용자 systemd 검증: 서비스 사용자로 systemctl --user status를 실행하고 게이트웨이 설치보다 먼저 linger와 dbus를 고칩니다.
XDG_RUNTIME_DIR 영속화: 비대화형 셸에도 로드되는 프로필에 export XDG_RUNTIME_DIR=/run/user/$(id -u)를 넣습니다.
사다리 출력 기준선 저장: 업그레이드 전 다섯 출력을 롤백 트리거로 보관합니다.
채널 배지와 별도 프로브: TCP 리스닝, 프로세스 생존, 디스크 워터마크를 따로 모니터링합니다.
분기별 호스트 검토: 세션류 장애 분을 집계하고 매트릭스와 비교해 이전 시점을 정합니다.
검토 담당자가 실제로 묻는 세 가지 확인
리스너가 유닛 메타데이터와 일치: gateway status JSON 포트는 설치된 유닛 ExecStart와 맞아야 doctor가 무한 루프를 멈춥니다.
루프백이 아닌 노출: LAN이나 공개 바인드는 토큰이나 리버스 프록시 정책과 짝을 이루고 방화벽 확인이 필요합니다.
업그레이드 후 채널 프로브: 이십사 시간 안에 channels status --probe를 다시 실행하고 출력을 롤백 조건으로 보관합니다.
주의: 공개 바인드 전에 보안 검토를 마칩니다. 본 글은 감사 가능한 수정을 다루며 인증 우회 요령이 아닙니다.
전반적으로 가벼운 유입이나 실험에는 Linux VPS가 맞습니다. 그러나 데스크톱 부작용이 있는 운영 메시지 버스는 빠진 이미지에서 빠르게 한계에 닿습니다. 주요 허브의 베어메탈 클라우드 Mac은 예측 가능한 Apple 세션 모델을 제공하여 노력이 워크플로로 돌아옵니다.전용 컴퓨팅과 일 단위에서 분기 단위까지 유연한 기간, 감사 가능한 하나의 발자국에 게이트웨이와 장수 에이전트를 모으려면 MESHLAUNCH Mac mini 클라우드 임대가 운영상 가장 강한 선택인 경우가 많습니다.
공개 노출이 바뀔 때마다 방화벽 허용과 온콜 연락을 갱신하여 게이트웨이는 정상인데 보안 그룹이 오래된 주소를 가리키는 두 번째 사고를 피합니다. 변경 티켓에 롤백 명령을 붙입니다.
누가 브레이크글래스 SSH를 가지고 누가 클라우드 콘솔을 가지는지 문장으로 정해 새벽 두 시 장애 때 자격 증명이 오프라인 노트북에만 있는 상황을 막습니다. 사다리 출력과 같은 폴더에 짧은 RACI 표를 두면 ITIL 전체를 키우지 않고 빈틈을 메웁니다.
먼저 연결됐으나 무응답으로 정책 층을 나눈 뒤 여기서 systemd와 바인드를 확인합니다.
설치와 Lobster 워크플로는 오케스트레이션용이며 본 페이지는 호스트와 systemd 기초에 초점을 둡니다.