−25%

Windows 연간 결제, 10월 31일까지. 요금제 보기

EQVPS
시작하기

VPS에서 OpenClaw 24시간 운영하기: 안전한 설정

잠들지 않는 서버에서 OpenClaw 게이트웨이를 돌리되, 명령을 실행할 수 있는 에이전트를 인터넷에 노출하지 않는 방법. 전용 사용자, loopback 포트 18789에서만 듣는 게이트웨이, SSH 터널, 페어링, 백업.

노트북에서는 덮개를 닫는 순간 OpenClaw가 조용해집니다. WhatsApp 메시지는 쌓이고, 예약 작업은 돌아올 때까지 기다리죠. 서버라면 계속 답합니다. 문제는 게이트웨이가 채팅 위젯이 아니라는 점입니다. 채널 자격 증명을 쥐고 있고, 샌드박스를 켜지 않는 한 도구를 호스트에서 바로 실행합니다. 늘 켜져 있는 머신으로 옮기는 건 보안 모델도 함께 옮길 때만 의미가 있습니다.

이 가이드는 새로 만든 Ubuntu 24.04 VPS에서 약 20분 만에 그 작업을 끝냅니다.

최종 확인: 2026-10-04, OpenClaw 2026.9.8(npm), Node 24.21 LTS, Ubuntu 24.04.

준비물

  • Linux VPS. 저희는 AI-Agent 요금제를 씁니다: 4 vCPU, 4 GB RAM, 40 GB 디스크, 월 10달러. OpenClaw 문서에는 6 GB RAM이 언급되지만, 이는 그들의 Docker 이미지를 소스에서 빌드할 때 얘기이고 npm 패키지는 빌드가 필요 없습니다.
  • 모델 제공자의 API 키와 연결할 채팅 계정.
  • 노트북의 SSH 키. 아직 없다면: SSH 키 로그인.

여기서는 NAT 요금제로 충분하고, 오히려 더 잘 맞습니다. 게이트웨이는 열린 인바운드 포트가 전혀 필요 없습니다. WhatsApp, Discord, Telegram(기본은 롱 폴링)은 바깥으로 연결하고, 대시보드는 SSH로 접근합니다. 필요한 채널이 웹훅으로 전달하거나 공개 리버스 프록시를 둘 계획일 때만 전용 IPv4를 고르세요.

1. root가 아닌 사용자

OpenClaw는 게이트웨이를 소유한 사용자로 도구를 실행합니다. 그 사용자가 root라면, 헷갈렸거나 프롬프트 인젝션에 조종당한 모델이 실행하기로 한 모든 명령도 root로 돌아갑니다. OpenClaw 문서는 게이트웨이를 root로 돌리는 것을 안전하지 않고 지원하지 않는 방식이라고 명시합니다. sudo 권한 없는 전용 사용자를 만드세요:

# root로 실행
apt update && apt -y upgrade
adduser --disabled-password --gecos "" claw
install -d -m 700 -o claw -g claw /home/claw/.ssh
install -m 600 -o claw -g claw ~/.ssh/authorized_keys /home/claw/.ssh/authorized_keys   # 주문할 때 등록한 키
loginctl enable-linger claw

마지막 줄은 보기보다 중요합니다. OpenClaw는 systemd 사용자 서비스를 설치하는데, lingering이 없으면 로그아웃하는 순간 서비스가 멈춥니다. 서버에서 가장 흔한 "어제는 잘 됐는데"가 바로 이것입니다.

2. Node 24와 OpenClaw

OpenClaw 2026.9.8은 Node >=24.16.0 <25 또는 >=26.1.0을 요구합니다. Ubuntu 기본 nodejs 패키지는 더 오래됐으니 NodeSource에서 24 LTS를 받습니다:

# root로 실행
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
apt install -y nodejs
node -v          # v24.16.0 이상
npm install -g openclaw@latest
openclaw --version

