cmux Cloud文件与网络
cmux Cloud

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