yanhy的学习记录匣 - 服务器 https://yanhy.top/index.php/search/服务器/ zh-CN 探索知识的宝箱,记录成长的脚步。欢迎来访Yanhy的博客站,在这里,每一页都是对知识无尽好奇的见证,每个故事都是学习旅程中的珍贵篇章,一起激发灵感,分享进步 Fri, 16 May 2025 13:31:00 +0800 Fri, 16 May 2025 13:31:00 +0800 QuizzerBot 插件Wiki https://yanhy.top/index.php/archives/456/ https://yanhy.top/index.php/archives/456/ Fri, 16 May 2025 13:31:00 +0800 yanhy2000 QuizzerBot 插件Wiki文档

1. 插件概述

1.1 基本介绍

欢迎使用 QuizzerBot!这是一个给服务器增加趣味答题活动的插件。支持Paper/Bukkit/Spigot等服务端核心。当前稳定支持API版本1.21.6及以上(已通过1.21.6-1.21.8版本测试,低于1.21.6尚未测试,但由于低版本不支持对话框API因此可能会出问题)。

本文档会尽量覆盖所有功能进行介绍,并区分新旧版本。当前文档对应版本:1.2.0

1.2 核心功能

QuizzerBot 核心就是“答题”。它提供了两种完全独立的答题模式:

  • 经典聊天答题 (所有版本均可使用)

    • 插件会按你设定的时间间隔,在聊天框自动发起全服答题。
    • 题目和选项会显示在公屏,玩家通过点击选项或输入指令来抢答。
  • 图形界面答题 (1.2.0+ 新增, 需 MC 1.21.6+)

    • 利用 Paper 1.21.6+ 新增的 Dialog API,提供了一个可交互的答题菜单。
    • 玩家可以随时使用 /quiz dialog 指令拉起这个菜单,按自己的节奏答题。
    • 这个功能使用独立的题库和排行榜,适合用来做“背单词CET4\6”、“MC知识问答”等额外挑战。

1.3 运行机制

  • 插件安装后会自动生成:

    • config.yml配置文件
    • quizzerBook.db H2格式数据库文件
  • 数据库存储:

    • 题目数据(QuizzerBook表)
    • 玩家统计数据(PlayerStats表)
    • 附加题目数据(extraQuizBook表)
    • 玩家附加统计数据(PlayerExtraStats表)
警告:请勿手动删除数据库文件,否则将导致数据丢失

1.4 版本兼容性说明

  • 1.2.0+ 版本 (最新):

    • 为了支持“图形界面答题”,此版本必须在 Paper 1.21.6 及更高版本上运行。
    • 如果你是 1.21.6+ 的服务器,请使用这个版本。
  • 1.1.x 版本:

    • 这些版本不包含“图形界面答题”和“CSV导入导出”功能。
    • 它们适用于 1.21 ~ 1.21.5 版本的服务器。
    • 如果你不打算升级服务器到 1.21.6,请继续使用 1.1.x 版本的插件。(备注:1.1.x版本可能存在时常无法自动触发答题bug,如有需求可联系作者更新修复)

2. 安装与初始化

2.1 安装步骤

  1. 将插件jar文件放入服务器plugins目录
  2. 重启服务器
  3. 检查启动日志确认加载成功

2.2 成功加载标志

正常启动时会显示如下日志信息(具体内容可能因版本不同略有差异):

[11:15:17 INFO]: [QuizzerBot] 数据库初始化完成
[11:15:17 INFO]: [QuizzerBot] 配置项:最低玩家限制: 1
[11:15:17 INFO]: [QuizzerBot] 配置项:答题时间: 20
[11:15:17 INFO]: [QuizzerBot] 答题系统已成功启动

插件第一次运行时,会自动在 plugins/QuizzerBot/ 目录下生成 config.yml 配置文件和 quizzerBook.db 数据库文件。1.2.0版本为了读写 .db 数据库,插件会自动从网上下载 H2 数据库驱动,下载速度取决于服务端所在服务器网络情况。


3. 功能详解

3.1 自动答题

3.1.1 触发机制

插件会根据 config.yml 里的 trigger_interval_sec: [最小值, 最大值] 配置,在这个时间范围内随机挑一个秒数,倒计时触发答题。(如果把最小值和最大值设成一样的,就是固定时间触发)。
触发时,会检查当前在线人数是否满足 min_players 的最低要求。

3.1.2 答题过程

条件满足后,题目和选项会发到公屏。
玩家有 answer_reveal_delay_sec 秒的时间来作答(比如配置 60 秒)。
玩家可以通过直接点击聊天框里的选项或使用 /quiz ans <答案> 来提交。

3.1.3 结算与奖励

时间一到,插件停止接收答案并开始结算。
插件会看 player_QuickAnswer_limit (抢答名额) 和 player_reward_limit (奖励名额) 这两个配置。
“抢答成功”: 最先答对的前 player_QuickAnswer_limit 名玩家,会被标记为“抢答成功”。
“获得奖励”: 插件会从“抢答成功”的玩家里,按先后顺序发奖励,最多发 player_reward_limit 份。
特殊情况: 如果抢答名额内的玩家答错了,奖励会顺延给后面答对的玩家 (哪怕他不是抢答玩家),直到发满 player_reward_limit 份奖励为止。

3.2 图形界面答题 (1.2.0+ 新增)

独立题库: 它使用一个叫 extra_questions 的独立题库,管理指令是 /quiz extra ...
独立统计: 它的排行榜、玩家数据也是独立计算的。
玩法: 玩家输入 /quiz dialog 打开菜单,就可以自己选择题库(如果你未来做了分类)或开始答题。
应用场景: 非常适合做服主定制的内容,比如英语四六级单词(就像你开发的初衷!)、服务器趣味知识问答等。

3.3 题库管理 (1.2.0+ 新增)

为了方便服主编辑大量题目,1.2.0 版增加了 CSV 导入导出功能。

数据表列表(区分大小写):QuizzerBook extraQuizBook PlayerStats PlayerExtraStats

导出: /quiz database export <表名>
例如: /quiz database export QuizzerBook (导出自动答题的题库)
例如: /quiz database export PlayerExtraStats (导出附加题库)
导出的 .csv 文件会放在 plugins/QuizzerBot/ 目录下,并与数据表名同名,如“QuizzerBook.csv”

