零成本!手把手教你“薅秃”谷歌云,白嫖永久免费 WebDAV 服务

20 天前
 JustW

原文: https://mp.weixin.qq.com/s/40MLBs6Kyt_mcV6xs024RA

序言

首先,理解Google Cloud 免费服务器流量消耗对于保持在免费层内至关重要。

  1. 入站流量免费:
    • 当您通过 WebDAV 客户端上传文件到 Google Drive 时,数据从您的客户端传输到 Google Cloud VM 实例。这部分属于入站流量,GCP 不对其收费。
  2. VM 到 Google Drive 的流量免费 (通常是 Google 内部网络):
    • 当 Rclone 将文件从 VM 实例的缓存实际写入到您的 Google Drive 时,这个过程通常发生在 Google 的内部网络中,一般不消耗您的外部流量配额。
  3. 出站流量有限但可控:
    • 下载文件: 当您通过 WebDAV 客户端下载文件时,数据从 Google Cloud VM 实例传输到您的客户端。这部分属于出站流量,会计入您每月 1GB/200GB 的免费出站流量配额 (取决于目标区域)。
    • 浏览目录: 当您浏览 WebDAV 目录时,客户端只请求文件和文件夹列表(元数据),这些数据量非常小,因此产生的出站流量也极低。
    • 流媒体播放: 如果您直接通过 WebDAV 播放视频或音乐,那么消耗的流量就是该媒体文件的大小,会计入出站流量。

只要您合理使用,例如不是作为大流量的公共下载服务器,每月 1GB/200GB 的免费出站流量对于个人 WebDAV 使用 (文件同步、备份、偶尔的远程访问) 通常是足够的。我个人主要用于 1panel 定时备份服务器

实现步骤

准备工作:

第一部分:申请 Google Cloud 免费服务器

Google Cloud Platform (GCP) 提供了一个“永久免费层”,允许用户在特定限制下免费使用其部分云服务。

官网地址:https://cloud.google.com/

步骤:

  1. 注册 Google Cloud 账户:

    • 访问 Google Cloud 官网
    • 点击“免费开始使用” (Get started for free) 或类似按钮。
    • 使用您的 Google 账户登录,如果提示,请创建一个新的结算账号。
    • 按照指引输入您的国家/地区、简要描述您的需求,并同意服务条款。
    • 您需要提供支付方式(如信用卡)用于身份验证,请放心,只要您只使用免费层级的资源,就不会被收取费用

  2. 了解免费层与免费试用:

    • 新用户通常会获得一个为期 90 天的免费试用期,并赠送 $300 体验赠金。这些赠金可以用来体验 GCP 的各种付费服务。
    • 重要的是,即使 90 天试用期结束或者 $300 赠金用完,您仍然可以继续使用“永久免费层”中包含的资源。我们的目标就是利用这部分资源。
  3. 创建免费的虚拟机 (VM) 实例:

    • 登录到 Google Cloud 控制台
    • 在左上角的导航菜单 (汉堡菜单 ☰) 中,找到并选择 Compute Engine > VM 实例

    • 点击“创建实例”。

    • 配置实例:

      • 名称: 给您的实例取一个容易记的名字,例如 my-free-webdav-server
      • 区域 (Region): 务必选择支持免费层的区域! 例如:
        • us-west1 (俄勒冈)
        • us-central1 (爱荷华)
        • us-east1 (南卡罗来纳) (截至 2024 年,这些区域通常提供免费层实例,具体请参考 GCP 免费层官方文档)
      • 可用区 (Zone): 在选定区域内任选一个即可。
      • 机器系列 (Machine family): 选择 E2
      • 机器类型 (Machine type): 选择 e2-micro (2 个 vCPU ,1 GB 内存)。这是当前主要的免费层实例类型。*(旧的 f1-micro 可能仍在某些文档中提及,但 e2-micro 是目前推荐的免费实例)*

      • 引导磁盘 (Boot disk):

        • 点击“更改”。
        • 操作系统: 选择一个您熟悉的 Linux 发行版,例如 Ubuntu (推荐选择一个 LTS 版本,如 Ubuntu 20.04 LTS 或 22.04 LTS)。
        • 版本: 默认即可。
        • 引导磁盘类型: 选择 标准永久性磁盘
        • 大小: 免费层提供每月 30GB 的标准永久性磁盘 (所有实例共享此额度,如果只有一个实例,则此实例可用 30GB)。
        • 点击“选择”。

      • 数据保护: 关闭快照功能,避免扣费!

      • 防火墙: 勾选“允许 HTTP 流量”和“允许 HTTPS 流量”。虽然我们 WebDAV 可能用自定义端口,但勾选这些方便初始测试,后续我们会专门为 WebDAV 配置端口。
      • 点击网络,然后下拉,修改网络服务器为标准!

      • 检查右侧的“每月估算费用”,它应该会显示这是免费层级的一部分。
    • 点击“创建”并等待实例启动。

