九维我操你爹
今晚上应该能睡个很好的觉~
虽然现在所处的地方要啥没啥、要信号没信号;但居然收到了好久没联系的语伴的消息,这倒反而衬出了几分幸福感,叫人忘记了生活上的不便
我在国内共享单车都是用美团和青桔,主要就是因为哈啰单车的收费方式太傻逼,坑过我钱

结果今天也遇到美团的一个 bug:月卡有有效城市区分。当我在北京的月卡处于自动续费状态的时候,来到新的城市不会显示任何购买新月卡的入口

尝试过无数方式都绕不过这个问题以后稍微冷静分析了一下,试着取消自动续费以后发现果然就能买其他城市的畅骑卡了……
我爸专门去买的五仁月饼,结果吃的时候发现居然是冬瓜馅的。仔细一看原来是“五仁风味月饼”
好像现在年轻人普遍不喜欢吃伍仁馅的月饼来着,我倒是越长大越喜欢吃伍仁月饼了……
而且特别是加了青红丝的月饼,我今年已经回购两回了
有时候就觉得我的性格和生活习惯和一般 Y 世代的人差得挺远的……
苹果测试工程师的日常
非常熟练地进入了 rescue 模式…… 非常熟练地敲完一段魔法咒语…… 啊,大家假期快乐
修好了……

今天 grub 是怎么炸的呢?当时我刚刚写好一个 upgrade.sh 脚本,打算执行当前目录的这个脚本
结果我敲下 upg 以后 tab 自动补全出来的是一个命令: upgrade-from-grub-legacy ,并不是我想要的文件路径。但是一直到我敲下回车发现输出不对,才发现这个问题
下意识的赶紧 ctrl+C 了(其实就是这个动作导致 grub 炸了)。之后服务器看起来貌似一切正常,我匆忙完成剩下的操作,保存好所有服务器上的重要文件,重启了下服务器试试,果然就开不了机了

在 rescue 模式下研究了下这个 upgrade-from-grub-legacy ,其实就是一段脚本,感觉重新执行一下就好了。但是要注意还得重新配置下 grub(第二遍进 rescue 就是为了补上这个)。根据环境启动模式不同命令也不一样,像我这里是 legacy BIOS 启动的系统,就是 dpkg-reconfigure grub-pc

讲道理这次翻车翻得也太冤了……
非常熟练地进入了 rescue 模式……
非常熟练地敲完一段魔法咒语……
啊,大家假期快乐
苹果测试工程师的日常
今天有个需求是在防火墙上屏蔽一个指定地理范围的 IP,因为归属一个地区的 IP 列表总是在变化的,所以需要能在防火墙上实时更新规则 #ipset #iptables 虽然是已经该弃用的技术,但为了实现尽可能最大的兼容性还是尝试用它们实现了上面的需求 出乎意料的是,好像从来没有人提出过下面这些问题(至少我怎么都没搜索到)。干脆就自己动手测试出了答案,这里分享给大家: Q1: 使用 ipset 维护需要匹配的 IP 地址片段,当更新 ipset 时,真的需要重新加载 iptables 规则吗? (Refer…
先来说下为什么会有这么扭曲的配置:
1. 为什么要把容器配置成主机网络,再去在 DOCKER-USER CHAIN 上添加防火墙规则?
因为以默认的网桥模式运行的话,容器就看不到传入连接的真实 IP 了。为了尽可能保证安全,容器实际上是通过 ports 的「长语法」模式,只在监听的端口上配置的主机网络模式。而且针对 sysctl/capabilities/user 都做了限制

---

然后说下我觉得还挺得意的设计:
iptables 的规则是通过一个脚本配置的,脚本实现了幂等性所以可以随时中断、重新执行

而脚本是通过 drop-in 配置写进了 docker.service 的 ExecStartPre 参数的,完全避免了进一步依赖 iptables-save 这样的工具去实现规则持久化;并且这也确保了在 docker 容器启动时防火墙规则一定已经就绪了

实现上面这套巧思几乎穷尽了我对 systemd 等工具的全部了解,我觉得把这些平时很少用到但其实很使用的参数和技巧分享出来会很有意思,希望有帮助到你 ;-)
今天有个需求是在防火墙上屏蔽一个指定地理范围的 IP,因为归属一个地区的 IP 列表总是在变化的,所以需要能在防火墙上实时更新规则
#ipset #iptables 虽然是已经该弃用的技术,但为了实现尽可能最大的兼容性还是尝试用它们实现了上面的需求
出乎意料的是,好像从来没有人提出过下面这些问题(至少我怎么都没搜索到)。干脆就自己动手测试出了答案,这里分享给大家:

Q1: 使用 ipset 维护需要匹配的 IP 地址片段,当更新 ipset 时,真的需要重新加载 iptables 规则吗?
(Refer to: https://unix.stackexchange.com/questions/596215/how-to-block-china-and-keep-it-blocking-after-reboot-having-problems-in-impleme)
A1: 没有必要,对 ipset 的修改会实时反应在防火墙上。无论是新增一条记录还是删除一条记录都是如此。

Q2: 如果一个容器的网络类型被设置为 host(`network: host`),在 DOCKER-USER CHAIN 上添加的规则会对该容器生效吗?
A2: 不要想得太复杂,会生效。
Back to Top