导入: /quiz database import <表名>
导入前需要保证要导入的表格文件名和数据表名一模一样(区分大小写),并放在plugins/QuizzerBot/目录中。
危险操作警告:
导入时,插件会先清空数据库里原有的整张表,然后再把你 .csv 文件里的内容全部写进去!
这意味着任何在游戏里用指令添加的题目都会被覆盖!
操作前建议先备份 quizzerBook.db 文件!

3.4 答题流程概览

  1. 触发机制

    • 服务器启动后开始计时
    • 在配置的随机时间间隔(默认60-70秒)后检查触发条件
    • 满足最低玩家数要求后开始答题活动
  2. 题目展示

    [11:31:02 INFO]: [答题Bot] 答题时间到~
    ===========问题编号: 1================
       工作台需要几个木板合成?
       A: 2         B: 4         C: 5         D: 7
    =======================================
    [11:31:02 INFO]: 答案在10秒后揭晓,【点击选项】即可答题
  3. 作答方式

    • 点击聊天框中的选项
    • 使用命令/quiz ans <选项>
  4. 抢答机制

    • 前N名回答的玩家标记为抢答(N可在配置中设置)
    • 抢答成功后全服公告:

      [11:32:37 INFO]: [答题Bot] yanhy2000 抢答成功![1/3]
  5. 结果公布

    [11:32:41 INFO]: [答题Bot] 答案揭晓: 【B】! 
    抢答正确: 1人, 普通回答正确: 0人, 共发放奖励: 1人

4. 配置详解

4.1 配置文件说明

quiz:
  # 配置文件版本,不要动
  conf_version: 1

  # (旧版配置,1.2.0+ 已移除语言文件,默认为 zh_CN)
  # language: zh

  # 触发聊天答题的最低在线玩家数
  min_players: 1

  # 答题触发间隔时间(秒),[最小值, 最大值]
  # 在这个范围内随机一个时间点触发
  trigger_interval_sec: [60, 120]

  # 聊天答题开始后,玩家有多长时间作答(秒)
  answer_reveal_delay_sec: 60

  # 答对后给的奖励指令,%player% 会被替换成玩家名
  reward_commands:
    - 'say %player% 在答题中获胜!'
    - 'give %player% diamond 1'

  # 每人每天最多从聊天答题中获取多少次奖励
  daily_reward_limit: 5

  # 每轮聊天答题,最多发多少份奖励
  player_reward_limit: 3

  # 每轮聊天答题,前多少个回答的玩家算作“抢答”
  # (答错了也算抢答名额)
  player_QuickAnswer_limit: 3

5. 数据库结构

5.1 题目表(QuizzerBook)

字段类型说明
idINTEGER自增主键
quizTEXT题目内容(必填)
optA-optDTEXT选项内容(可空)
answerTEXT正确答案(A/B/C/D)
isEnableBOOLEAN是否启用(默认TRUE)
showCountINTEGER题目出现次数统计

5.2 玩家统计表(PlayerStats)

字段类型说明
uuidTEXT玩家唯一标识
usernameTEXT玩家名
total_attemptsINTEGER总答题次数
correct_answersINTEGER答对次数
quick_answersINTEGER抢答成功次数
daily_rewardsINTEGER当日获得奖励数
last_played_dateTEXT最后参与日期(YYYY-MM-DD)

5.3 附加题目表(QuizzerBook)

字段类型说明
idINTEGER自增主键
typeTEXT题目类型(必填)
quizTEXT题目内容(必填)
optA-optDTEXT选项内容(可空)
answerTEXT正确答案(A/B/C/D)
isEnableBOOLEAN是否启用(默认TRUE)
showCountINTEGER题目出现次数统计

5.4 玩家附加统计表(PlayerStats)

字段类型说明
uuidTEXT玩家唯一标识
usernameTEXT玩家名
total_attemptsINTEGER总答题次数
correct_answersINTEGER答对次数
last_played_dateTEXT最后参与日期(YYYY-MM-DD)

6. 命令手册

权限:标有 (管理员) 的指令需要 OP 权限。

6.1 玩家命令

命令说明
/quiz ans <答案>提交“聊天答题”的答案 (A/B/C/D)
/quiz me查看你自己的答题统计 (聊天答题)
/quiz query <玩家>查看其他玩家的统计 (聊天答题)
/quiz top [类别]查看聊天答题的排行榜 (类别: total, correct, quick, rewards)
/quiz dialog(1.2.0+) 打开“图形界面答题”菜单

6.2 管理员命令 (通用)

命令说明
/quiz reload(管理员) 重载 config.yml 配置文件
/quiz reset <玩家>(管理员) 重置指定玩家的所有答题数据 (包括聊天和图形界面)
/quiz help(管理员) 显示帮助菜单

6.3 管理员命令 (经典聊天答题)

命令说明
/quiz startnow(管理员) 立即开始一轮聊天答题
/quiz stop(管理员) 停止自动答题的调度器
/quiz enable <true/false>(管理员) 启用或禁用自动答题调度器
/quiz add <问题> <正确答案>(管理员) 添加一道聊天答题 (答案是A/B/C/D)
/quiz delete (管理员) 删除指定 ID 的聊天题目
/quiz modify <字段> <新值>(管理员) 修改聊天题目 (字段如: quiz, optA, answer...)
/quiz toggle <true/false>(管理员) 启用或禁用一道聊天题目
/quiz list [页码](管理员) 列出所有聊天答题的题目
/quiz detail (管理员) 查看聊天题目的详细信息

6.4 管理员命令 (图形界面答题)

命令说明
/quiz extra add ...(管理员) 添加题目到“图形界面”题库 (参数同上)
/quiz extra delete (管理员) 删除“图形界面”题目
/quiz extra modify ...(管理员) 修改“图形界面”题目
/quiz extra toggle ...(管理员) 启用/禁用“图形界面”题目
/quiz extra list(管理员) 列出所有“图形界面”题目
/quiz extra detail (管理员) 查看“图形界面”题目详情

6.5 管理员命令 (数据库)

命令说明
/quiz database export <表名>(管理员) 导出数据表到 CSV (表名: questions 或 extra_questions)
/quiz database import <表名>(管理员) (危险操作) 从 CSV 导入数据,覆盖原表

