# Cloud 파일과 네트워킹

이 페이지는 머신으로 파일과 시크릿을 옮기는 방법, 포트와 데스크톱을 여는 방법, 사설 네트워크의 동작 방식, 그리고 URL을 공개하는 방법을 설명합니다.

## 파일 업로드와 다운로드

cmux vm push는 파일이나 폴더를 머신에 업로드합니다. 전송은 SHA-256으로 검증됩니다. 기본적으로 .git, node\_modules, .venv, \_\_pycache\_\_, .DS\_Store는 건너뜁니다. 이들을 포함하려면 --no-default-excludes를, 더 많은 경로를 제외하려면 --exclude를, 저장할 때마다 변경 사항을 다시 업로드하려면 --watch를 사용하세요.

```
cmux vm push brave-otter ./app ~/app
cmux vm push brave-otter . ~/repo --no-default-excludes
cmux vm push brave-otter . ~/repo --exclude dist --watch
cmux vm pull brave-otter ~/repo/report.html ./report.html
```

한 번에 최대 256 MB까지 업로드할 수 있습니다. 큰 저장소는 머신 안에서 clone하세요.

cmux vm pull은 머신에서 파일을 다운로드합니다.

## 시크릿 파일

cmux vm push --secret은 최대 256 KB의 작은 파일을 암호화된 cmux 링크로 업로드합니다. 파일은 기본적으로 0600 모드로 기록됩니다. 키와 자격 증명에는 일반 업로드 대신 이 방법을 사용하세요.

```
cmux vm push --secret brave-otter ~/.npmrc ~/.npmrc
```

## 환경 변수

cmux vm env는 변수를 머신 디스크의 ~/.config/cmux/env에 저장합니다. 새 셸은 모두 이 변수를 불러옵니다. 값은 암호화된 링크로 전송되며 화면에 표시되지 않습니다. cmux vm env ls는 --show를 붙이지 않으면 값을 숨깁니다.

```
cmux vm env set brave-otter --from-file .env
op read op://dev/stripe/key | cmux vm env set brave-otter -
cmux vm env ls brave-otter
cmux vm env rm brave-otter STRIPE_KEY
```

KEY=VALUE 인수는 로컬 셸 기록에 남을 수 있습니다. 시크릿에는 --from-file이나 표준 입력을 사용하세요.

## 포트와 앱 내 브라우저

머신에서 개발 서버를 시작하고 Cloud 터미널에서 localhost URL을 ⌘-클릭하세요. cmux가 머신의 사설 주소로 브라우저 패널을 엽니다. localhost에서만 수신하는 서버도 동작합니다. VPN이나 포트 포워딩은 필요 없습니다.

cmux vm ports는 머신에서 열려 있는 포트를 나열합니다. Cloud 사이드바에서는 Ports 아래에 표시됩니다. cmux vm open machine:port/number로 포트 하나를 엽니다.

```
cmux vm ports brave-otter
cmux vm open brave-otter:port/3000
```

## 데스크톱

모든 머신에는 Linux 데스크톱이 있습니다. 머신 메뉴에서 Open Desktop으로 열거나 cmux vm desktop을 실행하세요. VNC를 통해 브라우저 패널에서 열립니다. GUI 앱, Chrome, 브라우저 자동화는 이 디스플레이에서 실행됩니다.

```
cmux vm desktop brave-otter
```

## 사설 네트워크

머신에는 공개 인바운드 포트가 없습니다. cmux는 계정마다 사설 네트워크를 제공하며, 각 Mac은 그 Mac을 떠나지 않는 자체 WireGuard 키로 연결합니다. 연결은 cmux 앱 안에서 시작되며 승인이 필요 없습니다.

같은 사설 네트워크에서 머신끼리 서로 연결할 수 있습니다.

cmux.com의 Cloud Mac access 페이지에 머신에 연결할 수 있는 Mac이 나열됩니다. 그곳에서 Mac의 이름을 바꾸거나 접근을 취소할 수 있습니다. Mac의 접근을 취소하면 해당 Mac은 로그아웃되고 모든 머신에 대한 접근 권한을 잃습니다.

## 시스템 VPN(선택 사항)

cmux vpn up은 시스템 경로를 추가해 별도의 브라우저나 데이터베이스 클라이언트 같은 Mac의 다른 앱도 머신에 연결할 수 있게 합니다. cmux 자체에는 필요하지 않습니다. 처음에는 시스템 설정 › 일반 › 로그인 항목 및 확장 프로그램에서 cmux 네트워크 확장 프로그램을 승인하세요. cmux vpn down으로 끕니다.

```
cmux vpn up
cmux vpn status
cmux vpn down
```

## 공개 URL

cmux cloud domains publish는 머신의 포트에 HTTPS URL을 부여합니다. 생성되는 호스트 이름은 .cmux.sh로 끝납니다.

```
cmux cloud domains publish brave-otter 3000
cmux cloud domains publish brave-otter 3000 --access team
cmux cloud domains publish brave-otter 8080 --access public --yes
cmux cloud domains list
cmux cloud domains grant <hostname> teammate@example.com
cmux cloud domains rm <hostname>
```

각 URL에는 접근 모드가 있습니다. 기본값은 머신의 소유자입니다. 즉 본인, 또는 팀이 머신을 소유한 경우 그 팀입니다.

-   personal: 본인만 열 수 있습니다.
-   team: 머신을 소유한 팀의 현재 멤버가 열 수 있습니다.
-   public: URL을 가진 누구나 열 수 있습니다. cmux가 확인을 요청합니다.

personal과 team URL은 방문자가 먼저 cmux 페이지에서 로그인합니다. 머신은 cmux 쿠키를 절대 볼 수 없습니다. cmux cloud domains grant로 한 URL에 대한 접근 권한을 이메일 주소 하나에 부여할 수도 있습니다.

공개 URL은 비밀번호처럼 다루세요. URL을 가진 사람은 누구나 서비스를 사용할 수 있습니다.

## 사용자 지정 도메인

cmux cloud domains verify는 추가해야 할 DNS 레코드를 출력합니다. 소유권 확인용 TXT 레코드, 라우팅 레코드, 인증서 위임 레코드입니다. 레코드를 추가한 뒤 verify를 다시 실행하세요. 확인이 끝나면 해당 도메인이나 그 한 단계 아래 하위 도메인에 공개할 수 있습니다.

```
cmux cloud domains verify preview.example.com
cmux cloud domains publish brave-otter 3000 --domain app.preview.example.com
```

Canonical: https://cmux.com/ko/docs/cloud/networking

Documentation index: https://cmux.com/llms.txt