注意事项 (非常重要!):

第二部分:在服务器上安装和配置 Rclone

Rclone 是一个功能强大的命令行工具,用于管理云存储。我们将用它来连接 Google Drive 。

Rclone 官网: https://rclone.org/

  1. 连接到您的 VM 实例:

    • 在 VM 实例列表中,找到您创建的实例,点击其对应的“SSH”按钮。这会在浏览器中打开一个 SSH 终端窗口。
  2. 更新系统 (推荐): 在 SSH 终端中,运行以下命令更新软件包列表和已安装的软件包:

    sudo apt update
    sudo apt upgrade -y
    
  3. 安装 Rclone: 运行以下官方推荐的安装脚本:

    sudo -v ; curl https://rclone.org/install.sh | sudo bash
    

    安装完成后,可以通过 rclone version 检查是否成功。

  4. 配置 Rclone 连接到 Google Drive:

    • 在 SSH 终端中输入:

      rclone config
      
    • 开始配置:

      • n) New remote
      • name> 输入一个远程存储的名称,例如 MyGoogleDrive (后续命令会用到这个名字)。
      • Storage> 寻找到 drive (Google Drive) 对应的数字并输入,然后按 Enter 。
      • client_id> **直接按 Enter (留空,替换自己的效果更佳!可以谷歌搜索一下)**。
      • client_secret> **直接按 Enter (留空,替换自己的效果更佳!可以谷歌搜索一下)**。
      • scope> 选择 1 (Full access all files, excluding Application Data Folder)。
      • root_folder_id> **直接按 Enter (留空,表示整个 Drive)**。如果只想挂载特定文件夹,可以填入该文件夹的 ID 。
      • service_account_file> **直接按 Enter (留空)**。
      • Edit advanced config? 输入 n (No),然后按 Enter 。
      • Use auto config? 输入 n (No),然后按 Enter 。(这一步由于服务器没有桌面,所以选 n)

      • 复制上一步命令行输出的代码,在本地下载一个 rclone,然后打开命令行执行,访问网页授权账号

      • 获取到 token,然后复制粘贴到服务器上!
      • Configure this as a team drive? 如果您用的是个人 Drive ,输入 n (No)。如果是团队盘,则输入 y 并按照提示操作。
      • y/e/d/r/c/q> 输入 y (Yes this is OK) 保存配置。
      • q) Quit config 。
  5. 创建挂载点和缓存目录: 我们需要在服务器上创建目录,用于挂载 Google Drive 和存放缓存文件。

    sudo mkdir -p /wangwang/google
    sudo mkdir -p /wangwang/webcache
    

    这里的 /wangwang/google 是 Google Drive 的挂载点,/wangwang/webcache 是 Rclone VFS 缓存的存放位置。您可以根据喜好更改路径,但请确保后续命令中的路径一致。

  6. 挂载 Google Drive (测试性挂载,非后台运行): 为了确保配置正确,可以先尝试在前台挂载:

    rclone mount MyGoogleDrive: /wangwang/google --allow-other --allow-non-empty --vfs-cache-mode writes
    
    • MyGoogleDrive: 替换为您在 rclone config 中设置的远程存储名称。
    • /wangwang/google 是您创建的本地挂载目录。
    • --allow-other:允许非 root 用户访问挂载点。
    • --allow-non-empty:允许挂载到非空目录(尽管我们刚创建的目录是空的)。
    • --vfs-cache-mode writes:写入时使用缓存,可以提高小文件写入性能。

    打开新的 SSH 窗口 (不要关闭当前的),然后尝试访问挂载点:

    ls /wangwang/google
    

    如果您能看到 Google Drive 里的文件和文件夹,说明挂载成功! 回到第一个 SSH 窗口,按 Ctrl+C 停止前台挂载。后台挂载使用下面命令!

    rclone mount MyGoogleDrive: /wangwang/google --allow-other --allow-non-empty --vfs-cache-mode writes --daemon
    

第三部分:使用 Rclone 启动 WebDAV 服务并后台运行