1.1.x 旧版本不包含 extra, database新指令。


7. 常见问题

7.1 答题未触发

  • 检查min_players设置
  • 确认题库中有启用状态的问题
  • 查看日志是否有错误信息

7.2 题目管理

  • 添加题目示例:

    /quiz add 低版本中Minecraft中钻石在第几层最多? 1-5 5-12 12-20 20+ b
  • 可使用"-"作为空选项占位符

8. 注意事项

数据备份: 插件的数据库文件 quizzerBook.db 存着你所有的题目和玩家数据,建议定期备份
问题反馈: 遇到 Bug 或有啥好建议,欢迎联系 yanhy2000@foxmail.com

本Wiki文档随插件版本更新,最新版请以实际发布为准
]]>
0 https://yanhy.top/index.php/archives/456/#comments https://yanhy.top/index.php/feed/search/服务器/
[联想MiiX2-11]旧WIN平板折腾记-初步了解 https://yanhy.top/index.php/archives/416/ https://yanhy.top/index.php/archives/416/ Wed, 30 Oct 2024 16:38:00 +0800 yanhy2000 去年同事送了我一个平板,联想MiiX2-11触控平板笔记本。当初玩了一下,性能很低,出厂默认win8.1。由于屏幕边角老化和电池鼓包,当平板可玩性也不大就一直在吃灰。前段时间收拾东西再次发现这玩意,查了一下配置还行,试试看能不能做个小服务器~

机型图片

图片来自网络

配置

图吧工具箱配置信息

介绍

发售于2014年,机身11.6寸屏幕,带有配套键盘;机身上有一个USB接口,可传数据或者充电(没错这玩意充电接口是usb)。通过接上键盘后可以拓展两个usb,键盘左右侧各一个usb2.0接口,不能充电。
续航这一块暂且不看,电池已经鼓包,后续要拆卸下来的。屏幕后续也不需要了,计划用上面的MicroHDMI接口进行调试,其余使用远程控制。
机身有扬声器麦克风,和前后摄像头。不过也就是能用的程度。板载网卡仅支持2.4Ghz频段。
我这台是i5的配置,市面上也有四代i3的配置。i5这款理论主频1.6Ghz,最高2.0Ghz。核显为Intel HD 4200,显存128MB,理论可以看H264解码4k视频,不支持h265等新编解码技术。
内存为ddr3 4GB,不可拆卸。硬盘内置128GB SATA,据社区分享是MSATA,或许可以自行更换扩容。

来自百度:
1、支持windows 8.1操作系统,办公娱乐无障碍;2、超强的双核
3、全高清ISP屏;4、WIFI网络无极限,更有3G版本
5、超长8小时待机;6、轻薄的机身
7、多功能键盘底座;8、拥有前后设想图
9、Intel Hasewell 双核处理器

系统与驱动

我这台已经刷入了tiny10,系统镜像链接:https://archive.org/details/tiny-10_202301
刷入后仍需打一堆驱动,所幸官方驱动入口还没有关闭,官网服务入口:https://newsupport.lenovo.com.cn/products_index.html?fromsource=products_index&selname=IdeaPad%20MIIX2-11

以防万一官网下架,导致老设备没得折腾,备份了一手(仅备份了官方win10的驱动)
主:https://www.123865.com/s/Dpq0Vv-8ueHd?提取码:Lj2E
备:https://www.123684.com/s/Dpq0Vv-8ueHd?提取码:Lj2E

折腾方向

1、挂机宝 功耗仅10w左右的挂机宝,办公性能还可以
2、win服务器 系统支持虚拟化,可以用wsl、docker等挂一些简单的服务
3、linux服务器 实测刷入ubuntu后,wifi等外设可以免驱驱动,但亮度、电池等仍无法识别,不过也方便折腾了
4、小型nas 虽然只有一个硬盘位,但可以作为一个小型文件站,低功耗也挺不错的

本文先到这里,简单介绍了这个板子。后续会有更多折腾,比如解除BIOS高级菜单等。这块板子社区普遍反应温度高了降频严重,因此计划拆出来主板,设计个简单外壳并加上风扇,尝试让其稳定运行服务。

]]>
0 https://yanhy.top/index.php/archives/416/#comments https://yanhy.top/index.php/feed/search/服务器/
安利个Windows激活工具 HEU-KMS https://yanhy.top/index.php/archives/381/ https://yanhy.top/index.php/archives/381/ Thu, 27 Jun 2024 18:33:00 +0800 yanhy2000 写个文章做个记录,便于以后查找,顺便也推荐下这个稳定的软件~

软件界面

截图版本:42.0.4

软件打开后界面

可能听名字有人有点耳熟,但是对这个软件本体很陌生,那么切换一种UI,就眼熟很多了
在软件右上角 三条横 的设置中,选择“经典界面”,即可打开

软件的“经典界面”

眼熟了吗?
没错,作者至今一直在更新,更新在微信公众号和Github上

如何还原到新版本界面:删除同目录下的Set.ini,再重新打开软件即可恢复

软件与配置文件

下载链接

Github: https://github.com/zbezj/HEU_KMS_Activator/releases/
公众号:《更新:HEU KMS Activator v42.0.4》
附图:公众号获取方式
公众号获取方式

简单的使用说明

激活Windows系统与Office套件

打开软件后,什么都不需要做(记得同意使用协议),点 开始 按钮即可开始自动激活。如检测到电脑上没安装Office则会自动跳过。

直接点开始即可自动激活

点击按钮后,软件下方会出现进度条,静静等待即可(个人经验约1-5分钟,可不联网)。
激活完成后,会弹窗结果。演示机未安装Office因此显示只有Windows激活结果。可重复激活,不担心掉激活或者覆盖等。

激活成功弹窗

验证激活结果

Windows:打开系统设置 - 更新与安全 - 激活,即可看到激活结果。演示机使用精简的win10系统,因此激活部分有bug可忽略。

正常情况下系统显示激活序列号等

Office:随便打开个软件如word,点左上角文件 - 左下角账户,可以看到右侧产品已激活且显示激活的版本

用自己电脑的Office的局部截图

到此,简单的激活方法就结束了,软件可以继续收藏吃灰或者直接删除~

部分问题的处理

KMS激活续期:在一些特殊条件下,会触发KMS激活方式。KMS的激活有180天的期限,因此要在一开始激活时勾选KMS自动续期。如激活完成后才发现是KMS激活,可以勾选后进行第二次激活。部分杀毒软件在KMS自动续期补丁安装时报毒,可以手动加白名单或者信任列表即可。

Office的盗版Banner警告:有时候在部分版本的Office软件内,打开时会在上方弹出一个Banner显示类似于“你可能是盗版的受害者”。此时可以打开HEU-KMS软件,然后选择最后一栏。

选择“其他”栏

在Office R2V/管理工具部分,选择Office版本,下方选择Fix_banner项,然后点击开始,等待修复完毕即可。

选择Fix_banner

更换Windows版本:有时候安装时手快点成了家庭版,但是家庭版阉割了很多东西(如Hyper-v、组策略管理器等),可以用HEU-KMS来转换Windows版本。
打开软件,选择“其他”栏,选择左上角的“更改Windows10/11版本”。在下拉框中,选择你想修改的版本。

Windows版本选择项

通常比较受欢迎的是ProfessonalWorkstation(专业工作站)版本,此处的演示机系统也是专业工作站版本(人均工作站(bushi))。选择完成后,点击右侧花瓣图表,点击确定按钮开始转换。为方便演示,这里选择专业版来转换。

转换Windows版本开始

转换成功后,会有弹窗提醒并要求重启计算机,一些改动也即将发生。

转换完成

如果此时打开设置查看系统版本,会发现已经转换成功,但尚未激活。重启后重新进行激活即可完成。(点击确定按钮并不会强制重启,可以保存好文件后手动点击重启)

转换到专业版成功

其他玩法还有很多,如至今半死不活的数字激活(一些曾经数字激活的电脑上还留着TPM信息,重装后仍然可以数字激活)、KMS激活(手动强制使用KMS激活)、OEM激活(模拟品牌电脑的操作)等,还能自建激活服务器,可以自行研究研究,对我来说这玩意就是在u盘里面吃灰,装完系统后第一个走过场然后继续吃灰的实用小工具

来自作者的免责声明

来自作者的免责声明

本文到此结束,希望这篇文章有帮到你~

]]>
0 https://yanhy.top/index.php/archives/381/#comments https://yanhy.top/index.php/feed/search/服务器/
windows下使用certbot续订/申请SSL域名证书 https://yanhy.top/index.php/archives/358/ https://yanhy.top/index.php/archives/358/ Wed, 19 Jun 2024 15:40:00 +0800 yanhy2000 有好一段时间没更新博客了,自从运营的MC服务器社区解散后,空余时间多起来了,可以去研究一些新的玩意了~

certbot Windows版本 Github下载链接

脚本内容

本文简单分享一下在windows系统下,使用certbot程序续订/申请SSL证书,为此我简单写了个Bat脚本可供使用。

07/10 更新:在系统用户非管理员情况下需要脚本提权才能运行,因此修改脚本使其可以打开后提权
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"

echo 请确保安装了Certbot,如未安装可以前往下载 https://github.com/certbot/certbot/releases/download/v2.9.0/certbot-beta-installer-win_amd64_signed.exe
echo 脚本作者by.yanhy2000
echo 申请证书需要准备一个邮箱,邮箱第一次申请会自动注册,只需要两次输入"y"并回车即可
echo 验证证书需要手动添加修改DNS的TXT记录
set /p email="请输入您的邮箱地址: "
set /p domain="请输入您的域名: "

certbot certonly -m %email% -d "%domain%" -d %domain% --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

if %errorlevel% neq 0 (
    echo 证书申请过程中发生错误。
    pause
    exit /b %errorlevel%
)

echo 证书申请成功。
pause

其中,执行certbot程序的指令简单分析一下

certonly 安装模式
-m 申请证书所需的邮箱
-d 申请证书的域名
--manual 使用交互式或脚本钩子的方式获取证书
--preferred-challenges dns 使用 DNS 方式校验域名所有权
--server Let's Encrypt指定的V2版本接口

因此,只需要传入邮箱和域名,即可开始申请证书。

使用方法

填入邮箱和所申请的域名
如果邮箱第一次申请,会提示注册等,可以直接输入y回车(可能有两次)
随后会提示这样(域名和记录值为虚拟)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name:

_acme-challenge.www.test.com.

with the following value:

aaaaaaaaaaaaaaaa

Before continuing, verify the TXT record has been deployed. Depending on the DNS
provider, this may take some time, from a few seconds to multiple minutes. You can
check if it has finished deploying with aid of online tools, such as the Google
Admin Toolbox: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.oooyn.top.
Look for one or more bolded line(s) below the line ';ANSWER'. It should show the
value(s) you've just added.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

此时不要按回车,前往域名注册站(如阿里云域名、腾讯云的DNSPod等),为目标域名添加一条记录:

  • 主机记录为“_acme-challenge.www.test.com.”去掉其中的主域名,也就是“_acme-challenge.www”
  • 记录类型为TXT
  • 记录值为上文中“aaaaaaaaaaaaaaaa”的内容

添加完成后,等待几分钟(最快几十秒也可能,dns解析和缓存需要时间),然后在命令行敲下回车键,等待验证。
如果不确定有没有解析好的话,可以先清理一下本地的DNS缓存,然后手动本地验证一下是否解析成功,再去回车。否则失败后需要重新解析DNS。

  • 本地清理DNS缓存方法:win+r,输入CMD回车,输入ipcondif /flushdns回车
  • 本地测试TXT解析方法: win+r,输入指令回车nslookup -qt=txt _acme-challenge.test.com

    服务器:  DNS1.aaaaaa.net
    Address:  1.2.3.4
    
    非权威应答:
    _acme-challenge.text.com       text =
    
          "aaaaaaaaaaaaaaaaaaaaaaaa"

回车后待显示以下内容即为成功,证书文件在 C:\Certbot\live 目录内,取出可部署需要的地方。

Successfully received certificate.
Certificate is saved at: C:\Certbot\live\example.top\fullchain.pem
Key is saved at:         C:\Certbot\live\example.top\privkey.pem
This certificate expires on 2023-08-05.
These files will be updated when the certificate renews.
​
NEXT STEPS:
- This certificate will not be renewed automatically. Autorenewal of --manual certificates requires the use of an authentication hook script (--manual-auth-hook) but one was not provided. To renew this certificate, repeat this same certbot command before the certificate's expiry date.
​
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

查错

问题一

Certbot failed to authenticate some domains (authenticator: manual). The Certificate Authority reported these problems:
  Domain: www.test.com
  Type:   dns
  Detail: DNS problem: looking up TXT for _acme-challenge.www.test.com: DNSSEC: DNSKEY Missing

Hint: The Certificate Authority failed to verify the manually created DNS TXT records. Ensure that you created these in the correct location, or try waiting longer for DNS propagation on the next attempt.

Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile C:\Certbot\log\letsencrypt.log or re-run Certbot with -v for more details.
证书申请过程中发生错误。
请按任意键继续. . .

dns尚未解析好,需要多等一会。如果等很久还是失败,可以试试看清理本地的DNS缓存

问题二

Saving debug log to C:\Certbot\log\letsencrypt.log
An unexpected error occurred:
requests.exceptions.SSLError: HTTPSConnectionPool(host='acme-v02.api.letsencrypt.org', port=443): Max retries exceeded with url: /directory (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)')))
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile C:\Certbot\log\letsencrypt.log or re-run Certbot with -v for more details.
证书申请过程中发生错误。
请按任意键继续. . .

电脑网络通讯问题,检查是否开启了代理,关闭代理即可

]]>
0 https://yanhy.top/index.php/archives/358/#comments https://yanhy.top/index.php/feed/search/服务器/
文章历史分割线 https://yanhy.top/index.php/archives/348/ https://yanhy.top/index.php/archives/348/ Sat, 27 Jan 2024 19:12:00 +0800 yanhy2000 三番五次更换了博客程序,最后确定留在typecho了~

如题,在此文章之前的都是从wordpress迁移到typecho再迁移到wordpress再迁移回来typecho的情况,因此不仅是非Markdown编写,而且一些格式还错乱了(悲

从该文章之后开始认真起来了,博客之所以停更了这么久,一方面是毕业了,现在找到了一份还算过得去的工作,后面可能只有零零散散的文章了,不过还是准备继续写下去的,毕竟自己写的东西都是自己的经验,自己的知识。

这次重新迁移,也整理了一下分类等,大部分属于linux的经验都扔服务器运维里面了;删了技术杂谈等分类;然后修改教程分享为教程经验,在这个分类里面将会出现各种领域的自己总结的教程和经验,当然这些并不算标准答案,我自己发现有问题也会变更。

本文就这样了,算是做个公告,或许没有多少人来访,但是哪怕留给以后的自己看,也是不错的选择~

]]>
1 https://yanhy.top/index.php/archives/348/#comments https://yanhy.top/index.php/feed/search/服务器/
Debian10系统下LNMP三件套安装与配置——MySQL篇 https://yanhy.top/index.php/archives/241/ https://yanhy.top/index.php/archives/241/ Sun, 22 May 2022 05:39:00 +0800 yanhy2000

近期需要搭建个简易的小型网站,原想着用服务器面板解决,但是网站程序要求苛刻(如使用PHP函数、安装模块、资源性能分配等),环视了一圈服务器面板也没有找到中意的,不是限制太多就是自身占用过大,因此决定自己搭建配置LNMP三件套来部署网站程序,以达到最佳性能与最小损耗...

上期文章: Debian10系统下LNMP三件套安装与配置——Nginx与初始环境篇

LNMP环境包之‘M’——MySQL

本文将使用手动安装MySQL的方式来介绍流程。

下载软件包

MySQL社区版官网下载地址: MySQL Community Downloads

进入网站,选择系统版本(以本文Debian 10.2为例):

mysql下载1.png

接下来直接点击第一行的 DEB Bundle 右侧下载按钮进入下载页面,无需注册登录账户,直接点击最下方"No thanks, just start my download."即可获取到下载链接,也可以右键复制该超链接,进入SSH使用wegt下载该链接
mysql下载2.png

安装软件包

MySQL 8.9.29下载直链:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-server_8.0.29-1debian10_amd64.deb-bundle.tar

新建文件夹并将下载的tar包移动进去,因为解压会解压出大量依赖与组件包:

mkdir mysql && cd mysql
tar -xvf mysql-server_8.0.29-1debian10_amd64.deb-bundle.tar
rm mysql-server_8.0.29-1debian10_amd64.deb-bundle.tar

之后可以在目录里面看到一堆MySQL相关的软件包:

mysql安装1.png

注意:MySQL手动安装软件包是需要顺序的,否则会报错提醒MySQL-xxx未安装(顺序不一定完全一致,此处为个人经验)

dpkg -i mysql-common_8.0.29-1debian10_amd64.deb
apt install libmecab2 libnuma1
dpkg -i mysql-community-server-core_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-client-plugins_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-client-core_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-client_8.0.29-1debian10_amd64.deb
dpkg -i mysql-client_8.0.29-1debian10_amd64.deb
dpkg -i mysql-community-server_8.0.29-1debian10_amd64.deb

安装完最后一个软件包后,会自动弹出配置窗口,一般情况下第一个页面是需要设置root密码,输入后回车;第二个页面为确认密码,重新输入一次;第三页选择Use Strong Password Encryption (RECOMMENDED)

mysql安装2.png

最后查看版本号,如果输出正常即为安装成功

mysql -V

类似输出:mysql Ver 8.0.29 for Linux on x86_64 (MySQL Community Server - GPL)

设置开机自启

在一些平台上,MySQL进程名一般为mysqld,但是在Debian 10系统环境下,暂不知道是版本问题还是环境问题,这里使用的进程名字是mysql

设置开机启动,并手动启动mysql,最后查看运行状态,如无报错即为运行正常

systemctl enable mysql
systemctl start mysql
systemctl status mysql

配置MySQL

执行以下命令,执行 MySQL 安全性操作并设置密码(如果前面有设置的话,这步里面设置密码环节可以跳过)

mysql_secure_installation

