<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>HQY</title><link>https://kinber.cn/</link><description>HQY|VPS|VPN|华为|思科|H3C|DELL|VMWARE|VCENTER|ESXI</description><item><title>59元买Win10迷你电脑！小米平板2 X86架构+Windows10+怀旧游戏，神器之机</title><link>https://kinber.cn/post/6811.html</link><description>&lt;p style=&quot;visibility: visible;&quot; data-pm-slice=&quot;0 0 []&quot;&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;59&lt;/span&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;元&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;买到了&lt;/span&gt;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1792049481034-0.4417150453126961&quot;&gt;小米平板&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;&lt;span class=&quot;&quot; link-id=&quot;link-1792049481034-0.6658716036520642&quot;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;，在&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;X86&lt;/span&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;英特尔架构的基础上进行优化之后就可以运行简单的&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;Windows 10&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;系统了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;并且还可以把老式的电脑游戏也玩起来，价格非常便宜。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #7B0C00; font-weight: bold; visibility: visible;&quot;&gt;经过了简单的&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #7B0C00; font-weight: bold; visibility: visible;&quot;&gt;Windows 10&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #7B0C00; font-weight: bold; visibility: visible;&quot;&gt;系统安装后，触屏、&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #7B0C00; visibility: visible;&quot;&gt;Wi-Fi&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #7B0C00; font-weight: bold; visibility: visible;&quot;&gt;、&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #7B0C00; visibility: visible;&quot;&gt;蓝牙&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #7B0C00; font-weight: bold; visibility: visible;&quot;&gt;以及音量键等大部分功能都正常工作了。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;空闲状态下&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;CPU&lt;/span&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;占用率只有&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;百分之十&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;左右的样子，在启动的时候就可以正常使用了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261015153938_99554.jpeg&quot; alt=&quot;小米平板2实拍图赏很薄很精致&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.446524064171123&quot; data-type=&quot;webp&quot; data-w=&quot;748&quot; style=&quot;width: 578px !important; height: auto !important; visibility: visible !important;&quot; data-croporisrc=&quot;https://mmbiz.qpic.cn/mmbiz_jpg/jYQsehblJvAMiahOA347dVaMrqEUbQLRMQM6s827BGlicyUlwkI1yjfyE3HjzIZIwK2Wibhd0Nnc6QicRqxhriaAjqnoIKmtXdUDpZc3I06MvYqE/0?wx_fmt=webp&amp;amp;from=appmsg&quot; data-cropx1=&quot;0&quot; data-cropx2=&quot;748&quot; data-cropy1=&quot;94.47058823529412&quot; data-cropy2=&quot;428.3529411764706&quot; data-backw=&quot;578&quot; data-backh=&quot;386&quot; data-imgfileid=&quot;100003326&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;width:578px;height:258px;&quot; data-index=&quot;2&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261015153938_99554.jpeg&quot; _width=&quot;578px&quot; data-before-load-time=&quot;1792049481188&quot; data-report-img-idx=&quot;0&quot; data-fail=&quot;0&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;轻度办公实测中，微信可以正常登陆，并且打开了&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;Word&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;Excel&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;PPT&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;后也可以很流畅地进行操作。在上百页文档和表格里做修改也是可以的，普通的文件编辑也能够完成。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;但是触屏的操作速度比较慢，配个十来块钱的小键盘鼠标组合之后就感觉好很多了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;网页浏览有局限性，并且同时打开很多网页就会出现卡顿的情况，只看&lt;/span&gt;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;站&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;上的视频是顺畅的。从游戏的角度来说就是这款游戏的亮点了，在这里可以玩到很多经典的&lt;/span&gt;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;怀旧游戏&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;《&lt;/span&gt;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;植物大战僵尸&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;》系列以及《&lt;/span&gt;&lt;/span&gt;&lt;strong style=&quot;visibility: visible;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;红警&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑; font-size: 12pt; visibility: visible;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝;visibility: visible;&quot;&gt;》、《&lt;span class=&quot;&quot; link-id=&quot;link-1792049481034-0.5792651545059897&quot;&gt;尤里克里特&lt;/span&gt;》等多人合作的作品都能够很好地运行起来。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #7B0C00; font-weight: bold&quot;&gt;硬件基础比较老了，&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #7B0C00;&quot;&gt;存储空间&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #7B0C00; font-weight: bold&quot;&gt;很小，并且只装了简单的系统不能做很多的事&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #7B0C00; font-weight: bold&quot;&gt;情。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261015153938_59819.jpeg&quot; alt=&quot;小米平板2&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.5605858854860186&quot; data-type=&quot;webp&quot; data-w=&quot;751&quot; style=&quot;width: 677px !important; height: auto !important; visibility: visible !important;&quot; data-backw=&quot;578&quot; data-backh=&quot;324&quot; data-imgfileid=&quot;100003327&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;width:100%;&quot; data-index=&quot;3&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261015153938_59819.jpeg&quot; _width=&quot;100%&quot; data-before-load-time=&quot;1792049953204&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;可以用来做简单的文件编辑，上网浏览等事情但是不能用来玩现在的大型游戏和网络游戏。价格在&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;二十元&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;左右的时候就可以作为怀旧玩具或者小型的手持式办公机使用了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;选择和刷机都有门槛，要找到合适的固件资源并且事先知道如何刷机的方法之后再买的话就会好很多了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;电池老化&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;的现象也是普遍存在的，所以续航能力很差。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0px;&quot;&gt;&lt;span style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;&lt;span leaf=&quot;&quot;&gt;想要以较低的成本来体验一下迷你版的&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;Windows&lt;/span&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;&lt;span leaf=&quot;&quot;&gt;设备的话，那么购买一台&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;59&lt;/span&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;&lt;span leaf=&quot;&quot;&gt;元&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 微软雅黑;font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;&lt;span leaf=&quot;&quot;&gt;的小米平板&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;&lt;span leaf=&quot;&quot;&gt;并进行&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:微软雅黑&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Win10&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:ＭＳ 明朝&quot;&gt;&lt;span leaf=&quot;&quot;&gt;系统的安装就可以达到目的了。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 15 Oct 2026 15:39:27 +0800</pubDate></item><item><title>Nginx 配置 IP 黑名单与自动封禁</title><link>https://kinber.cn/post/6810.html</link><description>&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;服务器的 Nginx IP 黑名单完整配置，包括手动封禁、自动封禁、滚动 60 秒请求计数、封禁到期、&lt;span class=&quot;&quot; link-id=&quot;link-1791614258952-0.014112259556630091&quot;&gt;systemd&lt;/span&gt; 守护运行、验证与故障排查。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;code style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;geo&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;放在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;http {}&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;中，if 判断放在各个&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;server {}&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;中；自动封禁程序只修改独立的自动黑名单文件，不覆盖手动黑名单。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;统一使用以下路径：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));padding: 0px 8px;max-width: 100%;overflow: auto;&quot;&gt;&lt;table width=&quot;561&quot;&gt;&lt;thead&gt;&lt;tr style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot; class=&quot;firstRow&quot;&gt;&lt;td data-colwidth=&quot;149&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;项目&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;412&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;路径或规则&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;td data-colwidth=&quot;149&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;Nginx 主配置&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;412&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;/usr/local/nginx/conf/nginx.conf&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;td data-colwidth=&quot;149&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;手动黑名单&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;412&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;/usr/local/nginx/conf/blacklist/ip_blacklist.conf&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;td data-colwidth=&quot;149&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;自动黑名单&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;412&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;/usr/local/nginx/conf/blacklist/auto_ip_blacklist.conf&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;td data-colwidth=&quot;149&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;自动封禁脚本&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;412&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;/usr/local/nginx/scripts/auto_ip_blacklist.py&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;td data-colwidth=&quot;149&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;访问日志&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;412&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;/usr/local/nginx/logs/access.log&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;td data-colwidth=&quot;149&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;自动封禁规则&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;412&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;同一 IP 在滚动 60 秒内对 /api/ 发起超过 100 次请求&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;td data-colwidth=&quot;149&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;默认封禁时间&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;412&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;1 小时&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;td data-colwidth=&quot;149&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;拦截状态码&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td data-colwidth=&quot;412&quot; style=&quot;box-sizing: border-box; border-color: rgb(223, 223, 223); line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 0.25em 0.5em; color: rgb(63, 63, 63); word-break: keep-all;&quot;&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;HTTP 403&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;请求处理流程：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 客户端请求进入 Nginx。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• Nginx 通过 geo 判断客户端 IP 是否在黑名单中。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 已封禁的 IP 返回 HTTP 404。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 自动封禁程序持续读取 Nginx 访问日志，只统计 /api/ 请求。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 同一 IP 在滚动 60 秒内请求次数达到 101 次时，写入自动黑名单。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• Nginx 配置检查通过后重新加载，使新黑名单生效。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 默认封禁 1 小时，到期后自动解除。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-color: rgb(0, 152, 116); margin-bottom: 0px; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 1em; border-radius: 6px; color: rgba(0, 0, 0, 0.5); background: rgb(247, 247, 247);&quot;&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin-top: 0px; margin-bottom: 0px; line-height: 1.75; font-size: 1em; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;注意： 自动封禁统计的是 HTTP 请求次数，不是并发连接数。轮询和移动端高频请求可能导致正常用户超过阈值，部署初期应重点观察误封情况。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;创建目录和黑名单文件&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;1、创建 IP 黑名单文件&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;mkdir -p /usr/local/nginx/conf/blacklist&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;mkdir -p /usr/local/nginx/scripts&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;touch /usr/local/nginx/conf/blacklist/ip_blacklist.conf&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;touch /usr/local/nginx/conf/blacklist/auto_ip_blacklist.conf&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;文件说明：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;ip_blacklist.conf&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;：手动维护的黑名单。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;auto_ip_blacklist.conf&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;：程序自动生成的黑名单。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;不要在自动黑名单文件中手动添加需要长期保留的 IP，否则程序刷新文件时可能覆盖这些条目。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2、手动封禁 IP&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;span leaf=&quot;&quot;&gt;编辑&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;vim /usr/local/nginx/conf/blacklist/ip_blacklist.conf&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;span leaf=&quot;&quot;&gt;例如&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;192.168.1.10 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;191.168.1.25 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;span leaf=&quot;&quot;&gt;以上为文档示例 IP，不代表真实攻击者地址。&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;span leaf=&quot;&quot;&gt;每一行的格式为：&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;IP地址 1;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;如需手动解封，删除对应行并重新加载 Nginx。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;配置 Nginx 全局黑名单识别&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;修改 nginx.conf&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在现有的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;http {}&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;内添加以下配置。你之前已经添加过该配置，因此请检查是否存在，避免重复定义。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;http {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; # 其他已有配置……&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; geo $blacklist_ip {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default 0;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; include /usr/local/nginx/conf/blacklist/ip_blacklist.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; include /usr/local/nginx/conf/blacklist/auto_ip_blacklist.conf;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; # 其他已有配置……&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-color: rgb(0, 152, 116); margin-bottom: 0px; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 1em; border-radius: 6px; color: rgba(0, 0, 0, 0.5); background: rgb(247, 247, 247);&quot;&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin-top: 0px; margin-bottom: 0px; line-height: 1.75; font-size: 1em; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;geo&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;必须放在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;http {}&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;作用域中，不能放在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;server {}&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;中。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在站点中拦截黑名单 IP&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;3、在 server 站点配置中拦截&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在需要保护的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;server {}&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;内添加：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;server {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name demo.com;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; # 黑名单 IP 拦截&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; if ($blacklist_ip = 1) {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 403;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; # 原有 SSL、静态资源、/api 反向代理等配置保持不变&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-color: rgb(0, 152, 116); margin-bottom: 0px; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 1em; border-radius: 6px; color: rgba(0, 0, 0, 0.5); background: rgb(247, 247, 247);&quot;&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin-top: 0px; margin-bottom: 0px; line-height: 1.75; font-size: 1em; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;与左括号之间必须有空格。不要写成&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if($blacklist_ip = 1)&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;检查配置并重新加载&lt;/span&gt;&lt;/h3&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;/usr/local/nginx/sbin/nginx -t&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;/usr/local/nginx/sbin/nginx -s reload&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;cat /usr/local/nginx/conf/blacklist/ip_blacklist.conf&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;确认完整日志格式&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;如果你的日志使用了自定义&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;log_format&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;，需要根据实际格式调整，尤其是有 &lt;span class=&quot;&quot; link-id=&quot;link-1791614259201-0.39298586355925647&quot;&gt;CDN&lt;/span&gt; 或反向代理时，要先确保记录的是可信的真实客户端 IP。&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;grep -nE &amp;#39;log_format|access_log&amp;#39; /usr/local/nginx/conf/nginx.conf&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;sed -n &amp;#39;45,60p&amp;#39; /usr/local/nginx/conf/nginx.conf&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;tail -n 5 /usr/local/nginx/logs/access.log&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;配置自动封禁程序&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;程序需要 Python 3。先检查：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;python3&amp;nbsp;--version&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;如果没有 Python 3，请先安装合适的 Python 3 运行环境，不要直接把下面的脚本交给 CentOS 7 默认的 Python 2.7 执行。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;1、创建脚本：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;vim&amp;nbsp;/usr/local/nginx/scripts/auto_ip_blacklist.py&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2、 脚本内容&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;#!/usr/bin/env python3&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;os&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;re&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;time&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;json&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;ipaddress&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;subprocess&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;collections&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;defaultdict, deque&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;datetime&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;datetime&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;LOG_FILE =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;/usr/local/nginx/logs/access.log&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;BLACKLIST_FILE = (&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;/usr/local/nginx/conf/blacklist/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;auto_ip_blacklist.conf&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;STATE_FILE = (&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;/usr/local/nginx/conf/blacklist/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;auto_ip_state.json&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;NGINX =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;/usr/local/nginx/sbin/nginx&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;THRESHOLD =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;60&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;WINDOW_SECONDS =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;100&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;BAN_SECONDS =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;3600&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# 仅统计 /api/ 请求。&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# 滚动 60 秒内达到 101 次请求时封禁。&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;WHITELIST = {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;127.0.0.1&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# &amp;quot;替换为你自己的固定公网管理 IP&amp;quot;,&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# 不参与自动封禁请求次数统计的接口路径&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# 注意：这里只排除统计，不绕过 Nginx IP 黑名单&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;EXCLUDED_PATHS = {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;/api/test&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# 后续需要排除的接口继续添加，每行一个&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;LOG_RE = re.&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;compile&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;r&amp;#39;^(\S+)\s+-\s+(?:\S*)\s+\[([^\]]+)\]\s+&amp;quot;([^&amp;quot;]*)&amp;quot;&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;requests = defaultdict(deque)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;banned_until = {}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #D2A8FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;load_state&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;():&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;global&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;banned_until&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;try&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;with&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;open&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(STATE_FILE,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;as&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;f:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; data = json.load(f)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; now = time.time()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; banned_until = {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ip:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;float&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(expiry)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;for&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;ip, expiry&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;data.items()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;float&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(expiry) &amp;gt; now&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;and&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;ip&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;not&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;WHITELIST&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;except&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;(OSError, ValueError, TypeError):&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; banned_until = {}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #D2A8FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;save_state&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;():&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; tmp = STATE_FILE +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;.tmp&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;with&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;open&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(tmp,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;w&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;as&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;f:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; json.dump(banned_until, f)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; os.replace(tmp, STATE_FILE)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #D2A8FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;read_blacklist&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;():&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;try&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;with&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;open&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(BLACKLIST_FILE,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;as&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;f:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;f.read()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;except&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;FileNotFoundError:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #D2A8FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;reload_nginx&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;():&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; test = subprocess.run(&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [NGINX,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;-t&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;],&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stdout=subprocess.PIPE,&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stderr=subprocess.STDOUT,&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; universal_newlines=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;print&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(test.stdout, flush=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;test.returncode !=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;False&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; result = subprocess.run(&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [NGINX,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;-s&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;reload&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;],&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stdout=subprocess.PIPE,&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stderr=subprocess.STDOUT,&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; universal_newlines=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;print&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(result.stdout, flush=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;result.returncode ==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #D2A8FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;sync_blacklist&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;():&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; 根据当前未过期的封禁记录生成黑名单。&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; 文件有变化时先备份原内容，检查并重载成功后才确认。&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; now = time.time()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; active = {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ip: expiry&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;for&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;ip, expiry&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;banned_until.items()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;expiry &amp;gt; now&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; old_content = read_blacklist()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; new_content =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;.join(&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;{} 1;\n&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;format&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(ip)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;for&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;ip&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;sorted&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(active)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;old_content == new_content:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; banned_until.clear()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; banned_until.update(active)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; save_state()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; tmp = BLACKLIST_FILE +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;.tmp&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; os.makedirs(os.path.dirname(BLACKLIST_FILE), exist_ok=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;with&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;open&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(tmp,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;w&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;as&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;f:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f.write(new_content)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; os.replace(tmp, BLACKLIST_FILE)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;reload_nginx():&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; banned_until.clear()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; banned_until.update(active)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; save_state()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;print&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;自动黑名单已更新&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;, flush=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# 检查或重载失败时恢复旧文件&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;with&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;open&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(BLACKLIST_FILE,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;w&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;as&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;f:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f.write(old_content)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;print&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;Nginx 检查或重载失败，已恢复原黑名单文件；&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;请检查错误日志&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flush=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;False&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #D2A8FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;parse_line&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;span leaf=&quot;&quot;&gt;line&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;):&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;match&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;= LOG_RE.&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;match&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(line)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;not&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;match&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; ip, timestamp, request =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;match&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;.groups()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;try&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ipaddress.ip_address(ip)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dt = datetime.strptime(&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; timestamp,&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;%d/%b/%Y:%H:%M:%S %z&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; event_time = dt.timestamp()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;except&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;(ValueError, OverflowError):&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; parts = request.split()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;len&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(parts) &amp;lt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; path = parts[&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;].split(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;?&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)[&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;]&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;not&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;path.startswith(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;/api/&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;):&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# 指定接口不参与自动封禁请求次数统计&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# 同时兼容带查询参数的请求，例如 ?t=123&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;path&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;EXCLUDED_PATHS:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;ip, event_time&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #D2A8FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;follow_log&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;():&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; 初次启动从日志末尾开始，不统计历史记录。&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; 发生日志轮转时，从新日志开头继续读取。&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; f =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; inode =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;while&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;try&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; st = os.stat(LOG_FILE)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;f&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;is&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;open&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(LOG_FILE,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;, encoding=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;, errors=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;replace&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f.seek(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;, os.SEEK_END)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; inode = os.fstat(f.fileno()).st_ino&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;elif&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;st.st_ino != inode:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f.close()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;open&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(LOG_FILE,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;, encoding=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;, errors=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;replace&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; inode = os.fstat(f.fileno()).st_ino&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;elif&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;st.st_size &amp;lt; f.tell():&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f.seek(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; line = f.readline()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;not&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;line:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; time.sleep(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;0.2&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;yield&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;continue&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;yield&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;line&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;except&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;FileNotFoundError:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; time.sleep(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;except&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;OSError&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;as&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;e:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;print&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;读取日志失败: {}&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;format&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(e), flush=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; time.sleep(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;def&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #D2A8FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;main&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;():&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; load_state()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# 启动时同步封禁状态。&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# 若需要恢复尚未到期的封禁，状态文件会保留对应时间。&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; sync_blacklist()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;print&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;自动 IP 黑名单服务已启动，只统计 /api/ 请求&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;,&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flush=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; last_sync =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;for&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;line&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;follow_log():&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; now = time.time()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;line:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; event = parse_line(line)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;event:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ip, event_time = event&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;ip&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;not&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;WHITELIST:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;banned_until.get(ip,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;) &amp;lt;= now:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; q = requests[ip]&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; q.append(event_time)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cutoff = event_time - WINDOW_SECONDS&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;while&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;q&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;and&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;q[&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;] &amp;lt; cutoff:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; q.popleft()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;len&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(q) &amp;gt; THRESHOLD:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;try&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ipaddress.ip_address(ip)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; banned_until[ip] = now + BAN_SECONDS&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; requests.pop(ip,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;print&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;封禁 IP: {}，&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;滚动 60 秒内超过 {} 次 /api/ 请求&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;format&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(ip, THRESHOLD),&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flush=&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;True&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;except&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;ValueError:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;pass&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #8B949E;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;# 每秒同步一次，处理新封禁与过期解封。&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;now - last_sync &amp;gt;=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;for&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;ip, queue&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;list&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;(requests.items()):&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cutoff = now - WINDOW_SECONDS&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;while&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;queue&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;and&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;queue[&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;] &amp;lt; cutoff:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; queue.popleft()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;not&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;queue:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; requests.pop(ip,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;None&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sync_blacklist()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; last_sync = now&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FF7B72;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;__name__ ==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #A5D6FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;:&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp; main()&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;3、检查脚本语法&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;/usr/bin/python3&amp;nbsp;-m&amp;nbsp;py_compile&amp;nbsp;/usr/local/nginx/scripts/auto_ip_blacklist.py&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;4、存后设置权限&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;chmod&amp;nbsp;750&amp;nbsp;/usr/local/nginx/scripts/auto_ip_blacklist.py&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;重要说明&lt;/span&gt;&lt;/h3&gt;&lt;ol style=&quot;list-style-type: none;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;1. 程序使用独立的状态文件记录封禁到期时间，避免服务重启后把已封禁 IP 立即解除。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;2. 首次启动只统计之后新产生的日志，不会直接扫描历史日志封禁 IP。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;3. 程序需要以 root 身份运行，因为它要修改 Nginx 配置包含文件并执行 Nginx reload。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;4. 如果你有固定管理公网 IP，应将其加入&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;WHITELIST&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;，并确保该地址是可信的真实客户端 IP。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;5. 可以配置指定接口不参与 IP 请求次数统计，应将其加入&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;EXCLUDED_PATHS&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;6. 不要同时运行多个相同的自动封禁进程，否则可能造成文件写入和状态竞争。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ol&gt;&lt;blockquote style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-color: rgb(0, 152, 116); margin-bottom: 0px; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding: 1em; border-radius: 6px; color: rgba(0, 0, 0, 0.5); background: rgb(247, 247, 247);&quot;&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin-top: 0px; margin-bottom: 0px; line-height: 1.75; font-size: 1em; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;注意： 脚本启动时从访问日志末尾开始统计，只计算启动后的新请求，不会因为历史日志里已经存在大量请求而直接封禁。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;配置 systemd 守护服务&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;创建服务文件(包含root账号和nginx的不同配置，根据业务选择即可)：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;vim /etc/systemd/system/nginx-auto-blacklist.service&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;span leaf=&quot;&quot;&gt;确认 Python 3 的实际路径：如果不是 /usr/bin/python3，请修改 ExecStart。&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;command -v python3&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;span leaf=&quot;&quot;&gt;内容 root 账号&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;[Unit]&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;Description=Nginx Automatic IP Blacklist&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;After=network.target&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;[Service]&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;Type=simple&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;User=root&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;ExecStart=/usr/bin/python3 /usr/local/nginx/scripts/auto_ip_blacklist.py&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;Restart=always&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;RestartSec=3&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;[Install]&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;WantedBy=multi-user.target&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));&quot;&gt;&lt;span leaf=&quot;&quot;&gt;内容 nginx 账号&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;[Unit]&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;Description=Nginx automatic IP blacklist service&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;After=network.target nginx.service&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;Requires=nginx.service&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;[Service]&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;Type=simple&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;User=nginx&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;Group=nginx&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;ExecStart=/usr/bin/python3 -u /usr/local/nginx/scripts/auto_ip_blacklist.py&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;Restart=always&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;RestartSec=5&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;PrivateTmp=true&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;[Install]&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;WantedBy=multi-user.target&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;启用服务：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;systemctl daemon-reload&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;systemctl enable --now nginx-auto-blacklist&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;重启自动封禁服务:&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;systemctl&amp;nbsp;restart&amp;nbsp;nginx-auto-blacklist&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;查看运行状态：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;systemctl&amp;nbsp;status&amp;nbsp;nginx-auto-blacklist&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;实时查看封禁记录：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;journalctl&amp;nbsp;-u&amp;nbsp;nginx-auto-blacklist&amp;nbsp;-f&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;查看最近 100 行：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;journalctl&amp;nbsp;-u&amp;nbsp;nginx-auto-blacklist&amp;nbsp;-n&amp;nbsp;100&amp;nbsp;--no-pager&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;查看自动黑名单：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;cat&amp;nbsp;/usr/local/nginx/conf/blacklist/auto_ip_blacklist.conf&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;查看请求是否进入访问日志&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;tail -n 100 /usr/local/nginx/logs/access.log | grep &amp;#39; /api/&amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;tail -n 200 /usr/local/nginx/logs/access.log | grep &amp;#39; /api/&amp;#39; | tail -n 20&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;验证封禁是否生效&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;1. 检查 Nginx 配置&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;/usr/local/nginx/sbin/nginx&amp;nbsp;-t&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2. 检查自动黑名单&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;cat&amp;nbsp;/usr/local/nginx/conf/blacklist/auto_ip_blacklist.conf&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;触发封禁后，应该能看到类似：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;192.168.1.10&amp;nbsp;1;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这里仍然是示例 IP。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;3. 查看访问日志&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;tail&amp;nbsp;-f&amp;nbsp;/usr/local/nginx/logs/access.log&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;4. 验证 HTTP 403&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在被封禁 IP 对应的真实客户端发起请求，预期结果是：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;HTTP/1.1&amp;nbsp;403&amp;nbsp;Forbidden&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;不要只在服务器本机测试，因为本机访问的源 IP 与公网客户端 IP 可能不同。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;5. 手动解封&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;如果是手动黑名单中的 IP，删除&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;ip_blacklist.conf&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;中对应行后执行：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;/usr/local/nginx/sbin/nginx -t &amp;amp;&amp;amp;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;/usr/local/nginx/sbin/nginx -s reload&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;如果是自动封禁，默认等待 1 小时即可自动解除。需要立即解除时，应先停止自动封禁服务，再修改自动黑名单和状态文件，之后重新加载 Nginx 并启动服务，避免程序立刻重新写入封禁记录。&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;故障排查&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;1.&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;unknown directive &amp;quot;if($blacklist_ip&amp;quot;&lt;/span&gt;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;确保写成：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;$blacklist_ip&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;) {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #79C0FF;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;403&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2. 黑名单文件不存在&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;执行：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;ls&amp;nbsp;-l&amp;nbsp;/usr/local/nginx/conf/blacklist/&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;确保两个&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;.conf&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;文件都存在。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;3. 配置文件检查失败&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;执行：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;/usr/local/nginx/sbin/nginx&amp;nbsp;-t&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;如果失败，不要继续 reload。先根据报错的文件路径和行号修复配置。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;4. 自动封禁服务启动失败&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;执行：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;journalctl&amp;nbsp;-u&amp;nbsp;nginx-auto-blacklist&amp;nbsp;-n&amp;nbsp;100&amp;nbsp;--no-pager&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;同时检查：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; margin: 10px 8px; color: rgb(201, 209, 217); background-color: rgb(13, 17, 23); line-height: 1.5; overflow-x: auto; padding: 0px !important;&quot;&gt;&lt;span hidden=&quot;&quot; style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));display: flex;padding: 10px 14px 0px;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;45px&quot; height=&quot;13px&quot; viewbox=&quot;0 0 450 130&quot; role=&quot;img&quot; aria-label=&quot;插图&quot;&gt;&lt;ellipse cx=&quot;50&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(220,60,54)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(237,108,96)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;225&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(218,151,33)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(247,193,81)&quot;&gt;&lt;/ellipse&gt;&lt;ellipse cx=&quot;400&quot; cy=&quot;65&quot; rx=&quot;50&quot; ry=&quot;52&quot; stroke=&quot;rgb(27,161,37)&quot; stroke-width=&quot;2&quot; fill=&quot;rgb(100,200,86)&quot;&gt;&lt;/ellipse&gt;&lt;/svg&gt;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: Menlo, &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, monospace; font-feature-settings: normal; font-variation-settings: normal; display: -webkit-box; padding: 0.5em 1em 1em; overflow-x: auto; line-height: 1.75; margin: 0px; white-space-collapse: collapse;&quot;&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;ls&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;-l /usr/local/nginx/logs/access.log&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box;border-width: 0px;border-style: solid;border-color: hsl(var(--border));color: #FFA657;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;ls&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;-l /usr/local/nginx/sbin/nginx&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); text-align: left; line-height: 1.75; font-size: inherit; color: rgb(0, 152, 116);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;5. 没有触发封禁&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); margin: 1.5em 8px; text-align: justify; line-height: 1.75; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.1em; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;确认以下条件：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 服务处于&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;active (running)&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;状态。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 访问日志持续有新增请求。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 请求路径以&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;/api/&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;开头。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 同一个客户端 IP 在 60 秒内达到 61 次请求。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 客户端 IP 不在白名单中。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• Nginx 实际加载了两个黑名单文件。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• Nginx 的访问日志记录的是实际客户端 IP，而不是 CDN 或代理 IP。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;安全注意事项&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: circle;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 如果 Nginx 位于 CDN 或负载均衡之后，必须先配置可信代理 IP 范围，再正确获取客户端 IP；不能直接信任客户端任意传入的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;X-Forwarded-For&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 不建议把所有自动封禁 IP 永久保留，否则共享公网 IP、移动端用户、公司 NAT 出口用户可能长期无法访问。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• Nginx 的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;limit_req&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;可以作为第一层限流，自动黑名单作为第二层措施；两者并不互相替代。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 自动封禁服务和 Nginx 配置文件应限制写权限，避免普通用户修改黑名单或脚本。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 建议先在测试站点观察一段时间，确认误封率可接受，再用于所有生产站点。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 style=&quot;box-sizing: border-box; border-width: 0px 0px 0px 3px; border-style: solid; border-left-color: rgb(0, 152, 116); font-size: 15.4px; margin: 2em 8px 0.75em 0px; line-height: 1.2; font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; padding-left: 8px; color: rgb(63, 63, 63);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;部署检查清单&lt;/span&gt;&lt;/h3&gt;&lt;ul style=&quot;list-style-type: circle;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;geo $blacklist_ip&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;已放在&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;http {}&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;中。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 手动与自动黑名单文件均存在。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 需要保护的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;server {}&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;均配置了拦截规则。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;•&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: border-box; border-width: 0px; border-style: solid; border-color: hsl(var(--border)); font-family: -apple-system-font, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; font-feature-settings: normal; font-variation-settings: normal; font-size: 12.6px; line-height: 1.75; color: rgb(221, 17, 68); background: rgba(27, 31, 35, 0.05); padding: 3px 5px; border-radius: 4px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;nginx -t&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp;检查通过。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• Nginx 已成功 reload。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• Python 3 脚本已保存并具有执行权限。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• systemd 服务已启用并处于运行状态。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 已验证黑名单 IP 返回 HTTP 403。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 已验证自动封禁记录及到期解封。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;• 已检查代理链路、白名单和误封风险。&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sat, 10 Oct 2026 14:43:51 +0800</pubDate></item><item><title>关机后开机特别快？一个开关在捣鬼</title><link>https://kinber.cn/post/6809.html</link><description>&lt;section data-layout-id=&quot;1&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;电脑关机后开机特别快，不一定是好事，这个「快速启动」开关有时会捣鬼，两步就能关掉。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;section data-layout-id=&quot;2&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;Win8 之后的系统默认开了「快速启动」，关机时把内核状态存起来，下次开机直接恢复，所以开机快。但这也带来一些毛病：关机不彻底、外设没反应、更新装不上。你遇到这些问题，先试试把它关掉。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;3&quot; style=&quot;font-size: 20px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px;text-align: center;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;一、先搞懂快速启动是什么&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;section data-layout-id=&quot;4&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;正常关机，系统会把所有东西都停掉，下次开机从头加载一遍，慢。快速启动，则是在关机时把系统核心「冻」起来存到硬盘，下次开机直接解冻，所以快。代价是：每次关机不是真正的彻底关机。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;5&quot; style=&quot;font-size: 20px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px;text-align: center;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;二、怎么关掉快速启动&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;section data-layout-id=&quot;6&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;按&lt;span textstyle=&quot;&quot;&gt;Win + R&lt;/span&gt;，输入 powercfg.cpl 回车，打开电源选项。&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center; font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; data-layout-id=&quot;7&quot;&gt;&lt;section style=&quot;line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261010084521_28965.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.5275142314990512&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;527&quot; style=&quot;margin-top: 17px; margin-bottom: 17px; float: none; height: auto !important; visibility: visible !important; width: 527px !important;&quot; type=&quot;block&quot; data-imgfileid=&quot;503648141&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;margin-top: 17px;margin-bottom: 17px;float: none;&quot; data-index=&quot;1&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261010084521_28965.png&quot; _width=&quot;527px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1791592686067&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;8&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;点左侧的「&lt;span textstyle=&quot;&quot;&gt;选择电源按钮的功能&lt;/span&gt;」。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;9&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;点上方蓝色的「&lt;span textstyle=&quot;&quot;&gt;更改当前不可用的设置&lt;/span&gt;」（这步要管理员权限）。&lt;/span&gt;&lt;/section&gt;&lt;section data-layout-id=&quot;10&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;往下找到「关机设置」，取消勾选「&lt;span textstyle=&quot;&quot;&gt;启用快速启动（推荐）&lt;/span&gt;」，点「&lt;span textstyle=&quot;&quot;&gt;保存修改&lt;/span&gt;」。&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center; font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot; data-layout-id=&quot;11&quot;&gt;&lt;section style=&quot;line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261010084522_37530.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.793939393939394&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;660&quot; style=&quot;margin-top: 17px; margin-bottom: 17px; float: none; height: auto !important; visibility: visible !important; width: 660px !important;&quot; type=&quot;block&quot; data-imgfileid=&quot;503648139&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;margin-top: 17px;margin-bottom: 17px;float: none;&quot; data-index=&quot;2&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261010084522_37530.png&quot; _width=&quot;660px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1791592686554&quot; data-report-img-idx=&quot;2&quot; data-fail=&quot;0&quot;/&gt;&lt;/span&gt;&lt;/section&gt;&lt;/section&gt;&lt;/p&gt;&lt;h1 data-layout-id=&quot;12&quot; style=&quot;font-size: 20px;font-weight: 500;color: #2B77BF;line-height: 1.8;margin-bottom: 12px;text-align: center;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;三、什么情况该关掉它&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;section data-layout-id=&quot;13&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;下面这几种情况，先把快速启动关了再试：更新反复装不上；关机后 USB 设备或外接硬盘没反应、灯还亮着；电脑装了双系统，另一个系统读不到共享分区；想彻底关机省电。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;blockquote style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.55); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;p style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;? 这个开关只有 Win8、Win10、Win11 有。Win7 是传统关机，没有快速启动，不需要关。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote style=&quot;font-size: 15px; color: rgba(0, 0, 0, 0.55); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;p style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;? 关了之后开机确实会慢一些，但换来的是每次关机都彻底。如果没遇到上面的问题，你可以保持默认开启。&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;section data-layout-id=&quot;16&quot; style=&quot;font-size: 17px; color: rgba(0, 0, 0, 0.9); line-height: 1.8; margin-bottom: 24px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;注意：你改完点「保存修改」才生效，只勾选不保存等于白改。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sat, 10 Oct 2026 08:45:04 +0800</pubDate></item><item><title>《兵蜂》：打了二十年铃铛，才知道不是所有颜色都该吃</title><link>https://kinber.cn/post/6808.html</link><description>&lt;h1 class=&quot;rich_media_title &quot; id=&quot;activity-name&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 14px; padding: 0px; outline: 0px; font-size: 22px; color: rgba(0, 0, 0, 0.9); line-height: 1.4; user-select: text; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span class=&quot;js_title_inner&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; white-space-collapse: preserve;&quot;&gt;打了二十年铃铛，才知道不是所有颜色都该吃&lt;/span&gt;&lt;/h1&gt;&lt;div id=&quot;meta_content&quot; class=&quot;rich_media_meta_list&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 22px; padding: 0px; outline: 0px; line-height: 20px; font-size: 0px; overflow-wrap: break-word; hyphens: auto; color: rgba(0, 0, 0, 0.9); font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class=&quot;rich_media_content js_underline_content
 