现在我们将配置 Rclone 以 WebDAV 方式提供服务,并让它在后台持续运行。

  1. 启动 WebDAV 服务的命令:

    nohup rclone serve webdav MyGoogleDrive: --addr :8080 --vfs-cache-mode full --cache-dir /wangwang/webcache --vfs-cache-max-size 20G --vfs-cache-max-age 5m --vfs-cache-poll-interval 30s --user aaaa --pass bbbb --daemon > /wangwang/rclone-webdav.log 2>&1 &
    

    命令详解:

    • nohup ... &nohup 使命令在您退出 SSH 后继续运行,& 使命令在后台运行。
    • rclone serve webdav MyGoogleDrive:
      • MyGoogleDrive::您配置的 Google Drive 远程存储名称。您也可以指定一个子目录,例如 MyGoogleDrive:MyFolder/SubFolder,那么 WebDAV 服务将只提供这个子目录的内容。
    • --addr :8080:WebDAV 服务监听的 IP 地址和端口。:8080 表示监听本机所有 IP 地址的 8080 端口。您可以更改为其他未被占用的端口,例如 :5005
    • --vfs-cache-mode full启用完整的 VFS 缓存模式。 这意味着 Rclone 会在本地磁盘(由 --cache-dir 指定)缓存文件的结构和内容。这对于频繁访问的文件能显著提高性能并减少对 Google Drive API 的直接请求。
    • --cache-dir /wangwang/webcache:指定 VFS 缓存的存储目录(我们之前创建的)。
    • --vfs-cache-max-size 20G:设置 VFS 缓存的最大容量为 20GB 。请确保这个值小于您服务器的可用磁盘空间,并考虑免费层 30GB 磁盘的总限制。
    • --vfs-cache-max-age 5m:缓存中的文件在未被访问 5 分钟后被视为过期,可能会被清理以腾出空间。
    • --vfs-cache-poll-interval 30s:每 30 秒检查远程 Google Drive 是否有变化,以更新缓存。
    • --user aaaa --pass bbbb设置 WebDAV 服务的用户名和密码。请务必将 aaaabbbb 替换为您自己的强密码! 这是保护您数据安全的关键。
    • --daemon:让 rclone mount 命令本身作为守护进程在后台运行(对于 serve webdav,配合 nohup& 可以确保其稳定后台运行)。
    • > /wangwang/rclone-webdav.log 2>&1:将标准输出和错误输出都重定向到 /wangwang/rclone-webdav.log 文件中,方便排查问题。

    运行上述命令后,Rclone WebDAV 服务就会在后台启动。 您可以通过以下命令查看日志:

    tail -f /wangwang/rclone-webdav.log
    按 `Ctrl+C` 退出日志查看。
    
    

第四部分:配置 GCP 防火墙允许 WebDAV 端口

为了能从外部访问您搭建的 WebDAV 服务,需要在 GCP 的防火墙中允许您设置的端口(例如 8080 )。

  1. 在 Google Cloud 控制台,导航到 VPC 网络 > 防火墙

  2. 点击顶部的“创建防火墙规则”。

  3. 配置规则:

    • 名称: 例如 allow-webdav-8080
    • 网络: 通常是 default
    • 优先级: 1000 (默认即可)。
    • 流量方向: **入站 (Ingress)**。
    • 对匹配项执行的操作: **允许 (Allow)**。
    • 目标:
      • 选择“网络中的所有实例”(如果这是您唯一的项目或测试)。
      • 或者,更安全的方式是选择“指定的目标标记”,然后在“目标标记”中输入一个自定义标记,例如 webdav-server。之后,您需要回到 VM 实例的编辑页面,在“网络标记”中添加这个 webdav-server 标记。
    • 来源过滤条件:
      • 来源 IPv4 地址范围: 输入 0.0.0.0/0 (表示允许来自任何 IP 地址的访问)。如果您知道自己客户端的固定 IP 地址,为了安全,可以只填写您的 IP 地址。
    • 协议和端口:
      • 选择“指定的协议和端口”。
      • 勾选 tcp,并在下方的框中输入您为 WebDAV 服务设置的端口号,例如 8080 (如果您用了其他端口,请修改)。

  4. 点击“创建”。防火墙规则可能需要几十秒到几分钟生效。

第五部分:访问您的 WebDAV 服务

  1. 获取服务器的外部 IP 地址:

    • 回到 Compute Engine > VM 实例 页面。
    • 在实例列表中,您会看到一个“外部 IP”地址。复制这个地址。
  2. 使用 WebDAV 客户端连接: 您可以使用各种支持 WebDAV 协议的客户端软件来连接您的服务。

    • 连接地址: http://<您的服务器外部 IP 地址>:<您设置的端口号> 例如:http://34.123.45.67:8080
    • 用户名: 您在 Rclone 命令中设置的 --user (例如 aaaa)。
    • 密码: 您在 Rclone 命令中设置的 --pass (例如 bbbb)。

