以下是在 Windows 中使用“任务计划程序”(Task Scheduler)设置定期自动访问 ydns Update URL 的步骤。
我们将主要使用 Windows 内置的 PowerShell 来执行这个任务,因为它通常比 curl
更可靠地存在于现代 Windows 系统中。如果你确认你的系统有 curl.exe
并且在系统路径 (PATH) 中,也可以使用 curl
。
目标: 创建一个计划任务,该任务会定期运行一个命令,访问你的 ydns Update URL,从而使用你当前的公网 IP 地址更新 DNS 记录。
准备工作:
- 获取你的完整 Update URL: 就是你之前提供的那个
https://ydns.io/hosts/update/xNbhTgNlHdB76lY18hZpUY5R
(请确保使用你自己的、正确的 URL)。 - 决定更新频率: 你希望多久检查一次并可能更新 IP?对于动态 IP,通常建议每 30 分钟到 1 小时更新一次。过于频繁可能会给 ydns 服务器带来不必要的负载,太不频繁则可能导致域名解析中断。
步骤:
-
打开任务计划程序 (Task Scheduler):
- 按
Win + R
键,输入taskschd.msc
,然后按 Enter。 - 或者,在 Windows 搜索栏中搜索“任务计划程序”并打开它。
- 按
-
创建基本任务 (或创建任务):
- 在右侧的“操作”窗格中,点击“创建基本任务...”。这会启动一个向导,比较简单。如果你需要更高级的选项,可以选择“创建任务...”。我们先用“创建基本任务”。
- 名称 (Name): 给任务起一个描述性的名称,例如
ydns Update
。 - 描述 (Description): (可选) 添加更详细的说明,例如
Periodically update ydns record for mydomain.ydns.io
. - 点击“下一步”。
-
设置触发器 (Trigger):
- 选择任务应该何时开始。对于 DDNS 更新,比较合适的选项有:
- 每天 (Daily): 如果你选择这个,下一步可以设置具体时间和每隔多少天重复。
- 计算机启动时 (When the computer starts): 确保开机后第一时间更新。
- 当前用户登录时 (When I log on): 如果你希望只在登录后更新。
- 推荐: 选择“每天”,然后点击“下一步”。设置一个起始时间,并选择“任务重复间隔”。
- 更精细的控制 (推荐):
- 完成向导后,你可以右键单击创建的任务 -> 属性 -> 触发器 -> 编辑。
- 在这里,你可以勾选“重复任务间隔”,并设置一个频率,例如“30 分钟”或“1 小时”,持续时间选择“无限期”。这样可以更频繁地检查 IP 变化。
- 你也可以添加 多个 触发器,例如,“计算机启动时” 并且 “每小时重复一次”。
- 点击“下一步”。
- 选择任务应该何时开始。对于 DDNS 更新,比较合适的选项有:
-
设置操作 (Action):
-
选择“启动程序 (Start a program)”。
-
点击“下一步”。
-
配置 PowerShell 命令:
-
程序/脚本 (Program/script): 输入
powershell.exe
-
添加参数 (Add arguments) (optional): 输入以下内容(将
YOUR_URL
替换为你真实的 ydns Update URL):-NoProfile -NonInteractive -WindowStyle Hidden -Command "Invoke-WebRequest -Uri 'YOUR_URL' -UseBasicParsing"
-NoProfile
: 不加载 PowerShell 配置文件,启动更快。-NonInteractive
: 以非交互模式运行。-WindowStyle Hidden
: 不显示 PowerShell 窗口。-Command "..."
: 后面跟要执行的 PowerShell 命令。Invoke-WebRequest -Uri 'YOUR_URL' -UseBasicParsing
: 这是实际访问 URL 的命令。使用单引号' '
包裹 URL 可以避免 URL 中的特殊字符(如&
)引起问题。-UseBasicParsing
在某些系统上可以避免依赖 Internet Explorer 引擎。
-
如果你想强制使用 IPv4 或 IPv6 (需要
curl
):- 前提: 你需要确保
curl.exe
在你的系统上可用,并且它的路径在系统的 PATH 环境变量中,或者你需要提供curl.exe
的完整路径。curl
在较新的 Windows 10/11 中通常是自带的。 - 程序/脚本:
curl.exe
(或C:\path\to\curl.exe
) - 添加参数 (更新 IPv4):
"-4" "YOUR_URL"
(将 YOUR_URL 替换) - 添加参数 (更新 IPv6):
"-6" "YOUR_URL"
(将 YOUR_URL 替换) - 注意: 这只有在你的机器有正常工作的 IPv6 互联网连接时才会成功。 - 添加参数 (让系统自动选择):
"YOUR_URL"
(将 YOUR_URL 替换)
- 前提: 你需要确保
-
-
点击“下一步”。
-
-
完成:
- 检查摘要信息。
- (可选) 勾选“当单击‘完成’时,打开此任务属性的对话框 (Open the Properties dialog for this task when I click Finish)”。这允许你立即进行高级设置。
- 点击“完成”。
-
(可选但推荐) 调整高级设置:
- 如果你在上一步勾选了打开属性,或者现在右键单击任务列表中的任务 -> “属性”。
- “常规”选项卡:
- 安全选项: 考虑选择“无论用户是否登录都运行 (Run whether user is logged on or not)”。如果选择此项,你可能需要输入一次用户密码。这确保了即使你没有登录,任务也能在后台运行。
- 勾选“使用最高权限运行 (Run with highest privileges)” 可能不是必需的,但有时可以避免权限问题。
- 配置为 (Configure for): 选择你的 Windows 版本。
- “条件”选项卡:
- 电源: 如果是笔记本电脑,取消勾选“只有在计算机使用交流电源时才启动此任务 (Start the task only if the computer is on AC power)”,除非你希望只在插电时更新。
- 网络: (可选)你可以设置“仅当以下网络连接可用时启动”,并选择你的主要网络连接。但这通常不是必需的。
- “设置”选项卡:
- 勾选“允许按需运行任务 (Allow task to be run on demand)”。
- 勾选“如果计划的运行时间已过,则尽快运行任务 (Run task as soon as possible after a scheduled start is missed)”。
- 如果任务失败,按以下频率重新启动: 可以设置一个重试机制,例如每 10 分钟重试一次,最多 3 次。
- 如果任务运行时间超过以下值,则停止任务: 设置一个较短的时间,例如 1 分钟,因为这个 web 请求应该很快完成。
- 点击“确定”。如果提示输入密码,请输入你的 Windows 登录密码。
测试任务:
- 在任务计划程序库中找到你创建的任务。
- 右键单击它,选择“运行 (Run)”。
- 任务应该会在后台执行。
- 检查 ydns.io 网站上的记录,或者稍等片刻后使用
nslookup yourdomain.ydns.io
或在线 DNS 检查工具,确认 IP 地址是否已更新为你当前的公网 IP。 - 你还可以在任务计划程序的下方窗格查看“历史记录”选项卡(可能需要先在右侧“操作”窗格启用“任务历史记录”)来查看任务是否成功运行以及是否有错误信息。
现在,这个任务就会根据你设置的触发器自动运行,保持你的 ydns 记录更新了!记得保管好你的 Update URL,不要泄露。