GTX690战术核显卡导弹 - 2025年5月
type: channel
link: https://www.nekopara.uk/2025/05/
description: GTX690战术核显卡导弹的猫窝
items: 当网站遭遇DDoS：如何优雅地应对云服务器被封堵
items: 第一次体验开卷考试，太难了
items: 又白嫖！白嫖华为云1100代金券
items: 回首来时路：十年不过一场清醒的梦
items: 二次开发 Typecho 后台服务器状态查看插件
items: AlmaLinux 8 部署 Nextcloud 教程

当网站遭遇DDoS：如何优雅地应对云服务器被封堵
type: item
date: 2025-05-25T07:11:00+00:00
description: 网站被DDoS后制定解决方案很平常的一天，我在网站主题交流群里，发现有群友网站被打掉线了。刚刚给他发“贺电”，没过多久，我也收到了华为云发来的“贺电”：尊敬的(Rin):感谢您使用华为云产品，非常抱歉打扰您。在北京时间2025/05/22 20:33，华为云监测到您的弹性公网IP(EIP)实例 发生EIP封堵事件。 详情：节点：亚太-新加坡实例名称：119.8.?.?实例ID：88????e7-1??7-4??a-8??d-0??????????5告警描述：{"reason_zh": 尊敬的Rin：华为云DDoS防护服务在2025-05-22 20:33:05检测到您的EIP 119.8.?.? 异常流量已超过DDoS防护峰值触发封堵，封堵时带宽为 67 Gbps, 您服务器的访问将受到限制，24小时后系统将自动为您解封。您可登陆官网购买DDoS高防服务提升防护能力，保障服务器稳定运行。, "reason_en": Dear Rin: HUAWEI CLOUD Anti-DDoS Service detects that your EIP 119.8.?.? abnormal traffic has exceeded the DDoS protection peak at 2025-05-22 20:33:05 and triggers blocking. Bandwidth when blocking is 67 Gbps, Access to your server will be restricted, and the system will automatically unblock it for you after 24 hours. You can log in to the official website of HUAWEI CLOUD to purchase Advanced Anti-DDoS service to enhance protection capabilities and ensure stable server operation.}原因分析：尊敬的Rin：华为云DDoS防护服务在2025-05-22 20:33:05检测到您的EIP 119.8.?.? 异常流量已超过DDoS防护峰值触发封堵，封堵时带宽为 67 Gbps您服务器的访问将受到限制，24小时后系统将自动为您解封。您可登陆官网购买DDoS高防服务提升防护能力，保障服务器稳定运行。如有疑问，您可以登录华为云官网提交工单咨询，会有相应工程师为您核实查看。而且连着几个群友的网站都被攻击，甚至有人还被短信轰炸了，初步断定就是群里面有人搞鬼，但是没有证据抓现行，只能自己做好预案和防护了。由于DDoS攻击基本上都会被云服务器提供商黑洞IP，如果只有单台云服务器，这个真的无解。但是，我有不止一台机器，这可就有解决办法了。我的大体解决思路是这样的：配置服务器访问频率限制，防止高频恶意请求（CC攻击）耗尽服务器资源。设置主服务器定期备份内容到备用服务器。备用服务器部署检测，一分钟一次，判定主服务器状态，如果超过三次无响应，判定为被打挂了。判定打挂后，通过Cloudflare的API，设置域名的A记录IP地址为备用服务器IP地址，并开启Cloudflare的代理防护。当主服务器恢复后，自动将DNS记录切换回主服务器，然后将备份的内容还原到主服务器。接下来，让我们开始任务吧。这里说一下环境条件：目标操作系统为 Alpine Linux 3.20 ，LNMP环境都为系统默认设置安装的，备份的目标为Typecho博客。配置服务器访问频率限制虽然我一开始网站就已经做了缓存配置，是能抗高并发的，不至于像某些人的网站itdog网站测速一测就死。但是，如果是高频的请求，还是会耗尽带宽的资源，导致网络阻塞，访问变慢。所以，是时候配合iptables和内核设置来阻挡恶意请求了。首先是拉黑IP，平时注意留意服务器的网络负载，如果遇到有过高负载历史的时候，善于使用Nginx的日志进行IP追溯，拉黑恶意IP。拉黑命令如下：iptables -A INPUT -s 45.140.143.77 -j DROP iptables -A INPUT -s 106.15.224.186 -j DROP其次，就是设置单个IP的最大连接数，对超出的部分数据包进行丢弃处理（如果是拒绝处理，还是会回传数据包导致上行被占）。这里设置为20：iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 32 -j DROP iptables -A INPUT -p tcp --dpo…