至此,教程就完结了,你可以在需要同步或者备份的地方使用这个 webdav 了!

重要提示和最佳实践:

结语

通过以上步骤,您应该已经成功在 Google Cloud 的免费服务器上搭建了一个基于 Rclone 的 WebDAV 服务,将您的 Google Drive 变成了可远程访问的私人云盘。由于 GCP 免费层提供的资源以及 Rclone 强大的缓存机制,您可以经济高效地拥有这样一个实用工具。

2551 次点击
所在节点    程序员
9 条回复
Proxy233
20 天前
好麻烦,省流:国内 1GB/月免费流量,超过 1G 开始收费 /dog
jojobo
20 天前
@Proxy233 谢谢好心人
ccmove
20 天前
@Proxy233 看了一小段,太长了,直接看评论,省了,感谢!
ronman
20 天前
普通人的话,坚果云免费流量足够了
3573535
20 天前
免费层级
每月前 200 GiB 免费(所有区域的每个账号)
所有地区均提供有免费层级,并且所有地区都会计算使用量。了解详情



不是 200g 是全球通用的吗
v2er119
20 天前
@3573535 不包括中国大陆,cf 的流量也不免费。使用一年多了,轻应用没问题的。
https://maifeipin.com/archives/google-lao-zhang-hao--ye-ke-yi-mian-fei-shi-yong-gcp-le#google_vignette
Takizawa
20 天前
@ronman webdav 的话我用 infini cloud ,容量比坚果云大,20 多个 G ,免费。
3573535
20 天前
谷歌云 GCP 的流量收费规则如下:

1. 网络“入站”( Ingress )是 免费的

所有区域对你从 Internet 或其他资源流入 GCP 的流量都不收费 。

2. 网络“出站”( Egress )是 收费的,但有免费额度:

🎁 Always Free 永久免费额度( Premium Tier ,骨干网络)

• 免费提供每月 1 GB 出站流量( Premium Tier ),不包括到中国和澳大利亚 。
• 该额度适用于 Premium Tier 下由 GCP 骨干网络传出的流量(即默认网络服务等级)。

🎉 免费标准层额度( Standard Tier ,自选网络层)

• 从 2023 年 10 月 1 日起,Google 对 Standard Tier (标准网络)提供的 每地域每月 200 GB 免费出站流量 。
• 这 200 GB 是 标准层专属优惠,必须在创建 VM 时选择 “Standard Tier”(标准网络)。
• 超出后将按标准 Standard Tier 收费 。

3. 中国区的差别

• 永久免费额度的那 1 GB Premium Tier 出站 不适用于中国和澳大利亚 。
• 而 Standard Tier 的 200 GB 免费 适用于所有 Standard Tier 流量,包括发往全球或中国,但仅针对在 标准网络层级下 的流量。

✅ 总结表格

项目 免费额度 适用网络层级 中国区覆盖情况
永久免费 Always Free 每月 1 GB Premium Tier 出站 Premium Tier (骨干网) 不包括中国、澳大利亚
Standard Tier 免费额度 每地区每月 200 GB Standard Tier (标准层) 包含所有区域,包括中国

回答你的问题

1. “GCP 流量是收费的吗?”
• 是的,出站流量( Egress )是收费的。只有入站免费,出站除免费额度外须付费。
2. “对于中国免费流量是 1GB 吗?”
• 永久免费额度只包括 Premium Tier 出站 1 GB ,但不适用于中国。
• 如果选择 Standard Tier ,每地域每月有 200 GB 免费,这包括去中国的流量。
3. “有 200GB 的免费普通流量流出吗?”
• 有的,只需在 VM 网络选项中选择 Standard Tier ,即可享有标准层的 200 GB 免费出站流量,按地域独立计算 。

💡 实用建议

• 若常访问中国大陆或亚太用户,建议使用 Standard Tier 来享受 200 GB 免费额度。
• 确保 创建 VM 时选择 Standard Tier ,否则默认是 Premium Tier ,不会触发 200 GB 优惠。
• 安装后,仍需关注账单和 SKU 用量,避免因选择错误或超额造成费用。

如需我帮你看一下在哪选 Standard Tier ,或者如何配置脚本避免意外流量,随时告诉我 😊
kdsland
19 天前
InfiniCLOUD 注册就有 20G ,每年还有周年活动送容量

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1140716

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX