codesun 发布的文章

协议栈源端口选择性能衰减问题

0x00 问题描述

这是前阵子发现的一个问题,当时我正在写一个简单的http benchmark工具,具体简单到什么程度呢?就是创建一堆socket,去connect目标服务器。

接下来,问题就出现了,我发现1w并发链接和2w并发连接的耗时完全无线性关系,而是呈现一种近指数上升的趋势。例如,1w并发链接建连1w次,耗时不到1s,如果改为2w并发链接,建连2w次,耗时突然变成了10+s。

阅读剩余部分
使用siri控制服务器开关的方案

从某种程度上来说,我是一个懒人,智能音箱在很大程度上满足了本人“懒”的需求。无奈的事,依旧有很多电器无法接入智能音箱的生态,比如服务器。

关于服务器的远程开关,尝试了很多方案,演化大致如下:从开始的WOL,到后来的ipmi,以及本文的homebridge方案。

严格来说,homebridge是一个转接平台,能作为一个主控让无法直接支持homekit的设备接入apple的生态,大致如下图。

+--------+     +------------+     +---------+
| iphone |-----| Homebridge |-----| Homekit |
+--------+     +------------+     +---------+

本文并不涉及homekit API以及IPMI协议细节的分析,只分享方案。

阅读剩余部分
关于SNAT在bridge中不生效的问题

本周在协助验证一套虚拟网络的方案,该方案包含一个bridge,向上对接容器的veth,并接管真实NIC作为tx口,方案中需要在bridge中做SNAT,具体hook点位于POST_ROUTING,命令如下:

iptables -t nat -A POSTROUTING -d 192.168.0.0/24 -j SNAT --to-source 192.168.0.5
阅读剩余部分
Wake-On-Lan程序解析

组装好NAS之后,我一直在考虑如何让其实现定时开机与关机,其中后者可以通过cron或者systemd-timer轻松解决,问题是开机,想到的方案主要有2个:

  1. 在机箱内安装一块Arduino/ESP开发板,配合时钟模块和锂电,定时接通PWR。
  2. 依靠网卡唤醒,也就是WOL(Wake-On-Lan),通过路由器实现定时唤醒(OpenWRT)。

对于我个人而言,2个方案都可以实现,但后者显然耗时更少,近期忙着毕业,没法抽出大段时间折腾。在编写LuCI插件过程中遇到了一点麻烦,单纯的cbi无法满足需求,所有这部分内容只能滞后了。

阅读剩余部分