输入指令后,根据下面流程进行配置:

  • 输入root密码启动配置流程
  • 输入 y 并按 Enter 开始相关配置
  • 选择密码验证策略强度,建议选择高强度的密码验证策略。输入 2 并回车

    • 0:表示低
    • 1:表示中
    • 2:表示高
  • 设置root的密码,如上面配置界面有设置的话,可直接回车忽略进行下一步
  • 设置是否移除匿名用户,为了安全性,输入 y 移除匿名用户
  • 设置是否禁止使用root用户远程登录,输入 y 禁止root远程登录
  • 设置是否删除test数据库以及权限,正式环境下不需要这个数据库,输入 y 删除即可
  • 重新加载授权表,输入 y 即可

以下为测试环境下的配置流程图:
mysql配置流程图.png

有关数据库的操作与用户的增删,本文不再详细描述。

]]>
0 https://yanhy.top/index.php/archives/241/#comments https://yanhy.top/index.php/feed/search/服务器/
Debian10系统下LNMP三件套安装与配置——Nginx与初始环境篇 https://yanhy.top/index.php/archives/231/ https://yanhy.top/index.php/archives/231/ Sun, 22 May 2022 04:37:00 +0800 yanhy2000

近期需要搭建个简易的小型网站,原想着用服务器面板解决,但是网站程序要求苛刻(如使用PHP函数、安装模块、资源性能分配等),环视了一圈服务器面板也没有找到中意的,不是限制太多就是自身占用过大,因此决定自己搭建配置LNMP三件套来部署网站程序,以达到最佳性能与最小损耗...

预备

LNMP是一种用于配置网站前端程序的运行环境组合。‘L’指Linux系统环境,‘N’指Nginx,‘M’指MySQL或者MariaDB数据库,‘P’指PHP程序。类似的环境组合还有LAMP,该包使用Apache作为网页服务器驱动程序,与Nginx相比占用较大但是相对稳定,但是近年来搭建小型网站项目依然是Nginx更加流行。

此处我预备的环境版本为:

Linux = Debian 10.2 64bit
Nginx = 稳定版1.20.2
MySQL = 8.0.29
PHP = 8.1/7.4

服务器使用腾讯云的香港区域服务器,配置为2C2G,搭建小型网站性能足够使用

LNMP环境包之‘L’——Linux

服务器使用腾讯云提供的纯净Debian 10.2镜像,无预装其他环境

安装linux系统.png

进入系统后先更新软件包:

apt update
apt upgrade

由于腾讯云的服务器都是预置好软件源的,因此购买大厂的机器后一般无需手动换源即可开箱即用

LNMP环境包之‘N’——Nginx

本文使用的Nginx版本官网下载链接(适用于Debian buster系统): nginx_1.20.2-1~buster_amd64.deb

CentOS 8系统Nginx下载链接: nginx-1.20.2-1.el8.ngx.x86_64.rpm

其他系统或者版本下载链接可见列表: http://nginx.org/packages/

安装步骤

通过SSH连接至服务器,并获取root权限:

su

下载Nginx 1.20.2软件安装包(下载链接可根据自己的系统环境从上方列表查找),本文以Debian 10.2为例:

wget http://nginx.org/packages/debian/pool/nginx/n/nginx/nginx_1.20.2-1~buster_amd64.deb

安装Nginx软件包:

dpkg -i nginx_1.20.2-1~buster_amd64.deb

安装完成后查看版本:

nginx -v

如果显示为nginx version: nginx/1.20.2即为安装成功,删除软件包即可

初始化配置

Nginx的配置文件一般存放于/etc/nginx/conf.d/文件夹内,编辑里面的文件即可

默认网站配置文件名为default.conf,使用nano编辑器进行初始配置:

nano /etc/nginx/conf.d/default.conf

文件内容有这几处需要修改:

在"location"项的index内需要添加 index.php ,root项内的路径可指定好也可保持默认,后面配置网页时可再修改。如图所示:

nginx配置文件修改1.png

找到"location ~ .php$"项,将其与大括号内的内容注释取消掉,并修改:

  • root项指定好网站根目录
  • 修改 fastcgi_pass 项为 unix:/run/php-fpm/www.sock;,Nginx 通过 UNIX 套接字与 PHP-FPM 建立联系,该配置与 /etc/php-fpm.d/www.conf 文件内的 listen 配置一致。
  • fastcgi_param SCRIPT_FILENAME 后的 /scripts$fastcgi_script_name; 替换为 $document_root$fastcgi_script_name;

修改完成后如下图所示:

nginx配置文件修改2.png

按Ctrl+O写入文件,Ctrl+X退出编辑

最后将Nginx配置为开机启动即可:

systemctl start nginx
systemctl enable nginx

验证配置

本文修改后的配置文件如图:

nginx安装验证.png

由于测试所用的为一个静态页面,因此只需要指定根目录与域名即可。另存为test.conf,重启Nginx,检查无报错后所用浏览器访问域名,网页加载正常,说明Nginx配置验证成功。

拓展:多网站配置

如果要配置多个网站,只需要在域名服务商多解析几个到服务器IP的域名,然后将/etc/nginx/conf.d/default.conf文件重复拷贝作为模板使用,每次修改完配置文件,需要重新启动Nginx服务使其生效,同时要确保Nginx没有报错。

在配置文件时,只需要使location项内的root所指定的网站根目录不相同、server_name所指定的域名不相同,即可通过不同域名访问到不同站点根目录的index文件。

反代、伪静态本文暂且不提及。

]]>
0 https://yanhy.top/index.php/archives/231/#comments https://yanhy.top/index.php/feed/search/服务器/
Linux轻量云服务器云硬盘搭建网盘(下) https://yanhy.top/index.php/archives/202/ https://yanhy.top/index.php/archives/202/ Tue, 29 Mar 2022 22:22:00 +0800 yanhy2000

腾讯云今年春节活动优惠力度较大,在这期间我也采购了一台服务器与俩数据盘,准备作为网盘...

硬盘初始化与挂载请看上一篇:Linux轻量云服务器云硬盘搭建网盘(上)

资源:

  • 轻量云服务器2c4g 6M带宽
  • 云盘程序-cloudreve
  • 云硬盘100G+1000G

网盘程序安装

创建一个文件夹用于存放软件与配置文件:

mkdir cloudreve
cd cloudreve