공식 한 줄 설치(curl -fsSL https://openclaw.ai/install.sh | bash)도 동작하고 Node까지 알아서 깔아 줍니다. 서버에서는 두 단계로 명시적으로 설치하는 쪽을 선호합니다. 무엇이 어디에 들어가는지 보이고, 실행 파일이 에이전트가 쓸 수 있는 홈 디렉터리가 아니라 /usr/bin에 놓이니까요.

3. 에이전트 사용자로 온보딩

su가 아니라 claw로 SSH 로그인하세요. 서비스에 필요한 systemd 사용자 매니저는 진짜 로그인에서만 시작됩니다:

# 노트북에서 (NAT 요금제: -p <SSH 포트> 추가)
ssh claw@<server>

openclaw onboard --install-daemon
openclaw gateway status

마법사가 모델 접근을 확인하고, ~/.openclaw/openclaw.json을 쓰고, 게이트웨이 토큰을 만들고, 서비스를 설치합니다. systemctl --user가 버스 오류를 내면 export XDG_RUNTIME_DIR=/run/user/$(id -u)를 설정하고 다시 실행하세요.

그다음 파일을 잠급니다. OpenClaw 자체 권장 사항은 상태 디렉터리 700, 설정 파일 600입니다:

chmod 700 ~/.openclaw && chmod 600 ~/.openclaw/openclaw.json
openclaw security audit --deep

openclaw security audit --fix는 안전한 범위의 수정만 적용합니다. 더 엄격한 파일 권한, 그리고 열린 그룹 정책 대신 허용 목록입니다. 수신 주소를 바꾸거나 방화벽을 설정하지는 않으니, 네트워크 노출은 여전히 여러분 몫입니다.

4. 게이트웨이는 loopback에 두기

게이트웨이는 WebSocket API와 대시보드를 포트 하나 18789에서 제공하며, 기본적으로 127.0.0.1에 바인딩됩니다. 그대로 두세요. 이를 명시한 최소 설정은 다음과 같습니다:

// ~/.openclaw/openclaw.json
{
  gateway: {
    mode: "local",
    bind: "loopback",
    port: 18789,
    auth: { mode: "token", token: "paste-output-of-openssl-rand-hex-32" },
  },
}

토큰은 openssl rand -hex 32나 openclaw doctor --generate-gateway-token으로 만드세요. 게이트웨이는 빈 토큰과 예시 값을 거부하고, 감사는 24자 미만이면 경고합니다.

하지 말아야 할 것: bind를 "lan"으로 바꾸고 포트를 여는 것. 문서는 분명히 말합니다. 인증 없이 0.0.0.0에 게이트웨이를 노출하지 말고, 토큰이 있어도 포트를 넓게 포워딩하지 말라고요. 그 토큰을 손에 넣은 사람은 여러분 서버에서 명령을 실행하는 프로세스의 운영자가 됩니다.

방화벽에서는 SSH만 허용하고 나머지는 막습니다:

# root로 실행
ufw allow OpenSSH
ufw enable
ufw status verbose

저희 NAT 요금제에서는 대시보드에 외부 SSH 포트가 표시되지만, 서버 안에서 sshd는 여전히 22번에서 듣습니다. 외부 포트 번호가 아니라 OpenSSH(22번)를 허용하세요. 그러지 않으면 ufw enable로 스스로를 잠그게 됩니다. 자세한 내용은 UFW 가이드에 있습니다.

5. SSH로 대시보드 접속

노트북에서 터널을 열고 그대로 둡니다:

ssh -N -L 18789:127.0.0.1:18789 claw@<server>
# NAT 요금제: ssh -N -p <SSH 포트> -L 18789:127.0.0.1:18789 claw@<host>

http://127.0.0.1:18789/를 열고 게이트웨이 토큰을 붙여 넣으세요. Ubuntu 기본 sshd는 로컬 포워딩을 허용합니다. 설정을 강화했다면 -L은 허용하고 원격 포워딩은 막는 설정이 AllowTcpForwarding local입니다. 터널이 administratively prohibited로 실패하면 이 줄을 확인하세요.

tailnet도 됩니다. Tailscale Serve는 게이트웨이를 loopback에 둔 채 접근을 관리합니다. 둘 다 괜찮습니다. 공개 포트는 안 됩니다.

6. 페어링, 샌드박스, 누가 말을 걸 수 있는가

채팅 채널은 또 하나의 출입구입니다. 기본적으로 DM을 받는 채널은 모르는 발신자에게 먼저 페어링을 요구하고, 승인은 서버에서 합니다:

openclaw pairing approve <channel> <code>

그룹에서는 멘션을 필수로 해서 에이전트가 방의 모든 메시지에 답하지 않게 하세요. OpenClaw의 강화 기본 설정은 채널마다 dmPolicy: "pairing"과 groups: { "*": { requireMention: true } }를 씁니다.

솔직한 주의점 두 가지. 첫째, 페어링은 누가 턴을 시작할 수 있는지를 정할 뿐, 무엇이 모델 컨텍스트에 들어가는지는 정하지 않습니다. 전달된 메시지나 가져온 웹 페이지가 여러분이 시작한 턴을 여전히 끌고 갈 수 있습니다. 둘째, 샌드박스를 켜기 전까지 메인 세션의 도구는 호스트에서 실행됩니다(agents.defaults.sandbox.mode: "non-main"은 자신의 메인 세션을 뺀 모든 것을 샌드박스에 넣습니다). 샌드박스는 기본적으로 꺼져 있고 기본 백엔드가 Docker이므로, 켜기 전에 Docker를 설치하세요: VPS에 Docker 설치. 신뢰하지 않는 사람들이 봇과 같은 채널에 있다면 별도의 게이트웨이를, 가능하면 별도의 서버에 두세요.

7. 업데이트와 백업

openclaw update
openclaw gateway status
openclaw backup create --output ~/backups/openclaw --verify

~/.openclaw에는 설정, 채널 자격 증명(WhatsApp 세션 포함), 모델 인증 프로필, 세션 기록이 들어 있습니다. 잃어버리면 전부 다시 페어링해야 하고, 유출되면 다른 사람이 WhatsApp에서 여러분 행세를 할 수 있습니다. 백업하고, 사본은 서버 밖에 두세요. scp로 내려받거나 암호화를 켠 restic을 쓰면 됩니다.

체크리스트

확인 항목명령기대 결과
게이트웨이가 root로 실행되지 않음ps -eo user,args | grep '[o]penclaw'첫 번째 열이 claw
로그아웃 후에도 계속 실행loginctl show-user claw -p LingerLinger=yes
loopback에서만 수신ss -ltnp | grep 18789127.0.0.1:18789
공개 포트 없음ufw statusOpenSSH만
설정 파일을 아무나 읽을 수 없음stat -c '%a' ~/.openclaw/openclaw.json600
감사 결과 깨끗함openclaw security audit --deep심각한 항목 없음

EQVPS가 하는 일

Node 프로세스를 돌릴 수 있는 곳은 많습니다. 저희가 더하는 것은 KYC 없는 암호화폐 결제, loopback에서만 듣는 게이트웨이에 맞는 NAT 요금제, 그리고 에이전트가 자기 서버를 직접 관리할 수 있는 MCP 서버입니다. OpenClaw를 거기에 연결한다면 먼저 MCP 가드레일을 읽으세요. 서버를 주문할 수 있는 토큰은 게이트웨이 토큰만큼 조심히 다뤄야 합니다. VPS에서 에이전트를 운영하는 전반적인 내용은 AI 에이전트 가이드에 있습니다.

저희 생각: 이 20분이 비서와, 채팅 화면이 달린 열린 shell의 차이입니다. 나머지는 건너뛰더라도 1, 4, 5단계만큼은 꼭 하세요.

배포할 준비가 되셨나요? 암호화폐로 결제, KYC 없음 — 약 1분 만에 온라인.

지금 배포 →

FAQ

OpenClaw에는 어떤 Node.js 버전이 필요한가요?

24 계열은 Node 24.16 이상, 또는 26.1 이상입니다. npm 패키지(작성 시점 openclaw 2026.9.8)는 그 밖의 버전을 거부하므로 Node 22로는 부족합니다. Ubuntu에서는 NodeSource 24.x 저장소로 현재 24 LTS를 설치할 수 있습니다.

포트 18789를 인터넷에 열어야 하나요?

아니요. 게이트웨이는 기본적으로 loopback(127.0.0.1:18789)에서 듣고, 그대로 두는 것이 맞습니다. 대시보드는 SSH 터널로 접속하세요. LAN이나 0.0.0.0에 바인딩하면, 낯선 사람과 서버에서 명령을 실행할 수 있는 프로세스 사이에 유출될 수 있는 토큰 하나만 남게 됩니다.

전용 IPv4가 없는 NAT VPS로도 OpenClaw를 쓸 수 있나요?

네, 대부분의 구성에서 가능합니다. WhatsApp, Discord, Telegram(기본은 롱 폴링)은 바깥으로 연결하고, 대시보드는 포워딩된 SSH 포트의 SSH 터널로 씁니다. 전용 IPv4는 웹훅으로 전달하는 채널을 쓰거나 앞단에 공개 리버스 프록시를 둘 때만 필요합니다.

VPS에서 OpenClaw에 RAM이 얼마나 필요한가요?

게이트웨이 자체는 가볍습니다. OpenClaw 문서의 6 GB는 Docker 이미지를 소스에서 빌드할 때의 수치입니다. npm 패키지는 컴파일할 것이 없고, 저희는 AI-Agent 요금제(4 vCPU, 4 GB RAM, 40 GB 디스크)에서 돌리는데 브라우저 도구와 샌드박스를 쓸 여유도 있습니다.

SSH에서 로그아웃해도 OpenClaw가 계속 돌아가나요?

서비스를 소유한 사용자에게 lingering을 켠 경우에만 그렇습니다: sudo loginctl enable-linger <user>. OpenClaw는 systemd 사용자 유닛을 설치하므로, lingering이 없으면 마지막 세션이 끝날 때 사용자 매니저가 멈춥니다.

댓글

아직 댓글이 없습니다. 첫 번째가 되세요.

댓글 남기기

댓글은 표시되기 전에 검토됩니다.