autoTypeSetting24psection
&quot; id=&quot;js_content&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; color: rgba(0, 0, 0, 0.9); font-size: var(--articleFontsize); overflow: hidden; text-align: justify; position: relative; z-index: 0; user-select: text; font-family: &amp;quot;PingFang SC NEW&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, Arial, sans-serif; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;section data-pm-slice=&quot;0 0 []&quot; nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img data-imgfileid=&quot;100000132&quot; data-src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261008162240_78894.png&quot; data-type=&quot;png&quot; data-original-style=&quot;margin: 0px auto 8px;padding: 0px;border: 0px;max-width: 100%;display: block;border-radius: 4px;height: auto;&quot; data-index=&quot;0&quot; data-ratio=&quot;0.6140625&quot; data-w=&quot;640&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261008162240_78894.png&quot; class=&quot;&quot; _width=&quot;640px&quot; __sec_open_place_holder__=&quot;true&quot; data-sec-load-status=&quot;2&quot; data-report-img-idx=&quot;0&quot; alt=&quot;图片&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px auto 8px; padding: 0px; outline: 0px; border: 0px; display: block; border-radius: 4px; box-sizing: border-box !important; overflow-wrap: break-word !important; height: auto !important; visibility: visible !important; width: 640px !important;&quot;/&gt;&lt;/section&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; margin-bottom: 0px !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;43&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1791441986241-0.0688380969992366&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;《兵蜂》&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;这个游戏，我小时候玩的时候有一个固定操作。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;2&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;看到铃铛，按住连发键不放，一顿猛射。铃铛变什么颜色看运气，变出来什么就吃什么。有时候吃到加速，有时候吃到护盾，有时候什么都吃不到，铃铛直接飞走了。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;3&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;就这么瞎打了十几年。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;4&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;后来有一次在网上看人打《兵蜂》的速通，才发现人家打铃铛是&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;有节奏的&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。一下一下点，打到颜色刚好是自己要的，停手，绕过去吃掉。整个过程行云流水。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;5&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;那一刻我才意识到：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;我当年不是玩游戏，是在赌运气。&lt;/span&gt;&lt;/p&gt;&lt;section nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img data-imgfileid=&quot;100000133&quot; data-src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261008162241_74053.jpeg&quot; data-type=&quot;jpeg&quot; data-original-style=&quot;margin: 0px auto 8px;padding: 0px;border: 0px;max-width: 100%;display: block;border-radius: 4px;height: auto;&quot; data-index=&quot;1&quot; data-ratio=&quot;0.884375&quot; data-w=&quot;640&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261008162241_74053.jpeg&quot; class=&quot;&quot; _width=&quot;640px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1791447664169&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px auto 8px; padding: 0px; outline: 0px; border: 0px; display: block; border-radius: 4px; box-sizing: border-box !important; overflow-wrap: break-word !important; height: auto !important; visibility: visible !important; width: 640px !important;&quot;/&gt;&lt;/section&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; margin-bottom: 0px !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1 data-track=&quot;6&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 0px; outline: 0px; font-size: 1.056em; max-width: 100%; border: 0px; width: 659.985px; vertical-align: middle; line-height: 1.579; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;科乐美射击游戏的另一条路&lt;/span&gt;&lt;/h1&gt;&lt;p data-track=&quot;7&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;《兵蜂》1985年3月5日首发，由科乐美开发。那一年科乐美在射击游戏上同时押了两个方向。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;8&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一个是《&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1791441986242-0.8306370668461573&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;沙罗曼蛇&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;》那条线，走的是硬核路线，吃胶囊、升级武器、高难度、偏严肃。另一个就是《兵蜂》这条线，走的是可爱路线，画面明亮，敌人是蔬菜和水果，音乐轻快。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;9&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;但《兵蜂》真正开创的东西是&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;铃铛系统&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。科乐美后来把吃胶囊和打铃铛这两种升级方式融合到了很多射击游戏里，但“打铃铛变色”这个机制，是《兵蜂》先做出来的。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;10&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;另一个创新是&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;双人合体&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。两个玩家可以把手拉在一起，变成一架更大的飞机，火力翻倍-16。这个设计在1985年的街机上相当超前，后来的射击游戏里很少有敢这么做的。&lt;/span&gt;&lt;/p&gt;&lt;h1 data-track=&quot;11&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 0px; outline: 0px; font-size: 1.056em; max-width: 100%; border: 0px; width: 659.985px; vertical-align: middle; line-height: 1.579; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;香料大王占领了&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1791441986377-0.4285778592108833&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;盖饭岛&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p data-track=&quot;12&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;《兵蜂》的故事背景，说出来你可能想笑。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;13&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一个叫&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;香料大王&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;的反派，带着军队占领了一个叫“盖饭岛”的小岛。是的，盖饭岛。&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1791441986378-0.5183321524579068&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: var(--weui-LINK); cursor: default;&quot;&gt;西蒙博士&lt;em class=&quot;wx_search_keyword&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; display: inline-block; vertical-align: super; font-size: 10px; width: 1.2em; height: 1.2em; mask-position: 50% 50%; mask-repeat: no-repeat; mask-size: 100%; background-color: var(--weui-LINK); mask-image: url(&amp;quot;data:image/svg+xml,%3csvg width=&amp;#39;12&amp;#39; height=&amp;#39;12&amp;#39; viewBox=&amp;#39;0 0 12 12&amp;#39; fill=&amp;#39;none&amp;#39; xmlns=&amp;#39;http://www.w3.org/2000/svg&amp;#39;%3e%3cpath fill-rule=&amp;#39;evenodd&amp;#39; clip-rule=&amp;#39;evenodd&amp;#39; d=&amp;#39;M7.60772 8.29444C7.02144 8.73734 6.29139 9 5.5 9C3.567 9 2 7.433 2 5.5C2 3.567 3.567 2 5.5 2C7.433 2 9 3.567 9 5.5C9 6.28241 8.74327 7.00486 8.30946 7.5877C8.3183 7.59444 8.3268 7.60186 8.33488 7.60994L10.4331 9.70816L9.726 10.4153L7.62777 8.31704C7.62055 8.30983 7.61387 8.30228 7.60772 8.29444ZM8 5.5C8 6.88071 6.88071 8 5.5 8C4.11929 8 3 6.88071 3 5.5C3 4.11929 4.11929 3 5.5 3C6.88071 3 8 4.11929 8 5.5Z&amp;#39; fill=&amp;#39;%23576B95&amp;#39;/%3e%3c/svg%3e&amp;quot;);&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;开发了两架战斗机——青蜂和雄蜂，让他的两个儿子驾驶，去把香料大王赶走。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;14&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;“盖饭岛”这个名字是翻译过来的梗，日文原文是“ドンブリ島”，意思是“碗公岛”。翻译成“盖饭岛”属于本地化再创作，但说实话，比原版还好记。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;15&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;敌人也全是吃的。第一关的前锋军是蔬菜军团，草莓、葡萄、柠檬之类的-。打到后面才有真正的军事化敌人。这种把食物当敌人的设定，放在1985年，非常清新。&lt;/span&gt;&lt;/p&gt;&lt;h1 data-track=&quot;16&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 0px; outline: 0px; font-size: 1.056em; max-width: 100%; border: 0px; width: 659.985px; vertical-align: middle; line-height: 1.579; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;铃铛的秘密：每打五下变一次色&lt;/span&gt;&lt;/h1&gt;&lt;section nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img data-imgfileid=&quot;100000134&quot; data-src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261008162242_34661.jpeg&quot; data-type=&quot;jpeg&quot; data-original-style=&quot;margin: 0px auto 8px;padding: 0px;border: 0px;max-width: 100%;display: block;border-radius: 4px;height: auto;&quot; data-index=&quot;2&quot; data-ratio=&quot;0.8109375&quot; data-w=&quot;640&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261008162242_34661.jpeg&quot; class=&quot;&quot; _width=&quot;640px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1791447697369&quot; data-report-img-idx=&quot;2&quot; data-fail=&quot;0&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px auto 8px; padding: 0px; outline: 0px; border: 0px; display: block; border-radius: 4px; box-sizing: border-box !important; overflow-wrap: break-word !important; height: auto !important; visibility: visible !important; width: 640px !important;&quot;/&gt;&lt;/section&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; margin-bottom: 0px !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;17&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;铃铛是这个游戏的灵魂。打中铃铛五次，颜色会变一次。顺序是固定的：&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;18&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;黄色&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;是初始颜色，吃了只加分，从500分开始，连续吃最高能到10000分。没有实际战斗效果。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;19&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;蓝色&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;是第一次变色。吃了加速，战机移动更快。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;20&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;白色&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;是第二次变色。吃了武器升级，从单发变成双发。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;21&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;闪光白红色&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;是第三次变色。吃了获得影分身效果，屏幕上会出现多个战机分身，攻击密度拉满。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;22&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;红色&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;是终极形态。吃了获得护盾，但有个坑：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;护盾出现之后，屏幕上会刷出大量鸡蛋到处乱弹&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。这些鸡蛋是无敌的，打不掉，专门用来撞碎你的护盾。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;23&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;还有一个隐藏规则：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;吃了红色铃铛之后，闪光白红色铃铛就不会再出现了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。反过来也一样。所以你不能同时拥有护盾和分身，必须二选一。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;24&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;当年打铃铛全靠连发键，铃铛颜色变来变去根本控制不住。正确做法是用&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;单发&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;，一下一下点，数着次数打，到想要的颜色就停手。&lt;/span&gt;&lt;/p&gt;&lt;h1 data-track=&quot;25&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 0px; outline: 0px; font-size: 1.056em; max-width: 100%; border: 0px; width: 659.985px; vertical-align: middle; line-height: 1.579; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;双人合体：两种方式，两种命运&lt;/span&gt;&lt;/h1&gt;&lt;section nodeleaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px 0px 24px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;img data-imgfileid=&quot;100000135&quot; data-src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261008162242_91529.jpeg&quot; data-type=&quot;jpeg&quot; data-original-style=&quot;margin: 0px auto 8px;padding: 0px;border: 0px;max-width: 100%;display: block;border-radius: 4px;height: auto;&quot; data-index=&quot;3&quot; data-ratio=&quot;0.878125&quot; data-w=&quot;640&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/10/20261008162242_91529.jpeg&quot; class=&quot;&quot; _width=&quot;640px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1791447719416&quot; data-report-img-idx=&quot;3&quot; data-fail=&quot;0&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px auto 8px; padding: 0px; outline: 0px; border: 0px; display: block; border-radius: 4px; box-sizing: border-box !important; overflow-wrap: break-word !important; height: auto !important; visibility: visible !important; width: 640px !important;&quot;/&gt;&lt;/section&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; margin-bottom: 0px !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;26&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;《兵蜂》的双人合体有两种方式。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;27&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;一种是&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;前后合体&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。一架飞机跟在另一架后面，火力叠加，但两架飞机不粘连。后面那架随时可以脱离，比较灵活。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;28&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;另一种是&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;左右合体&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。两架飞机并排粘在一起，变成一架“大飞机”，火力最强，但&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;只能由一个玩家操控&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;29&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;问题就出在这里。两个人玩的时候，谁操控合体后的飞机？另一个人干嘛？看着。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;30&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;于是当年最常见的画面就是：一个人操控着合体后的大飞机在前面打，另一个人坐在旁边无所事事，偶尔喊一句“往左往左”。然后操控的那个人故意往子弹上撞，合体炸开，两个人一起死。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;31&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;合体的本质不是合作，是把游戏变成一个人的游戏，另一个人的游戏体验直接归零。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;但当年还是乐此不疲，因为合体之后打BOSS是真的快。&lt;/span&gt;&lt;/p&gt;&lt;h1 data-track=&quot;32&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 0px; outline: 0px; font-size: 1.056em; max-width: 100%; border: 0px; width: 659.985px; vertical-align: middle; line-height: 1.579; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;加命秘籍：按住2P的B键&lt;/span&gt;&lt;/h1&gt;&lt;p data-track=&quot;33&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;《兵蜂》的加命秘籍，当年知道的人不多，因为官方正版卡带里没有。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;34&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;国内流通的盗版卡带里，至少有三个加命版本。最常用的操作是：&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;在分数画面（黑色背景）出现的时候，一边按住2P手柄的B键，一边按方向键上、下、左、右&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;-。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;35&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;单人玩加10条命，双人玩各加5条-。这个秘籍只在特定的盗版卡带上有效，正版卡带按了没反应。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;36&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;还有一个更复杂的版本：标题画面按两次START，再按住A和B不放，然后按右上、右下、左下、左上，再按START-。这个版本的成功率更低，但据说加命效果更好。&lt;/span&gt;&lt;/p&gt;&lt;h1 data-track=&quot;37&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 20px 0px; padding: 0px; outline: 0px; font-size: 1.056em; max-width: 100%; border: 0px; width: 659.985px; vertical-align: middle; line-height: 1.579; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;那些年，我们在铃铛上浪费的时间&lt;/span&gt;&lt;/h1&gt;&lt;p data-track=&quot;38&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;《兵蜂》在科乐美的射击游戏里，销量其实很能打，是红白机上卖得最好的游戏之一，甚至超过了百万销量。但它在国内的知名度远不如魂斗罗和沙罗曼蛇，很大一部分原因是——&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;它的乐趣门槛太高了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;39&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;你不搞懂铃铛，这游戏就只是一个“打飞机”游戏。你搞懂了铃铛，它才变成一个需要规划、需要节奏、需要取舍的游戏。打哪个铃铛，什么时候停手，吃加速还是吃火力，红铃铛和闪光铃铛选哪个——每一个决定都影响你接下来怎么打。&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;40&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; margin-bottom: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;三十多年后回头看，当年那个按住连发键乱射铃铛的自己，其实错过了一个很精妙的游戏系统。但话说回来，&lt;/span&gt;&lt;/p&gt;&lt;p data-track=&quot;41&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 20px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; border: 0px; color: rgb(34, 34, 34); font-family: &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: 18px; letter-spacing: normal; margin-bottom: 0px !important; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border: 0px; font-weight: 700;&quot;&gt;当年谁不是这么玩过来的呢&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 08 Oct 2026 16:20:53 +0800</pubDate></item><item><title>什么是中间件？</title><link>https://kinber.cn/post/6802.html</link><description>&lt;div class=&quot;rh-group--layout &quot; data-rh-layout=&quot;stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 64px; position: relative; color: rgb(21, 21, 21); font-family: RedHatText, &amp;quot;Red Hat Text&amp;quot;, &amp;quot;Noto Sans SC&amp;quot;, Helvetica, Arial, sans-serif; font-size: 18px; text-wrap: wrap;&quot;&gt;&lt;div class=&quot;rh-group-body&quot; data-rh-layout=&quot;min-stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 0px;&quot;&gt;&lt;header class=&quot;rh-standard-header--component&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; display: flex; flex-flow: row; align-items: center; justify-content: space-between;&quot;&gt;&lt;div class=&quot;rh-standard-header-container&quot; style=&quot;box-sizing: border-box; flex-grow: 1;&quot;&gt;&lt;h2 class=&quot;rh-standard-header-headline-medium pfe-jump-links-panel__section&quot; id=&quot;什么是中间件？&quot; nav-label=&quot;什么是中间件？&quot; style=&quot;box-sizing: border-box; margin: 0px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.75rem; width: 688px;&quot;&gt;什么是中间件？&lt;/h2&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&quot;rh-generic--component&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; font-family: var(--rh-font-family-body-text,RedHatText,&amp;quot;Red Hat Text&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.5; font-size: 1.125rem;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; margin-block: 0px;&quot;&gt;中间件是指连接操作系统与应用、数据及用户的软件层。中间件提供一些常用服务和功能，例如单点登录（SSO）或&lt;a href=&quot;https://www.redhat.com/zh-cn/topics/api/what-is-api-management&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;应用编程接口（API）管理&lt;/a&gt;。开发人员可以借助中间件&lt;a href=&quot;https://www.redhat.com/zh-cn/topics/integration/what-is-integration&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;集成&lt;/a&gt;不同的应用组件，使其通过一个简单、统一的方式进行连接和交互。这让开发人员能够腾出时间来构建应用的核心功能，而不是花时间将这些功能连接到不同的端点和环境，包括传统系统。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; margin-block: 0px;&quot;&gt;从&amp;nbsp;&lt;a href=&quot;http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;1960 年代末&lt;/a&gt;开始，中间件就成为了软件工程技术的一部分，并且它不仅限于某一特定类型的软件，而是作为一个广泛的类别，可以应用于许多不同类型的现代软件组件。中间件可以包括&lt;a href=&quot;https://www.redhat.com/zh-cn/products/runtimes&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;应用运行时&lt;/a&gt;、企业应用集成和各种云服务。数据管理、&lt;a href=&quot;https://www.redhat.com/zh-cn/products/application-foundations&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;应用服务&lt;/a&gt;、消息传递、身份验证和 API 管理通常都要通过中间件来处理。&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;如今，中间件是现代云原生架构的技术基础。对于具有多云和容器化环境的企业而言，中间件可以助您大规模、经济高效地开发和运行应用。&lt;/p&gt;&lt;rh-cta variant=&quot;primary&quot; style=&quot;display: inline-flex; position: relative; z-index: 0; align-items: center; max-width: max-content; border-radius: var(--rh-border-radius-default,3px); box-sizing: border-box; --felt-preview-cta-font-size: var(--felt-preview-font-size-body-text-md); --felt-preview-cta-padding-block: var(--felt-preview-space-lg); --felt-preview-cta-padding-inline: var(--felt-preview-space-2xl); --felt-preview-cta-padding-block-compact: var(--felt-preview-space-md); --felt-preview-cta-padding-inline-compact: var(--felt-preview-space-xl); --felt-preview-cta-border-width-hover: var(--felt-preview-border-width-md); --felt-preview-cta-border-width-focus: var(--felt-preview-border-width-md); --felt-preview-cta-border-width-focus-ring: var(--felt-preview-border-width-lg); --felt-preview-cta-border-width-active: var(--felt-preview-border-width-md); --felt-preview-cta-border-offset: calc(
          var(--felt-preview-cta-border-width-hover)
          - var(--felt-preview-border-width-sm)
        ); --felt-preview-cta-border-offset-block: calc(
          var(--rh-space-lg, 16px)
          - var(--felt-preview-cta-border-offset)
        ); --felt-preview-cta-border-offset-inline: calc(
          var(--rh-space-2xl, 32px)
          - var(--felt-preview-cta-border-offset)
        ); --felt-preview-cta-text-underline-offset: 4px; --felt-preview-cta-text-decoration-color: currentcolor; --felt-preview-cta-text-decoration: underline dashed 1px var(--felt-preview-cta-text-decoration-color); --felt-preview-cta-primary-bg-default: #ee0000; --felt-preview-cta-primary-bg-hover: #a60000; --felt-preview-cta-primary-bg-active: #a60000; --rh-color-interactive-primary-default: var(--felt-preview-cta-primary-bg-default); --rh-color-interactive-primary-hover: var(--felt-preview-cta-primary-bg-hover); --rh-border-radius-default: var(--felt-preview-border-radius-pill); --rh-font-size-body-text-md: var(--felt-preview-cta-font-size); --rh-font-size-body-text-lg: var(--felt-preview-cta-font-size); --rh-space-lg: var(--felt-preview-cta-padding-block); --rh-space-2xl: var(--felt-preview-cta-padding-inline); --rh-cta-focus-container-outline-color: transparent; --rh-cta-hover-text-decoration: var(--felt-preview-cta-text-decoration); --rh-cta-hover-text-underline-offset: var(--felt-preview-cta-text-underline-offset); --rh-cta-focus-text-decoration: var(--felt-preview-cta-text-decoration); --rh-cta-active-background-color: var(--felt-preview-cta-primary-bg-active); --rh-cta-active-text-decoration: var(--felt-preview-cta-text-decoration); --rh-cta-focus-inner-border-color: transparent; --rh-cta-active-inner-border-color: transparent;&quot;&gt;&lt;span id=&quot;container&quot; part=&quot;container&quot; class=&quot;  &quot; style=&quot;position: relative; color: var(--_color); font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); font-size: var(--rh-font-size-body-text-md,1rem); font-weight: var(--rh-font-weight-heading-bold,700); line-height: var(--rh-line-height-body-text,1.5); border-color: var(--_border-color,#0000); border-radius: var(--rh-border-radius-default,3px); border-width: var(--rh-border-width-sm,1px); --_icon-size: var(--rh-icon-size,var(--rh-font-size-body-text-lg,1.125rem)); --_arrow-size: 13px; --_rh-icon-plus-padding: calc(5px + var(--rh-icon-size)); padding-inline: var(--rh-space-2xl,32px); padding-block: var(--rh-space-lg,16px); border-style: solid; --_background-color: var(--rh-cta-background-color,var(--rh-color-brand-red)); --_border-color: var(--rh-cta-border-color,var(--rh-color-brand-red)); --_color: var(--rh-cta-color,var(--rh-color-text-primary-on-dark,#fff)); --_active-color: var(--rh-cta-color,var(--rh-color-text-primary-on-dark,#fff)); --_hover-background-color: var(--rh-cta-hover-background-color,var(--rh-color-brand-red-dark,#a60000)); --_hover-border-color: var(--rh-cta-hover-border-color,var(--rh-color-brand-red-dark,#a60000)); --_hover-color: var(--rh-cta-hover-color,var(--rh-color-text-primary-on-dark,#fff)); --_focus-background-color: var(--rh-cta-focus-background-color,var(--rh-color-brand-red-dark,#a60000)); --_focus-border-color: var(--rh-cta-focus-border-color,var(--rh-color-brand-red-dark,#a60000)); --_focus-inner-border-color: var(--rh-cta-focus-inner-border-color,var(--rh-color-text-primary-on-dark,#fff)); --_focus-text-decoration: var(--rh-cta-focus-text-decoration,none); --_active-background-color: var(--rh-cta-active-background-color,var(--rh-color-brand-red-dark,#a60000)); --_active-inner-border-color: var(--rh-cta-active-inner-border-color,var(--rh-color-text-primary-on-dark,#fff)); --rh-color-surface: var(--_background-color) !important; --_focus-color: var(--rh-cta-focus-color,var(--rh-color-text-primary-on-dark,#fff)) !important;&quot;&gt;&lt;slot&gt;&lt;a href=&quot;https://www.redhat.com/zh-cn/products/application-foundations&quot; title=&quot;产品 | 红帽应用基础&quot; data-analytics-linktype=&quot;cta&quot; style=&quot;font-size: var(--rh-cta-font-size-priority,var(--rh-font-size-body-text-md,1rem)); box-sizing: border-box; vertical-align: middle !important; word-break: break-word !important; text-wrap: wrap !important; display: inline-flex !important; color: inherit !important; font-family: inherit !important; font-weight: inherit !important; line-height: inherit !important; text-underline-offset: var(--_text-underline-offset) !important; z-index: 2 !important; text-align: center !important;&quot;&gt;浏览红帽应用基础&lt;/a&gt;&lt;/slot&gt;&lt;/span&gt;&lt;/rh-cta&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;rh-group--layout &quot; data-rh-layout=&quot;stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 64px; position: relative; color: rgb(21, 21, 21); font-family: RedHatText, &amp;quot;Red Hat Text&amp;quot;, &amp;quot;Noto Sans SC&amp;quot;, Helvetica, Arial, sans-serif; font-size: 18px; text-wrap: wrap;&quot;&gt;&lt;div class=&quot;rh-group-body&quot; data-rh-layout=&quot;min-stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 0px;&quot;&gt;&lt;header class=&quot;rh-standard-header--component&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; display: flex; flex-flow: row; align-items: center; justify-content: space-between;&quot;&gt;&lt;div class=&quot;rh-standard-header-container&quot; style=&quot;box-sizing: border-box; flex-grow: 1;&quot;&gt;&lt;h2 class=&quot;rh-standard-header-headline-medium pfe-jump-links-panel__section&quot; id=&quot;中间件的种类&quot; nav-label=&quot;中间件的种类&quot; style=&quot;box-sizing: border-box; margin: 0px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.75rem; width: 688px;&quot;&gt;中间件有哪些种类？&lt;/h2&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&quot;rh-generic--component&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; font-family: var(--rh-font-family-body-text,RedHatText,&amp;quot;Red Hat Text&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.5; font-size: 1.125rem;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; margin-block: 0px;&quot;&gt;从广义上讲，中间件涵盖了从 Web 服务器，到身份验证系统，再到消息传递工具等一切组件。以下是现代化开发中一些常见的中间件用例。&lt;/p&gt;&lt;div class=&quot;cke5-columns&quot; style=&quot;box-sizing: border-box; display: grid; grid-template-columns: repeat(auto-fit, minmax(275px, 1fr)); column-gap: 32px; margin-block: 0px; margin-bottom: 16px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; margin-block: 0px; margin-bottom: 16px;&quot;&gt;&lt;img loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;160&quot; src=&quot;https://www.redhat.com/rhdc/managed-files/Middleware-new-application-develop-diagram.svg&quot; alt=&quot;Middleware New Application Development diagram&quot; title=&quot;Middleware New Application Development&quot; style=&quot;box-sizing: border-box; border-style: none; vertical-align: middle; height: auto;&quot;/&gt;&lt;h3 id=&quot;rh-3i7rd&quot; style=&quot;box-sizing: border-box; margin: 24px 0px 16px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.5rem;&quot;&gt;新应用开发&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; margin-block: 0px;&quot;&gt;中间件可支持各种用例的现代常用运行时环境。开发人员和架构师可以根据一组基本运行时、框架和编程语言，跨平台灵活地开展工作。此外，中间件还可以提供一些常用功能，例如 Web 服务器、单点登录（SSO）、消息传递和内存中缓存。&lt;/p&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box; margin-block: 0px;&quot;&gt;&lt;img loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;160&quot; src=&quot;https://www.redhat.com/rhdc/managed-files/Middleware-optimization-of-existing-apps-diagram.svg&quot; alt=&quot;Middleware optimization of existing applications diagram&quot; title=&quot;Middleware optimization of existing applications&quot; style=&quot;box-sizing: border-box; border-style: none; vertical-align: middle; height: auto;&quot;/&gt;&lt;h3 id=&quot;rh-siwec&quot; style=&quot;box-sizing: border-box; margin: 24px 0px 16px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.5rem;&quot;&gt;优化现有应用&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; margin-block: 0px;&quot;&gt;借助中间件，开发人员可以将传统单体式应用转换为云原生应用，从而带来更高的性能和更强的可移植性，让有价值的工具焕发新生。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;cke5-columns&quot; style=&quot;box-sizing: border-box; display: grid; grid-template-columns: repeat(auto-fit, minmax(275px, 1fr)); column-gap: 32px; margin-block: 0px; margin-bottom: 16px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; margin-block: 0px; margin-bottom: 16px;&quot;&gt;&lt;img loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;160&quot; src=&quot;https://www.redhat.com/rhdc/managed-files/Middleware-comprehensive-integration-diagram.svg&quot; alt=&quot;Middleware comprehensive integration diagram&quot; title=&quot;Middleware comprehensive integration&quot; style=&quot;box-sizing: border-box; border-style: none; vertical-align: middle; height: auto;&quot;/&gt;&lt;h3 id=&quot;rh-czxtc&quot; style=&quot;box-sizing: border-box; margin: 24px 0px 16px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.5rem;&quot;&gt;全面集成&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; margin-block: 0px;&quot;&gt;中间件集成工具可连接关键的内部和外部系统。转换、连接、组合和企业消息传递等集成功能与 SSO 身份验证相结合，使开发人员可以更轻松地在不同应用之间扩展功能。&lt;/p&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box; margin-block: 0px;&quot;&gt;&lt;img loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;160&quot; src=&quot;https://www.redhat.com/rhdc/managed-files/Middleware-app-programming-interfaces-diagram.svg&quot; alt=&quot;Middleware app programming interfaces diagram&quot; title=&quot;Middleware app programming interfaces&quot; style=&quot;box-sizing: border-box; border-style: none; vertical-align: middle; height: auto;&quot;/&gt;&lt;h3 id=&quot;rh-x78y4&quot; style=&quot;box-sizing: border-box; margin: 24px 0px 16px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.5rem;&quot;&gt;应用编程接口（API）&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; margin-block: 0px;&quot;&gt;许多中间件服务都是通过&amp;nbsp;&lt;a href=&quot;https://www.redhat.com/zh-cn/topics/api/what-are-application-programming-interfaces&quot; data-entity-type=&quot;node&quot; data-entity-uuid=&quot;d94f2857-1970-43f5-9db5-e11df6da1675&quot; data-entity-substitution=&quot;canonical&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;API&lt;/a&gt;&amp;nbsp;访问的，API 是一组允许应用之间相互通信的工具、定义和协议。正是有了 API，才有可能通过通用层连接完全不同的产品和服务。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;cke5-columns&quot; style=&quot;box-sizing: border-box; display: grid; grid-template-columns: repeat(auto-fit, minmax(275px, 1fr)); column-gap: 32px; margin-block: 0px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; margin-block: 0px; margin-bottom: 16px;&quot;&gt;&lt;img loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;160&quot; src=&quot;https://www.redhat.com/rhdc/managed-files/Middleware-data-streaming-diagram.svg&quot; alt=&quot;Middleware data streaming diagram&quot; title=&quot;Middleware data streaming&quot; style=&quot;box-sizing: border-box; border-style: none; vertical-align: middle; height: auto;&quot;/&gt;&lt;h3 id=&quot;rh-rftsi&quot; style=&quot;box-sizing: border-box; margin: 24px 0px 16px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.5rem;&quot;&gt;数据流&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; margin-block: 0px;&quot;&gt;API 是在应用之间共享数据的一种方法，另一种方法是异步数据流。这种方法是在中间存储中复制数据集，其中的数据可在多个应用之间共享。&lt;a href=&quot;https://www.redhat.com/zh-cn/topics/integration/what-is-apache-kafka&quot; data-entity-type=&quot;node&quot; data-entity-uuid=&quot;53f0823a-042a-48df-849d-7c926a0cc9e3&quot; data-entity-substitution=&quot;canonical&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;Apache Kafka&lt;/a&gt;&amp;nbsp;是一款常见的用于实时数据流的开源中间件工具。&lt;/p&gt;&lt;/div&gt;&lt;div style=&quot;box-sizing: border-box; margin-block: 0px;&quot;&gt;&lt;img loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;160&quot; src=&quot;https://www.redhat.com/rhdc/managed-files/Middleware-intelligent-bus-automation-diagram.svg&quot; alt=&quot;Middleware intelligent business automation diagram&quot; title=&quot;Middleware intelligent business automation&quot; style=&quot;box-sizing: border-box; border-style: none; vertical-align: middle; height: auto;&quot;/&gt;&lt;h3 id=&quot;rh-gymn6&quot; style=&quot;box-sizing: border-box; margin: 24px 0px 16px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.5rem;&quot;&gt;智能业务自动化&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; margin-block: 0px;&quot;&gt;借助中间件，开发人员、架构师、IT 和业务主管可以实现手动决策自动化。自动化可以改善资源管理和整体效率。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;rhdc--inline-promo&quot; data-rh-mbox=&quot;inline-promo&quot; style=&quot;box-sizing: border-box; margin-bottom: 64px; color: rgb(21, 21, 21); font-family: RedHatText, &amp;quot;Red Hat Text&amp;quot;, &amp;quot;Noto Sans SC&amp;quot;, Helvetica, Arial, sans-serif; font-size: 18px; text-wrap: wrap;&quot;&gt;&lt;div class=&quot;rh-card--layout rh-promo-article&quot; data-rh-promo=&quot;inline&quot; data-rh-border-radius=&quot;none&quot; data-rh-mobile-alignment=&quot;left&quot; data-rh-background=&quot;gray&quot; data-rh-theme=&quot;light&quot; data-rh-bg-align=&quot;cover&quot; data-rh-layout=&quot;fit-content-33&quot; data-rh-border=&quot;top-bottom&quot; style=&quot;box-sizing: border-box; align-items: center; overflow: hidden; position: relative; padding: var(--felt-preview-card-padding-default,32px); display: grid; flex-direction: column; container: rh-card--layout / inline-size; background-size: cover; background-position: center center; background-repeat: no-repeat; background-color: rgb(242, 242, 242); border-radius: 0px; --webrh-title-color: #1f1f1f; --webrh-cta-secondary-color: #0066cc; color-scheme: light only; grid-template-columns: 1fr fit-content(33%); gap: 20px; --felt-preview-card-padding-default: var(--felt-preview-space-xl); --felt-preview-card-padding-compact: var(--felt-preview-space-lg); --felt-preview-card-padding-large: var(--felt-preview-space-2xl); --rh-card-heading-font-size: 1.25rem; border-color: rgb(199, 199, 199); border-top-style: ; border-width: 1px 0px; border-right-style: ; border-bottom-style: ; border-left-style: ; border-image-source: ; border-image-slice: ; border-image-width: ; border-image-outset: ; border-image-repeat: ;&quot;&gt;&lt;div class=&quot;rh-card-content&quot; data-rh-layout=&quot;stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; position: relative; padding: 0px;&quot;&gt;&lt;div class=&quot;rh-group--layout &quot; data-rh-layout=&quot;stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 0px; position: relative;&quot;&gt;&lt;div class=&quot;rh-group-body&quot; data-rh-layout=&quot;min-stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 0px;&quot;&gt;&lt;div class=&quot;rh-band-header--component&quot; data-rh-align=&quot;left&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; position: relative; list-style-position: outside;&quot;&gt;&lt;h2 class=&quot;rh-band-header-subsection-headline&quot; id=&quot;rh-43yco&quot; style=&quot;box-sizing: border-box; margin: 0px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.25rem;&quot;&gt;红帽资源&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;footer class=&quot;rh-card-footer&quot; style=&quot;box-sizing: border-box; position: relative; padding: 0px; align-self: center;&quot;&gt;&lt;div class=&quot;rh-group--layout &quot; style=&quot;box-sizing: border-box; position: relative;&quot;&gt;&lt;div class=&quot;rh-group-body&quot; data-rh-layout=&quot;min-stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column;&quot;&gt;&lt;div class=&quot;rh-cta--component&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px;&quot;&gt;&lt;rh-cta defer-hydration=&quot;&quot; rh-shared-libs-dsd=&quot;&quot; style=&quot;display: inline-flex; position: relative; z-index: 0; align-items: center; max-width: max-content; border-radius: var(--rh-border-radius-default,3px); box-sizing: border-box; --felt-preview-cta-font-size: var(--felt-preview-font-size-body-text-md); --felt-preview-cta-padding-block: var(--felt-preview-space-lg); --felt-preview-cta-padding-inline: var(--felt-preview-space-2xl); --felt-preview-cta-padding-block-compact: var(--felt-preview-space-md); --felt-preview-cta-padding-inline-compact: var(--felt-preview-space-xl); --felt-preview-cta-border-width-hover: var(--felt-preview-border-width-md); --felt-preview-cta-border-width-focus: var(--felt-preview-border-width-md); --felt-preview-cta-border-width-focus-ring: var(--felt-preview-border-width-lg); --felt-preview-cta-border-width-active: var(--felt-preview-border-width-md); --felt-preview-cta-border-offset: calc(
          var(--felt-preview-cta-border-width-hover)
          - var(--felt-preview-border-width-sm)
        ); --felt-preview-cta-border-offset-block: calc(
          var(--rh-space-lg, 16px)
          - var(--felt-preview-cta-border-offset)
        ); --felt-preview-cta-border-offset-inline: calc(
          var(--rh-space-2xl, 32px)
          - var(--felt-preview-cta-border-offset)
        ); --felt-preview-cta-text-underline-offset: 4px; --felt-preview-cta-text-decoration-color: currentcolor; --felt-preview-cta-text-decoration: underline dashed 1px var(--felt-preview-cta-text-decoration-color); --felt-preview-cta-primary-bg-default: #ee0000; --felt-preview-cta-primary-bg-hover: #a60000; --felt-preview-cta-primary-bg-active: #a60000; --rh-color-interactive-primary-default: var(--felt-preview-color-interactive-primary-default); --rh-color-interactive-primary-hover: var(--felt-preview-color-interactive-primary-hover); --rh-border-radius-default: var(--felt-preview-border-radius-action-plain); --rh-font-size-body-text-md: var(--felt-preview-cta-font-size); --rh-font-size-body-text-lg: var(--felt-preview-cta-font-size); --rh-space-lg: var(--felt-preview-cta-padding-block); --rh-space-2xl: var(--felt-preview-cta-padding-inline); --rh-cta-focus-container-outline-color: transparent; --rh-cta-hover-background-color: transparent; --rh-cta-hover-text-decoration: var(--felt-preview-cta-text-decoration); --rh-cta-hover-text-underline-offset: var(--felt-preview-cta-text-underline-offset); --rh-cta-focus-container-background-color: transparent; --rh-cta-focus-color: var(--felt-preview-color-text-interactive-focus); --rh-cta-focus-text-decoration: var(--felt-preview-cta-text-decoration); --rh-cta-active-container-background-color: var(
            --felt-preview-color-interactive-fill-plain-active
          ); --rh-cta-active-text-decoration: var(--felt-preview-cta-text-decoration);&quot;&gt;&lt;span id=&quot;container&quot; part=&quot;container&quot; class=&quot; svg &quot; style=&quot;position: relative; color: var(--_color); font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); font-size: var(--rh-font-size-body-text-lg,1.125rem); font-weight: var(--rh-font-weight-heading-bold,700); line-height: var(--rh-line-height-body-text,1.5); background-color: var(--_background-color); border-color: var(--_border-color,#0000); border-radius: var(--rh-border-radius-default,3px); border-width: var(--rh-border-width-sm,1px); --_icon-size: var(--rh-icon-size,var(--rh-font-size-body-text-lg,1.125rem)); --_arrow-size: 13px; --_rh-icon-plus-padding: calc(5px + var(--rh-icon-size)); --rh-color-surface: var(--_background-color) !important; padding-inline-end: calc(var(--rh-icon-size) + var(--rh-space-md, 8px) + 2px); --_background-color: var(--rh-cta-background-color,#0000); --_border-color: var(--rh-cta-border-color,#0000); --_color: var(--rh-cta-color,var(--rh-color-interactive-primary-default)); --_hover-background-color: var(--rh-cta-hover-background-color,#0000); --_hover-border-color: var(--rh-cta-hover-border-color,#0000); --_hover-color: var(--rh-cta-hover-color,var(--rh-color-interactive-primary-hover)); --_hover-text-decoration: var(--rh-cta-hover-text-decoration,none); --_focus-background-color: var(--rh-cta-focus-background-color,#0000); --_focus-container-background-color: light-dark(var(--rh-cta-focus-container-background-color,#0066cc1a),var(--rh-cta-focus-container-background-color,#73bcf740)); --_focus-border-color: var(--rh-cta-focus-border-color,#0000); --_focus-color: var(--rh-cta-focus-color,var(--rh-color-interactive-primary-default)); --_focus-inner-border-color: var(--rh-cta-focus-inner-border-color,#0000); --_focus-text-decoration: var(--rh-cta-focus-text-decoration,none); --_active-container-background-color: light-dark(var(--rh-cta-active-container-background-color,#0066cc1a),var(--rh-cta-active-container-background-color,#73bcf740)); --_active-inner-border-color: var(--rh-cta-active-inner-border-color,#0000); --_active-text-decoration: var(--rh-cta-active-text-decoration,none);&quot;&gt;&lt;slot&gt;&lt;a class=&quot;rh-cta-link&quot; href=&quot;https://www.redhat.com/zh-cn/resources&quot; title=&quot;扩展阅读&quot; data-analytics-linktype=&quot;cta&quot; data-analytics-text=&quot;扩展阅读&quot; data-analytics-category=&quot;Inline promo | Red Hat resources&quot; style=&quot;box-sizing: border-box; vertical-align: middle !important; word-break: break-word !important; text-wrap: wrap !important; display: inline !important; color: inherit !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; text-decoration: var(--_text-decoration) !important; text-underline-offset: var(--_text-underline-offset) !important; z-index: 2 !important;&quot;&gt;扩展阅读&lt;/a&gt;&lt;/slot&gt;&lt;rh-icon icon=&quot;arrow-right&quot; set=&quot;ui&quot; defer-hydration=&quot;&quot; style=&quot;line-height: 0; aspect-ratio: 1 / 1; display: inline-block; place-content: center; vertical-align: middle; margin-inline-start: var(--rh-space-md,8px); fill: currentcolor; translate: 0px; transition: translate var(--_trans); --_trans: var(--rh-animation-speed,0.3s) var(--rh-animation-timing,cubic-bezier(0.465,0.183,0.153,0.946));&quot;&gt;&lt;div id=&quot;container&quot; aria-hidden=&quot;true&quot; class=&quot; ui &quot; style=&quot;display: contents;&quot;&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewbox=&quot;0 0 32 32&quot;&gt;&lt;path d=&quot;M30.354 14.939 19.708 4.293a.999.999 0 1 0-1.414 1.414L27.587 15H2a1 1 0 0 0 0 2h25.586l-9.293 9.293a.999.999 0 1 0 1.414 1.414l10.646-10.646c.283-.283.439-.66.439-1.061s-.156-.777-.439-1.061Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/div&gt;&lt;/rh-icon&gt;&lt;/span&gt;&lt;/rh-cta&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/footer&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;rh-group--layout &quot; data-rh-layout=&quot;stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 64px; position: relative; color: rgb(21, 21, 21); font-family: RedHatText, &amp;quot;Red Hat Text&amp;quot;, &amp;quot;Noto Sans SC&amp;quot;, Helvetica, Arial, sans-serif; font-size: 18px; text-wrap: wrap;&quot;&gt;&lt;div class=&quot;rh-group-body&quot; data-rh-layout=&quot;min-stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 0px;&quot;&gt;&lt;header class=&quot;rh-standard-header--component&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; display: flex; flex-flow: row; align-items: center; justify-content: space-between;&quot;&gt;&lt;div class=&quot;rh-standard-header-container&quot; style=&quot;box-sizing: border-box; flex-grow: 1;&quot;&gt;&lt;h2 class=&quot;rh-standard-header-headline-medium pfe-jump-links-panel__section&quot; id=&quot;云计算的重要性&quot; nav-label=&quot;云计算的重要性&quot; style=&quot;box-sizing: border-box; margin: 0px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.75rem; width: 688px;&quot;&gt;为什么中间件对云计算至关重要？&lt;/h2&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&quot;rh-generic--component&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; font-family: var(--rh-font-family-body-text,RedHatText,&amp;quot;Red Hat Text&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.5; font-size: 1.125rem;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; margin-block: 0px;&quot;&gt;随着企业越来越多地采用云原生开发，软件开发人员和系统架构师必须更关注应用平台的前期设计和架构。这需要选择和设置合适的框架与功能，以便开发、部署和运行应用，而所有功能都是由中间件来管理和协调。有了这些功能，企业就能进一步挖掘云的益处。应用可以部署在多个不同的基础架构上（无论是本地系统还是公共云环境），并且它们都能正常运行。&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;为了应对这种复杂情况，企业纷纷选择了中间件（现在大部分中间件作为云服务来提供，简化了开发和管理工作）来保持快速、经济高效的应用开发。中间件可以有力支持应用环境在高度分布式平台上平稳、一致地运行。它还可以为软件供应链安全防护、DevSecOps 战略和自动化提供支持，帮助团队更快速地构建更好的新型应用，同时仍能掌控安全风险。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;rh-group--layout &quot; data-rh-layout=&quot;stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 64px; position: relative; color: rgb(21, 21, 21); font-family: RedHatText, &amp;quot;Red Hat Text&amp;quot;, &amp;quot;Noto Sans SC&amp;quot;, Helvetica, Arial, sans-serif; font-size: 18px; text-wrap: wrap;&quot;&gt;&lt;div class=&quot;rh-group-body&quot; data-rh-layout=&quot;min-stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 0px;&quot;&gt;&lt;header class=&quot;rh-standard-header--component&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; display: flex; flex-flow: row; align-items: center; justify-content: space-between;&quot;&gt;&lt;div class=&quot;rh-standard-header-container&quot; style=&quot;box-sizing: border-box; flex-grow: 1;&quot;&gt;&lt;h2 class=&quot;rh-standard-header-headline-medium pfe-jump-links-panel__section&quot; id=&quot;中间件在应用开发中的角色&quot; nav-label=&quot;中间件在应用开发中的角色&quot; style=&quot;box-sizing: border-box; margin: 0px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.75rem; width: 688px;&quot;&gt;中间件在应用开发中扮演着什么角色？&lt;/h2&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&quot;rh-generic--component&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; font-family: var(--rh-font-family-body-text,RedHatText,&amp;quot;Red Hat Text&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.5; font-size: 1.125rem;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; margin-block: 0px;&quot;&gt;现代业务应用经过精心设计，可以在本地或跨云端大规模运行。为了构建这些应用，开发人员需要一种具备统一基础功能的应用环境。中间件正是打造这种环境的关键。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; margin-block: 0px;&quot;&gt;我们可以将这些功能分为四层，外加相应的工具：&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 24px 0px 16px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.5rem;&quot;&gt;容器层&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; margin-block: 0px;&quot;&gt;中间件的这一层将以统一方式管理应用生命周期的交付。它提供带有&amp;nbsp;&lt;a href=&quot;https://www.redhat.com/zh-cn/topics/devops/what-is-ci-cd&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;CI/CD&lt;/a&gt;&amp;nbsp;的&amp;nbsp;&lt;a href=&quot;https://www.redhat.com/zh-cn/topics/devops&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;DevOps&lt;/a&gt;&amp;nbsp;能力、容器管理以及&lt;a href=&quot;https://www.redhat.com/zh-cn/topics/microservices/what-is-a-service-mesh&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;服务网格&lt;/a&gt;功能。&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 24px 0px 16px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.5rem;&quot;&gt;运行时层&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; margin-block: 0px;&quot;&gt;该层包含了自定义代码的执行环境。中间件可以为高度分布式云环境（例如&lt;a href=&quot;https://www.redhat.com/zh-cn/topics/microservices&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;微服务&lt;/a&gt;）、内存中缓存（用于快速访问数据）和消息传递（用于快速数据传输）提供轻量级运行时和框架。&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 24px 0px 16px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.5rem;&quot;&gt;集成层&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; margin-block: 0px;&quot;&gt;集成中间件可提供相关服务，以通过消息传递、集成和 API 来连接自定义与购买的应用及&lt;a href=&quot;https://www.redhat.com/zh-cn/topics/cloud-computing/what-is-saas&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;软件即服务（SaaS）&lt;/a&gt;资产，从而形成功能正常的系统。此外，它还可以提供内存数据库和数据缓存服务、数据/事件流以及&amp;nbsp;&lt;a href=&quot;https://www.redhat.com/zh-cn/topics/api/what-is-api-management&quot; style=&quot;box-sizing: border-box; text-underline-offset: 4px; transition: all 0.3s ease 0s;&quot;&gt;API 管理&lt;/a&gt;功能。&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 24px 0px 16px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.5rem;&quot;&gt;流程自动化和决策管理层&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; margin-block: 0px;&quot;&gt;这是开发中间件的最后一层，旨在强化关键智能，实现优化和自动化，以及加强决策管理。&lt;/p&gt;&lt;h3 style=&quot;box-sizing: border-box; margin: 24px 0px 16px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.5rem;&quot;&gt;工具&lt;/h3&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; margin-block: 0px;&quot;&gt;除了上述四层中间件之外，还有相应的应用开发工具。借助这些工具，团队可以使用预设的模板和容器来构建应用，并促进有效的代码共享和联合开发。这些工具可在本地和云端提供连贯一致的应用开发和交付体验。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;rh-group--layout &quot; data-rh-layout=&quot;stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 0px; position: relative; color: rgb(21, 21, 21); font-family: RedHatText, &amp;quot;Red Hat Text&amp;quot;, &amp;quot;Noto Sans SC&amp;quot;, Helvetica, Arial, sans-serif; font-size: 18px; text-wrap: wrap;&quot;&gt;&lt;div class=&quot;rh-group-body&quot; data-rh-layout=&quot;min-stacked&quot; style=&quot;box-sizing: border-box; display: flex; flex-flow: column; margin-bottom: 0px;&quot;&gt;&lt;header class=&quot;rh-standard-header--component&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; display: flex; flex-flow: row; align-items: center; justify-content: space-between;&quot;&gt;&lt;div class=&quot;rh-standard-header-container&quot; style=&quot;box-sizing: border-box; flex-grow: 1;&quot;&gt;&lt;h2 class=&quot;rh-standard-header-headline-medium pfe-jump-links-panel__section&quot; id=&quot;中间件和-api&quot; nav-label=&quot;中间件和 API&quot; style=&quot;box-sizing: border-box; margin: 0px; font-family: var(--rh-font-family-heading,RedHatDisplay,&amp;quot;Red Hat Display&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.3; font-weight: 500; font-size: 1.75rem; width: 688px;&quot;&gt;中间件和 API&lt;/h2&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=&quot;rh-generic--component&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; font-family: var(--rh-font-family-body-text,RedHatText,&amp;quot;Red Hat Text&amp;quot;,Helvetica,Arial,sans-serif); line-height: 1.5; font-size: 1.125rem;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; margin-block: 0px;&quot;&gt;API 会建立一组用于集成软件的定义和协议，以便应用可以与其他产品和服务通信。API 简化了开发人员将新应用组件集成到现有架构的方式，继而帮助团队更好地协作，更快速地为软件添加实用的新功能。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; margin-block: 0px;&quot;&gt;使用 API 和微服务是云原生应用开发的基础。促进 API 连接的服务也是一种中间件。通过 API 管理工具，开发人员能够分享、分发、控制 API 并利用 API 盈利。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; margin-block: 0px;&quot;&gt;连同服务网格和数据流等其他应用服务工具，API 管理支持在混合云环境中大规模运行应用。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 22 Sep 2026 11:57:44 +0800</pubDate></item><item><title>为什么 Linux 要用 tar.gz，很少用 7Z 或 ZIP？</title><link>https://kinber.cn/post/6801.html</link><description>&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;看到这个问题，我第一反应是:这哥们儿肯定是从Windows转过来的。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;figure data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px;margin-bottom: 10px;margin-left: 0px;margin-right: 0px;padding-top: 0px;padding-bottom: 0px;padding-left: 0px;padding-right: 0px;display: flex;flex-direction: column;justify-content: center;align-items: center;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;&lt;img class=&quot;rich_pages wxw-img&quot; data-aistatus=&quot;1&quot; data-imgfileid=&quot;100090559&quot; data-ratio=&quot;0.3057199211045365&quot; data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260918174304_79127.jpeg&quot; data-type=&quot;webp&quot; data-w=&quot;507&quot; style=&quot;display: block; margin: 0px auto; border-style: none; border-width: 3px; border-color: rgba(0, 0, 0, 0.4); border-radius: 0px; object-fit: fill; box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; height: auto !important; visibility: visible !important; width: 507px !important;&quot; data-original-style=&quot;display: block;margin-top: 0px;margin-right: auto;margin-bottom: 0px;margin-left: auto;max-width: 100%;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgba(0, 0, 0, 0.4);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 0px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;object-fit: fill;box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px;&quot; data-index=&quot;1&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260918174304_79127.jpeg&quot; _width=&quot;507px&quot; __sec_open_place_holder__=&quot;true&quot; data-sec-load-status=&quot;2&quot; data-report-img-idx=&quot;0&quot; alt=&quot;图片&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;因为只有习惯了ZIP和7Z的人，才会觉得tar.gz这玩意儿&amp;quot;奇怪&amp;quot;。但如果你在Linux世界待久了，你会发现tar.gz不仅不奇怪，反而是最合理的选择。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;为什么?听我慢慢说。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;咱先来看看tar.gz到底是个什么东西。很多人以为它是一种压缩格式，其实不完全对。准确地说，tar.gz是&amp;quot;打包&amp;quot;加&amp;quot;压缩&amp;quot;的组合——tar负责把多个文件打包成一个文件，gz(gzip)负责压缩。这种&amp;quot;两步走&amp;quot;的设计，在Unix/Linux的哲学里叫做&amp;quot;do one thing and do it well&amp;quot;。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;一个工具只做一件事，但把这件事做到极致。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这就是Linux和Windows在设计思路上的根本区别。Windows喜欢&amp;quot;大而全&amp;quot;，一个软件恨不得把所有功能都塞进去。Linux喜欢&amp;quot;小而美&amp;quot;，每个工具专注自己的领域，需要复杂功能时就把多个工具组合起来。tar.gz就是这种哲学的典型体现。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;那为什么不用ZIP呢?&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;ZIP在Windows上确实很流行，双击就能解压，方便得很。但在Linux上，ZIP有几个致命的问题。第一，它不保留&lt;span class=&quot;&quot; link-id=&quot;link-1789724299539-0.5583415138537324&quot;&gt;Unix文件系统&lt;/span&gt;的权限信息。你在Linux上用ZIP打包一个文件，解压后文件的所有者、权限、时间戳这些信息可能就丢了。这在服务器环境下是不能接受的。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;我记得刚做嵌入式Linux那会儿，有次同事从Windows上传了个ZIP包给我，让我部署到开发板上。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;我解压后发现所有脚本的执行权限都没了，还得手动&lt;/span&gt;&lt;code style=&quot;color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: left;background-position-y: top;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;chmod +x&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;一个个加回来。那个麻烦啊...从那以后我就跟他说，传文件一律用tar.gz，别给我整那些花里胡哨的。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;第二个问题是兼容性。Linux系统默认都带tar和gzip，不需要安装任何额外软件。但ZIP呢?虽然现在大部分发行版也预装了&lt;span class=&quot;&quot; link-id=&quot;link-1789724299655-0.6927382580332739&quot;&gt;unzip&lt;/span&gt;，但在一些精简的嵌入式系统或者服务器上，你不一定能找到它。而且ZIP的压缩率也不如gzip，更别提后来的bzip2和xz了。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;那7Z呢?压缩率确实高，但问题更大。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;7Z是个相对较新的格式，Linux上要用它得先装&lt;/span&gt;&lt;code style=&quot;color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: left;background-position-y: top;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;p7zip&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;这个包。而且7Z的压缩和解压速度都比较慢，对于服务器上动辄几个GB的日志文件或者代码仓库来说，时间成本太高了。更重要的是，7Z在Linux生态里没有形成习惯——大家都用tar.gz，你突然发个7Z包过来，别人还得专门去装工具，这不是给人添麻烦吗?&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这就涉及到一个更深层的问题:生态和习惯。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;在Linux世界里，tar.gz已经是事实标准了。你去GitHub上下载源码，基本都是tar.gz或者tar.xz。你去下载软件包，也是tar.gz。所有的文档、教程、脚本都是围绕tar命令写的。这种&amp;quot;约定俗成&amp;quot;的力量是非常强大的——不是说其他格式不好，而是大家都在用这个，你也跟着用，沟通成本最低。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;而且tar命令的灵活性是ZIP和7Z比不了的。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;你可以用&lt;/span&gt;&lt;code style=&quot;color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: left;background-position-y: top;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;tar -czf&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;打包并用gzip压缩，也可以用&lt;/span&gt;&lt;code style=&quot;color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: left;background-position-y: top;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;tar -cjf&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;换成bzip2压缩，或者&lt;/span&gt;&lt;code style=&quot;color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: left;background-position-y: top;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;tar -cJf&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;用xz压缩。你还可以在打包的时候排除某些文件、只打包某些目录、甚至通过管道直接传输到远程服务器。这种组合能力，是那些&amp;quot;一体化&amp;quot;工具做不到的。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;我自己在做嵌入式开发的时候，经常要把编译好的文件系统打包传到目标板上。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这时候我会用这样的命令:&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px; margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;&lt;code style=&quot;overflow-x: auto;padding: 16px;color: #abb2bf;padding-top: 15px;background: #282c34;border-radius: 5px;display: -webkit-box;font-family: Consolas, Monaco, Menlo, monospace;font-size: 12px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;tar -czf - rootfs/ | ssh user@target&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #98c379;line-height: 26px;&quot;&gt;&amp;quot;cd /tmp &amp;amp;&amp;amp; tar -xzf -&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;一行命令，本地打包、通过SSH传输、远程解压，一气呵成。你要是用ZIP或者7Z，得分好几步，还得考虑中间文件放哪里、传输完了要不要删除...麻烦得要死。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;当然，tar.gz也不是完美的。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;它的压缩率确实不如7Z，解压的时候也得记住那些参数——&lt;/span&gt;&lt;code style=&quot;color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: left;background-position-y: top;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;-xzf&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;、&lt;/span&gt;&lt;code style=&quot;color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: left;background-position-y: top;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;-xjf&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;、&lt;/span&gt;&lt;code style=&quot;color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: left;background-position-y: top;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;-xJf&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;，新手经常搞混。但这些问题在Linux老用户眼里根本不是问题，因为用习惯了，手指头都有肌肉记忆了。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;而且现在很多发行版已经做了优化，&lt;/span&gt;&lt;code style=&quot;color: rgb(30, 107, 184);font-size: 14px;line-height: 1.8em;letter-spacing: 0em;background-attachment: scroll;background-clip: border-box;background-color: rgba(27, 31, 35, 0.05);background-image: none;background-origin: padding-box;background-position-x: left;background-position-y: top;background-repeat: no-repeat;background-size: auto;width: auto;height: auto;margin-top: 0px;margin-bottom: 0px;margin-left: 2px;margin-right: 2px;padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;border-top-style: none;border-bottom-style: none;border-left-style: none;border-right-style: none;border-top-width: 3px;border-bottom-width: 3px;border-left-width: 3px;border-right-width: 3px;border-top-color: rgb(0, 0, 0);border-bottom-color: rgba(0, 0, 0, 0.4);border-left-color: rgba(0, 0, 0, 0.4);border-right-color: rgba(0, 0, 0, 0.4);border-top-left-radius: 4px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;border-bottom-left-radius: 4px;overflow-wrap: break-word;font-family: Consolas, Monaco, Menlo, monospace;word-break: break-all;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;tar -xf&lt;/span&gt;&lt;/code&gt;&lt;span leaf=&quot;&quot;&gt;可以自动识别压缩格式，你不用管它是gz还是&lt;span class=&quot;&quot; link-id=&quot;link-1789724299656-0.2898170083021281&quot;&gt;bz2&lt;/span&gt;还是xz，直接解压就行。这种&amp;quot;向后兼容&amp;quot;的设计，也是Linux社区一直在努力的方向。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;说到底，为什么Linux要用tar.gz而不是ZIP或7Z?&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;因为它符合&lt;span class=&quot;&quot; link-id=&quot;link-1789724299655-0.7396778477771855&quot;&gt;Unix哲学&lt;/span&gt;、保留文件系统信息、兼容性好、生态成熟、灵活性强。这些优势加在一起，就形成了一个&amp;quot;路径依赖&amp;quot;——大家都在用，所以你也得用，然后越来越多的人用，最后就成了标准。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这不是技术问题，是生态问题。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;就像你问&amp;quot;为什么Windows要用EXE而不是ELF?&amp;quot;一样，不是哪个格式更先进，而是整个生态都围绕它建立起来了。你要是在Linux上推广ZIP，就得说服所有的开发者、所有的项目、所有的文档都改用ZIP，这成本得有多高?&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;所以下次再有人问你&amp;quot;为什么Linux不用ZIP&amp;quot;，你就告诉他:不是不能用，是没必要用。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 16px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;tar.gz已经够好了，为什么要换?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 18 Sep 2026 17:42:39 +0800</pubDate></item><item><title>固态硬盘量产（开卡）是什么？（建议收藏）</title><link>https://kinber.cn/post/6800.html</link><description>&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold; visibility: visible;&quot;&gt;简单说：固态硬盘量产（也叫开卡），就是用工厂的专用工具，重新给 SSD 刷写主控固件、识别闪存颗粒、标记坏块、初始化整块硬盘，相当于把 SSD 恢复成出厂全新状态，是 SSD 工厂生产环节的操作，普通用户系统格式化做不到这个级别。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold; visibility: visible;&quot;&gt;和普通格式化有什么本质区别：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;1. 普通格式化：Windows 层面操作，只是删掉文件索引，碰不到 SSD 主控、闪存底层，坏块不会真正屏蔽，硬盘硬件、固件问题修不好。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;2. SSD 量产（开卡）：直接和 SSD 主控芯片对话，工作在硬件底层：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;①重写 SSD 主控固件；&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;②扫描全部闪存颗粒，把损坏的&lt;span class=&quot;&quot; link-id=&quot;link-1789713346182-0.31345120750580624&quot;&gt;闪存单元&lt;/span&gt;标记为坏块，永久屏蔽不再使用；&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;③设置 OP 冗余空间、硬盘型号序列号、容量参数；&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;④清空闪存里面全部所有数据，数据彻底无法恢复。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold; visibility: visible;&quot;&gt;注意：这是工厂工序，普通消费级系统没有这个功能，需要专用量产工具、短接硬件进入工程模式。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;mpcpc manual-insert=&quot;1&quot;&gt;&lt;/mpcpc&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold; visibility: visible;&quot;&gt;什么情况会用到量产：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;1. SSD 固件崩溃：电脑识别不到盘、掉盘、能识别但是无法读写、报 I/O 设备错误，系统格式化无效；&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;2. 自己 DIY 固态硬盘：拆闪存颗粒，焊到空 SSD 板子上，必须量产才能识别出容量使用；&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;3. SSD 出现大量坏块：量产扫描屏蔽坏块，割掉一部分容量，续命使用。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold; visibility: visible;&quot;&gt;什么情况不要做量产：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;1. 硬盘里面有重要数据！量产直接全盘擦除，优先做数据恢复，不要开卡；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;2. 闪存颗粒硬件烧毁、主控烧坏，量产救不回来；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;3. 正常能用的固态硬盘，完全没必要量产，反复开卡消耗闪存寿命。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold&quot;&gt;简单总结：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;格式化 ≈ 把本子上的文字划掉，本子本身的破损、装订故障修不了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;量产开卡 ≈ 工厂重新装订这本本子，撕掉所有破损的纸张，重新印上页码，本子变成刚出厂状态，本子上所有内容全部消失。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold&quot;&gt;补充：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;1. SATA 固态量产：民间工具多，&lt;span class=&quot;&quot; link-id=&quot;link-1789713346185-0.5323712430147025&quot;&gt;ASM1153E&lt;/span&gt;转接卡就可以用在AS2258BN、SM2258XT 这类主控。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;2. NVMe 固态量产：工具极少，普通玩家很难操作，门槛很高。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;color: #FF0000; font-weight: bold&quot;&gt;风险：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;①中途断电、工具版本不对，固态硬盘直接变砖彻底不认；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;②量产后失去原厂保修；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;③只能修复固件逻辑故障，如果闪存颗粒硬件损坏，量产之后依旧会坏。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-size: 20px; font-weight: bold&quot;&gt;SSD 量产（开卡）需要准备的工具：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;分为硬件、电脑环境、软件、辅助小工具四大块，区分 SATA 固态和 NVMe 固态， 用SATA 固态举例。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold&quot;&gt;一、硬件&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;SATA 固态（AS2258BN / SM2258XT 这类）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;1. 待量产 SSD 裸板（拆掉外壳，要能看到 PCB 主板丝印主控、颗粒）；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;2. SATA‑USB 转接硬盘盒 / 易驱线&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;优先：ASM1153E、&lt;span class=&quot;&quot; link-id=&quot;link-1789713346186-0.7212677452812462&quot;&gt;JMS578&lt;/span&gt;（兼容性最好，民间开卡标配）；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;不要用：RTL9210、廉价杂牌盒子，经常识别不到 ROM 模式。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;3. 尖头镊子 / 细漆包铜线：短接主板上 ROM 焊点，进入工程 BootROM 模式，这是开卡最关键一步&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;section style=&quot;text-align: center;&quot; nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260918164654_50357.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.7759259259259259&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; type=&quot;block&quot; data-imgfileid=&quot;100001447&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;2&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260918164654_50357.png&quot; _width=&quot;677px&quot; style=&quot;height: auto !important; visibility: visible !important; width: 677px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1789720553643&quot; data-report-img-idx=&quot;0&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold&quot;&gt;注意：不短接，量产工具看不到盘，无法开卡。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;NVMe M.2 固态&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;1. NVMe 转 USB 盒子：JMS583 / ASM2364；SATA 盒子完全不能用 NVMe 盘&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold&quot;&gt;注意：很多 NVMe 主控量产门槛很高，部分需要工厂授权，普通玩家很难操作。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;可选硬件&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;万用表：测供电，排查板子短路（一般不需要）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;笔记本电脑（优先）：量产中途断电会直接变砖，笔记本自带电池不怕突然停电&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;5V 外接供电：部分老 SSD 功耗大，USB 供电不足时报错。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;font-weight: bold&quot;&gt;二、电脑系统环境&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;1. 系统：Windows10 64 位最优；Win11 也可以，但麻烦多；Win7 老工具能用，新工具不支持&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;2. USB 口：机箱后置原生 USB2.0 口，不要用前置面板、USB 延长线、&lt;span class=&quot;&quot; link-id=&quot;link-1789713346187-0.23875690156148588&quot;&gt;集线器 HUB&lt;/span&gt;。USB3.0 容易识别失败。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;3. Win11 重点设置：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;BIOS 关闭 &lt;span class=&quot;&quot; link-id=&quot;link-1789713346188-0.14822049452716102&quot;&gt;Secure Boot&lt;/span&gt; 安全启动&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;&amp;nbsp; &amp;nbsp;Windows 开启测试模式、禁用驱动强制签名，否则量产工具驱动装不上，扫描不到设备&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;4. 临时关闭 Windows Defender / 杀毒软件：量产工厂工具普遍报毒，会直接删除工具文件。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span leaf=&quot;&quot;&gt;5. 工具解压路径：全英文，不能有中文、空格，例如 D:\SSD_MP\ ，中文路径直接闪退报错。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 18 Sep 2026 16:35:24 +0800</pubDate></item><item><title>为什么农村建房不允许建地下室？</title><link>https://kinber.cn/post/6799.html</link><description>&lt;p data-first-child=&quot;&quot; data-pid=&quot;Zm0Iof2C&quot; style=&quot;margin-top: 0px; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot; data-pm-slice=&quot;0 0 []&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;这个说法不完全准确。&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;vOky-Rmn&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;农村建房并不是禁止修建地下室，而是规定必须要通过正规审批，并满足严格的限制条件。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;figure data-size=&quot;normal&quot; style=&quot;margin: 1.4em 0px; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;section nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916221654_43876.jpeg&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.6888888888888889&quot; data-type=&quot;webp&quot; data-w=&quot;1080&quot; style=&quot;display: block; margin: 0px auto; animation: 0.5s ease-in 0s 1 normal none running animation-1yvu044; height: auto !important; width: 578px !important; visibility: visible !important;&quot; data-croporisrc=&quot;https://mmbiz.qpic.cn/mmbiz_jpg/IMQwu9IIgQlyiaj1KHRJWYoSa1VicRcfGyZgSpk1x61jo89zVu3ahu3vETrkAeAqd6pCHhfBj8WONpfiaou868k8sO2V9McS9ibjaib21ib0Ugh94/0?wx_fmt=webp&amp;amp;from=appmsg&quot; data-cropx1=&quot;0&quot; data-cropx2=&quot;1280&quot; data-cropy1=&quot;0&quot; data-cropy2=&quot;883.598615916955&quot; data-imgfileid=&quot;100001337&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display:block;margin:0px auto;max-width:100%;height:399px;background-color:rgb(255, 255, 255);animation:0.5s ease-in 0s 1 normal none running animation-1yvu044;width:578px;&quot; data-index=&quot;0&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916221654_43876.jpeg&quot; _width=&quot;578px&quot; __sec_open_place_holder__=&quot;true&quot; data-sec-load-status=&quot;2&quot; data-report-img-idx=&quot;0&quot; alt=&quot;图片&quot;/&gt;&lt;/section&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p data-pid=&quot;LYapDS5f&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;通常会听到“不允许”的说法，往往是因为不了解政策，或者触碰了严格的红线。下面我把真实情况给你讲清楚。&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;FJRhsSC8&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;一、“允许”的前提条件有哪些？&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;NWm4loPp&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;很多地区在政策中明确允许建地下室，但前提是必须满足一系列硬性条件。&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;V0OGlWfS&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;1、它必须是规划的一部分&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;qxhu53F4&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;地下室的建设必须纳入整体审批，不能擅自开挖。审批通过会记录在案，允许修建地下室。有些地方的建房规划许可中，会明确列出“其中地下室”的具体面积。&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;4Tt-U3UB&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;如果未取得规划许可就私自开挖，就是违建，轻则罚款，重则必须回填。&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;cacPdWeL&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;2、它有严格的“天花板”&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;OPZBGVn4&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;“允许”的限制条件主要包括:&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;JVbSIuPw&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;① 空间限制&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;dOp1uMes&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;通常要求在建筑基底范围内建设，不能超出宅基地。 有些地区只允许建一层，层高不超过3.6米，深度不超过4米。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-pid=&quot;B4L8mCwh&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;② 设计限制&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;s5rrFLL0&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;施工图设计不能再用“土办法”。规定建房时必须由有资质的设计单位出具结构施工图，并由专业施工队伍施工，以确保安全。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;figure data-size=&quot;normal&quot; style=&quot;margin: 1.4em 0px; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;section nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916221655_18482.jpeg&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.9814814814814815&quot; data-type=&quot;webp&quot; data-w=&quot;1080&quot; style=&quot;display: block; margin: 0px auto; animation: 0.5s ease-in 0s 1 normal none running animation-1yvu044; height: auto !important; width: 578px !important; visibility: visible !important;&quot; data-croporisrc=&quot;https://mmbiz.qpic.cn/sz_mmbiz_jpg/IMQwu9IIgQlaIoBtVibhnHT6yZmHexg3t92dAenmibRmGAoKT4ZrSiaMUxNqWTDYNvEQebXnYeheWonARQ0ia0652yFgDGZcLNGCkO2yXO2MPqc/0?wx_fmt=webp&amp;amp;from=appmsg&quot; data-cropx1=&quot;0&quot; data-cropx2=&quot;1280&quot; data-cropy1=&quot;166.0899653979239&quot; data-cropy2=&quot;1421.7301038062285&quot; data-imgfileid=&quot;100001338&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;display:block;margin:0px auto;max-width:100%;height:567px;background-color:rgb(255, 255, 255);animation:0.5s ease-in 0s 1 normal none running animation-1yvu044;width:578px;&quot; data-index=&quot;1&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916221655_18482.jpeg&quot; _width=&quot;578px&quot; __sec_open_place_holder__=&quot;true&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1789568203577&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p data-pid=&quot;LgHs2811&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;二、 “不允许”的红线在哪里？&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;ZQTV4R5d&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;之所以“不允许”，一般是触碰了以下几道红线：&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;dORp4Y24&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;1、威胁结构安全&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;aqOkwyMd&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;这是最严重的一条。各地政策都明确禁止“违规加层加盖、下挖地下室”擅自下挖会破坏地基，导致墙体开裂甚至房屋倒塌，危害极大。&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;EsIqHeeV&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;2、地质条件不允许&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;MnR87ljQ&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;如果宅基地处于地质灾害易发区、洪泛区、地下采空区等危险地段，或者地下水位过高，那么从根本上是严禁建地下室的，这是出于最基本的安全考量。&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;9BBiTniS&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;3、流程不合规&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;_8h0z_dB&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;即使在技术上可行，也必须先申请、后建设。很多农村建房者图省事，先挖再说，这直接导致房子建成后无法办证，甚至被认定为违建。&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;JfkNYOg-&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;三、总结&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;E4pAcqpD&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;总的来说，&lt;/span&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;所谓“不让建”是对“没有合规审批手续的私自开挖行为”的禁止。&lt;/span&gt;&lt;/p&gt;&lt;p data-pid=&quot;W_eXu272&quot; style=&quot;margin-top: 1.4em; margin-bottom: 1.4em; color: rgb(25, 27, 31); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;MiSans L3&amp;quot;, &amp;quot;Segoe UI&amp;quot;, sans-serif; font-size: 15px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span leaf=&quot;&quot;&gt;如果你确实有建地下室的需求，最稳妥的做法是先向当地乡镇政府和自然资源部门咨询具体的审批流程和管控要求，把手续办好、让专业的人来设计施工，再动工。这既是为合法合规，更是为你自己和你家人的安全负责。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 16 Sep 2026 22:16:35 +0800</pubDate></item><item><title>海鲜市场流入大量小型USB矿机，11.5元32G的显卡U盘</title><link>https://kinber.cn/post/6798.html</link><description>&lt;section style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;事情是这样的，闲来无事逛市场，发现了这个玩意U盘32G的，然后这个造型是XFX联名款。&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;section style=&quot;text-align: center; visibility: visible;&quot; nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093342_99402.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.549074074074074&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;1080&quot; type=&quot;block&quot; data-imgfileid=&quot;100008106&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;2&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093342_99402.png&quot; _width=&quot;677px&quot; style=&quot;height: auto !important; visibility: visible !important; width: 677px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1789521016721&quot; data-report-img-idx=&quot;1&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section style=&quot;visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;看造型还是挺别致的，这个东西是哪里来的还是USB2.0的。&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center; visibility: visible;&quot; nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093343_44250.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;1.1788321167883211&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;548&quot; type=&quot;block&quot; data-imgfileid=&quot;100008107&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;3&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093343_44250.png&quot; _width=&quot;548px&quot; style=&quot;height: auto !important; visibility: visible !important; width: 548px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1789521016721&quot; data-report-img-idx=&quot;0&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;然后让ai把把脉看看这是啥，然后就看到AI的雷霆发言了，它说这个是&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;这个是早期的USB迷你矿机。&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center;&quot; nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093344_29641.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;1.205521472392638&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;652&quot; type=&quot;block&quot; data-imgfileid=&quot;100008109&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;4&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093344_29641.png&quot; _width=&quot;652px&quot; style=&quot;height: auto !important; visibility: visible !important; width: 652px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1789521213138&quot; data-report-img-idx=&quot;2&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;查了一下，早期的确有一种这个东西。&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center;&quot; nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093345_66635.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.978125&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;640&quot; type=&quot;block&quot; data-imgfileid=&quot;100008111&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;5&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093345_66635.png&quot; _width=&quot;640px&quot; style=&quot;height: auto !important; visibility: visible !important; width: 640px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1789521219819&quot; data-report-img-idx=&quot;3&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;但这个是个U盘呐。&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center;&quot; nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093345_38161.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.9602272727272727&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;352&quot; type=&quot;block&quot; data-imgfileid=&quot;100008110&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;6&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093345_38161.png&quot; _width=&quot;352px&quot; style=&quot;height: auto !important; visibility: visible !important; width: 352px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1789521223352&quot; data-report-img-idx=&quot;4&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;不过显卡造型的U盘倒是不少见，&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;英伟达以前推出了一款 GeForce GTX USB DRIVE 64 GB U盘，采用Titan信仰皮造型，全球限量1080个，需要注册成为GeForce Experience用户，以抽奖的模式免费赠送。&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center;&quot; nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093346_76177.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.5717592592592593&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;864&quot; type=&quot;block&quot; data-imgfileid=&quot;100008112&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;7&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093346_76177.png&quot; _width=&quot;677px&quot; style=&quot;height: auto !important; visibility: visible !important; width: 677px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1789521225242&quot; data-report-img-idx=&quot;5&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;还有专属的包装盒子，看接口颜色还是蓝屁股。&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center;&quot; nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093347_99284.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.6987951807228916&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;498&quot; type=&quot;block&quot; data-imgfileid=&quot;100008115&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;8&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093347_99284.png&quot; _width=&quot;498px&quot; style=&quot;height: auto !important; visibility: visible !important; width: 498px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1789521233754&quot; data-report-img-idx=&quot;6&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;英伟达出了这个U盘后，很多显卡厂商效仿起来，还有这个迪兰RX580恶魔造型的U盘。&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center;&quot; nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093347_55979.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.5692599620493358&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;1054&quot; type=&quot;block&quot; data-imgfileid=&quot;100008113&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;9&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093347_55979.png&quot; _width=&quot;677px&quot; style=&quot;height: auto !important; visibility: visible !important; width: 677px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1789521236265&quot; data-report-img-idx=&quot;7&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section&gt;&lt;span leaf=&quot;&quot;&gt;蓝宝石也有这个590的u盘。&lt;/span&gt;&lt;/section&gt;&lt;section style=&quot;text-align: center;&quot; nodeleaf=&quot;&quot;&gt;&lt;img data-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093348_97825.png&quot; class=&quot;rich_pages wxw-img&quot; data-ratio=&quot;0.7796934865900383&quot; data-s=&quot;300,640&quot; data-type=&quot;png&quot; data-w=&quot;1044&quot; type=&quot;block&quot; data-imgfileid=&quot;100008114&quot; data-aistatus=&quot;1&quot; data-original-style=&quot;null&quot; data-index=&quot;10&quot; src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260916093348_97825.png&quot; _width=&quot;677px&quot; style=&quot;height: auto !important; visibility: visible !important; width: 677px !important;&quot; alt=&quot;图片&quot; data-before-load-time=&quot;1789521242137&quot; data-report-img-idx=&quot;8&quot; data-fail=&quot;0&quot;/&gt;&lt;/section&gt;&lt;section style=&quot;margin-bottom: 0px;&quot;&gt;&lt;span leaf=&quot;&quot;&gt;所以大概推断一下这款XFX显卡造型的U盘，大概率也是那个时期的产物。&lt;/span&gt;&lt;/section&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 16 Sep 2026 09:33:24 +0800</pubDate></item><item><title>	一键搭建多个协议节点教程，实现远程办公</title><link>https://kinber.cn/post/6797.html</link><description>&lt;p style=&quot;margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; box-sizing: border-box; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold, 600);&quot;&gt;自建多个协议节点教程很简单，整个教程分三步&lt;/span&gt;：&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; box-sizing: border-box; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; background-color: rgb(255, 255, 255);&quot;&gt;第一步：购买VPS服务器&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; box-sizing: border-box; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; background-color: rgb(255, 255, 255);&quot;&gt;第二步：一键部署VPS服务器&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; box-sizing: border-box; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; background-color: rgb(255, 255, 255);&quot;&gt;第三步：一键加速VPS服务器 （五合一的TCP网络加速脚本）&lt;/p&gt;&lt;hr style=&quot;text-wrap: wrap; box-sizing: content-box; height: 0.25em; margin: 24px 0px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; padding: 0px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px;&quot;/&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; box-sizing: border-box; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold, 600);&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;margin-top: 0px; margin-bottom: var(--base-size-16); text-wrap: wrap; box-sizing: border-box; color: rgb(31, 35, 40); background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;【前言】&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;margin-top: 0px; margin-bottom: var(--base-size-16); text-wrap: wrap; box-sizing: border-box; color: rgb(31, 35, 40); background-color: rgb(255, 255, 255);&quot;&gt;无需域名。1次安装共有18个节点。&lt;/p&gt;&lt;hr style=&quot;text-wrap: wrap; box-sizing: content-box; height: 0.25em; margin: 24px 0px; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; padding: 0px; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px;&quot;/&gt;&lt;p style=&quot;margin-top: 0px; margin-bottom: 16px; text-wrap: wrap; box-sizing: border-box; color: rgb(31, 35, 40); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; background-color: rgb(255, 255, 255);&quot;&gt;复制粘贴代码部署了。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br/&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;一键安装sing-box脚本，开箱即用 18 个节点（直连 9 + WARP 9），含端口一键切换、BBR 加速、分享链接导出等。支持系统：Debian 11+ / Ubuntu 20.04+ / CentOS Stream 9+ / Rocky 9+ / AlmaLinux 9+ / Fedora 38+ / Arch(rolling) / openSUSE Leap 15.4+，已在&lt;a href=&quot;https://www.vultr.com/?ref=7048874&quot; rel=&quot;nofollow&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;Vultr&lt;/a&gt;&amp;nbsp;上测试通过。脚本地址：&lt;a href=&quot;https://github.com/Alvin9999-newpac/Sing-Box-Plus&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;Alvin9999-newpac/Sing-Box-Plus&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;highlight highlight-source-shell notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--base-size-16); justify-content: space-between; display: flex; color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; overflow: auto !important; position: relative !important;&quot;&gt;&lt;pre style=&quot;box-sizing: border-box; font-family: var(--fontStack-monospace,ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace); font-size: 13.6px; margin-top: 0px; margin-bottom: 0px; tab-size: var(--tab-size-preference); overflow-wrap: normal; padding: var(--base-size-16); color: var(--fgColor-default,var(--color-fg-default)); background-color: var(--bgColor-muted,var(--color-canvas-subtle)); border-radius: 6px; line-height: 1.45; overflow: auto; word-break: normal; min-height: 52px;&quot;&gt;wget&amp;nbsp;-O&amp;nbsp;sing-box-plus.sh&amp;nbsp;https://raw.githubusercontent.com/Alvin9999-newpac/Sing-Box-Plus/main/sing-box-plus.sh&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;chmod&amp;nbsp;+x&amp;nbsp;sing-box-plus.sh&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;bash&amp;nbsp;sing-box-plus.sh&lt;/pre&gt;&lt;clipboard-copy aria-label=&quot;Copy code to clipboard&quot; class=&quot;ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center&quot; data-copy-feedback=&quot;Copied!&quot; data-tooltip-direction=&quot;w&quot; value=&quot;wget -O sing-box-plus.sh https://raw.githubusercontent.com/Alvin9999-newpac/Sing-Box-Plus/main/sing-box-plus.sh &amp;amp;&amp;amp; chmod +x sing-box-plus.sh &amp;amp;&amp;amp; bash sing-box-plus.sh&quot; tabindex=&quot;0&quot; role=&quot;button&quot; style=&quot;box-sizing: border-box; font-size: 14px; font-weight: var(--base-text-weight-medium,500); text-wrap: nowrap; vertical-align: middle; cursor: pointer; user-select: none; appearance: none; border: 0px; border-radius: 6px; line-height: 20px; position: relative; color: var(--fgColor-accent,var(--color-accent-fg)); box-shadow: none; transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, background-color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, border-color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s; width: var(--control-small-size,28px); height: var(--control-small-size,28px); margin: var(--base-size-8,8px) !important; padding: 0px !important; display: flex !important; justify-content: center !important; align-items: center !important;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; data-component=&quot;Octicon&quot; height=&quot;16&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; data-view-component=&quot;true&quot; class=&quot;octicon octicon-copy js-clipboard-copy-icon&quot;&gt;&lt;path d=&quot;M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/clipboard-copy&gt;&lt;/div&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;或者&lt;/p&gt;&lt;div class=&quot;highlight highlight-source-shell notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--base-size-16); justify-content: space-between; display: flex; color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; overflow: auto !important; position: relative !important;&quot;&gt;&lt;pre style=&quot;box-sizing: border-box; font-family: var(--fontStack-monospace,ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace); font-size: 13.6px; margin-top: 0px; margin-bottom: 0px; tab-size: var(--tab-size-preference); overflow-wrap: normal; padding: var(--base-size-16); color: var(--fgColor-default,var(--color-fg-default)); background-color: var(--bgColor-muted,var(--color-canvas-subtle)); border-radius: 6px; line-height: 1.45; overflow: auto; word-break: normal; min-height: 52px;&quot;&gt;curl&amp;nbsp;-fsSL&amp;nbsp;-o&amp;nbsp;sing-box-plus.sh&amp;nbsp;https://raw.githubusercontent.com/Alvin9999-newpac/Sing-Box-Plus/main/sing-box-plus.sh&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;chmod&amp;nbsp;+x&amp;nbsp;sing-box-plus.sh&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;bash&amp;nbsp;sing-box-plus.sh&lt;/pre&gt;&lt;clipboard-copy aria-label=&quot;Copy code to clipboard&quot; class=&quot;ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center&quot; data-copy-feedback=&quot;Copied!&quot; data-tooltip-direction=&quot;w&quot; value=&quot;curl -fsSL -o sing-box-plus.sh https://raw.githubusercontent.com/Alvin9999-newpac/Sing-Box-Plus/main/sing-box-plus.sh  &amp;amp;&amp;amp; chmod +x sing-box-plus.sh &amp;amp;&amp;amp; bash sing-box-plus.sh&quot; tabindex=&quot;0&quot; role=&quot;button&quot; style=&quot;box-sizing: border-box; font-size: 14px; font-weight: var(--base-text-weight-medium,500); text-wrap: nowrap; vertical-align: middle; cursor: pointer; user-select: none; appearance: none; border: 0px; border-radius: 6px; line-height: 20px; position: relative; color: var(--fgColor-accent,var(--color-accent-fg)); box-shadow: none; transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, background-color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, border-color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s; width: var(--control-small-size,28px); height: var(--control-small-size,28px); margin: var(--base-size-8,8px) !important; padding: 0px !important; display: flex !important; justify-content: center !important; align-items: center !important;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; data-component=&quot;Octicon&quot; height=&quot;16&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; data-view-component=&quot;true&quot; class=&quot;octicon octicon-copy js-clipboard-copy-icon&quot;&gt;&lt;path d=&quot;M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/clipboard-copy&gt;&lt;/div&gt;&lt;blockquote style=&quot;box-sizing: border-box; margin-bottom: var(--base-size-16); color: var(--fgColor-muted,var(--color-fg-muted)); border-left: .25em solid var(--borderColor-default,var(--color-border-default)); padding-right: 1em; padding-left: 1em; font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px;&quot;&gt;安装完成后，输入 bash sing-box-plus.sh 可进入管理页面。&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote style=&quot;box-sizing: border-box; margin-bottom: var(--base-size-16); color: var(--fgColor-muted,var(--color-fg-muted)); border-left: .25em solid var(--borderColor-default,var(--color-border-default)); padding-right: 1em; padding-left: 1em; font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px;&quot;&gt;如果安装过其它 sing-box 脚本，请先卸载。&lt;/p&gt;&lt;/blockquote&gt;&lt;hr style=&quot;box-sizing: border-box; height: 0.25em; border: 0px; background-image: initial; background-position: 0px 0px; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: var(--base-size-24) 0; padding: 0px; color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap;&quot;/&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;脚本演示&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;复制上面安装命令代码到VPS服务器里，复制代码用鼠标右键的复制，然后在vps里面右键粘贴进去，因为ctrl+c和ctrl+v无效。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/ac917f73665908335493a3e37ea48b26e0978505aefa9520d98fdb88240d1a0a/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d312e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/ac917f73665908335493a3e37ea48b26e0978505aefa9520d98fdb88240d1a0a/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d312e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165007178937580791625.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;复制脚本后，按回车键。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/e4147a9f0f00eefe8995bf9e7acb14d3bfdb3b8ad61488dae51f16eafca70b0d/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d322e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/e4147a9f0f00eefe8995bf9e7acb14d3bfdb3b8ad61488dae51f16eafca70b0d/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d322e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165008178937580858560.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;出现管理界面后，输入数字 1 来安装脚本，按回车键。脚本全自动安装。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/9dfa4c4e1ada2cd7f54f93c6a9c89f97d72923d9000c5310fc0c936becec97ee/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d332e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/9dfa4c4e1ada2cd7f54f93c6a9c89f97d72923d9000c5310fc0c936becec97ee/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d332e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165008178937580850036.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/7d5de7f93ef1a6aac336d4d2cc9a2b66183d3819cb8a5674b4f2a1cafcaac0e0/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d342e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/7d5de7f93ef1a6aac336d4d2cc9a2b66183d3819cb8a5674b4f2a1cafcaac0e0/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d342e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165008178937580898935.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;markdown-heading&quot; dir=&quot;auto&quot; style=&quot;box-sizing: border-box; position: relative; color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;h2 tabindex=&quot;-1&quot; class=&quot;heading-element&quot; dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: var(--base-size-24); margin-bottom: var(--base-size-16); font-weight: var(--base-text-weight-semibold,600); line-height: 1.25; border-bottom: 1px solid var(--borderColor-muted,var(--color-border-muted)); padding-bottom: 0.3em;&quot;&gt;✨ 默认部署内容（18 个节点）&lt;/h2&gt;&lt;a id=&quot;user-content--默认部署内容18-个节点&quot; class=&quot;anchor&quot; aria-label=&quot;Permalink: ✨ 默认部署内容（18 个节点）&quot; href=&quot;https://github.com/Alvin9999-newpac/fanqiang/blob/main/%E4%B8%80%E9%94%AE%E6%90%AD%E5%BB%BA%E5%A4%9A%E4%B8%AA%E5%8D%8F%E8%AE%AE%E8%8A%82%E7%82%B9%E6%95%99%E7%A8%8B.md#-%E9%BB%98%E8%AE%A4%E9%83%A8%E7%BD%B2%E5%86%85%E5%AE%B918-%E4%B8%AA%E8%8A%82%E7%82%B9&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); float: left; padding-right: var(--base-size-4); margin: auto; line-height: 1; text-underline-offset: 0.2rem; border-radius: var(--borderRadius-medium); opacity: 0; justify-content: center; align-items: center; width: 28px; height: 28px; display: flex; position: absolute; top: 19.0938px; left: -28px; transform: translateY(calc(-50% - 0.3rem));&quot;&gt;&lt;svg data-component=&quot;Octicon&quot; class=&quot;octicon octicon-link&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;直连 9：&lt;/span&gt;&lt;/p&gt;&lt;ul dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--base-size-16); padding-left: 2em; color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;VLESS Reality（Vision 流）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;VLESS gRPC Reality&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Trojan Reality&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;VMess WS&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Hysteria2（直连证书）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Hysteria2 + OBFS(salamander)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Shadowsocks 2022（2022-blake3-aes-256-gcm）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Shadowsocks（aes-256-gcm）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;TUIC v5（ALPN h3，自签证书）&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;WARP 9：&lt;/span&gt;（同上 9 种，出站经 Cloudflare WARP）&lt;/p&gt;&lt;blockquote style=&quot;box-sizing: border-box; margin-bottom: var(--base-size-16); color: var(--fgColor-muted,var(--color-fg-muted)); border-left: .25em solid var(--borderColor-default,var(--color-border-default)); padding-right: 1em; padding-left: 1em; font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px;&quot;&gt;WARP 出站更利于流媒体解锁与回程质量。&lt;/p&gt;&lt;/blockquote&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;用鼠标复制所有节点链接一键导入到软件中。以v2ray为例，导入后界面：&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/7cd296553fe79466763cddb5617af429121e371b706d11c648fb720de7aaecc0/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d352e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/7cd296553fe79466763cddb5617af429121e371b706d11c648fb720de7aaecc0/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d352e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165009178937580949454.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/2304e9263b7acab7e6bdd30a62238992498dd2eb3c0b4f9bcda33502a158f85e/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d362e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/2304e9263b7acab7e6bdd30a62238992498dd2eb3c0b4f9bcda33502a158f85e/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d73696e672d626f782d362e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165009178937580918225.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;脚本还有其它功能：查看分享链接、一键更换所有端口 、一键开启 BBR。可以输入数字 5 来启动 BBR 加速，这样就不用单独部署 BBR 加速脚本。&lt;/p&gt;&lt;hr style=&quot;box-sizing: border-box; height: 0.25em; border: 0px; background-image: initial; background-position: 0px 0px; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: var(--base-size-24) 0; padding: 0px; color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap;&quot;/&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;第三步：一键加速VPS服务器&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;五合一的TCP网络加速脚本，包括了BBR原版（首选）、BBR Plus、BBR魔改版、暴力BBR魔改版、LotServer(锐速)安装脚本。可用于KVMXen架构，不兼容OpenVZ（OVZ）。支持Centos 6+ / Debian 7+ / Ubuntu 14+，BBR魔改版不支持Debian 8。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;? 强烈推荐使用 BBR 原版加速：最稳定——谷歌官方维护，速度不错；最省心——Debian 9+ / Ubuntu 18.04+ 系统无需更换内核；最安全——避免因魔改内核导致 VPS 无法启动。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;g-emoji class=&quot;g-emoji&quot; alias=&quot;warning&quot; style=&quot;box-sizing: border-box; min-width: 1ch; font-family: &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 1.25em; font-weight: var(--base-text-weight-normal); vertical-align: -0.075em; line-height: 1; display: inline-block;&quot;&gt;⚠️&lt;/g-emoji&gt;&amp;nbsp;其他版本（BBR Plus / 魔改 / 暴力魔改 / 锐速）需要更换或指定内核，风险较高，不推荐新手使用。&lt;/p&gt;&lt;hr style=&quot;box-sizing: border-box; height: 0.25em; border: 0px; background-image: initial; background-position: 0px 0px; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: var(--base-size-24) 0; padding: 0px; color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap;&quot;/&gt;&lt;div class=&quot;highlight highlight-source-shell notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--base-size-16); justify-content: space-between; display: flex; color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; overflow: auto !important; position: relative !important;&quot;&gt;&lt;pre style=&quot;box-sizing: border-box; font-family: var(--fontStack-monospace,ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace); font-size: 13.6px; margin-top: 0px; margin-bottom: 0px; tab-size: var(--tab-size-preference); overflow-wrap: normal; padding: var(--base-size-16); color: var(--fgColor-default,var(--color-fg-default)); background-color: var(--bgColor-muted,var(--color-canvas-subtle)); border-radius: 6px; line-height: 1.45; overflow: auto; word-break: normal; min-height: 52px;&quot;&gt;wget&amp;nbsp;-N&amp;nbsp;--no-check-certificate&amp;nbsp;&amp;quot;https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh&amp;quot;chmod&amp;nbsp;+x&amp;nbsp;tcp.sh
./tcp.sh&lt;/pre&gt;&lt;clipboard-copy aria-label=&quot;Copy code to clipboard&quot; class=&quot;ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center&quot; data-copy-feedback=&quot;Copied!&quot; data-tooltip-direction=&quot;w&quot; value=&quot;wget -N --no-check-certificate &amp;quot;https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh&amp;quot;
chmod +x tcp.sh
./tcp.sh&quot; tabindex=&quot;0&quot; role=&quot;button&quot; style=&quot;box-sizing: border-box; font-size: 14px; font-weight: var(--base-text-weight-medium,500); text-wrap: nowrap; vertical-align: middle; cursor: pointer; user-select: none; appearance: none; border: 0px; border-radius: 6px; line-height: 20px; position: relative; color: var(--fgColor-accent,var(--color-accent-fg)); box-shadow: none; transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, background-color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, box-shadow 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, border-color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s; width: var(--control-small-size,28px); height: var(--control-small-size,28px); margin: var(--base-size-8,8px) !important; padding: 0px !important; display: flex !important; justify-content: center !important; align-items: center !important;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; data-component=&quot;Octicon&quot; height=&quot;16&quot; viewbox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; data-view-component=&quot;true&quot; class=&quot;octicon octicon-copy js-clipboard-copy-icon&quot;&gt;&lt;path d=&quot;M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/clipboard-copy&gt;&lt;/div&gt;&lt;hr style=&quot;box-sizing: border-box; height: 0.25em; border: 0px; background-image: initial; background-position: 0px 0px; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: var(--base-size-24) 0; padding: 0px; color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap;&quot;/&gt;&lt;blockquote style=&quot;box-sizing: border-box; margin-bottom: var(--base-size-16); color: var(--fgColor-muted,var(--color-fg-muted)); border-left: .25em solid var(--borderColor-default,var(--color-border-default)); padding-right: 1em; padding-left: 1em; font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px;&quot;&gt;如果提示 wget: command not found 的错误，这是你的系统精简的太干净了，wget都没有安装，所以需要安装wget。CentOS系统安装wget命令: yum install -y wget Debian/Ubuntu系统安装wget命令:apt-get install -y wget&lt;/p&gt;&lt;/blockquote&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;安装完成后，脚本管理命令为：./tcp.sh&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/b3437d9ce1e72bb283e042c5fe76e85008d3f303e7865ba1cff4769e8afde09e/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d6262722d312e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/b3437d9ce1e72bb283e042c5fe76e85008d3f303e7865ba1cff4769e8afde09e/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d6262722d312e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165009178937580958474.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;如果服务器系统是&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;Debian&lt;/span&gt;&amp;nbsp;或&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;Ubuntu&lt;/span&gt;，可不用安装内核，直接输入&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;数字 4&lt;/span&gt;&amp;nbsp;启动&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;BBR 原版加速&lt;/span&gt;。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;如果服务器系统是&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;CentOS&lt;/span&gt;，先输入&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;数字 1&lt;/span&gt;&amp;nbsp;安装内核，然后&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;重启服务器&lt;/span&gt;&amp;nbsp;后，输入&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;数字 4&lt;/span&gt;&amp;nbsp;启动&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;BBR 原版加速&lt;/span&gt;。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;BBR 原版&lt;/span&gt;由谷歌官方开发，稳定且速度表现优秀，推荐使用。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;g-emoji class=&quot;g-emoji&quot; alias=&quot;warning&quot; style=&quot;box-sizing: border-box; min-width: 1ch; font-family: &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 1.25em; font-weight: var(--base-text-weight-normal); vertical-align: -0.075em; line-height: 1; display: inline-block;&quot;&gt;⚠️&lt;/g-emoji&gt;&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;注意&lt;/span&gt;：对于其他第三方内核，可能存在与系统不兼容的情况，安装后有概率导致&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;VPS 无法正常启动&lt;/span&gt;，需谨慎，因此&amp;nbsp;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;不推荐&lt;/span&gt;。 如果VPS 无法正常启动需要重装系统或者开新服务器。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;以安装&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;BBR 原版加速&lt;/span&gt;为例，输入加速脚本，选择数字4&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/b3437d9ce1e72bb283e042c5fe76e85008d3f303e7865ba1cff4769e8afde09e/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d6262722d312e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/b3437d9ce1e72bb283e042c5fe76e85008d3f303e7865ba1cff4769e8afde09e/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d6262722d312e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165009178937580958474.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/148df77c1e0281d55a3889f5781a3601011ed3cb0af237229c73f5253e60713d/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d6262722d322e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/148df77c1e0281d55a3889f5781a3601011ed3cb0af237229c73f5253e60713d/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d6262722d322e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165010178937581060479.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/ef11ef1fbb6bc64f495baf6ae52361ae1fccd93901a196937a0f5ea86e0506ed/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d6262722d332e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/ef11ef1fbb6bc64f495baf6ae52361ae1fccd93901a196937a0f5ea86e0506ed/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f323032352d6262722d332e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165010178937581052214.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;输入./tcp.sh查看最终是否启动成功。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;如果想换一个加速，输入数字9进行卸载加速，然后进行操作。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;注意：如果在安装内核环节出现这样一张图，注意选择NO&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/23d42fe75293779c06f665a3a7e99f1649e508ce0fc22be802af3b97a379d5de/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f76756c74722f6e6577626272362e6a7067&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/23d42fe75293779c06f665a3a7e99f1649e508ce0fc22be802af3b97a379d5de/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f76756c74722f6e6577626272362e6a7067&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165010178937581085129.jpg&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;hr style=&quot;box-sizing: border-box; height: 0.25em; border: 0px; background-image: initial; background-position: 0px 0px; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: var(--base-size-24) 0; padding: 0px; color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap;&quot;/&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;【v2rayN客户端下载及使用方法】&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;客户端使用教程：&lt;a href=&quot;https://github.com/Alvin9999-newpac/fanqiang/wiki/v2ray%E5%90%84%E5%B9%B3%E5%8F%B0%E5%9B%BE%E6%96%87%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;v2ray各平台图文使用教程&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;Windows/Mac/Linux v2rayN 客户端：&lt;a href=&quot;https://github.com/2dust/v2rayN/releases/latest&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;Github最新版下载&lt;/a&gt;&amp;nbsp;(下载带core的文件)&amp;nbsp;&lt;a href=&quot;https://jgithub.xyz/2dust/v2rayN/releases/latest&quot; rel=&quot;nofollow&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;Github镜像下载&lt;/a&gt;&amp;nbsp;(下载带core的文件)&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;以Windows v2rayN客户端为例：&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;第一步，按照地址下载v2rayN客户端，然后解压缩后打开应用：&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/ac3294588fec8a59f98fa54212bbe2a4385c7d2c7f0fc482abb23a07c71ca850/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530302e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/ac3294588fec8a59f98fa54212bbe2a4385c7d2c7f0fc482abb23a07c71ca850/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530302e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165011178937581176720.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;第二步，在任务栏中找到蓝色V图标，单击打开客户端界面，点击配置项&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/35afd8910ae2d7ed4a0eda037e03909a921a55c366b11ce372870d3eba8866ba/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530312e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/35afd8910ae2d7ed4a0eda037e03909a921a55c366b11ce372870d3eba8866ba/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530312e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165011178937581137165.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;复制节点一键导入链接后，选择“从剪贴板导入分享链接”即可把节点导入到软件中，可以批量导入。或者也可以通过扫描二维码或者手动填写节点信息。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/bb848cb449ef8251ba586563acefbbd4f454d3a9cebcebf18a4fb6ef65809025/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530342e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/bb848cb449ef8251ba586563acefbbd4f454d3a9cebcebf18a4fb6ef65809025/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530342e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165011178937581152865.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;第三步，鼠标选中想用的节点，右键选择设置为活动服务器或者按回车，启用该节点。软件每次只能启用1个节点。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/4864a69a060d7a45f4eca5eae5a0f92bf168558baec2705607ae33343aade527/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530322e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/4864a69a060d7a45f4eca5eae5a0f92bf168558baec2705607ae33343aade527/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530322e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165012178937581220692.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;第四步，在任务栏中右键v2rayN图标，选择“自动配置系统代理”，之后就可以通过浏览器翻墙了。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/a5ee42d48833dda3bffea987cdfe420ad09e24c136eb3892ed418dca5eca64f8/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530332e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/a5ee42d48833dda3bffea987cdfe420ad09e24c136eb3892ed418dca5eca64f8/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530332e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165012178937581211168.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;如果路由选择“绕过大陆”，那么国内没有被封的网址就没有被代理。如果路由选择“全局”，那么所有的网址都会被代理。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: var(--base-text-weight-semibold,600);&quot;&gt;快速检测节点是否有效&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;选中所有节点，选择“测试真链接”，如果延迟结果是“-1”，那么该节点不可用，反之节点可用。&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/265fda9734872c1539c9179cc135c14d90dc790c51ebbb2f68a2bf9d8e952615/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530352e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/265fda9734872c1539c9179cc135c14d90dc790c51ebbb2f68a2bf9d8e952615/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530352e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165012178937581239813.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: var(--base-size-16); color: rgb(31, 35, 40); font-family: &amp;quot;Mona Sans VF&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans Backtick Fix&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; text-wrap: wrap; background-color: rgb(255, 255, 255);&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/426ba906c101177ee6fefcc00814225fa470c817b8766c892c9f8a79069206ca/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530362e706e67&quot; style=&quot;box-sizing: border-box; background-color: rgba(0, 0, 0, 0); color: var(--fgColor-accent,var(--color-accent-fg)); text-decoration-line: underline; text-underline-offset: 0.2rem;&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/426ba906c101177ee6fefcc00814225fa470c817b8766c892c9f8a79069206ca/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f416c76696e393939392d6e65777061632f706163322f736f6674696d61672f76327261796e3230323530362e706e67&quot; alt=&quot;&quot; data-canonical-src=&quot;https://kinber.cn/zb_users/upload/2026/09/20260914165013178937581312205.png&quot; style=&quot;box-sizing: content-box; border-style: none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 14 Sep 2026 16:49:34 +0800</pubDate></item></channel></rss>