第一次体验开卷考试，太难了
type: item
date: 2025-05-21T14:00:00+00:00
description: 今天也是第一次体验了大学的开卷考试，给你带书进考场翻。太难了，太难了，书都来不及翻。考试还直接考上课没讲过的，书上课只讲了三分之一，然后考试选择题部分考整本书，太过分了。(●･̆⍛･̆●)

又白嫖！白嫖华为云1100代金券
type: item
date: 2025-05-16T10:04:00+00:00
description: 华为云活动白嫖代金券记录前段时间华为云搞了个 云学堂「集证」有礼活动 最高可以得到两个1000块钱代金券。可惜我拉人能力不行，拉人的代金券只拿到了100的额度。但是，积分代金券直接干满了，拿了1000！虽然但是我对华为终端产品并不认可，但是华为云送钱这件事还是得好好夸夸。以后博客运营就靠华为云了！干满，干满，全部干满！！！一直白嫖一直爽，服务器2033年7月到期。虽然不是完全白嫖，因为活动需要1块钱购买认证，而且有一些代金券为了彻底用完自己还是垫付了一些，但是累计总花费不超过50，白嫖2024年9月-2033年7月将近9年的服务器，太香了！

回首来时路：十年不过一场清醒的梦
type: item
date: 2025-05-11T09:17:00+00:00
description: 2015年竟然是十年前，真是可怕2015年，感觉好像还很熟悉，在我看来好像不是很久，因为2015年那会，刚上初中，生活有了新的乐趣。但是，现在点开电脑时间栏一看，赫然写着2025而且已经条快过半，真是吓人。再想想自己现在已经大四，同届的同学已经准备要毕业了，大学也即将完结撒花。不知不觉居然已经过去十年了，十年时间弹指之间就飞过，感觉真的太快了，刚上初中，小学毕业，那些场景仍然历历在目，似乎不曾走远。到现在，生活给我的感受就是:人生就像一趟高速火车，只有始发站和终点站，没有停靠站，从发车开始就在不停的加速，不会慢下来，只会越来越快。终点站不会停车，只会狠狠的撞击过去，化作尘土，离开人间。最近确实是有点emo了，虽然不是很想在这么可爱的博客里面写下这些内容，但是这似乎也只是唯一合适的地方让我长篇大论的写下这些emo文字了。这篇文章应该不会有什么逻辑，都是想到什么写什么，就当作一篇倾诉了。那么，让我们开始吧。对时间流逝的感受我对于时间的感受，在小时候是没什么感觉的。在我上初中之前，我都感觉每一年无比的漫长，或许是没有什么可以玩的，可以消磨时间的东西，生活总觉得很慢。从现在回望小学时候的暑假，一个暑假仿佛是过了一两年的时间，因为太漫长了。而且，我小时候家里面管的也比较多，不允许我随意出门，只能自己呆家里。每次都只能隔着铁栅栏门看街道的小孩在外面玩，而铁栅栏门上赫然拴着一把包浆的挂锁。由于很多玩具我都已经玩腻了，一般都是积木啥的，所以，我小时候无聊就会倒腾别的东西——爷爷的工具箱。也正是如此，造就了我现在较强的动手能力和解决问题的能力。到了初中，家里面开始允许我自己骑单车去学校了。生活明显没有了小学时候的惬意——早上六点钟就要出门骑单车去学校了，这时候天还只是蒙蒙亮，街上没什么人，所以可以骑得很快。然后初中就需要晚自习了，每天晚上的时间也被学习占据。但是，我刚上初中那会，还是有完整双休的，现在想想还真是幸福啊。不过，也正因为有了自由度，生活也变得快乐了许多。可以跟同学在学校周边逛逛，晚上晚自习结束后和同学一边聊天一边骑单车回家，现在想想也是不错的回忆。“快乐的时间总是短暂的”，或许也是因为这个，也有可能是初中课业繁忙事情变多了，上初中后我明显感觉时间变快了。转眼就上高中了，高中就更快了，因为高中内宿了，宿舍，饭堂，教室，三点一线的学习生活，周末被剥削得只剩下一个下午，多少有点折磨。在受折磨的过程中，感觉时间确实变慢了。高一高二那会还真觉得时间相比于初中放慢了一点，特别是高二的寒假，遇到2020年的疫情，本来应该不到一个月的寒假硬生生放了五个月。第一次觉得假期如此漫长。但是，上了高三，快节奏等生活又让我感觉时间快了起来，而且比以往都要快。高考倒计时100天转瞬即逝，然后我高考还考砸了，去了末流211。其实如果按照模拟考的水平，我应该是能上中末流985而，但是，被物理试卷50条减速带留在了广西大山（然后上了大学，有了手机，电脑，游戏的助攻，外加希望获得好的成绩保研，在课程上也比较用功，时间简直飞快。刷的一下，大一结束，又刷的一下，大二结束，不知不觉现在大四也即将结束。虽然大学期间也拿了不少可喜的，含金量比较高的成果，但是现在回望想想，时间流逝的速度真的太可怕了。所以我现在真的感觉，时间流逝飞快，不好好抓住时间做自己想做的事情，过了机会就过了，再也没有了，人生可没有'Ctrl+Z'。虽然有一些我想做的事情事情，因为种种原因，一直没能做，也是一种遗憾了，但是为了更好的目标，有一些遗憾也是必要的牺牲。回望小学时代，真是个有趣的小孩时间：2009-2015小学的时候，我很喜欢观察。在我读小学期间，见证了这个学校基础设施的一点一点升级，并且熟记于心。虽然我也不知道我记得这些东西有什么用，现在回想可能是单纯为了好玩。例如，我能精确记住小学校园里面所有摄像头的位置，并且因为作为老师子女，可以随意进出保安室的监控室，所以也知道这些监控摄像头的拍摄范围。那时候摄像头还没有全覆盖的时候，我可以在不被摄像头拍到的情况下溜达一圈校园。当然，后面读五年级的时候学校全面升级了监控系统，基本上很多地方无死角，就做不到了。又如，因为自己在课余时间亲眼目睹了整个学校的基础设施部署，我能知道哪个配电箱是控制哪里的，监控摄像头的走线是什么样的，教室电脑还原卡的密码是多少，等等。对，没错，就是那么善于观察和记录，在同学里是神人一般的存在，特别是因为我会破开电脑还原卡后为所欲为安装游戏。总的来说小学还是挺惬意的，只是可惜因为家里面管的比较严，基本上回家就是被关监狱，在家自由度还没有学校多。要么就是带出去买东西，逛超市，或者丢在书店逼我看书，虽然我小学并不喜欢看书，现在也是。总之就是在学校以外的时间没办法和同龄人一起玩耍，不能和同学一起玩耍，这算是我小学时光最大的遗憾吧。但是也得益于…