前往cloudreve官网下载软件包:http://cloudreve.org/
选择下载 cloudreve_3.4.2_linux_amd64.tar.gz

也可以在ssh输入指令使用wget进行下载:

wget https://github.com/cloudreve/Cloudreve/releases/download/3.4.2/cloudreve_3.4.2_linux_amd64.tar.gz

然后解压压缩包

tar -zxvf cloudreve_3.4.2_linux_amd64.tar.gz

直接执行该文件即可开启网盘服务:

./cloudreve

122222.png

记下默认账户与密码,然后去云服务器后台的防火墙处放行端口:tcp 5212

133333.png

访问网盘管理,浏览器输入服务器ip:5212,即可进入网盘登陆页面,登陆后的页面如下

144444.png

接下来先去管理面板修改用户信息如密码等,此处不再赘述,主要讲述如何配置硬盘到网盘中

网盘管理配置

1、上传路径修改

进入管理面板-存储策略中,修改默认策略以向导模式打开

储存目录可设置前面云硬盘挂载的位置,由上一章可知路径为 /mnt/data1,因此存储目录路径可填写:

/mnt/data1/{path}

如果计划将该网盘给多用户使用,可以这样填写:

/mnt/data1/{uid}/{path}

文件重命名处设置可以根据网盘用途来修改,如果多人使用,默认即可;如果仅自己使用,可以修改为原始文件名或者选择不开启即可:

{originname}

如不开启默认为{randomkey8}_{originname},不容易分辨,推荐使用上述变量

2、直链设置

此处如果是使用云服务器有公网时,可以根据自己需求选择是否开启;如局域网内无公网,开启后无法用于公网分享文件

3、上传限制

同样的,如果是自用,全部关闭限制即可,如果多人使用的话推荐打开,防止大文件上传吃带宽等情况

4、分配用户储存

cloudreve并不会自动检测硬盘空间剩余,因此要手动限制最大空间使用

修改并保存好存储策略后,打开用户组管理

如果网盘仅自己单人使用,可以直接打开管理员用户组修改页面,将初始容量直接修改为硬盘最大容量(此处使用硬盘1,本文所购置的硬盘1容量为100GB)其他选项均默认即可。

如果网盘供多人使用,需要给每个用户组进行单独配置。比如总硬盘可使用空间为100GB,预计5人使用,如需要平分容量,可以在 注册用户 组内的初始容量设置为20GB,5人分别注册后会自动归为 注册用户组 ,且均为20GB容量。(如果是使用云服务器的话,推荐限制每个人的下载上传设置,以防止单用户占用带宽、性能过多)

设置开机自启

网盘程序此时已经安装配置完成,接下来需要设置开机自启,保证网盘不中断
先按Ctrl+c关闭当前运行的网盘程序

新建个系统服务文件并启用:

cd /lib/systemd/system
sudo nano cloudreve.service

编辑内容:
注意:如果服务器有安装mysql服务的话,需要在第四行加上After=mysqld.service,否则可能开机启动失败

[Unit]
Description=Cloudreve
After=network.target

[Service]
TimeoutStartSec=10

ExecStart=#文件完整路径,如/root/cloudreve/cloudreve
ExecStop=/bin/kill $MAINPID

StandardError=syslog

[Install]
WantedBy=multi-user.target

保存并退出,然后输入指令来启动网盘程序:

systemctl start cloudreve

此时输入systemctl status cloudreve ,稍等一会就可以看到cloudreve进程正在运行中

再输入指令启用cloudreve的开机启动:

systemctl enable cloudreve

重启后,再输入systemctl status cloudreve ,可以看到进程已经在运行

cloudreve网盘配置到此结束,但是该程序并没有解决本文的初始问题,因为云服务器有两块硬盘,本程序只能单网盘授权用户,因此还需更换程序...

]]>
0 https://yanhy.top/index.php/archives/202/#comments https://yanhy.top/index.php/feed/search/服务器/
Linux轻量云服务器云硬盘搭建网盘(上) https://yanhy.top/index.php/archives/191/ https://yanhy.top/index.php/archives/191/ Tue, 29 Mar 2022 06:44:00 +0800 yanhy2000

腾讯云今年春节活动优惠力度较大,在这期间我也采购了一台服务器与俩数据盘,准备作为网盘...

资源:

  • 轻量云服务器2c4g 6M带宽
  • 云盘程序-cloudreve
  • 云硬盘100G+1000G

云服务器挂载硬盘

前往轻量服务器云硬盘后台挂载硬盘至目标服务器上

12222.png

云硬盘初始化

挂载成功后,通过ssh连接至服务器,输入fdisk -l可查看到新挂载的硬盘容量大小及硬盘id(此处主硬盘为vda,新挂载的硬盘为vdb、vdc)

1333333.png

由于该云硬盘在之前挂载过windows server系统的服务器,使用指令fdisk -l得知已经被win分区处理过。因云硬盘上没有重要信息需要转移,所以这里准备直接进行重新初始化操作...

如果硬盘为新购挂载的可以直接查看“云硬盘初次使用初始化”...

win转linux云硬盘二次初始化

执行以下指令,进入 fdisk 分区工具,开始对新增数据盘执行分区操作。以新挂载的数据盘 /dev/vdb 为例,则执行以下命令:

sudo fdisk /dev/vdb

14444.png

从前面得知,这块硬盘已经被win分区过了,所以先删除全部分区,再重新格式化以挂载给linux使用

输入指令 d 来删除分区,分别删除1、2号分区

1555555.png

删除分区后,再重新建立个新的分区并格式化为ext4

输入指令 n 来新建分区,有时会提醒要选择分区类型,一般可输入 p 来创建个主要分区(p 表示主要分区,e 表示扩展分区)

之后要选择的主分区编号、初始扇区、截止扇区可直接回车默认即可。

操作结束后,输入指令 p 即可看到新建的分区。确认无误后,输入指令 w 将分区结果写入分区表中。

如果上述操作有失误之处,直接输入 q 可不保存退出

16666.png

退出分区软件后,输入指令将分区表同步到系统:

partprobe

如果此指令提示找不到命令,需要安装软件包parted来解决:apt install parted

执行以下命令,将新建分区文件系统设置为系统所需格式:

sudo mkfs -t <文件系统格式> /dev/vdb1

