零成本!手把手教你“薅秃”谷歌云,白嫖永久免费 WebDAV 服务 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
JustW
V2EX    程序员

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

  JustW 170 天前 3721 次点击
这是一个创建于 170 天前的主题,其中的信息可能已经有所发展或是发生改变。

原文: 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 账户 (Gmail 账户即可)。
  • 一张信用卡或借记卡 (仅用于身份验证,免费层资源不会扣费)。
  • 一点点耐心和探索精神!

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

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

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

步骤:

  1. 注册 Google Cloud 账户:

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

    image-20250523155223113

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

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

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

    image-20250523155350506

    • 点击“创建实例”。

    • 配置实例:

      • 名称: 给您的实例取一个容易记的名字,例如 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 是目前推荐的免费实例)*

      image-20250523155500071

      • 引导磁盘 (Boot disk):

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

        image-20250523155553409

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

      image-20250523155707683

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

      image-20250523155916195

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

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

  • 区域限制: 再次强调,只有特定区域的 e2-micro (或旧的 f1-micro) 实例才在免费层范围内。
  • 机器类型: 确保选择的是 e2-micro。其他类型会产生费用。
  • 磁盘: 免费层提供 30GB 标准永久磁盘。超出部分或使用 SSD 磁盘会收费。
  • 流量:
    • 出站流量 (从 GCP 到互联网): 每月提供 **1GB 免费出站流量到中国大陆地区 (不含香港),200GB 免费出站流量到澳大利亚地区,以及 200GB 免费出站流量到全球其他地区 (不含中国和澳大利亚)(流量政策可能变化,请参考 GCP 网络价格文档)
    • 入站流量 (从互联网到 GCP):完全免费!
  • IP 地址: 实例运行时,其临时外部 IP 地址是免费的。如果您需要静态 IP 地址,或者实例停止但 IP 仍保留,可能会产生少量费用。对于我们的应用,临时 IP 即可。
  • 监控: 养成定期在 GCP 控制台的“结算”部分检查费用和用量的好习惯,确保没有超出免费配额导致意外收费。最终费用应该为 0!

image-20250523160138104

第二部分:在服务器上安装和配置 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)

      image-20250523160826047

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

      image-20250523160943662

      • 获取到 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 

    image-20250523161142034

第三部分:使用 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. 点击顶部的“创建防火墙规则”。

    image-20250523161615365

  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 (如果您用了其他端口,请修改)。

    image-20250523161959722

  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)。

    image-20250523162059023

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

重要提示和最佳实践:

  • 监控!监控!监控! 定期访问 Google Cloud 控制台的“结算” > “报告”和“费用表”页面,密切关注您的资源使用情况和潜在费用。设置预算提醒也是个好主意。

image-20250523162538734

  • 安全性:
    • 使用非常强大的 WebDAV 用户名和密码
    • 考虑将防火墙规则中的“来源 IPv4 地址范围”设置为您常用的 IP 地址或 IP 段,而不是 0.0.0.0/0,以增强安全性。
    • 定期更新您的 VM 系统 (sudo apt update && sudo apt upgrade -y) 和 Rclone (sudo -v ; curl https://rclone.org/install.sh | sudo bash 会自动更新到最新版)。
  • Rclone 文档: Rclone 功能非常强大,查阅Rclone 官方文档可以发掘更多高级用法。
  • 了解 e2-micro 限制: e2-micro 实例的 CPU 和内存资源有限,不适合高并发或计算密集型任务。但对于个人 WebDAV 服务来说是足够的。
  • 停止服务: 如果您想停止 WebDAV 服务,可以通过 SSH 连接到服务器,然后使用 ps aux | grep rclone 找到 Rclone 进程的 PID ,再用 sudo kill <PID> 来结束它。
  • 删除实例: 如果不再需要,记得在 GCP 控制台删除 VM 实例和相关的防火墙规则,以避免任何潜在的(即使是免费层超额的)费用。

结语

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

9 条回复    2025-06-25 09:34:49 +08:00
Proxy233
    1
Proxy233  
   170 天前   2
好麻烦,省流:国内 1GB/月免费流量,超过 1G 开始收费 /dog
jojobo
    2
jojobo  
   170 天前
@Proxy233 谢谢好心人
ccmove
    3
ccmove  
   170 天前
@Proxy233 看了一小段,太长了,直接看评论,省了,感谢!
ronman
    4
ronman  
   170 天前
普通人的话,坚果云免费流量足够了
3573535
    5
3573535  
   169 天前 via iPhone
免费层级
每月前 200 GiB 免费(所有区域的每个账号)
所有地区均提供有免费层级,并且所有地区都会计算使用量。了解详情



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

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

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

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

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

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

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

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

3. 中国区的差别

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

总结表格

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

回答你的问题

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

实用建议

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

如需我帮你看一下在哪选 Standard Tier ,或者如何配置脚本避免意外流量,随时告诉我
kdsland
    9
kdsland  
   169 天前
InfiniCLOUD 注册就有 20G ,每年还有周年活动送容量
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3223 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 24ms UTC 11:05 PVG 19:05 LAX 03:05 JFK 06:05
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86