OpenClaw Gateway 콘솔, 웹훅 또는 통합을 위해 안정적인 HTTPS URL이 필요한 경우 앱 포트를 인터넷에 직접 노출하는 것이 최종 상태인 경우는 거의 없습니다. 이 가이드는 이미 베어 메탈 또는 원격 Mac에서 OpenClaw를 실행하고 공개할 계획을 갖고 있는 팀을 위한 것입니다.직접 대 역방향 프록시 결정 테이블, 최소한의 Nginx 및 Caddy 스니펫WebSocket 친화적인 헤더를 사용하면TLS 및 방화벽 체크리스트, 그리고VNC 친화적인 확인 경로루프백에서 다른 네트워크로. 교차 링크는 이 사이트의 Docker, 일반적인 오류 및 자동 "응답 없음" 문제 해결을 가리킵니다.
1. 프록시 없이 게이트웨이를 노출할 때의 문제점
- 일반 HTTP 및 신뢰:TLS가 없는 개방형 인터넷을 통한 자격 증명 및 콜백은 취약합니다. 많은 공급자가 HTTPS를 요구합니다.
- 순진한 전달의 WebSocket:없어진
Upgrade/Connection또는 공격적인 시간 초과는 UI에서 "무작위 연결 끊김"처럼 보입니다. - 더 넓은 공격 표면:앱 포트를 게시하면 스캔 노이즈가 직접 증가합니다. 프록시는 허용 목록, 속도 제한 및 일관된 액세스 로그를 연결하는 곳입니다.
- 원격 Mac 사각지대:"SSH 작동"은 macOS 방화벽 및 클라우드 보안 그룹이 VNC에 표시되는 것과 일치함을 증명하지 않습니다.
- Docker 대 호스트 리스너:
127.0.0.1~ 대0.0.0.0프록시가 실행되어야 하는 위치 변경 - 이 사이트의 공식 Docker 가이드를 참조하세요.
2. 결정 테이블: 직접 vs TLS + 역방향 프록시
| 차원 | 직접 공용 포트 | TLS + Nginx/캐디 |
|---|---|---|
| 암호화 | TLS 인앱을 종료하거나 HTTP를 유지해야 합니다. | 에지에서 TLS를 종료합니다. 업스트림은 루프백 시 HTTP를 유지할 수 있습니다. |
| 웹소켓 | 모든 홉이 협력해야 합니다 | Nginx의 명시적 헤더/시간 초과; 캐디는 일반적으로 자동으로 업그레이드됩니다. |
| 다양한 서비스 | 서비스당 포트 1개 | 하나의 IP에 있는 가상 호스트 |
| 운영 | 0일차에 움직이는 부품 수가 적습니다. | 추가 서비스, 장기적으로 더 나은 안전성과 관찰 가능성 |
| VNC 문제 해결 | 테스트를 계층화하기가 더 어렵습니다. | curl -v업스트림 반대 다음 반대https://domain |
3. Nginx나 Caddy를 추가해야 하는 경우
- 북마크, OAuth 리디렉션 또는 웹후크를 위해서는 안정적인 도메인과 HTTPS가 필요합니다.
- 적절한 업그레이드 처리 없이 긴 경로에서 실시간 UI 동작이 저하됩니다.
- 동일한 원격 Mac에서 다른 사이트를 호스팅하고 하나의 인증서 스토리를 원합니다.
- 정책은 앱이 루프백 상태를 유지하는 동안 인터넷에서 443/80만 허용합니다.
openclaw doctor민감한 서비스를 localhost에 바인딩하고 프록시로 전면에 배치할 것을 제안합니다(해당 버전의 출력을 따릅니다).
4. 최소 Nginx: 18789, 호스트, WebSocket
교육 스니펫 - 호스트 이름, 인증서 경로 및 업스트림 포트를 교체합니다. 프로덕션을 위해 강화합니다(암호화, OCSP 스테이플링, 로깅 수정, 속도 제한).
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl http2;
server_name claw.example.com;
ssl_certificate /etc/letsencrypt/live/claw.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/claw.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:18789;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
}
업스트림, 전달에는 HTTP/1.1 사용Upgrade/Connection, 앞으로 헤더를 정직하게 유지하여 앱이 클라이언트 구성표를 알 수 있도록 합니다.
5. 최소 캐디: 자동 HTTPS
claw.example.com {
reverse_proxy 127.0.0.1:18789
}
캐디는 ACME에 대해 포트 80/443에 연결할 수 있을 때 인증서를 획득하고 갱신합니다. 정책에 따라 일치자, 추가 헤더 또는 IP 필터를 추가하세요.
6. 인증서, DNS, 보안 그룹
DNS는 공개 항목을 가리킵니다.
A/AAAA 레코드를 확인합니다. CDN이 호스트 앞에 있는 경우 WebSocket과 챌린지 경로가 여전히 작동하는지 확인하세요.
클라우드 방화벽
HTTP-01의 경우 443과 일반적으로 80을 허용합니다. 루프백 업스트림을 사용할 때 18789를 공개 규칙 세트에서 제외하세요.
VNC의 macOS 방화벽
시스템 설정을 확인하세요. nginx/caddy를 OpenClaw 프로세스와 구별합니다.
갱신 새로고침
갱신 후 nginx를 다시 로드하거나 Caddy가 인증서를 선택하도록 하여 자동으로 만료되지 않도록 하세요.
레이어드 컬 테스트
루프백 업스트림, 로컬 HTTPS, 외부 네트워크 순입니다.
6b. 선택적 IP 허용 목록 및 속도 제한
소규모 팀의 경우 소스 IP 또는 VPN 송신으로 관리 영역을 제한하세요. Nginx 사용 시allow/deny또는 WAF; 캐디에서는 다음과 같은 매처를 사용합니다.remote_ip버전 문서에 따라. 추가하다limit_req(또는 이와 동등한 것)을 핫 엔드포인트에 설치하여 무차별 대입과 우발적인 루프로 인해 게이트웨이가 중단되지 않도록 합니다.
웹훅의 경우 공급자의 서명 확인을 선호합니다. IP 범위는 변경될 수 있습니다. 달력에 허용 목록 및 인증서 만료를 문서화합니다.
7. VNC 원격 Mac에서 7단계 인증
- VNC 터미널에서 다음을 실행합니다.
openclaw doctor청취 주소가 구성과 일치하는지 확인하십시오. curl -v http://127.0.0.1:18789/(또는 업스트림) 상태 코드를 확인합니다.- nginx/caddy 구문을 검증하고 깨끗하게 다시 로드하세요.
- 열려 있는
https://your-domainMac의 브라우저에서; devtools에서 WebSocket 101을 확인하세요. - LAN 전용 오탐을 방지하려면 모바일 데이터 또는 다른 네트워크에서 다시 테스트하세요.
- 자동 실패를 디버깅할 때 프록시 액세스 로그를 OpenClaw 로그와 연관시키세요(응답 없음 문서 참조).
- 방화벽이 변경된 후 전파를 기다린 후 외부 테스트를 다시 실행하세요.
8. 인용 가능한 매개변수 및 관련 가이드
proxy_read_timeout값은 오래 지속되는 연결을 끊습니다. 넉넉한 업스트림 시간 제한으로 시작하고 측정항목을 조정하세요.설치 및 런타임 오류에 대해서는 다음을 읽어보세요.일반적인 오류 및 10가지 수정 사항. 무음 채널의 경우 다음을 따르세요.응답이 없는 문제 해결. 컨테이너의 경우 다음에서 시작하세요.원격 Mac의 공식 Docker Compose.
마무리: 원격 Mac의 VNC가 여전히 도움이 되는 이유
퍼블릭 게이트웨이 설정에는 TLS, 장기 연결 및 OS 수준 방화벽이 혼합되어 있습니다. 브라우저와 시스템 프롬프트가 한 곳에서 필요한 경우 SSH만으로는 디버깅하기 어렵습니다. VNC 지원 원격 Mac(예: VNCMac)을 임대하면 짧은 프로젝트에만 필요한 하드웨어를 구입하지 않고도 의사를 실행하고, 프록시를 다시 로드하고, WebSocket을 시각적으로 확인할 수 있습니다. 엣지 잠금 상태 유지: 443의 TLS, 루프백 업스트림, 이 사이트의 Docker 및 문제 해결 게시물을 런북으로 활용하세요.