> ## Content Index
> Fetch the complete content index at: https://zerodraftlab.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# 휴대폰에서 Claude Code를 켰다. 바뀐 것은 화면이 아니다
- URL: https://zerodraftlab.com/phone-claude-code-changes-workplace/
- Published: 2026-07-23T07:30:02.000Z
- Updated: 2026-08-30T02:49:43.000Z
- Description: 월 8유로 VPS, Tailscale, Termius, tmux, Claude Code. Rob Hallam이 공개한 16단계 개인 AI 서버 구성을 원문 순서대로 자세히 풀어본다.
- Author: JooMong
- Tags: 무료

롭 할람이 공개한 아래 포스트는 “휴대폰에서 Claude Code를 쓰는 법”을 16단계로 정리한 짧은 구축기다. 월 5\~10유로 수준의 VPS를 사고, Tailscale과 SSH로 접속을 잠근 뒤, tmux 안에서 Claude Code를 계속 실행한다. 마지막에는 서버 구성과 운영 원칙까지 Claude Code에 넘긴다.

> If you wanna do it yourself, this is how:  
>  
> Buy (\~15 min)  
> 1\. Cheap VPS from Hetzner or DigitalOcean (\~€5-10/mo), Ubuntu 24.04, tick automatic backups at checkout  
> 2\. Add your domain to Cloudflare (free plan), switch nameservers at your registrar  
> 3\. Install Termius (SSH app) +…
> 
> — Rob Hallam (@robj3d3) [July 22, 2026](https://x.com/robj3d3/status/2080018987849773315?ref%5Fsrc=twsrc%5Etfw&ref=zerodraftlab.com)

임베딩이 보이지 않으면 [X 원문](https://x.com/robj3d3/status/2080018987849773315?ref=zerodraftlab.com)에서 볼 수 있다.

완성된 것은 거창한 AI 플랫폼이 아니다. 인터넷에 늘 켜져 있는 작은 Ubuntu 컴퓨터 한 대와, 그 컴퓨터를 노트북과 휴대폰에서 안전하게 여는 통로다. 코드와 파일, Claude Code 프로세스는 서버에 남는다. Termius는 접속 화면이고, Tailscale은 사설 통로이며, tmux는 연결이 끊겨도 프로세스를 살려두는 장치다.

원문이 제안한 순서를 그대로 따라가 보자.

## 1\~3\. 서버를 사고 들어갈 도구를 준비한다

1. **저렴한 VPS를 산다.** Rob은 Hetzner나 DigitalOcean의 월 5\~10유로급 서버, Ubuntu 24.04, 공급자 자동 백업 옵션을 제안한다. 자신이 실제로 산 Hetzner VPS는 월 8유로였다.
2. **도메인을 Cloudflare에 연결한다.** 도메인을 Cloudflare 무료 플랜에 추가하고 registrar의 nameserver를 바꾼다. 나중에 웹페이지를 공개할 때 Cloudflare를 앞단에 두기 위한 준비다.
3. **노트북과 휴대폰에 Termius와 Tailscale을 설치한다.** Termius는 SSH 클라이언트, Tailscale은 기기끼리 사설망을 만드는 도구다. 둘 다 이 정도 개인 구성에서는 무료 플랜으로 시작할 수 있다.

여기까지는 서버를 한 대 사고, 접속에 사용할 앱을 깐 단계다. 아직 안전하게 잠근 것은 아니다. 원문은 다음 4\~10단계에 더 많은 설명을 쓴다. 이 구성에서 중요한 것은 Claude Code 설치보다 공개 인터넷에서 SSH를 치우는 일이기 때문이다.

## 4\~10\. 공개 SSH를 닫고 Tailscale 안으로 들어간다

1. **Termius에서 SSH 키를 만든다.** VPS를 생성할 때 공개키를 넣고, 비밀번호 로그인 대신 키로만 접속한다.
2. **공개 IP로 한 번 접속해 서버를 준비한다.** 시스템 패키지를 업데이트하고 서버에 Tailscale을 설치한 뒤 자신의 tailnet에 로그인시킨다.
3. **서버의 Tailscale key expiry를 끈다.** 원격 서버의 키가 만료돼 접속 통로가 사라지는 일을 막기 위한 선택이다.
4. **Tailscale 주소로 SSH가 되는지 먼저 확인한다.** 서버에 부여된 `100.x` 주소로 실제 접속이 되는 것을 확인하기 전에는 공개 SSH 통로를 닫지 않는다. 이 순서가 뒤집히면 스스로 서버 밖에 잠길 수 있다.
5. **provider firewall의 인바운드 규칙을 정리한다.** 원문은 공개 SSH를 완전히 닫고, 웹 트래픽용 443번 포트만 Cloudflare의 공개 IP 대역에서 받도록 제안한다.
6. **외부 네트워크에서 다시 시험한다.** 서버의 공개 IP로는 연결이 timeout되고, Tailscale 주소로는 접속돼야 한다. 인터넷 전체에 열린 관리 포트가 없어졌는지 확인하는 단계다.
7. **기기마다 SSH 키를 따로 둔다.** 노트북 키를 휴대폰에 복사하지 않고 휴대폰용 키를 별도로 만들어 `authorized_keys`에 추가한다. 한 기기를 잃어버려도 그 키만 제거할 수 있다.

이제 서버는 공개 인터넷에서 SSH를 받지 않고, Tailscale에 로그인한 자신의 기기에서만 관리할 수 있다. 다음은 그 안에 Claude Code를 계속 살아 있게 만드는 단계다.

원문의 11단계부터는 안전한 원격 서버를 개인 AI 작업장으로 바꾼다.

## 11\~12\. tmux 안에 Claude Code를 띄운다

1. **tmux와 Claude Code를 설치한다.** Ubuntu에서 tmux를 설치하고 Anthropic의 공식 설치 방법으로 Claude Code를 넣는다.
2. **Claude Code는 tmux 세션 안에서 실행한다.** SSH 연결이 끊기거나 휴대폰 앱을 닫아도 tmux 안의 프로세스는 계속 돈다. 나중에 같은 세션에 다시 붙으면 직전 터미널 화면과 실행 중인 작업을 이어서 볼 수 있다.

여기서 휴대폰은 Claude Code가 실행되는 컴퓨터가 아니다. 서버의 tmux 세션에 붙는 리모컨이다. 노트북을 닫아도 서버는 켜져 있으므로 이동 중에 상태를 확인하거나 다음 지시를 보낼 수 있다.

## 13\~14\. 서버 운영법을 CLAUDE.md로 넘긴다

1. **한 번의 긴 인수인계 프롬프트를 준다.** 서버 사양과 보안 모델, 프로젝트 폴더 규칙, 프로젝트별 tmux 세션, 선호하는 작업 방식, 파괴적 작업 전 확인 같은 상시 규칙을 설명한다. 새 서비스는 localhost나 Tailscale에만 bind하라는 경계도 포함한다.
2. **Claude Code가 그 내용을 먼저 `CLAUDE.md`에 쓰게 한다.** 다음 세션부터 서버 구조와 운영 원칙을 다시 설명하지 않아도 되도록 저장소 밖에 있던 인수인계를 파일로 고정한다.

이 두 단계가 원문의 핵심이다. Claude Code를 설치하는 데서 멈추지 않고, 이 컴퓨터가 어떤 목적으로 존재하고 무엇을 함부로 바꾸면 안 되는지까지 환경 안에 남긴다. 이후에는 “사이트 하나 만들어줘”라고 말해도 Claude Code가 어느 폴더에 만들고, 어떻게 노출하고, 어떤 변경에서 확인을 받아야 하는지 기본값을 가진다.

## 15\~16\. 기능보다 백업을 먼저 만들고 첫 페이지를 띄운다

1. **첫 기능 전에 nightly backup을 만든다.** 원문은 데이터가 매일 GitHub로 올라가도록 하고 실제로 작동하는지 시험한 뒤에야 페이지를 만들라고 제안한다.
2. **나머지 서버 구성을 Claude Code에 맡긴다.** Caddy와 Cloudflare DNS plugin, SQLite를 설치하고 첫 웹페이지를 배포하게 한다. 이후에는 휴대폰 Termius에서 원하는 것을 말하고 결과를 확인하는 흐름이다.

이렇게 16단계가 끝나면 구성은 단순하다. Cloudflare가 공개 웹 요청을 받고, 관리 접속은 Tailscale 안에서만 이뤄진다. 서버 안에서는 Caddy가 웹을 제공하고 SQLite가 데이터를 저장한다. Claude Code는 tmux 안에서 살아 있으며, 노트북과 휴대폰은 Termius를 통해 같은 작업장에 들어간다.

## 그대로 따라 하기 전에 알아둘 세 가지

첫째, 8단계의 방화벽 규칙은 모든 VPS에 그대로 복사할 범용 정답이 아니다. 443번을 Cloudflare IP에서만 받는 구성은 웹 트래픽이 Cloudflare proxy를 통과한다는 전제가 있다. 공개 웹서비스를 아직 띄우지 않거나 다른 노출 방식을 쓴다면 필요한 인바운드 규칙도 달라진다.

둘째, 서버의 “모든 데이터”를 GitHub로 보내면 안 된다. 소스 코드는 private repository에 둘 수 있지만 데이터베이스, 환경변수, 개인 데이터, API 키는 별도의 암호화 백업과 secret 관리가 필요하다. 백업 작업의 성공보다 새 서버에서 실제로 복원되는지가 더 중요하다.

셋째, key expiry를 끄면 편한 대신 오래 살아 있는 서버 신원을 직접 관리해야 한다. Tailscale은 서버 같은 장기 기기에서 만료를 끌 수 있다고 안내하지만, 필요 없어진 기기와 키를 검토하고 폐기하는 책임까지 사라지는 것은 아니다.

휴대폰에서 실행 중인 Claude Code를 조종하는 것만 필요하다면 Anthropic의 Remote Control이 더 짧은 길이다. 로컬 Claude Code 세션을 모바일 앱이나 브라우저에서 이어갈 수 있고, 인바운드 포트를 열지 않는다. 이 VPS 구성이 추가로 주는 것은 노트북과 분리된 가동 시간, 고정된 서버 환경, 직접 호스팅하는 웹서비스다.

그러므로 이 포스트의 결과물은 “휴대폰용 Claude Code”라기보다 **어디서든 들어갈 수 있고, 연결이 끊겨도 계속 살아 있는 개인 서버 작업장**이다. 원문의 16단계는 서버를 사고, 잠그고, Claude Code에 운영법을 인계하고, 백업 뒤 첫 서비스를 띄우는 순서로 읽으면 가장 정확하다.

---

주요 출처: Rob Hallam, [Hetzner VPS·Tailscale·Termius·Claude Code 16단계 구성](https://x.com/robj3d3/status/2080018987849773315?ref=zerodraftlab.com), 2026년 7월 22일; Ghost, [Twitter / X integration](https://ghost.org/integrations/twitter/?ref=zerodraftlab.com); Anthropic, [Claude Code Remote Control](https://code.claude.com/docs/en/remote-control?ref=zerodraftlab.com) 및 [설치 문서](https://docs.anthropic.com/en/docs/claude-code/getting-started?ref=zerodraftlab.com); Tailscale, [Key expiry](https://tailscale.com/docs/features/access-control/key-expiry?ref=zerodraftlab.com)와 [Access control](https://tailscale.com/docs/features/access-control?ref=zerodraftlab.com); Cloudflare, [Cloudflare IP addresses](https://developers.cloudflare.com/fundamentals/concepts/cloudflare-ip-addresses/?ref=zerodraftlab.com); tmux, [공식 프로젝트 문서](https://tmux.github.io/?ref=zerodraftlab.com); GitHub Docs, [Storing your secrets safely](https://docs.github.com/en/get-started/learning-to-code/storing-your-secrets-safely?ref=zerodraftlab.com).