旁路由openWRT

使用玩客云盒子刷入openWRT。

背板加热后可打开

抽出主板,按照型号短接触点刷入即可

新版玩客云短接储存旁边,RX口左上方空电阻位即可,先USB连接至电脑,螺丝刀短接同时上电,软件识别即可。

刷写软件使用USB_Burning_Tool

软件包使用更新 2023.07.08 OPENWRT高内核直刷 玩客云ws1608/赚钱宝三代和赚钱宝2代WS1508-迅雷玩客云、京东云等各种云设备-恩山无线论坛 (right.com.cn)的OPENWRT高内核直刷包,直接刷入openWRT系统。

选择清楚所有,点击开始,等待完成即可。

烧录完后要点击停止,然后断开电源和usb。

DDNS

因为现在运营商分配的都是动态公网,为了保证我们能够时刻通过外网访问,我们需要绑定域名。不同系统所带软件包可能不同。故此次采用脚本实现DDNS公网IP到域名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh

# Cloudflare设置
CF_ZONE_ID=""
CF_RECORD_ID=""
CF_EMAIL=""
CF_API_KEY=""
CF_DOMAIN="" # 你解析在cloudflare上的域名 DOMAIN.com
CF_SUBDOMAIN="ip." # 如果你要解析到ip.DOMAIN.com则填写“ip.”解析到DOMAIN.com则留空

# 获取当前的IP地址
current_ip=$(curl -s http://ipv4.icanhazip.com)

# Cloudflare的API URL
update_url="https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records/$CF_RECORD_ID"

# 更新DNS记录的JSON数据
update_data="{\"type\":\"A\",\"name\":\"$CF_SUBDOMAIN$CF_DOMAIN\",\"content\":\"$current_ip\"}"

# 使用CURL更新DNS记录
response=$(curl -s -X PUT "$update_url" \
-H "Content-Type: application/json" \
-H "X-Auth-Email: $CF_EMAIL" \
-H "X-Auth-Key: $CF_API_KEY" \
-d "$update_data")

# 输出响应数据用于调试
echo "$response"

要获取 Cloudflare API所需的 <zone_id>, <record_id>, <api_key>, 和 <your_domain>,你需要按照以下步骤操作:

  1. 登录Cloudflare账户:

    • 首先,登录到Cloudflare账户。
  2. 获取<your_domain>:

    • 这个是你在Cloudflare上已经注册的域名。只需查看Cloudflare dashboard即可找到。
  3. 获取<api_key>:

    • 在Cloudflare dashboard中,导航到 “My Profile” 或 “账户配置文件” 页面。
    • 在 “API Tokens” 栏目下找到 “Global API Key”。
    • 点击 “View” 来查看你的API Key喵,可能需要输入密码。
    • 复制这个API Key,这就是你需要用的<api_key>。
  4. 获取<zone_id>域名标识符:

    • <zone_id>是你的域名在Cloudflare上的一个唯一标识符。
    • 在Cloudflare dashboard中选择你的域名。
    • 在域名概览页面的右下角,你应该能看到Zone ID。
    • 复制这个Zone ID,这就是<zone_id>。
  5. 获取<record_id>解析记录标识符:

    • <record_id>是特定DNS记录的唯一标识符。
    • 在Cloudflare dashboard中,导航到你的域名的"DNS"页面。
    • 如果你已经有了你想更新的A记录,点击对应记录的"编辑"按钮。
    • 通常,记录ID不会直接显示,你可能需要通过API调用来获取。
    • 使用 Cloudflare API 以GET方式请求所有DNS记录,然后从中找到对应的记录和它的ID,API调用的形式如下:
      curl -X GET “https://api.cloudflare.com/client/v4/zones/<zone_id>/dns_records?type=A&name=<your_subdomain.your_domain>”
      -H “Content-Type:application/json”
      -H “X-Auth-Email:
      -H “X-Auth-Key:<api_key>”
    • 在返回的数据中找到所需A记录的<record_id>。

    例如要获取<record_id>,则可以新建一个解析。

可以使用Apifox或Postman获取 <record_id>

  1. 打开Apifox或Postman:

  2. 创建一个新请求:

    • 设置请求类型为GET。

    • 请求地址(URL)设置为Cloudflare API的DNS记录列出接口,格式如下:
      https://api.cloudflare.com/client/v4/zones/<zone_id>/dns_records

      确保将 <zone_id> 替换为你域名的Zone ID。

  3. 添加请求头:

    • 需要两个头(Headers)字段:
      • X-Auth-Email: 填入你的Cloudflare账户的邮箱地址。
      • X-Auth-Key: 填入你的Cloudflare Global API Key。
      • Content-Type 头为 application/json
  4. 发送请求:

    • 点击“发送”(Send)按钮发送请求。
    • 这会获取到你在Cloudflare Zone下所有的DNS记录。
  5. 查找特定DNS记录:

    • 新建的记录即为第一个。
    • 查看返回的数据(响应体)。
    • 在JSON响应中找到你想更新的记录的条目。这通常是一个A记录,具体取决于你想要更新的子域(例如example.your_domain.com)。
    • 在这个记录的具体条目中找到 id 字段。这个 id 就是你要找的DNS记录的 <record_id> 。
  6. 记录 <record_id>:

    • 复制这个 id 值,并且在你的DDNS脚本或相关设置中使用它来更新DNS记录。

将脚本对应内容填好后可测试一下是否正常。然后就可以上传至openWRT并设置定时任务。

上传或者写入

1
2
3
4
5
6
7
8
9
10
11
12
cd /etc
# 进入到目录/etc
mkdir DDNS
# 创建DDNS文件夹

# 上传或者直接写入
vim ddns.sh
# vim编辑器创建,输入脚本内容,Esc 然后输入`:wq!`退出
chmod +x ddns.sh
# 添加执行权限给所有用户
./ddns.sh
# 运行脚本

进入openWRT设置计划任务

1
*/5 * * * * sh /etc/ddns/ddns.sh

这个计划任务(cron job)的设置意味着每5分钟执行一次指定的脚本 /etc/ddns/ddns.sh

1
logread | grep cron

最后检测有关cron计划任务的日志,即可看到是否成功运行。