不同文件系统支持的分区大小不同,请根据实际需求合理选择文件系统。以设置文件系统为 EXT4 为例,则执行以下命令:(格式化需要一段时间,请稍等一会)

sudo mkfs -t ext4 /dev/vdb1

1666666.png

再输入 fdisk -l 可看出,该硬盘文件系统已经变成“Linux filesystem”

再如法炮制,将第二块硬盘也初始化一番...

177777.png

此时云硬盘已经初始化结束,接下来就可以挂载使用了。

云硬盘初次使用初始化

执行以下命令,查看磁盘名称:

sudo fdisk -l

第一步挂载成功后可以在列表中看到服务器有两块磁盘,/dev/vda 为系统盘,/dev/vdb 为新挂载数据盘(多块硬盘将以vdc、vdd依次排序)

执行以下命令,将新建分区文件系统设置为系统所需格式:

sudo mkfs -t <文件系统格式> /dev/vdb1

不同文件系统支持的分区大小不同,请根据实际需求合理选择文件系统。以设置文件系统为 EXT4 为例,则执行以下命令:(格式化需要一段时间,请稍等一会)

sudo mkfs -t ext4 /dev/vdb1

再输入 fdisk -l 可看出,该硬盘文件系统已经变成“Linux filesystem”,可以被挂载至系统文件夹使用了。

云硬盘挂载

本文将会把硬盘挂载至/mnt文件夹内(大部分系统、设备也是如此),之后可以通过访问该文件夹来使用云硬盘

新建文件夹用于挂载不同的一批:(文件夹名可自定义)

mkdir /mnt/data1
mkdir /mnt/data2

执行以下命令,将设备挂载至新建的挂载点。执行以下命令:

sudo mount /dev/vdb1 /mnt/data1
sudo mount /dev/vdc1 /mnt/data2

执行以下命令,查看挂载结果。

sudo df -h

188888.png

因为是为了网盘服务,所以要保证服务器启动时硬盘也可以同时被加载,接下来设置硬盘开机自动挂载...

本文使用的是腾讯云购买的云硬盘,可以直接使用云硬盘的软链接。官方文档:

挂载方式优缺点信息获取方式
使用云硬盘的软链接(推荐)优点:每个云硬盘的软链接固定且唯一,不会随卸载挂载、格式化分区等操作而改变。缺点:只有云硬盘才有软链接。无法感知分区的格式化操作。执行以下命令,查看云硬盘的软链接。sudo ls -l /dev/disk/by-id
使用文件系统的 UUID可能会因文件系统的 UUID 变化而导致自动挂载设置失效。例如,重新格式化文件系统后,文件系统的 UUID 将会发生变化。执行以下命令,查看文件系统的 UUID。sudo blkid /dev/vdb
使用设备名称可能会因设备名称变化而导致自动挂载设置失效。执行以下命令,查看设备名称。sudo fdisk -l

执行以下命令,备份 /etc/fstab 文件。以备份到 /home 目录下为例:

sudo cp -r /etc/fstab /home

执行以下命令,使用 VI 编辑器打开 /etc/fstab 文件。

sudo vi /etc/fstab

按 i 进入编辑模式。
将光标移至文件末尾,按 Enter,添加如下内容。

<设备信息> <挂载点> <文件系统格式> <文件系统安装选项> <文件系统转储频率> <启动时的文件系统检查顺序>
  • (推荐)以使用云硬盘的软链接自动挂载为例,结合前文示例则添加:
/dev/disk/by-id/virtio-disk-xxxxx /data ext4 defaults 0 0
  • 若您需挂载分区,则结合前文示例则添加:
/dev/disk/by-id/virtio-disk-xxxxx-part1 /data/newpart ext4 defaults 0 2
  • 以使用磁盘分区的 UUID 自动挂载为例,结合前文示例则添加:
UUID=d489ca1c-5057-4536-81cb-ceb2847f9954 /data ext4 defaults 0 0
  • 若您需挂载分区,则结合前文示例则添加:
UUID=d489ca1c-5057-4536-81cb-ceb2847f9954 /data/newpart ext4 defaults 0 2
  • 以使用设备名称自动挂载为例,结合前文示例则添加:
/dev/vdb /data ext4 defaults 0 0
  • 若您需挂载分区,则结合前文示例则添加:
/dev/vdb1 /data/newpart /data/newpart ext4 defaults 0 2
  • 按 Esc,输入 :wq 并按 Enter 保存设置并退出编辑器。
    执行以下命令,检查 /etc/fstab 文件是否写入成功。
sudo mount -a 

如果运行通过则说明文件写入成功,新建的文件系统会在操作系统启动时自动挂载。

输入 reboot手动重启后再输入 df -h`,可以看到硬盘已经自动挂载成功了

2222211.png

本章节(上)部分内容结束,感谢阅读~

]]>
0 https://yanhy.top/index.php/archives/191/#comments https://yanhy.top/index.php/feed/search/服务器/
Linux更改时间 https://yanhy.top/index.php/archives/156/ https://yanhy.top/index.php/archives/156/ Tue, 29 Mar 2022 04:46:00 +0800 yanhy2000 修改日期时间:
  1. 查看时间和日期
    命令 : "date"

2.设置时间和日期
例如:将系统日期设定成2021年11月24日的命令

命令 : "date -s 11/24/2021"

将系统时间设定成下午5点55分55秒的命令

命令 : "date -s 17:55:55"

  1. 将当前时间和日期写入BIOS,避免重启后失效(用于玩客云arm等设备)
    命令 : "hwclock -w"

使用ntp服务同步网络时间:

  1. 检查系统是否安装ntp服务

安装ntp服务命令:

apt install ntp 或者 yum install ntp

  1. service --status-all:检查ntp服务是否启动

[+]表示服务已启动

  1. ntpdate 服务器IP:同步服务器时间

ntp常用服务器:

中国国家授时中心:210.72.145.44
NTP服务器(上海) :ntp.api.bz
美国:time.nist.gov 
复旦:ntp.fudan.edu.cn 
微软公司授时主机(美国) :time.windows.com 
台警大授时中心(台湾):asia.pool.ntp.org
]]>
0 https://yanhy.top/index.php/archives/156/#comments https://yanhy.top/index.php/feed/search/服务器/