注册新号注册地址:https://cloud.google.com,建议先用 QQ 邮箱注册 Gmail 再进行登陆,这样不容易弹出手机号验证,登陆账号开通 GCP,获得赠金
转移赠金进入新账户控制台,打开结算页面,点击结算账号名称,进入结算账号页面
点击账号管理,点击重命名结算账号,输入新的账号名称GCP-0230
点击Add principal,弹出添加成员页面
在添加成员窗口,填写希望接收赠金转移的谷歌云账户xxxxx@gmail.com,选择角色 Billing account administrator(账单账户管理员),点击保存。
切换登录到接收赠金转移的谷歌云账户xxxxx@gmail.com,进入控制台,转到结算页面,点击您的项目,点击结算项目后面的操作按钮,点击更改结算信息,在设置结算账号弹窗中,选择新的结算账号GCP-0203,点击设置账号,完成转移结算。
转移完成后,你回到你接收赠金的账号的项目首页,会看到顶部会提示剩余赠金和时间。
至此,赠金转移完毕,又一次续杯完成了,三个月后再继续一次即可。
目前如果直接使用 115 挂载影视,会因频繁刮削而导致风控,影响观影体验,而通过 Emby STRM 302 播放的方式可以完美解决该问题。现在有很多该方案的项目,例如 CMS、medialinker 等,本文是通过配合 moviepilot 插件实现 302 播放。
Docker Compose 部署12345678910111213141516171819202122232425262728293031323334353637383940services: moviepilot: stdin_open: true tty: true container_name: moviepilot-115 hostname: moviepilot-115 ports: - '13000:3000' - '13001:3001' - '18096:18096' # 反代后媒体服务器访问端口 volumes: - '/opt/media:/media& ...
最近发现部署在腾讯云上的 Nginx Proxy Manager(简称 NPM)突然无法登录了,页面直接提示 “Bad Gateway”。查阅了大量资料后,终于定位到了问题的根源,今天就来分享一下这个新版本下的极简解决方案。
问题现象
访问 NPM 管理界面时显示 Bad Gateway
容器日志中可能出现网络超时或 API 调用失败的错误
登录接口无响应或返回 502 错误
问题根源经过排查发现,这个问题并非配置错误,而是网络环境导致的。NPM 在启动时会尝试调用 AWS 的接口获取 IP 地址段信息,但部分国内云服务商(如腾讯云、阿里云等)对 AWS 的某些接口进行了屏蔽或限制,导致 NPM 无法完成初始化,最终表现为 Bad Gateway。
解决方法只需在启动容器时添加一个环境变量即可彻底解决这个问题:
12environment: - IP_RANGES_FETCH_ENABLED=false
这个配置会告诉 NPM 跳过 AWS IP 地址段的获取过程,直接启动服务,完全规避了网络屏蔽问题。
Docker Compose 完整示例:
12345678910111213 ...
在某些场景下,虽然通过 Tailscale 已经实现了设备互通,但 Parsec 仍然报错 6023,无法建立连接。这通常是因为 Parsec 无法识别 Tailscale 分配的 100. 开头的内网 IP 地址。
问题现象即使两个设备通过 Tailscale 成功互联(如彼此可以 ping 通),但在 Parsec 中仍提示 6023 错误,连接失败。
解决方案获取被控端的本地 IP 地址首先,确认被控制设备的局域网 IP。例如:
启用 Tailscale 的子网路由功能在命令行中运行以下命令
tailscale up --advertise-routes=192.168.1.0/24 --advertise-exit-node --reset
说明:
如果你的局域网网段是 192.168.1.x,就填写 192.168.1.0/24;
--advertise-routes:让其他 Tailscale 设备能够访问该设备所在的子网;
--advertise-exit-node:允许该设备作为出口节点;
--reset:重置当前配置以确保参数生效。
在 Tailscale 管 ...
这篇文章记录一套基于 MoviePilot v2 的自动化观影方案,主要覆盖 Docker Compose 部署、数据库迁移、系统基础配置、规则设置以及常用插件配置。
项目地址
GitHub 仓库
项目文档
Docker Compose 部署下面这套 Compose 使用 PostgreSQL + Redis。日常使用里 PostgreSQL 更适合长期维护和迁移;如果只是轻量体验,也可以直接使用 SQLite。更多参数可以参考官方文档,下面只保留我实际使用到的配置。
需要提前注意几件事:
/data/media 是媒体库和下载目录,请替换成自己的实际路径。
SUPERUSER_PASSWORD、DB_POSTGRESQL_PASSWORD、CACHE_BACKEND_URL 里的密码建议改成强密码。
PROXY_HOST 只在需要代理访问站点或元数据服务时配置,不需要可以删除或留空。
极空间的 PostgreSQL 不支持 ZFS,所以这里单独绑定了一个本地卷,其他设备按需调整即可。
12345678910111213141516171819202122232425262728 ...
在多数情况下,如果 Tailscale 的打洞(NAT traversal)成功,就可以直接通过 Parsec 实现远程访问。但在某些复杂网络环境下,打洞可能失败,此时 Tailscale 会自动退回到 DERP(中继)服务器传输。
为什么要自建 DERP 服务器?Tailscale 官方的 DERP 节点遍布全球,但并不包含中国大陆节点,这会导致国内用户在打洞失败时通过官方中继连接时延较高。因此,建议自建 DERP 服务器,以改善国内网络环境下的远程连接体验。
快速部署(Docker)使用镜像 javaow/tailscale-derp,无需域名,部署非常简单。
启动容器在你的国内服务器上执行以下命令:
1docker run -d --name tailscale-derp -p 36666:36666 -p 3478:3478/udp --restart=always javaow/tailscale-derp
容器将自动监听 DERP 的 HTTP 和 STUN 端口。
测试访问在浏览器中访问 https://<你的服务器IP>:36666,显 ...
RustDesk 可以自建 ID/中继服务器,避免默认公共服务器不稳定或延迟过高的问题。服务端主要包含两个组件:
hbbs:ID 注册服务器,负责设备发现和连接协商。
hbbr:中继服务器,在两端无法直连时转发流量。
下面使用 Docker Compose 部署,示例采用 host 网络模式,适合直接运行在 VPS、NAS 或内网服务器上。
Docker Compose 部署先创建一个目录存放配置文件和密钥,例如:
12mkdir -p rustdesk-server/datacd rustdesk-server
新建 docker-compose.yml:
123456789101112131415161718192021services: hbbs: container_name: hbbs image: rustdesk/rustdesk-server:latest command: hbbs volumes: - ./data:/root network_mode: "host" depends ...
准备工作
服务器:一台具有公网 ip 的服务器,离客户端地区最近优先
域名:一个解析到服务器的域名,例如 dp.example.com
防火墙配置:确保所需要的端口防火墙已放开,如3477/tcp 和 3478/udp
Docker 部署安装 Docker1curl -fsSL https://get.docker.com | bash -s docker
创建 Docker Compose 配置创建工作目录并编写 docker-compose.yml
12mkdir -p /opt/derpercd /opt/derper
创建 docker-compose.yml 文件:
1234567891011121314151617181920212223242526272829services: derper: image: fredliang/derper:latest container_name: derper restart: always ports: - "3477:3477" - "3478:3 ...
前言最近青桔 API 调整为需要密钥校验的调用方式,用来防止接口被攻击或盗刷。受此影响,Twikoo 评论系统里通过 QQ 号自动获取昵称的功能会失效。
这篇文章记录一种适用于安知鱼主题的前端修复方案:把 Twikoo 的前端 JS 下载到本地,替换其中获取 QQ 昵称的接口逻辑,并填入自己的 API Key。整体操作比较简单,适合想快速恢复功能的朋友参考。
获取 API Key
前往 青桔 API 注册并登录。
进入后台获取密钥。
打开你的博客,使用浏览器开发者工具,在 Network 面板中搜索 twikoo 关键词,找到 twikoo.all.min.js。随后切换到 Preview,复制完整的 JS 内容到编辑器中。
搜索 getQQNick: function(e),将这个函数替换为新的实现。
替换前:
123456789101112131415getQQNick: function(e) { var t = this , n = "https:/ ...















