# 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 通过加密的 cmux 链路上传最大 256 KB 的小文件。文件默认以 0600 权限写入。对于密钥和凭据，请使用此方式而不是普通上传。

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

## 环境变量

cmux vm env 将变量保存在机器磁盘上的 ~/.config/cmux/env 中，每个新 shell 都会加载它们。变量值通过加密链路传输，且不会回显。除非添加 --show，否则 cmux vm env ls 会隐藏变量值。

```
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 形式的参数可能会留在本地 shell 历史中。对于密钥，请使用 --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 都使用自己的 WireGuard 密钥连接，该密钥永远不会离开这台 Mac。连接在 cmux 应用内部建立，无需任何批准。

你的机器之间可以在同一个私有网络中互相访问。

cmux.com 上的 Cloud Mac access 页面列出了可以访问你机器的 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 的 Cookie。你还可以使用 cmux cloud domains grant 为某个邮箱地址授予单个 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/zh-CN/docs/cloud/networking

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