{"id":2517,"date":"2026-09-11T02:31:25","date_gmt":"2026-09-10T18:31:25","guid":{"rendered":"https:\/\/blog.cruciferslab.net\/?p=2517"},"modified":"2026-09-11T02:33:58","modified_gmt":"2026-09-10T18:33:58","slug":"%e8%99%9b%e9%a9%9a%e4%b8%80%e5%a0%b4","status":"publish","type":"post","link":"https:\/\/blog.cruciferslab.net\/?p=2517","title":{"rendered":"\u865b\u9a5a\u4e00\u5834\u2026\u2026"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u7d50\u8ad6\u5beb\u5728\u524d\u9762\uff1a2026 \u5e74 9 \u6708 11 \u65e5\u51cc\u6668\u5f80\u524d\u7b97\u5927\u7d04\u4e09\u5230\u56db\u500b\u6708\u5de6\u53f3\uff0c\u9019\u500b blog \u53ef\u80fd\u6703\u4e0d\u5b9a\u6642\u5c01\u9396\u67d0\u4e9b\u6d6e\u52d5 IP \u7684\u8a2a\u5ba2\uff0c\u7136\u5f8c\u53ef\u80fd\u53c8\u6703\u5ffd\u7136\u6062\u5fa9\u3002\u539f\u56e0\uff1a\u6211\u7684\u9632\u706b\u7246\u8a2d\u5b9a\u5beb\u932f\u4e86\u2026\u2026<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0d\u5c0f\u5fc3\u88ab\u5c01\u7684\u4eba\u61c9\u8a72\u6703\u770b\u5230\uff0c\u6211\u9019\u500b blog \u6709\u5b89\u88dd <a href=\"https:\/\/www.wordfence.com\/\" data-type=\"link\" data-id=\"https:\/\/www.wordfence.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Wordfence<\/a> \u9019\u500b\u5916\u639b\u4f86\u5e6b\u6211\u505a\u4e00\u4e9b\u57fa\u672c\u7684\u653b\u64ca\u9632\u8b77\uff1b\u7528\u7684\u662f\u514d\u8cbb\u7248\uff0c\u6240\u4ee5\u4e00\u4e9b\u529f\u80fd\u76f8\u5c0d\u967d\u6625\uff0c\u4f46\u9632\u90a3\u4e9b\u60f3\u8981\u4e82\u8a66\u7684\u767b\u5165\u8005\u61c9\u8a72\u662f\u7dbd\u7dbd\u6709\u9918\u4e86\uff1a\u6211\u9019\u500b blog \u53ea\u6709\u4e00\u500b\u767c\u6587\u5e33\u865f\uff0c\u5e33\u865f\u540d\u4e5f\u4e0d\u662f\u986f\u793a\u5728\u4e0a\u9762\u4f5c\u8005\u6b04\u7684\u90a3\u500b\u540d\u5b57\uff0c\u800c\u4e14\u6211\u9084\u958b\u4e86 Wordfence \u63d0\u4f9b\u7684 2FA \u9a57\u8b49\uff0c\u5c31\u7b97\u731c\u4e2d\u5e33\u865f\u4e5f\u4e0d\u6703\u6709 2FA \u9a57\u8b49\u78bc\u53ef\u4ee5\u6253\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7531\u65bc Wordfence \u5c0d\u65bc\u4e00\u4e9b\u653b\u64ca\u6703\u5c07\u5176 IP \u5c01\u9396\u4e00\u6bb5\u6642\u9593\uff0c\u6211\u6642\u4e0d\u6642\u6703\u4e0a\u4f86\u5de1\u4e00\u4e0b\u770b\u6700\u8fd1\u6709\u6c92\u6709\u64cb\u5230\u8ab0\uff0c\u770b\u5230\u6709\u9ede\u904e\u4efd\u7684\u6211\u6703\u6574\u7406\u4e00\u4e0b\u4e4b\u5f8c\u6c38\u5c01\u3002\u5c31\u662f\u9019\u500b\u6574\u7406\u52d5\u4f5c\u51fa\u4e86\u554f\u984c\uff1a\u524d\u4e00\u6b21\u6574\u7406 (\u5927\u7d04\u662f\u4e94\u3001\u516d\u6708\u5de6\u53f3\u7684\u4e8b) \u6709\u628a\u4e00\u4e9b IP \u76f8\u8fd1\u7684\u653b\u64ca\u8005\u5beb\u6210 <a href=\"https:\/\/zh.wikipedia.org\/zh-tw\/%E6%97%A0%E7%B1%BB%E5%88%AB%E5%9F%9F%E9%97%B4%E8%B7%AF%E7%94%B1\">CIDR mask<\/a> \u7684\u7bc4\u570d (\u7562\u7adf\u9019\u770b\u8d77\u4f86\u8981\u561b\u662f botnet \u611f\u67d3\u4e86\u4e00\u7968\u9644\u8fd1\u7684\u96fb\u8166\uff0c\u8981\u561b\u662f\u653b\u64ca\u8005\u672c\u8eab\u662f\u6d6e\u52d5 IP\uff0c\u90a3\u64cb\u6389\u4e00\u5c0f\u584a\u61c9\u8a72\u6c92\u5dee)\uff0c\u4f46\u6211\u8a18\u932f\u659c\u7dda\u5f8c\u9762\u7684\u6578\u5b57\u662f\u6578\u54ea\u908a\u4e86\uff1a\u5982\u679c\u6211\u8981\u5c01 <code>10.10.10.0<\/code> \u5230 <code>10.10.10.255<\/code> \u9019\u500b\u7bc4\u570d\u7684\u8a71\uff0c\u6211\u61c9\u8a72\u8981\u5beb\u6210 <code>10.10.10.0\/24<\/code>\uff0c\u8868\u793a\u524d\u9762\u9019\u500b IP \u5f9e<strong>\u5de6<\/strong>\u908a\u6578\u904e\u4f86 24 \u500b bit \u8981\u5c0d\uff0c\u4f46\u662f\u6211\u5beb\u6210 <code>10.10.10.0\/8<\/code>\uff0c\u4ee5\u70ba\u662f\u6307\u5b9a\u5f9e<strong>\u53f3<\/strong>\u908a\u6578\u904e\u4f86 8 \u500b bit \u53ef\u4ee5\u4efb\u610f\uff1b\u5f8c\u4e00\u7a2e\u7684\u5c01\u9396\u5be6\u969b\u4e0a\u5c01\u6389\u4e86 <code>10.0.0.0<\/code> \u5230 <code>10.255.255.255<\/code> \u9019\u4e00\u5927\u584a\u5340\u57df\uff0c\u4e5f\u5c31\u662f\u8aa4\u5c01\u5230\u4e86\u8a31\u591a\u6c92\u6709\u8981\u5c01\u7684\u4eba\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7136\u5f8c\u5c31\u662f\u5728\u4eca\u5929 (9 \u6708 11 \u65e5) \u6211\u8981\u4e0a\u4f86\u770b\u500b\u6771\u897f\u6642\u7a81\u7136\u8df3\u4e86\u5c01\u9396\u9801\u9762\u51fa\u4f86\uff0c\u5687\u4e86\u4e00\u8df3\u7684\u6211\u8d95\u5feb\u9032\u5f8c\u53f0\u770b\u6709\u6c92\u6709\u4ec0\u9ebc\u4e8b\u767c\u751f (\u9019\u500b blog \u662f\u653e\u5728 google \u96f2\u4e0a\u9762\uff0c\u6211\u53ef\u4ee5\u76f4\u63a5\u767b\u5165\u6a5f\u5668\u770b\u72c0\u6cc1)\uff0c\u4f46\u5728\u8cc7\u6599\u5eab\u88e1\u7ffb\u4e86\u534a\u5929\u4e5f\u6c92\u6709\u4ec0\u9ebc\u7279\u5225\u7684\u767c\u73fe\uff1b\u56de\u982d\u91cd\u65b0\u6574\u7406\u6642\u53ef\u80fd\u662f\u78b0\u5230\u6b63\u597d\u8df3\u5230\u6c92\u5c01\u7684 IP \u4e86\u6240\u4ee5\u8b93\u6211\u767b\u4e86\u9032\u4f86 (\u6211\u9084\u6015\u8aaa\u662f\u4e0d\u662f\u6709\u4ec0\u9ebc\u5225\u7684\u5730\u65b9\u628a\u6211\u9019\u500b\u7db2\u5740\u96a8\u4fbf\u5c0e\u5411\uff0c\u5c31\u85c9\u8457\u6211\u5728\u5f8c\u53f0\u6a5f\u5668\u4e0a\u5f04\u4e86\u500b\u7c21\u55ae\u7684\u5c0f\u6e2c\u8a66\u8b49\u660e\u4e86\u9019\u500b\u7db2\u57df\u6c92\u88ab\u5c0e\u8d70)\uff0c\u7136\u5f8c\u5728\u770b\u9632\u706b\u7246\u6c38\u5c01\u8a2d\u5b9a\u7684\u6642\u5019\u624d\u7a81\u7136\u9a5a\u89ba\uff1a\u6b38\u9019\u500b CIDR mask \u597d\u50cf\u602a\u602a\u7684\uff0c\u4ed4\u7d30\u770b\u4e86\u770b\u624d\u767c\u73fe\u6211\u5beb\u932f\u908a\u2026\u2026\u800c\u4e14\u679c\u4e0d\u5176\u7136\uff0c\u6709\u5728\u9019\u500b\u6642\u9593\u9644\u8fd1\u89f8\u767c\u7684\u898f\u5247\u90fd\u662f\u539f\u672c\u8a72\u5beb <code>\/24<\/code> \u4f46\u88ab\u6211\u5beb\u6210 <code>\/8<\/code> \u5c0e\u81f4\u8aa4\u5c01\u4e00\u5927\u7968\u7684\u9805\u76ee\u3002\u561b\uff0c\u672c\u4f86\u9019\u500b\u6574\u7406\u53ea\u662f\u6211\u4e0d\u60f3\u5728 log \u88e1\u770b\u5230\u4e00\u5927\u7968\u540c\u6a23\u7684\u6771\u897f\u800c\u5df2\uff0c\u6240\u4ee5\u5c31\u628a\u90a3\u4e00\u6ce2\u6574\u7406\u7684\u540d\u55ae\u88e1 mask \u5beb\u932f\u908a\u7684\u9805\u76ee\u901a\u901a\u522a\u6389\u4e86\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0d\u77e5\u9053\u662f\u5e78\u904b\u9084\u662f\u4e0d\u5e78\uff0c\u4eca\u5e74\u56e0\u70ba\u5404\u7a2e\u539f\u56e0\u6c92\u5728\u9019\u88e1\u767c\u6587\u7ae0\uff0c\u5728\u9019\u4e4b\u524d\u552f\u4e00\u767c\u6587\u65e5\u671f\u662f\u4eca\u5e74\u7684\u662f\u516d\u6708\u5e95\u5de6\u53f3\u6642\u6211\u628a\u6211\u7684 GNOSIA \u5fc3\u5f97\u6587\u7ffb\u8b6f\u6210\u82f1\u6587\u767c\u5728\u9019\u88e1 (\u90a3\u7bc7\u5f9e\u52d5\u756b\u5728\u64ad\u6642\u5c31\u958b\u59cb\u7ffb\uff0c\u6797\u6797\u7e3d\u7e3d\u5927\u6982\u6709\u534a\u5e74\u5de6\u53f3\u7684\u96f6\u788e\u6642\u9593\u5427)\uff0c\u6240\u4ee5\u5176\u4ed6\u6587\u7ae0\u7684\u89f8\u53ca\u53ef\u80fd\u6c92\u6709\u592a\u591a\u5f71\u97ff\uff0c\u4f46\u90a3\u7bc7\u82f1\u6587\u5fc3\u5f97\u6587\u53ef\u80fd\u4eca\u5929\u958b\u59cb\u624d\u80fd\u958b\u59cb\u7d2f\u7a4d\u89f8\u53ca\u2026\u2026\u6211\u5f8c\u9762\u5176\u5be6\u9084\u7a4d\u4e86\u5169\u7bc7\u5fc3\u5f97\u6587\u8981\u767c\uff0c\u4f46\u76ee\u524d\u90fd\u624d\u5beb\u4e86\u500b\u4e09\u6210\u5de6\u53f3 (\u56e0\u70ba\u5404\u7a2e\u539f\u56e0\u2026\u2026) \u6240\u4ee5\u9019\u500b\u554f\u984c\u4e00\u76f4\u5230\u4eca\u5929\u649e\u5230\u4e86\u624d\u767c\u73fe\u3002\u5509\uff5e<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5594\u5c0d\u4e86\uff0c\u56e0\u70ba\u90a3\u7bc7\u7ffb\u8b6f\u7684\u5fc3\u5f97\u6587\u7684\u95dc\u4fc2\uff0c\u9019\u7bc7\u6703\u6709\u82f1\u6587\u7248\u653e\u5728\u4e0b\u9762\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">[English Version] False Alarm&#8230;<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Let me get straight to the point: In a period of time about 3 to 4 months until September 10th, 2026, this blog may randomly block visitors that are otherwise legit. The reason: I made a mistake in setting up the firewall block rule.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As those who got blocked may observe, this blog uses <a href=\"https:\/\/www.wordfence.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Wordfence<\/a> plugin to do some basic attack mitigation. I&#8217;m using the free version, so there are some functions lacking, but for protecting random attacks it should suffice: there is only one post account in this WordPress installation, which is not the name shown above; and I also uses the 2FA TOTP authentication provided by Wordfence, so even if someone accidentally &#8220;guessed&#8221; the account they still don&#8217;t have the 2FA code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Since Wordfence automatically block some attack sources for some amount of time, I would occasionally login to review the block list, and made some blocks permanent if the attack crossed some line. This is where things went wrong: the last time I review the list around May or June, there are some blocks that target some similar IPs (which, I think, were either botnets from neighboring computers, or a &#8220;floating&#8221; IP that get reallocated however often), so I collected them, rewrote them into <a href=\"https:\/\/en.wikipedia.org\/wiki\/Classless_Inter-Domain_Routing\">CIDR mask<\/a> form, and made it permanent. But I misremembered the meaning of the number after the slash: if I want to block <code>10.10.10.0<\/code> to <code>10.10.10.255<\/code>, I should write <code>10.10.10.0\/24<\/code> indicating there are 24 bits from the <em>left should match<\/em>, but I wrote <code>10.10.10.0\/8<\/code> thinking the 8 bits from the <em>right could be anything<\/em>. This latter rule actually blocked <code>10.0.0.0<\/code> through <code>10.255.255.255<\/code>, meaning I blocked <em>way<\/em> more IPs then I intended.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then today (September 10th) I want to login to do something, but faced with the block screen of Wordfence. Since this blog is hosted on Google Cloud, I can access the machine from there, so I logged in, rummaging through the database, but found nothing that may be the reason. When I went back to the browser, it randomly unblocked me so I logged in WordPress from the browser (after confirming that no one is redirecting the domain name to somewhere else, with a little check that I can do when I already logged into the back end machine). I then looked at the firewall block rules, and finally realized that my CIDR mask was written wrong. Adding support to this theory, the rules having last trigger time around this time are those masks that should be <code>\/24<\/code> but I wrote <code>\/8<\/code>, which means the reason I got blocked is probably somehow my &#8220;floating&#8221; IP hit those too large of a range. Since the reason I rewrote the rule is simply that I don&#8217;t want those similar IPs show up, and now I cannot even know whether these bad actors are still there, I simply removed those wrong IP ranges.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fortunately (or maybe unfortunately), because of various reasons, there is only one post in 2026 before this post: my English translation of GNOSIA review previously written in Traditional Chinese, which I&#8217;ve been worked on when the anime is still airing, working in my free time in the span of about half of a year. I think the reachability of my old posts are not that affected, but this English translation probably suffered a lot; it probably only really &#8220;shown to the public&#8221; starting today. And I have two reviews queued up that I have only written about 30% of them (which is part of the reason I found this out today). Welp.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7d50\u8ad6\u5beb\u5728\u524d\u9762\uff1a2026 \u5e74 9 \u6708 11 \u65e5\u51cc\u6668\u5f80\u524d\u7b97\u5927\u7d04\u4e09\u5230\u56db\u500b\u6708\u5de6\u53f3\uff0c\u9019\u500b blog \u53ef\u80fd\u6703\u4e0d\u5b9a\u6642\u5c01\u9396\u67d0\u4e9b [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2517","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/posts\/2517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2517"}],"version-history":[{"count":3,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/posts\/2517\/revisions"}],"predecessor-version":[{"id":2520,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=\/wp\/v2\/posts\/2517\/revisions\/2520"}],"wp:attachment":[{"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.cruciferslab.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}