无显示输出时重启 Linux

今天调试 PVE 的防火墙时玩脱了,之前开启的 SSH 因为网络问题断开了,没开个新的就在 WebUI 上把 Firewall 开启。

直接键盘显示器连上主机发现没有显示输出,狂按键盘 Ctrl + Alt + Del 居然触发了重启。安全关机也算救了回来吧。

回来后按 Proxmox VE Firewall 说明在集群防火墙页面添加一个名为 management 的 IPSet 就能避免以后被拦在外面了。

PVE Firewall 阻拦了 ICMPv6 响应

开启 PVE Host 的防火墙后,发现个奇怪的现象。从 PVE 向外 ping 没问题,但从外向内 ping 就被阻拦。

ip6tables -nvL --line-numbers
Chain PVEFW-HOST-IN (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  lo     *       ::/0                 ::/0
   50 11883 DROP       all  --  *      *       ::/0                 ::/0                 ctstate INVALID
    0     0 ACCEPT     all  --  *      *       ::/0                 ::/0                 ctstate RELATED,ESTABLISHED
    0     0 RETURN     ipv6-icmp --  *      *       ::/0                 ::/0                 ipv6-icmptype 133
   20  2560 RETURN     ipv6-icmp --  *      *       ::/0                 ::/0                 ipv6-icmptype 134
    1    72 RETURN     ipv6-icmp --  *      *       ::/0                 ::/0                 ipv6-icmptype 135
    0     0 RETURN     ipv6-icmp --  *      *       ::/0                 ::/0                 ipv6-icmptype 136
    0     0 RETURN     2    --  *      *       ::/0                 ::/0
    0     0 RETURN     tcp  --  *      *       ::/0                 ::/0                 match-set PVEFW-0-management-v6 src tcp dpt:22
    0     0 RETURN     ipv6-icmp --  *      *       ::/0                 ::/0                 match-set PVEFW-0-management-v6 src ipv6-icmptype 128
    0     0 RETURN     ipv6-icmp --  *      *       ::/0                 ::/0                 match-set PVEFW-0-management-v6 src ipv6-icmptype 133
    0     0 RETURN     ipv6-icmp --  *      *       ::/0                 ::/0                 match-set PVEFW-0-management-v6 src ipv6-icmptype 134
    0     0 RETURN     ipv6-icmp --  *      *       ::/0                 ::/0                 match-set PVEFW-0-management-v6 src ipv6-icmptype 135
    0     0 RETURN     ipv6-icmp --  *      *       ::/0                 ::/0                 match-set PVEFW-0-management-v6 src ipv6-icmptype 136
    0     0 RETURN     tcp  --  *      *       ::/0                 ::/0                 match-set PVEFW-0-management-v6 src tcp dpt:8006
    0     0 RETURN     tcp  --  *      *       ::/0                 ::/0                 match-set PVEFW-0-management-v6 src tcp dpts:5900:5999
    0     0 RETURN     tcp  --  *      *       ::/0                 ::/0                 match-set PVEFW-0-management-v6 src tcp dpt:3128
    0     0 RETURN     tcp  --  *      *       ::/0                 ::/0                 match-set PVEFW-0-management-v6 src tcp dpt:22
    0     0 RETURN     tcp  --  *      *       ::/0                 ::/0                 match-set PVEFW-0-management-v6 src tcp dpts:60000:60050
    2   152 RETURN     all  --  *      *       ::/0                 ::/0
    0     0            all  --  *      *       ::/0                 ::/0                 /* PVESIG:s8wIEvSJZJINuAc5Bit+Y6u/CaU */

通过对比开关前后的表现,定位到是 ctstate INVALID 这行拦截了 ICMPv6 返程。

也有人落下了相似的结论:

总之对于 PVE-Firewall 为什么把 -A PVEFW-HOST-IN -m conntrack --ctstate INVALID -j DROP 放在前面还是不得而知。

实际原因是 使用 MACVLAN 为主机同时分配静态 IP 并取得动态 IP 多网卡产生了回程非对称路由。最终我打算关掉 PVE 层的防火墙,让 Openwrt 来处理过滤。

Obsidian Linter 格式化斜体下划线和双引号时会添加前后空格

之前在 Obsidian Linter 设置过 Emphasis Style - Content Rules - Linter 的 ” 保持突出样式一致性 ” 为 underscore,想要和 * 粗体 * 使用的 asterisk 区分开。

但同时我又开启了 Space between Chinese Japanese or Korean and English or numbers -Spacing Rules - Linter 确保中日韩文与英文数字之间有一个空格,配置为 -+;:'"°%$)]

代代 “你好”

效果是只要在英文符号边上多了个空格,就会在两边都加上,从而破坏 Markdown 格式

  • "你好" " 你好 "
  • *你好 * * 你好 *

总之感觉是 bug。

把配置改为 -+;:'°%$)] 能缓解引号的问题,但下划线代表斜体还是有问题,只好继续用星号代表斜体了。

PVE 下的网桥应该关闭 multicast snooping

长久以来的问题和临时地解决方案终于有了结论:

echo 0 > /sys/devices/virtual/net/br0/bridge/multicast_snooping