二次开发 Typecho 后台服务器状态查看插件
type: item
date: 2025-05-08T09:38:00+00:00
description: 发现Typecho后台服务器状态插件在翻Typecho插件的时候，我偶然发现了两双筷子写的Typecho后台服务器状态查看插件，于是就尝试了一下下。这个插件在桌面端网页没问题，感觉还挺不错的。但是一旦变成移动端，后台的布局就会出现问题，逼死强迫症。而且，CPU利用率有时候还会变成0.9999999999%这种离谱的数据，我寻思着就不能取两位小数好看一点吗？于是，我决定，自己修改代码，把服务器信息移动到页面底部的位置，并且修改显示数据的逻辑，让信息看着更加舒适一点。（其实也不完全是我写，是面向LLM编程 X）修改代码的过程首先，需要把注册方法的地方改为页面底部Typecho_Plugin::factory('admin/footer.php')->begin = array('LinuxInfo_Plugin', 'render');然后就是修改一下插入的样式：echo <<<STR $info_str STR;因为我觉的系统信息用鼠标悬浮预览不明显，于是修改为直接独立一行把信息全部展示：return <<<SYS_INFO 服务器信息: 持续运行：{$uptime}，Web服务器：{$_SERVER['SERVER_SOFTWARE']}，PHP 版本：{$php['version']}，SAPI 接口：{$php['sapi']}，PHP内存限制：{$php['mem_max']}，上传文件限制：{$php['up_max']} SYS_INFO;以及让LLM帮忙完善了CPU信息获取的逻辑：private static function cpu_info(){ function GetCoreInformation() { $data = file('/proc/stat'); $cores = []; foreach( $data as $line ) { if( preg_match('/^cpu[0-9]/', $line) ) { $info = explode(' ', $line); $cores[] = [ 'user' => $info[1], 'nice' => $info[2], 'sys' => $info[3], 'idle' => $info[4], 'iowait' => $info[5], 'irq' => $info[6], 'softirq' => $info[7] ]; } } return $cores; } function GetCpuPercentages($stat1, $stat2) { if(count($stat1) !== count($stat2)){ return; } $cpus = []; for( $i = 0, $l = count($stat1); $i < $l; $i++) { $dif = []; $dif['user'] = $stat2[$i]['user'] - $stat1[$i]['user']; $dif['nice'] = $stat2[$i]['nice'] - $stat1[$i]['nice']; $dif['sys'] = $stat2[$i]['sys'] - $stat1[$i]['sys']; $dif['idle'] = $stat2[$i]['idle'] - $stat1[$i]['idle']; $dif['iowait'] = $stat2[$i]['iowait'] - $stat1[$i]['iowait']; $dif['irq'] = $stat2[$i]['irq'] - $stat1[$i]['irq']; $dif['softirq'] = $stat2[$i]['softirq'] - $stat1[$i]['softirq']; $total = array_sum($dif); $cpu = []; foreach($dif as $x=>$y) $cpu[$x] = round($y / $total * 100, 2); $cpus['CPU' . $i] = $cpu; } return $cpus; } $stat1 = GetCoreInformation(); sleep(1); $stat2 = GetCoreInformation(); $data = GetCpuPercentages($stat1, $stat2); $overall_cpu_usage = 0; $core_details = []; foreach ($data as $core => $usage) { $core_usage = 100 - $usage['idle']; $overall_cpu_u…

AlmaLinux 8 部署 Nextcloud 教程
type: item
date: 2025-05-07T04:40:00+00:00
description: AlamLinux 8.10 部署 LNMP 环境并安装 NextCloud如果说希望自己的手机可以有一个app自动同步照片到NAS，那NextCloud就是一个不错的选择。虽然服务端确实是臃肿了一些，但是如果只是拿来同步个照片问题不大。我前前后后折腾了一天，后面又在虚拟机上部署失败了四次，终于算摸索出来了。写一篇博客记录一下折腾过程，供日后参考。部署目标：目标操作系统：AlmaLinux8.10。使用Nginx作为Web服务器，MariaDB作为数据库，PHP作为后端部署Nextcloud。NextCloud本体放在/opt/nextcloud/目录下，数据文件存放在RAID1的硬盘目录/mnt/3T-RAID1/nextcloud_data/下。前置任务：安装LNMP环境NextCloud的运行依赖于Nginx(或者Apache)，MariaDB(或者MySQL)，PHP，这些软件一般是部署在Linux上，所以缩写为LNMP环境。如果是经常搞网站的，对这个环境应该挺熟悉的吧，不熟悉就是用宝塔用的（配置Nginx安装Nginx：yum install -y nginx创建Nginx配置文件/etc/nginx/conf.d/nextcloud.conf：upstream php-handler { server unix:/run/php-fpm/www.sock; } # Set the `immutable` cache control options only for assets with a cache busting `v` argument map $arg_v $asset_immutable { "" ""; default ", immutable"; } server { listen 80; listen [::]:80; server_name nextcloud.nekopara.uk; # Prevent nginx HTTP Server Detection server_tokens off; # Enforce HTTPS return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; # With NGinx >= 1.25.1 you should use this instead: # listen 443 ssl; # listen [::]:443 ssl; # http2 on; server_name nextcloud.nekopara.uk; # Path to the root of your installation root /opt/nextcloud; # Use Mozilla's guidelines for SSL/TLS settings # https://mozilla.github.io/server-side-tls/ssl-config-generator/ ssl_certificate /opt/certs/nekopara.uk.pem; ssl_certificate_key /opt/certs/nekopara.uk.key; # Prevent nginx HTTP Server Detection server_tokens off; # HSTS settings # WARNING: Only add the preload option once you read about # the consequences in https://hstspreload.org/. This option # will add the domain to a hardcoded list that is shipped # in all major browsers and getting removed from this list # could take several months. #add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; # set max upload size and increase upload timeout: client_max_body_size 512M; client_body_timeout 300s; fastcgi_buffers 64 4K; # Enable gzip but do not remove ET…