分类 技术探索 下的文章 - NianSir's BLOG
首页
关于 | About US
文章协议
友情站点
搜 索
1
【Minecraft | 我的世界】PC存档转移到服务器存档教程
7,872 阅读
2
记一次七日杀(7Days to die)游戏服务器搭建及联机问题和解决方案
1,076 阅读
3
【陌辞论坛】送一批邀请码,带惊喜大礼
932 阅读
4
【免费主机】进行时数据 - 免费1G主机
836 阅读
5
【免费CDN】Faryun - 消除你对公益云的偏见
805 阅读
生活杂谈
好物分享
技术探索
代码杂烩
学习笔记
登录
/
注册
搜 索
标签搜索
学习笔记
网络
CDN
免费
网络安防
Minecraft
Windows
服务器搭建
参赛
奖品
Python
实战
站点优化
PILOT
百乐
优质文具
OurlIMG
免费图床
公益项目
免费主机
NianSir
累计撰写
25
篇文章
累计收到
10
条评论
首页
栏目
生活杂谈
好物分享
技术探索
代码杂烩
学习笔记
页面
关于 | About US
文章协议
友情站点
用户登录
登录
注册
找到
14
篇与
相关的结果
2024-09-24
宿舍夏日神器!不如自己动手DIY一台?THC1-12706a+Arduino制作mini小冷箱
近段时间持续的高温天气对于身处学校宿舍的大学牲们来说简直带来了诸多不便,众所周知许多学生宿舍因安全问题不允许使用大功率设备,冰箱这样的大型用电器更是如此,前段时间刷B站时偶然发现仙人指路(B站UP主:垃圾研究社)出了一期全站热门TOP100的视频——一个关于自制小冰箱的升级版视频,看着动人的数据NianSir也是自然跃跃欲试了,初步了解基础组件后也是火速下单了,至于原版的“小冰箱”具体数据和参数大伙可以去B站UP主那看看他的视频或者笔记,由于学生宿舍不让用冰箱,那咱们只好做做功率100W不到的mini“小冷箱”玩玩了~ 😜 在开始操作之前,还是要再重申一遍: 安全第一,本文章仅做参考,请在确保安全的前提下进行实验!!! 😇 首先贴一张完整成品图(泡沫箱除外):开始DIY!本实验采用半导体制冷片THC1-12706a作为制冷源(12V 6A优质款),电脑电源+转接板进行供电,相对于B站UP主“垃圾研究社”提供的方案根据实际情况进行了一个升级优化,主要体现在:冷端风扇改用更大转速的 防水 风扇(9000r 防水IP68),可以根据实际情况选择稍微低一些的转速和防水等级(我是为了省事哈哈哈哈 😂 )使用单片机(开发板)+温湿度传感器进行智能控制,明显优化了冷端结冰问题序号名称参数1电源长城网星600 400w2PC电源转接板选择带12v接出的转接板即可3制冷片THC1-12706A 12V 6A4热端散热6铜管散热架+风扇5冷端冷风40x40mm散热板+小风扇6T2紫铜板4~5cm宽 0.1mm7继电器3.3v单路直流电(3.3VDC)8开发板合宙Air0019传感器AHT20+BMP280温湿度模块10导热硅脂GD900 2-3小包即可11泡沫箱推荐小、中型泡沫箱,最好带一些保温内壁啥的📌 各个组件中的注意事项:电源 :极不推荐使用手机快充/笔记本快充电源,这些快充电源不适合长时间提供大功率,存在极大的安全隐患!慎用,推荐使用电脑/服务器电源,至于选择多大功率我的建议是整套设备的工作功率不超过电源额定功率的60%,这样电源工作也不会有很大压力(讲人话就是电源不怎么发热 😋 )电源转接板 :不会从PC电源接12V电的同学必备,或者为了省事推荐直接买一个,PC电源一般都是输出12V电,所以转接板只要买带12V的接出就行,当然为了日后深入学习也可以选用和我一样的3.3V~24V转接板,或者也可以去咸鱼或者其他平台找服务器电源,也有不少已经帮你接好取电板的电源卖,贴一张我的取电板,大概13元左右:制冷片 :12V方案推荐选用优质款也就是127006A,这款制冷片是目前12V供电里效果最好的制冷片,价格也不高,大概11元左右:热端散热 :根据“垃圾研究社”提供的数据使用6铜管散热器达到的制冷效果最好,但是在12V方案实际情况中似乎有点顶配了用不上这么多哈哈哈,不过为了深度学习改进还是推荐用6铜管散热塔吧,推荐买那种送风扇的,价格40元左右冷端冷风 :原版“垃圾研究社”方案采用的是4010小风扇,但是实际情况下这款风扇的转速太低,导致中性泡沫箱的制冷效果明显降低(风小,另外也是加剧冷端结冰的情况的原因之一)T2紫铜板 :进一步优化热端散热,置于热端散热架和制冷片热端之间,中间要有导热硅脂,略贵,大概2块1片:继电器 :选择3.3VDC的单路继电器即可(开发板控制电路是3.3V,如果你的开发板带其他电压也可以用其他电压的继电器)开发板 :由于使用Arduino开发,因此选用较低成本方案的国产合宙品牌的Air001单片机,其开发板大约10元。传感器 :考虑成本和品质问题,不选择DH11模块(这个模块真的心累,精度低,库还大)而选择更具性价比的AHT20+BMP280模块(直接可高精度测温湿度+大气压强,超爽的好吧 😚 ),仅仅只需大概4元导热硅脂 :这个其实没什么很特别的要求,普通的硅脂就可以上但是为了追求更极致的性能还是选择了GD900这款导热系数较高的硅脂,单价大概0.4元一小包泡沫箱 :泡沫箱就没什么好说的了,省钱可以跟水果店啥的要一个小的,不过还是推荐买个10来块的高密度泡沫箱,再买点保温内壁材料啥的具体用料可以根据实际情况酌情调整(前提是你明白这样做的后果 😎 )接线与组装这一部分其实感觉没什么必要单独拿出来介绍,但是为了记录完整性咱还是再多啰嗦几句吧~ 😉 先说说电源这边接线,怼上插口即可,接电板连接PC电源的PIN24(插主板的那个最长的排线)即可,具体可以翻到上面瞅一眼成品图就知道了。再说说制冷端这边,将热端散热架倒置在桌面上,撕掉塑料保护膜,按照以下步骤组装(注意电线一端最好都放在同一边,方便整理):涂抹导热硅脂放置T2紫铜板涂抹导热硅脂放置制冷片(注意热端和冷端,不要搞反了,有字的那面是冷端)涂抹导热硅脂放置冷端散热架(注意方向,有凹槽的一侧要用于固定)穿线固定(可以选择用尼龙扎带或者其他方案固定)最后就是智能控制电路这边了,单片机除了接控制继电器不需要加入工作电路所以就不介绍单片机接线了,在下一部分的控制程序设计部分会介绍如何接引脚;智能控制就是为了优化原版制冷工作一段时间后会结冰导致冷端风扇异响甚至损坏问题,通过继电器控制一定条件下暂停制冷片工作(但风扇不会停止工作),所以其实原理也很简单,就是给制冷片的工作电路接入继电器控制即可,在原版接线情况下在制冷片工作电路负极线上接入继电器,也就是剪断制冷片电路负极线,然后将两端连接在继电器的COM口和NO口上即可,建议在断口镀锡以保障线路更安全稳定:智能控制程序设计接下来就是最关键也是改进版最核心的特色了——智能控制好吧其实也没有说的那么高大上,就是通过单片机对制冷片的一个开关罢了哈哈哈 😂 上面也已经提到了我们采用的是合宙Air001开发板(真的不是广告QAQ 合宙快给我打¥ 😭 )当然有条件的同学也可以选择arduino r3之类的开发板,甚至是根据这个思路选择STM32开发等等,如果仅仅只是想跟着做一下这个小冷箱那就按部就班吧 😉 Arduino IDE怎么下载安装配置这里就不讲了,网上一堆教程,至于如果用合宙Air001开发板怎么配置IDE,请移步官方文档:https://wiki.luatos.com/chips/air001/Air001-Arduino.html这里就不赘述了,直接放代码(引入的两个库不是自带的,但是可以直接在IDE下载,编译方式要选择 Smallest -Os with LTO 因为同时监测温湿度和大气压的库写进开发板真的已经很极限了):#include <AHT20.h> #include <Adafruit_BMP280.h> AHT20 aht; Adafruit_BMP280 bmp; const byte relayPin = PA13; const short MaxRunTime = 600; const char hi_message[] PROGMEM = "Hi, IcyBox A1 use Air001 MUC."; short runC=0; void setup() { pinMode(PB_0, OUTPUT); pinMode(relayPin, OUTPUT); Serial.begin(9600); aht.begin(); bmp.begin(); Serial.println(hi_message); } void loop() { runC++; digitalWrite(PB_0, HIGH); // 读AHT20数据 byte temperature_aht = aht.getTemperature(); byte humidity_aht = aht.getHumidity(); if (!isnan(temperature_aht) && !isnan(humidity_aht)) { Serial.print("T: "); Serial.print(temperature_aht); Serial.println(" °C"); Serial.print("H: "); Serial.print(humidity_aht); Serial.println(" %"); } else { } if(runC > MaxRunTime || temperature_aht <= 5){ //关闭制冷片 Serial.println("LOW"); digitalWrite(relayPin, LOW); delay(80000);//延时80s runC=0; }else if(temperature_aht>6){ //启动制冷片 Serial.println("HIGH"); digitalWrite(relayPin, HIGH); } // 读BMP280数据 short pressure_bmp = bmp.readPressure() / 100; short altitude_bmp = bmp.readAltitude(1013.25); Serial.print("P: "); Serial.print(pressure_bmp); Serial.println(" hPa"); Serial.print("A: "); Serial.print(altitude_bmp); Serial.println(" meters"); digitalWrite(PB_0, LOW); delay(2000); }如果还是写不进去提示溢出那就把大气压的部分删了吧 😥 毕竟大气压的部分确实没用上,这个代码主要作用就是在运行600次后(大概3s一次)或者箱内温度小于等于5摄氏度时,让制冷片歇80s,这样可以有效解决冷端结冰现象,代码中的 relayPin 就是接到继电器控制线的引脚,我是接了PA13,可根据实际情况设定,传感器就使用默认的I2C引脚即可(在Air001上是PF00和PF01,分别接SDA和SCL,供电的VCC\VDD就接开发板的3.3V口即可GND接GND)当然如果对于这样的控制逻辑不满意/想实现更多高级功能就慢慢摸索吧 😀 比如说使用ESP8266作为开发板,再加入一些小OLED屏啥的还能做成可以远程监控和控制的Pro小冷箱 😍 好了,关于DIY mini小冷箱的制作就先写这么多了,如果有更有趣的方案/疑问欢迎博客/公众号私信留言 😋 感谢支持!
2024年09月24日
67 阅读
0 评论
11 点赞
2024-05-16
完美解决Typecho升级新版后无法在$item中直接获取文章/页面对应的permalink问题
前言 一转眼博客平稳运行就过去两年了,玩是玩的不少,文章没码几篇,最近就想着好好调整一下认真写点博客,顺便也好记录下一些学习过程中的心得,就把博客升级顺便换个主题。 本站使用的是开源博客程序Typecho,选择Typecho的理由很简单——开源、轻便、易扩展,几年前Typecho正式版1.1发布后官方就一直没有新消息了,还以为又一大开源项目就要隐退,没想到23年愚人节typecho官方社区突然发声——不是在开玩笑,我们回来了:Typecho1.2,接着官方社区又开始活跃起来了,距离最近的正式版发布就是1.2的修复版,在23年6月份发布,主要就是修复了一些高危漏洞,但开发版本已经更新到了1.3,本着尝鲜的原则NianSir也是很快的就更新到了最新版本(更新方法应该不用多说,找到这篇文章的同志们应该都是已经完成了更新) 什么?你说你还不会更新?行吧,那就简单说说:Typecho升级备份好数据;下载最新版Typecho压缩包,解压后重新打包 install.php、index.php、/var/整个文件夹、/admin/整个文件夹 ;到你的站点目录下解压这个新的压缩包覆盖替换这些内容(千万不要打包/usr/文件夹,一换一个不吱声); 完成这些工作后,重新访问后台(什么?你的后台进不去一堆PHP报错?新版本的PHP要求 ≥ 7.2,记得改好PHP版本再来),然后会有个提示确认更新Typecho的页面,选择确定更新后即可,如果你的站点启用了不支持高版本PHP的插件进入前台也是大概率一堆报错或者直接500错误,这个时候建议在后台全部禁用插件,主题换默认主题,然后再一个一个启用并观察前台是否报错,找出能用的插件,其他基本可以删掉了,其他问题常见的话网上也有很多大佬有给出解决方案,多找找就好。解决Joe修改版中的permalink无法获取 扯了这么多题外话,该言归正传了,我遇到的问题就是升级到Typecho开发版1.3之后因为要换高版本PHP,干脆就直接换成了PHP8.1,再搭配上Joe主题(在此之前我一直使用小灯泡设计的splity主题,也是很不错的,就是单调了点,再加上splity主题原作者也很久不咕咕了,干脆就换个新的花哨点的主题)的修改版本,因为Joe官方主题在22年就停更了,而且很多资源都是用外链方式引入,很多资源也炸了,后来热爱Joe的粉丝团体有大佬做了进一步的优化和修正,就出来了现在的Joe修改版1.2.1,作者也在Github开源了,大家喜欢的话也可以去支持一下:https://github.com/jd82k/Joe/独立页面的链接修复 但是在换上这个主题之后,我发现导航顶端的独立页面和侧边栏开启的随机文章推荐都出现了报错,问题都是Array中没有定义['permalink'],导致这两个地方a链接的href指向地址都无法获取,二话不说直接去看主题的源代码,根据第一个报错信息——独立页面的报错信息可以确定问题出在/usr/themes/Joe/module/header.php的第90行,通过查看这个文件的源代码可以看到第90行是这样的:<a class="item <?php echo $this->is('page', $item['slug']) ? 'active' : '' ?>" href="<?php echo $item['permalink'] ?>" title="<?php echo $item['title'] ?>"><?php echo $item['title'] ?></a> 我们发现其中的问题就出在href通过 <?php echo $item['permalink'] ?> 来获取,接下来我们使用print_r来打印一下 $item 的内容,发现item中并没有permalink这一项,但是能找到slug也就是URL中使用的缩略名,于是解决这个地方的问题就很简单,只需要我们手动构造permalink即可,于是我把href的内容修改为:<?php echo $this->options->siteUrl().$item['slug'].'.html' ?> 成功解决独立页面永久链接问题,这里其实在第一次修改的时候我发现href会默认补齐当前的路径地址,所以一开始我并没有添加 $this->options->siteUrl() 这一部分,后来测试的时候发现如果进入了站点子目录或者不在首页URL下这个生成的地址就会出错,于是去查阅Typecho开发文档发现有这么一个方法可以获取到站点链接。热门文章的链接修复 接下来就是解决第二个地方的报错了——PC侧边栏的随机文章推荐。同样根据报错信息可以知道问题出在/usr/themes/Joe/public目录下的 function.php ,这是个纯PHP函数文件,大概在297行左右,热门文章获取函数中,我们可以看到代码是这样实现的:/* 获取侧边栏作者随机文章 */ function getAsideAuthorNav() { if (\Helper::options()->JAside_Author_Nav && \Helper::options()->JAside_Author_Nav !== "off") { $limit = \Helper::options()->JAside_Author_Nav; $db = \Typecho_Db::get(); $prefix = $db->getPrefix(); $sql = "SELECT * FROM `contents` WHERE cid >= (SELECT floor( RAND() * ((SELECT MAX(cid) FROM `contents`)-(SELECT MIN(cid) FROM `contents`)) + (SELECT MIN(cid) FROM `contents`))) and type='post' and status='publish' and (password is NULL or password='') ORDER BY cid LIMIT $limit"; $result = $db->query($sql); if ($result instanceof \Traversable) { foreach ($result as $item) { $item = \Typecho_Widget::widget('Widget_Abstract_Contents')->push($item); $title = htmlspecialchars($item['title']); $permalink = $item['permalink']; echo "<li class='item'><a class='link' href='' title=''></a>...</li>"; } } } } 在这段代码中随机获取文章实际上是通过查询数据库返回对应的数据条目,同样使用print_r打印一下 $item 中的内容,同样是没有permalink键,打开数据库管理工具,查看一下数据表的内容和结构: 发现在文章数据表中能够直接使用的项只有cid、title、文章slug,并没有所属分类信息,再次检查其他数据表,最终在表relationships中找到了cid对应的mid: 同样在表metas中能够找到mid对应的类别slug: 因为我的永久链接样式在后台是这样设置的: 所以我的文章具体链接不能够仅仅只根据文章slug组合出链接,而是还需要在中间加入类别的slug,因此我们在这个方法中加入一个sql查询,根据文章cid查询出文章所在类别的slug,最后再组合:修改代码 $permalink = $item['permalink']; 为以下内容:$cid = $item['cid']; // 根据 cid 值查询对应的 mid 值 $mid = $db->fetchRow($db->select('mid')->from('table.relationships')->where('cid = ?', $cid)); // 根据 mid 值查询对应的类别 slug 值 $classSlug = $db->fetchRow($db->select('slug')->from('table.metas')->where('mid = ?', $mid['mid'])); // 构建完整的 URL $permalink = \Helper::options()->siteUrl.'/'.$classSlug['slug'].'/'.$item['slug'].'.html' ?? ''; 与之前修改独立页面地址的方法不同的是,在独立页面地址组合的时候我们使用的是 $this 来获取对应属性,但这是个纯PHP函数文件而非主题文件,没有产生 $this 对象,所以不能使用这个方法,在查看其他代码的时候发现可以使用 \Helper::options()->siteUrl; 实现在其他文件中获取,于是就使用这个方案了,保存代码刷新首页,在首页和子类页面中查看热门文章链接均正常,修复完成!修复“那年今天”模块 那年今天模块是Joe自带的模块,部分插件/其他模板也会加入这个模块,但代码实现原理可能不相同,所以如果不是Joe主题的这个模块还需要根据具体报错情况分析解决。 通过观察报错问题,可以发现这次出现了两个问题,一个是和上面一样的permalink无法获取,这里解决方案和第二个修复一样,还有一个问题就是时间日期获取失败,同样是在结构中无定义,问题出在文件/usr/themes/Joe/module/aside.php大概64行的位置if ($result instanceof Traversable) { foreach ($result as $item) { $item = Typecho_Widget::widget('Widget_Abstract_Contents')->push($item); $historyTodaylist[] = array( "title" => htmlspecialchars($item['title']), "permalink" => $item['permalink'], "date" => $item['year'] . ' ' . $item['month'] . '/' . $item['day'] ); } } 因为我们已经知道了在数据表中已经没有了直接的时间记录,而是 created 和 modified 字段,一般将created(发布时间)作为展示的时间,所以获取这个时间戳转换成标准的年月日格式再赋值给data即可:if ($result instanceof Traversable) { foreach ($result as $item) { $item = Typecho_Widget::widget('Widget_Abstract_Contents')->push($item); $cid = $item['cid']; // 根据 cid 值查询对应的 mid 值 $mid = $db->fetchRow($db->select('mid')->from('table.relationships')->where('cid = ?', $cid)); // 根据 mid 值查询对应的类别 slug 值 $classSlug = $db->fetchRow($db->select('slug')->from('table.metas')->where('mid = ?', $mid['mid'])); // 构建完整的 URL $permalink = $this->options->siteUrl.'/'.$classSlug['slug'].'/'.$item['slug'].'.html' ?? ''; $historyTodaylist[] = array( "title" => htmlspecialchars($item['title']), "permalink" => $permalink, "date" => date('Y-m-d', $item['created']) ); } }最后访问首页/其他页面观察侧边栏的“那年今天”模块,正常显示,修复完成!其他问题
2024年05月16日
98 阅读
0 评论
6 点赞
2024-05-14
通过Saas方式免费使用CNAME接入CloudFlare加速你的网站
1·前言: 好久没咕文章了,近来正好在研究海外服务器搭建的站点加速访问方案,虽然说当今各服务商大厂竞争激烈,国内CDN个人使用成本也是极低的,尤其是对于NianSir这样的小站长来说,几乎是可以白嫖的,但这有一个前提——那就是需要备案域名。 并不是说备案域名很麻烦,而是站点已经上线运营状态,再接入备案可能要耽搁一段时间,再者就是一些域名后缀也不支持备案,这样我们基本就可以不考虑国内CDN加速方案了,但海外/亚太加速方案成本较高,现在CloudFlare第三方代理平台也停止了纯CNAME接入域名的方式了(早期CloudFlare的代理商方案可以免费CNMAE接入域名,不需要改DNS服务器,但一两年前CloudFlare就取消这个策略了,但是以前已经接入的域名不受影响,还能继续用,只是不能新增了)。 目前NianSir大多数海外站点使用的加速方案是一家很不错的亚太CDN服务提供商——FarCDN,主要是价格很实惠,而且都是亚太节点加速,速度快、带宽也够,而且被攻击的流量不会计入套餐流量,如果各位站长朋友有需要可以留言给你发注册邀请码(违法站点/服务勿扰,谢谢),但海外路线还是选择CloudFlare毫无疑问,那么现在问题来了,我的新站不想用cloudflare的dns,但现在官方又不支持免费CNAME直接接入,难道这样就无解了吗?显然不是,CloudFlare格局不会这么小,对于免费用户如果想CNAME接入域名,CloudFlare提供了Saas,通过Saas可以免费实现CNAME接入,只不过需要一个“中转域名”,只需要将“中转域名”使用NS接入CloudFlare后设置Saas回源地址,再用想要CNAME接入的域名解析到这个“中转域名”上,就可以实现CNAME接入CloudFlare,理论可行,开始实践:2·准备工作:使用Saas免费CNAME方式接入CloudFlare需要使用到一下工具/材料:“中转域名”(使用NS接入):用于NS接入CloudFlare的域名,可以是一个不用的闲置域名,但是一定不能是待会要CNAME接入的域名,这个域名开启Saas服务后相当于是你的专属CNAME接入地址,建议注册一个便宜的域名,到期后可以低价续费/抛弃换新域名需要CNAME接入的域名:比如blog.niansir.com,这个域名待会可以直接CNAME接入CloudFlareCloudFlare账户:可以直接在官网操作,也可以在代理商面板操作外币卡/已绑卡的PayPal(CloudFlare已绑定支付方式的可以忽略):Saas功能需要绑定支付方式后开通使用,功能是免费的(免费100条SAAS主机记录,超过后才要付费0.1美元/条,对于我们普通玩家来说免费的足够用)没有外币卡推荐直接用PayPal绑定,不限地区,PayPal只要绑卡了就行,随便是外币卡还是银联卡,如果你的账户没有绑定过支付方式,待会可能要支付1美元用于验证支付方式,验证后会退还3·步骤:第一步——将“中转域名”通过NS接入CloudFlare先在CloudFlare添加你的“中转域名”,选择NS接入(DNS完全接入)进入你选择的“中转域名”注册商的管理平台,修改域名的DNS服务器到CloudFlare一般CloudFlare免费账户的DNS地址是下面两个:接入方式DNS服务器地址NSnia.ns.cloudflare.comNSburt.ns.cloudflare.com修改完后等待生效,生效后CloudFlare会发送一封通知邮件,接下来就可进入第二步了第二步——开启Saas服务并配置源站 如果你的CloudFlare没有开启过Saas,那就随便点击一个已经接入的域名管理页面,在导航栏"SSL/TLS -> 自定义主机名"(在部分代理面板直接在导航栏就能找到Saas),点击开启后即可使用,如果你的账户开启过CloudFlare Saas服务,则功能默认开启,无需再次启用 开启后进入Saas/自定义主机名页面,填写回退源(这个二级域名需要在CloudFlare解析到源站IP,并且开启代理,也就是启用CDN加速) 回退源一栏填写你的“中转域名”的一个二级域名,名称想怎么取随便,好记就行,待会CNAME接入的时候地址填的就是这个地址第三步——将域名CNAME接入CloudFlare填写完后添加自定义主机名(上面第二步那个按钮) 在主机名栏填写你需要CNAME接入的域名,其他保持默认即可,接下来设置页面会显示要求添加两条TXT记录,一条用于域名验证,一条用于SSL证书验证,在DNS服务商解析完毕 完成上面步骤后,到你需要CNAME接入的域名解析商管理平台,添加CNAME解析,目标地址就是刚刚设置的自定义主机名,接下来就可以体验CloudFlare CDN服务啦!4·结语 总的来说,通过CloudFlare Saas服务可以免费通过CNAME方式接入CloudFlare CDN,但缺点也是显而易见的,一个主域名回退源只能设置一个,也就是只能设置一个源服务器IP,对于不同服务器的站点则需要更多的“中转域名”帮助其接入服务,成本自然就会有所上升,再者就是如果“中转域名”续费价格较高,则还需每年更换“中转域名”,维护繁琐,但毕竟免费,那还要啥自行车,喜欢折腾的朋友可以试试。最后,感谢各位佬们阅读本文章,感谢各位朋友一直以来的支持,如果文章存在任何错误或不懂的地方,欢迎留言指正~(Tip:NianSir也有自己的公众号喔,微信搜索“NianSir年先生”或者搜索微信号niansirblog即可关注,感谢支持!)高阶教程预告:未来更新CloudFlare的高阶玩法——CloudFlare优选IP,实现最优的国内CloudFlare体验!感兴趣的朋友不要错过喔~
2024年05月14日
180 阅读
0 评论
4 点赞
2024-04-02
记一次七日杀(7Days to die)游戏服务器搭建及联机问题和解决方案
前言 近日一直苦恼于找几个好哥们一起happy,无奈电子ed根本不想碰瓦罗兰特CS2这类游戏,于是在Steam库中找找可玩性比较高又能联机,成本又比较低的游戏整个服务器来玩玩,于是——我就选择了七日杀(7 Days To Die)主要的理由如下: 可玩性高,生态好:支持MOD,可以扩展更多有趣玩法,且基础玩法也不赖,更新历史悠久,现在已经更新到了A21版本。 可联机:支持自己假设服务器拉好基友一起联机happy。 低价:史低只要19块,在CDKEYPlus购买无需等到大促日常也只需要18多一点,大学牲完全可以接受。(什么?你也想去买?地址丢这里了:https://www.cdkey.plus ) 话不多说直接开搞,先去看看有没有可以直接上手的面板服,去搜了一下,比较出名的就布丁服务器了,啥配置不清楚,只知道1个月100块入门直接把我劝退,这还开个集贸啊,倒也不是一个月一百付不起,而是自己搭建更有性价比[/手动滑稽]。 提前声明一下,这篇文章主要是对开服过程中遇到的坑点记录,不是完整的开服教程,需要完整的开服教程可以自行查阅其他优质博主的文章,当然如果没有解决你也可以留言我后期也出一篇。 开服探索-Linux篇 看了一下网上的文章,关于搭建七日杀服务器的教程大多直接让你登录Steam客户端下载服务端,这个方法确实简便,但是这样的方法只适合本机开服(so?那我干嘛不直接开房间联机呢?)所以直接ban掉这个方案,剩下的大多就是在云服务器开服或者Docker(实际上也是服务器咯),优先性能考虑,直接自信选择了Linux,用的4核16G的轻量,CPU是Intel铂金,直接安排上Cenos7.x,为了方便改文件等等一系列操作,还是先装上了个宝塔面板,捣鼓好了后也是直接安排上steamcmd,下载就没什么好说的了,七日杀服务端有16G左右,等个十几二十分钟服务端下载好了后也是兴冲冲的开始跑运行脚本了,结果直接报错,进程闪退,去查阅资料说什么七日杀服务器只支持Cenos8以上,虽然很不爽,但是还是乖乖的再重装Cenos8化了个把小时重试了一遍,结果好家伙直接一堆不支持和报错(Cenos8很多的库的停止支持了,装不上),退一步越想越气,干脆直接按照CSDN一博主分享的Ubuntu 22.x版本系统再花个把小时重新操作了一波,结果开服的时候还是GG了,这里贴一张运行开服脚本的图: 去检查了一下进程,仍然是没有启动成功,另外补充一下可能有些找到此篇文章的友友们是进来找Linux开服遇到的坑的,那就这里也顺便提一下我在Linux测试的时候安装steamcmd运行环境遇到的问题:大部分系统都需要手动安装,使用以下指令:# Ubuntu 或 Debian $ sudo apt-get update $ sudo apt-get upgrade # CentOS $ yum update -y $ yum upgrade -y(俺也不懂Linux,只知道经常要update,可能类似刷新吧,建议仔阅读steamcmd开发者文档,里面有更详细的指令和说明:developer.valvesoftware.com)然后就是安装环境依赖了# Ubuntu $ sudo apt-get install glibc.i686 libstdc++i686 -y # CentOS $ yum install glibc.i686 libstdc++i686 -y看上去就是游戏要使用的c++库了,按理说只要这一步安装成功了后面服务器启动就是正常的,但是很遗憾我的没有成功(可能我没注意其实我用这个指令的时候没有安装上)总之就是在Linux平台的折腾有三四遍最后都没成功,查阅了很多文章和帖子,发现对于这块的记录实在是太少了,然后就转战Windows Server系统了。 开服探索-Windows篇 经过头大的Linux折腾后,还是回到了熟悉的Windows,仍然是使用steamcmd客户端,匿名登陆服务器后直接下载七日杀服务端,下载好配置文件改好后直接运行,脚本提示服务器已运行,可以关闭脚本窗口了,但是检查进程时没有找到七日杀服务器,所以还是失败了,这应该是我最头大的时候了,此时已经折腾七日杀开服快两天了(要上课wu...)甚至一度准备放弃了直接房间联机或者淘宝找个低价一点的成品拿来用,但是我怎么能辜负这近乎两天的努力呢?咬咬牙,继续找解决方案,网上找到的博主基本都没有说明Windows使用steamcmd开服需要安装其他依赖库,最后还是在b站刷了几个视频才找到了关键点,是缺失C++库导致的,需要Microsoft Visual C++ 2015-2022这个库!!!(相关资源已经打包发在留言区了)安装好这个库后,服务端就可成功运行了,但是中途还会报很多黄色日志,其中会出现一些“CA”、“certificate”这样的词汇,这个就是电脑证书库缺少了几个亚马逊的CA证书导致的,我们只需要在电脑上安装一遍即可(打包发在了留言区)接下来服务器就可以看到舒心的满屏绿日志了。还有一个奇怪的问题,就是云服务商如果是设置了安全组(默认很多端口都不开放)的情况下,我们还要去开放全部端口(UDP),即便在配置文件设置了指定端口也不行,不知道为什么,如果有懂的大佬也欢迎指点一下,万分感谢!做好这些之后,你就可以喊上你的好基友一起加入happy了! 联机问题-EAC小蓝熊加载过慢/卡住 这个问题也是在联机时才发现的少数问题,几个哥们里只有一个哥们七日杀加载在EAC界面的时候速度奇慢无比,能卡住几十分钟才进去,而且进入服务器的时候还显示EAC未加载被踢出去(我的服务器开了EAC反作弊)好在这个问题早有成熟的解决方案,根本的直接手改host文件就没啥好说的了,维护太麻烦,这里直接使用一大佬写的工具:UsbEAm Hosts Editor官地方址:Dogfight360 – 羽翼城个人博客(资源文件也打包了一份在留言区)下载好解压后打开软件(管理员运行)选择EAC加速A/B后,点击延迟检测,检测完成后选中最上面的一个(延迟最低)后点击应用选中,操作完A、B后就可以关闭了 好了,主要的内容和坑基本也填完了,大致遇到的问题就这些,如果还有啥奇葩问题也欢迎留言吐槽,最后,感谢各位友友的支持!
2024年04月02日
1,076 阅读
1 评论
7 点赞
2023-05-23
【Windows系统激活】利用KMS服务器为你的Windows专业版激活
相信大家找到这篇文章的原因都一样,自己的电脑安装的是家庭版系统,家庭版系统在我们日常使用时会受到很多功能限制导致工作使用受影响,想升级获取一些受限功能,那么具体那些场景会受限呢? # Windows 家庭版和专业版的区别 首先,两者面向的用户不同,如果你是家庭用户,个人使用,Windows 10 家庭版就可以满足计算需求。如果你需要复杂的功能(如网络域或管理多台计算机(如小型办公室)上的组策略的功能),Windows 10 专业版具有这些高级功能,可使管理变得简单且集中。此外专业版还具有分配的访问权限、动态资源调配、Windows Update for Business、共享电脑配置等额外功能。 我们可以通过对比Windows 11 家庭版和专业版系统的部分功能/支持明显看出: 功能特性 Windows 11 家庭版 Windows 11 专业版 Hyper-V虚拟化 × 不支持 √ 完全支持 远程桌面 仅客户端 √ 完全支持 Windows信息保护(WIP) × 不支持 √ 完全支持 组策略 × 不支持 √ 完全支持 Windows Update for Business × 不支持 √ 完全支持 最大CPU / 内核数 支持 1 / 64 2 / 128 指派访问 × 不支持 √ 完全支持 移动设备管理(MDM) × 不支持 √ 完全支持 当然除此之外还有很多,具体感兴趣可以去查阅相关支持文档,此处不再赘述。 # 将Windows家庭版升级成Windows专业版 全新装机的话,直接U盘安装Windows专业版即可,但大多数情况下,我们的电脑已经安装了Windows家庭版并且已经使用了一段时间,如果这个时候重装系统数据怕丢失损坏,但是又需要使用Windows专业版的功能,这个时候也很简单,我们只需要找到对应版本的产品秘钥即可,如Windows 11 专业版的产品秘钥之一:TFP9Y-VCY3P-VVH3T-8XXCC-MF4YK(非Windows11用户直接去网上找自己想要的对应版本就行,有很多) 我们在“设置”->“更新和安全”->“更改产品秘钥”(不同版本可能步骤略有不同),输入你需要升级的产品秘钥,这里大概率出现报错,提示无效,我们只需要关闭网络再更改即可成功(如果还是不行请更换产品秘钥重试)。接下来就是升级操作,离线升级完成并重启后,我们就可以开启网络了,这个时候我们会发现系统提示未激活。 # KMS激活Windows 专业/其他高级版本系统 接下来就是最后一步了——激活系统(此处的kms激活方案不仅可以激活专业版,其他如专业工作站版企业版也可以),我们打开CMD命令提示符窗口(管理员运行),依次输入以下指令:①更改激活码(根据所需系统更改,此处为win10/11使用的激活码)KMS激活码列表:点击前往:slmgr.vbs /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX②设置KMS主机(此处使用kms.niansir.com主机演示):slmgr.vbs /skms kms.niansir.com③KMS激活:slmgr.vbs /ato④查询到期时间(验证):slmgr.vbs /xpr【注意】KMS激活方案仅90天期限,但会进行自动续期,因此只要KMS服务器正常工作,你的系统激活就是永久有效,当然,这里你可以选择一些更靠谱的KMS服务提供商(请注意本方案仅适合在国内使用,海外主机请不要尝试!!!)来保障你的无忧使用,当然KMS主机可以随时更改,发现失效后直接换个即可,不影响使用。 好了,本次的教程到这里就结束了,特别声明一点:该方法仅做学习分享,请不要将此方案用于商业用途,相关责任违者承担!当然,如果喜欢NianSir的文章也欢迎点点关注(博客底部有微信二维码),注入更多动力!
2023年05月23日
765 阅读
1 评论
2 点赞
2023-03-26
【ChatGPT】一个有趣的人工智能对话引擎
ChatGPT 是OpenAI 于11月发布的 AI 聊天机器人系统,用于展示和测试一个非常庞大、强大的 AI 系统可以完成的任务。您可以向它提出无数问题,而且通常会得到有用的答案。 例如,您可以向它提出百科全书问题,例如“解释牛顿运动定律”;你可以要求它,“给我写一首诗”;可以要求它编写一个计算机程序,它会告诉你所有不同的方法... 但问题是ChatGPT并不完全知道任何事情。它是一个通过从互联网上获取的大量文本并且经过训练的人工智能模式,然后在人工协助下进一步训练以提供更有用更好的对话。 你得到的答案可能听起来似是而非,又或者是权威的,但正如 OpenAI 警告的那样,它们很可能是完全错误的 多年来,聊天机器人一直是很多企业公司兴趣的工具,目的是用来帮助客户获得他们需要的东西,以及人工智能研究人员试图解决图灵测试。
2023年03月26日
439 阅读
0 评论
0 点赞
1
2
3