[{"data":1,"prerenderedAt":2672},["ShallowReactive",2],{"navigation":3,"/depoly/security":650,"/depoly/security-surround":2667},[4,12,31,103],{"title":5,"path":6,"stem":7,"children":8,"icon":11},"更新日志","/update-log","1.update-log/1.index",[9],{"title":10,"path":6,"stem":7},"日志","i-line-md-calendar",{"title":13,"icon":14,"path":15,"stem":16,"children":17,"page":30},"食用指南","i-line-md-cookie","/getting-started","2.getting-started",[18,22,26],{"title":19,"path":20,"stem":21},"微信群聊","/getting-started/wechat","2.getting-started/1.wechat",{"title":23,"path":24,"stem":25},"精彩视频","/getting-started/videos","2.getting-started/2.videos",{"title":27,"path":28,"stem":29},"选购指南","/getting-started/tier","2.getting-started/4.tier",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":-1},"应用部署","i-material-symbols-logo-dev-outline","/depoly","3.depoly",[37,41,46,62,67,72,77,82,87],{"title":38,"path":34,"stem":39,"icon":40},"视频教程汇总","3.depoly/index","i-tabler-brand-youtube",{"title":42,"path":43,"stem":44,"icon":45},"CloudFlare","/depoly/cloudflare","3.depoly/cloudflare","i-simple-icons-cloudflare",{"title":47,"icon":48,"path":49,"stem":50,"children":51,"page":30},"数据库","i-material-symbols-database-outline","/depoly/database","3.depoly/database",[52,57],{"title":53,"path":54,"stem":55,"icon":56},"MySQL","/depoly/database/mysql","3.depoly/database/mysql","i-lineicons-mysql",{"title":58,"path":59,"stem":60,"icon":61},"SQLite","/depoly/database/sqlite","3.depoly/database/sqlite","i-file-icons-sqlite",{"title":63,"path":64,"stem":65,"icon":66},"Docker","/depoly/docker","3.depoly/docker","i-mdi-docker",{"title":68,"path":69,"stem":70,"icon":71},"邮件","/depoly/mail","3.depoly/mail","i-heroicons-envelope",{"title":73,"path":74,"stem":75,"icon":76},"服务器指标监控","/depoly/monitoring","3.depoly/monitoring","i-cbi-prometheusio",{"title":78,"path":79,"stem":80,"icon":81},"安全","/depoly/security","3.depoly/security","i-gravity-ui-firewall",{"title":83,"path":84,"stem":85,"icon":86},"建站","/depoly/site","3.depoly/site","i-cbi-nginx-proxy-manager",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":30},"操作系统","i-simple-icons-linux","/depoly/system","3.depoly/system",[93,98],{"title":94,"path":95,"stem":96,"icon":97},"Debian","/depoly/system/debian","3.depoly/system/debian","i-simple-icons-debian",{"title":99,"path":100,"stem":101,"icon":102},"磁盘","/depoly/system/disk","3.depoly/system/disk","i-streamline-cyber-harddisk-4",{"title":104,"path":105,"stem":106,"children":107,"icon":649},"商户测评","/review","4.review/1.index",[108,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,239,243,247,251,255,259,263,267,271,275,279,283,287,291,295,299,303,307,311,315,319,323,327,331,335,339,343,347,351,355,359,363,367,371,375,379,383,387,391,395,399,403,407,411,415,419,423,427,431,435,439,443,447,451,455,459,463,467,471,475,479,483,487,491,495,499,503,507,511,515,519,523,527,531,535,539,543,547,551,555,559,563,567,571,575,579,583,587,591,595,599,604,608,612,616,621,625,629,633,637,641,645],{"title":109,"path":105,"stem":106,"icon":110},"总表","i-ph-ranking-duotone",{"title":112,"path":113,"stem":114},"100TB","/review/100tb","4.review/2.100tb",{"title":116,"path":117,"stem":118},"AaITR","/review/aaitr","4.review/2.aaitr",{"title":120,"path":121,"stem":122},"AkileCloud（AK）","/review/akile","4.review/2.akile",{"title":124,"path":125,"stem":126},"AkkoCloud","/review/akkocloud","4.review/2.akkocloud",{"title":128,"path":129,"stem":130},"DreamCloud","/review/as211392","4.review/2.as211392",{"title":132,"path":133,"stem":134},"Back Waves","/review/backwaves","4.review/2.backwaves",{"title":136,"path":137,"stem":138},"BageVM","/review/bagevm","4.review/2.bagevm",{"title":140,"path":141,"stem":142},"Bandwagon（搬瓦工）","/review/bandwagon","4.review/2.bandwagon",{"title":144,"path":145,"stem":146},"BestVM（富婆）","/review/bestvm","4.review/2.bestvm",{"title":148,"path":149,"stem":150},"BUG NET","/review/bug","4.review/2.bug",{"title":152,"path":153,"stem":154},"ByteVirt","/review/bytevirt","4.review/2.bytevirt",{"title":156,"path":157,"stem":158},"Churros","/review/churros","4.review/2.churros",{"title":160,"path":161,"stem":162},"Ciallo Networks","/review/ciallonetworks","4.review/2.ciallonetworks",{"title":164,"path":165,"stem":166},"CloudCone（CC）","/review/cloudcone","4.review/2.cloudcone",{"title":168,"path":169,"stem":170},"CloudLeadInno","/review/cloudleadinno","4.review/2.cloudleadinno",{"title":172,"path":173,"stem":174},"ColoCrossing（CCS）","/review/colocrossing","4.review/2.colocrossing",{"title":176,"path":177,"stem":178},"CstoneCloud","/review/cstonecloud","4.review/2.cstonecloud",{"title":180,"path":181,"stem":182},"CubeCloud（魔方云）","/review/cubecloud","4.review/2.cubecloud",{"title":184,"path":185,"stem":186},"DataOnline","/review/dataonline","4.review/2.dataonline",{"title":188,"path":189,"stem":190},"DesiVPS","/review/desivps","4.review/2.desivps",{"title":192,"path":193,"stem":194},"DigitalVirt","/review/digitalvirt","4.review/2.digitalvirt",{"title":196,"path":197,"stem":198},"DMIT（大妈）","/review/dmit","4.review/2.dmit",{"title":200,"path":201,"stem":202},"DogYun（狗云）","/review/dogyun","4.review/2.dogyun",{"title":204,"path":205,"stem":206},"Dotdot Networks","/review/dotdot","4.review/2.dotdot",{"title":208,"path":209,"stem":210},"Ethernet Servers","/review/ethernetservers","4.review/2.ethernetservers",{"title":212,"path":213,"stem":214},"Evoxt（益沃斯）","/review/evoxt","4.review/2.evoxt",{"title":216,"path":217,"stem":218},"Fast Line（台灣速連）","/review/fast-line","4.review/2.fast-line",{"title":220,"path":221,"stem":222},"FiberState（FS）","/review/fiberstate","4.review/2.fiberstate",{"title":224,"path":225,"stem":226},"Flawless Node","/review/flawlessnode","4.review/2.flawlessnode",{"title":228,"path":229,"stem":230},"Fourplex","/review/fourplex","4.review/2.fourplex",{"title":232,"path":233,"stem":234},"GoMami（狗妈）","/review/gomami","4.review/2.gomami",{"title":236,"path":237,"stem":238},"HaloCloud","/review/halocloud","4.review/2.halocloud",{"title":240,"path":241,"stem":242},"Haruka","/review/haruka","4.review/2.haruka",{"title":244,"path":245,"stem":246},"HighEndNetwork","/review/highendnetwork","4.review/2.highendnetwork",{"title":248,"path":249,"stem":250},"HostDare","/review/hostdare","4.review/2.hostdare",{"title":252,"path":253,"stem":254},"iON cloud","/review/ion","4.review/2.ion",{"title":256,"path":257,"stem":258},"iPRaft","/review/ipraft","4.review/2.ipraft",{"title":260,"path":261,"stem":262},"is*hosting","/review/ishosting","4.review/2.ishosting",{"title":264,"path":265,"stem":266},"ISIF Cloud","/review/isif","4.review/2.isif",{"title":268,"path":269,"stem":270},"JUSTG","/review/justg","4.review/2.justg",{"title":272,"path":273,"stem":274},"LightCone（光锥云）","/review/lightcone","4.review/2.lightcone",{"title":276,"path":277,"stem":278},"Lightlayer","/review/lightlayer","4.review/2.lightlayer",{"title":280,"path":281,"stem":282},"Lime Network（烧纸云）","/review/limee","4.review/2.limee",{"title":284,"path":285,"stem":286},"LinkCLi免备案服务器","/review/linkcli","4.review/2.linkcli",{"title":288,"path":289,"stem":290},"Lisahost（丽萨主机）","/review/lisahost","4.review/2.lisahost",{"title":292,"path":293,"stem":294},"Md5Host","/review/md5host","4.review/2.md5host",{"title":296,"path":297,"stem":298},"MOACK（蘑菇）","/review/moack","4.review/2.moack",{"title":300,"path":301,"stem":302},"MoeCloud","/review/moe","4.review/2.moe",{"title":304,"path":305,"stem":306},"NoBrand Cloud","/review/nbdnet","4.review/2.nbdnet",{"title":308,"path":309,"stem":310},"Neburst Networks（奶爸）","/review/neburst","4.review/2.neburst",{"title":312,"path":313,"stem":314},"NETfront","/review/netfront","4.review/2.netfront",{"title":316,"path":317,"stem":318},"NetJett(YVGS)","/review/netjett","4.review/2.netjett",{"title":320,"path":321,"stem":322},"NiiHost","/review/niihost","4.review/2.niihost",{"title":324,"path":325,"stem":326},"NovixLink 诺联主机","/review/novixlink","4.review/2.novixlink",{"title":328,"path":329,"stem":330},"Nube Cloud","/review/nube","4.review/2.nube",{"title":332,"path":333,"stem":334},"Onidel Cloud","/review/onidel","4.review/2.onidel",{"title":336,"path":337,"stem":338},"OrangeVPS","/review/orangevps","4.review/2.orangevps",{"title":340,"path":341,"stem":342},"PittQiao（PQS）","/review/pqs","4.review/2.pqs",{"title":344,"path":345,"stem":346},"QDE","/review/qde","4.review/2.qde",{"title":348,"path":349,"stem":350},"QQG","/review/qqg","4.review/2.qqg",{"title":352,"path":353,"stem":354},"Rabisu","/review/rabisu","4.review/2.rabisu",{"title":356,"path":357,"stem":358},"RackNerd（RN）","/review/racknerd","4.review/2.racknerd",{"title":360,"path":361,"stem":362},"RakSmart","/review/raksmart","4.review/2.raksmart",{"title":364,"path":365,"stem":366},"RFCHost（花卷）","/review/rfchost","4.review/2.rfchost",{"title":368,"path":369,"stem":370},"Sakura（樱络云）","/review/sakura","4.review/2.sakura",{"title":372,"path":373,"stem":374},"SaltyFish（咸鱼）","/review/saltyfish","4.review/2.saltyfish",{"title":376,"path":377,"stem":378},"SixtyNet","/review/sixtynet","4.review/2.sixtynet",{"title":380,"path":381,"stem":382},"Skyline Connect","/review/skylineconnect","4.review/2.skylineconnect",{"title":384,"path":385,"stem":386},"SkyStroll","/review/skystroll","4.review/2.skystroll",{"title":388,"path":389,"stem":390},"Skywolf","/review/skywolf","4.review/2.skywolf",{"title":392,"path":393,"stem":394},"Spartan（斯巴达）","/review/spartan","4.review/2.spartan",{"title":396,"path":397,"stem":398},"SpeedOnline","/review/speedonline","4.review/2.speedonline",{"title":400,"path":401,"stem":402},"StarryDNS（星光网络）","/review/starrydns","4.review/2.starrydns",{"title":404,"path":405,"stem":406},"Tarekcloud","/review/tarekcloud","4.review/2.tarekcloud",{"title":408,"path":409,"stem":410},"Terabix","/review/terabix","4.review/2.terabix",{"title":412,"path":413,"stem":414},"Tokyonline","/review/tokyonline","4.review/2.tokyonline",{"title":416,"path":417,"stem":418},"TOTHOST","/review/tothost","4.review/2.tothost",{"title":420,"path":421,"stem":422},"V.PS（小秘书）","/review/v.ps","4.review/2.v.ps",{"title":424,"path":425,"stem":426},"V5 Server","/review/v5","4.review/2.v5",{"title":428,"path":429,"stem":430},"VIP Cloud","/review/vipcloud","4.review/2.vipcloud",{"title":432,"path":433,"stem":434},"VIRCS","/review/vircs","4.review/2.vircs",{"title":436,"path":437,"stem":438},"VMISS","/review/vmiss","4.review/2.vmiss",{"title":440,"path":441,"stem":442},"VMRack","/review/vmrack","4.review/2.vmrack",{"title":444,"path":445,"stem":446},"VmShell","/review/vmshell","4.review/2.vmshell",{"title":448,"path":449,"stem":450},"VollCloud","/review/vollcloud","4.review/2.vollcloud",{"title":452,"path":453,"stem":454},"VoyraCloud","/review/voyracloud","4.review/2.voyracloud",{"title":456,"path":457,"stem":458},"wap.ac","/review/wap.ac","4.review/2.wap.ac",{"title":460,"path":461,"stem":462},"WePC（车库云）","/review/wepc","4.review/2.wepc",{"title":464,"path":465,"stem":466},"YT.NET（云途）","/review/yt","4.review/2.yt",{"title":468,"path":469,"stem":470},"Zenlayer Cloud","/review/zenlayer","4.review/2.zenlayer",{"title":472,"path":473,"stem":474},"ZgoCloud","/review/zgovps","4.review/2.zgovps",{"title":476,"path":477,"stem":478},"ZoroCloud（索隆云）","/review/zorocloud","4.review/2.zorocloud",{"title":480,"path":481,"stem":482},"七九网络","/review/079idc","4.review/3.079idc",{"title":484,"path":485,"stem":486},"六六云","/review/666clouds","4.review/3.666clouds",{"title":488,"path":489,"stem":490},"阿里云","/review/aliyun","4.review/3.aliyun",{"title":492,"path":493,"stem":494},"数掘科技","/review/gfvps","4.review/3.gfvps",{"title":496,"path":497,"stem":498},"华纳云","/review/hncloud","4.review/3.hncloud",{"title":500,"path":501,"stem":502},"华瑞云","/review/huaruidc","4.review/3.huaruidc",{"title":504,"path":505,"stem":506},"极络云","/review/jiluoyun","4.review/3.jiluoyun",{"title":508,"path":509,"stem":510},"快快網絡","/review/kkidc","4.review/3.kkidc",{"title":512,"path":513,"stem":514},"莱卡云","/review/lcayun","4.review/3.lcayun",{"title":516,"path":517,"stem":518},"领创云","/review/lcyidc","4.review/3.lcyidc",{"title":520,"path":521,"stem":522},"荔枝云（Lycheen）","/review/lycheen","4.review/3.lycheen",{"title":524,"path":525,"stem":526},"轻松云","/review/qyun","4.review/3.qyun",{"title":528,"path":529,"stem":530},"热陈互联IDC","/review/rcvps","4.review/3.rcvps",{"title":532,"path":533,"stem":534},"伤心的云（Sad Cloud）","/review/sadidc","4.review/3.sadidc",{"title":536,"path":537,"stem":538},"速维云","/review/svyun","4.review/3.svyun",{"title":540,"path":541,"stem":542},"腾讯云（Tencent Cloud）","/review/tencent","4.review/3.tencent",{"title":544,"path":545,"stem":546},"野草云","/review/yecaoyun","4.review/3.yecaoyun",{"title":548,"path":549,"stem":550},"蔭雲（YINNET）","/review/yin-net","4.review/3.yin-net",{"title":552,"path":553,"stem":554},"云悠（YUNYOO）","/review/yunyoo","4.review/3.yunyoo",{"title":556,"path":557,"stem":558},"朝暮数据","/review/zhaomu","4.review/3.zhaomu",{"title":560,"path":561,"stem":562},"智贸云","/review/zmyhost","4.review/3.zmyhost",{"title":564,"path":565,"stem":566},"慈云数据","/review/zovps","4.review/3.zovps",{"title":568,"path":569,"stem":570},"AcckCloud","/review/acck","4.review/997.acck",{"title":572,"path":573,"stem":574},"ClawCloud（爪云）","/review/claw","4.review/997.claw",{"title":576,"path":577,"stem":578},"EasyVM","/review/easy","4.review/997.easy",{"title":580,"path":581,"stem":582},"ReliableSite（RS）","/review/reliablesite","4.review/997.reliablesite",{"title":584,"path":585,"stem":586},"TapHip","/review/taphip","4.review/997.taphip",{"title":588,"path":589,"stem":590},"TechnoVM","/review/techno","4.review/997.techno",{"title":592,"path":593,"stem":594},"破碎工坊云","/review/crash","4.review/998.crash",{"title":596,"path":597,"stem":598},"哇沃","/review/wawo","4.review/998.wawo",{"title":600,"path":601,"stem":602,"icon":603},"Admd","/review/admd","4.review/999.admd","i-mdi-dead",{"title":605,"path":606,"stem":607,"icon":603},"DuoCloud","/review/duocloud","4.review/999.duocloud",{"title":609,"path":610,"stem":611,"icon":603},"Faconhost","/review/faconhost","4.review/999.faconhost",{"title":613,"path":614,"stem":615,"icon":603},"HostBlazer","/review/hostblazer","4.review/999.hostblazer",{"title":617,"path":618,"stem":619,"icon":620},"Kurun（昆仑）","/review/kurun","4.review/999.kurun","i-mdi-offline",{"title":622,"path":623,"stem":624,"icon":603},"lingcloud","/review/lingcloud","4.review/999.lingcloud",{"title":626,"path":627,"stem":628,"icon":603},"OMAO（欧猫）","/review/omao","4.review/999.omao",{"title":630,"path":631,"stem":632,"icon":603},"Saturney（萨特尼）","/review/saturney","4.review/999.saturney",{"title":634,"path":635,"stem":636,"icon":603},"SpikeTel","/review/spiketel","4.review/999.spiketel",{"title":638,"path":639,"stem":640,"icon":603},"TWOMEN","/review/twomen","4.review/999.twomen",{"title":642,"path":643,"stem":644,"icon":603},"UserCloud（台妹云）","/review/user","4.review/999.user",{"title":646,"path":647,"stem":648,"icon":603},"VKVM","/review/vkvm","4.review/999.vkvm","i-line-md-clipboard-list",{"id":651,"title":78,"body":652,"description":2659,"extension":2660,"idcId":2661,"meta":2662,"navigation":2664,"path":79,"seo":2665,"stem":80,"__hash__":2666},"docs/3.depoly/security.md",{"type":653,"value":654,"toc":2645},"minimark",[655,660,664,987,991,1012,1016,2053,2057,2061,2116,2120,2171,2175,2274,2278,2282,2641],[656,657,659],"h2",{"id":658},"ufw-防火墙设置","📘 UFW - 防火墙设置",[661,662,663],"h3",{"id":663},"基础使用",[665,666,668,672,699,703,745,748,911,914,972,975],"steps",{"level":667},"4",[669,670,671],"h4",{"id":671},"安装",[673,674,680],"pre",{"className":675,"code":676,"filename":677,"language":678,"meta":679,"style":679},"language-bash shiki shiki-themes one-light one-light one-dark-pro","apt install ufw\n","terminal","bash","",[681,682,683],"code",{"__ignoreMap":679},[684,685,688,692,696],"span",{"class":686,"line":687},"line",1,[684,689,691],{"class":690},"sgdWN","apt",[684,693,695],{"class":694},"sBZeU"," install",[684,697,698],{"class":694}," ufw\n",[669,700,702],{"id":701},"配置文件介绍可选","配置文件介绍（可选）",[704,705,706,713,723,729,739],"ul",{},[707,708,709,712],"li",{},[681,710,711],{},"/etc/ufw/user.rules"," 这是存储用户自定义规则的主要文件，包含了所有手动添加的规则。它是 ufw 在启用时加载的主要文件。",[707,714,715,718,719,722],{},[681,716,717],{},"/etc/ufw/user6.rules"," 这是存储针对 IPv6 网络的用户自定义规则的文件，类似于 ",[681,720,721],{},"user.rules","，但是仅适用于 IPv6 地址。",[707,724,725,728],{},[681,726,727],{},"/etc/ufw/applications.d/"," 该目录用于存放应用程序的配置文件，每个文件通常对应一种应用服务的预定义规则。例如，OpenSSH、HTTP、HTTPS 等服务的规则可以在这里定义。",[707,730,731,734,735,738],{},[681,732,733],{},"/var/log/ufw.log"," 如果启用了日志记录，",[681,736,737],{},"ufw"," 会将日志写入这个文件，记录哪些连接被允许或拒绝。",[707,740,741,744],{},[681,742,743],{},"/etc/ufw/after.rules"," 是 UFW (Uncomplicated Firewall) 的配置文件之一，用于定义在 UFW 启动时应用的规则，它在 before.rules 后面执行。具体来说，after.rules 用来设置一些防火墙规则，这些规则会在所有其他默认规则和自定义规则之后被应用。",[669,746,747],{"id":747},"规则写法示例",[673,749,751],{"className":675,"code":750,"filename":677,"language":678,"meta":679,"style":679},"# 允许ssh\nufw allow ssh\n\n# 允许iperf3\nufw allow iperf3\n\n# 允许指定端口\nufw allow 1432\n\n# 允许指定端口协议\nufw allow 80/tcp\nufw allow 5555/tcp\n\n# 允许某个 IP 所有端口访问\nufw allow from 203.0.113.5\n\n# 允许指定 IP、端口和协议\nufw allow from 192.168.1.100 to any port 80 proto tcp\n",[681,752,753,759,770,777,783,793,798,804,815,820,826,836,846,851,857,870,875,881],{"__ignoreMap":679},[684,754,755],{"class":686,"line":687},[684,756,758],{"class":757},"slzXe","# 允许ssh\n",[684,760,762,764,767],{"class":686,"line":761},2,[684,763,737],{"class":690},[684,765,766],{"class":694}," allow",[684,768,769],{"class":694}," ssh\n",[684,771,773],{"class":686,"line":772},3,[684,774,776],{"emptyLinePlaceholder":775},true,"\n",[684,778,780],{"class":686,"line":779},4,[684,781,782],{"class":757},"# 允许iperf3\n",[684,784,786,788,790],{"class":686,"line":785},5,[684,787,737],{"class":690},[684,789,766],{"class":694},[684,791,792],{"class":694}," iperf3\n",[684,794,796],{"class":686,"line":795},6,[684,797,776],{"emptyLinePlaceholder":775},[684,799,801],{"class":686,"line":800},7,[684,802,803],{"class":757},"# 允许指定端口\n",[684,805,807,809,811],{"class":686,"line":806},8,[684,808,737],{"class":690},[684,810,766],{"class":694},[684,812,814],{"class":813},"soiGB"," 1432\n",[684,816,818],{"class":686,"line":817},9,[684,819,776],{"emptyLinePlaceholder":775},[684,821,823],{"class":686,"line":822},10,[684,824,825],{"class":757},"# 允许指定端口协议\n",[684,827,829,831,833],{"class":686,"line":828},11,[684,830,737],{"class":690},[684,832,766],{"class":694},[684,834,835],{"class":694}," 80/tcp\n",[684,837,839,841,843],{"class":686,"line":838},12,[684,840,737],{"class":690},[684,842,766],{"class":694},[684,844,845],{"class":694}," 5555/tcp\n",[684,847,849],{"class":686,"line":848},13,[684,850,776],{"emptyLinePlaceholder":775},[684,852,854],{"class":686,"line":853},14,[684,855,856],{"class":757},"# 允许某个 IP 所有端口访问\n",[684,858,860,862,864,867],{"class":686,"line":859},15,[684,861,737],{"class":690},[684,863,766],{"class":694},[684,865,866],{"class":694}," from",[684,868,869],{"class":813}," 203.0.113.5\n",[684,871,873],{"class":686,"line":872},16,[684,874,776],{"emptyLinePlaceholder":775},[684,876,878],{"class":686,"line":877},17,[684,879,880],{"class":757},"# 允许指定 IP、端口和协议\n",[684,882,884,886,888,890,893,896,899,902,905,908],{"class":686,"line":883},18,[684,885,737],{"class":690},[684,887,766],{"class":694},[684,889,866],{"class":694},[684,891,892],{"class":813}," 192.168.1.100",[684,894,895],{"class":694}," to",[684,897,898],{"class":694}," any",[684,900,901],{"class":694}," port",[684,903,904],{"class":813}," 80",[684,906,907],{"class":694}," proto",[684,909,910],{"class":694}," tcp\n",[669,912,913],{"id":913},"删除规则",[673,915,917],{"className":675,"code":916,"filename":677,"language":678,"meta":679,"style":679},"## 删除相关规则\nufw delete allow 80/tcp\n\n## 显示现有规则\nufw status numbered\n\n## 删除指定编号规则\nufw delete 2\n",[681,918,919,924,935,939,944,954,958,963],{"__ignoreMap":679},[684,920,921],{"class":686,"line":687},[684,922,923],{"class":757},"## 删除相关规则\n",[684,925,926,928,931,933],{"class":686,"line":761},[684,927,737],{"class":690},[684,929,930],{"class":694}," delete",[684,932,766],{"class":694},[684,934,835],{"class":694},[684,936,937],{"class":686,"line":772},[684,938,776],{"emptyLinePlaceholder":775},[684,940,941],{"class":686,"line":779},[684,942,943],{"class":757},"## 显示现有规则\n",[684,945,946,948,951],{"class":686,"line":785},[684,947,737],{"class":690},[684,949,950],{"class":694}," status",[684,952,953],{"class":694}," numbered\n",[684,955,956],{"class":686,"line":795},[684,957,776],{"emptyLinePlaceholder":775},[684,959,960],{"class":686,"line":800},[684,961,962],{"class":757},"## 删除指定编号规则\n",[684,964,965,967,969],{"class":686,"line":806},[684,966,737],{"class":690},[684,968,930],{"class":694},[684,970,971],{"class":813}," 2\n",[669,973,974],{"id":974},"启用防火墙",[673,976,978],{"className":675,"code":977,"filename":677,"language":678,"meta":679,"style":679},"ufw enable\n",[681,979,980],{"__ignoreMap":679},[684,981,982,984],{"class":686,"line":687},[684,983,737],{"class":690},[684,985,986],{"class":694}," enable\n",[656,988,990],{"id":989},"fail2ban","📘 使用 Fail2ban 防御 CC 攻击",[992,993,994],"blockquote",{},[995,996,997,998,1006,1007],"p",{},"结合视频食用：",[999,1000,1005],"a",{"href":1001,"rel":1002,"target":1004},"https://youtu.be/GqZVhAFCXLQ",[1003],"nofollow","_blank","YouTube"," ！",[999,1008,1011],{"href":1009,"rel":1010,"target":1004},"https://www.bilibili.com/video/BV17pDZBnERE/",[1003],"哔哩哔哩",[1013,1014],"youtube-video",{"url":1015},"https://www.youtube.com/embed/GqZVhAFCXLQ",[665,1017,1018,1022,1107,1110,1113,1126,1129,1233,1237,1240,1252,1254,1455,1458,1460,1472,1474,1655,1658,1661,1683,1686,1724,1727,1767,1770,1913,1916,1919,1995,1998],{"level":667},[669,1019,1021],{"id":1020},"安装-fail2ban","安装 Fail2ban",[673,1023,1025],{"className":675,"code":1024,"filename":677,"language":678,"meta":679,"style":679},"# 更新软件包列表\nsudo apt update\n\n# 安装 fail2ban\nsudo apt install fail2ban -y\n\n# 检查安装状态\nsudo systemctl status fail2ban\n\n# 设置开机自启动\nsudo systemctl enable fail2ban\n",[681,1026,1027,1032,1043,1047,1052,1066,1070,1075,1087,1091,1096],{"__ignoreMap":679},[684,1028,1029],{"class":686,"line":687},[684,1030,1031],{"class":757},"# 更新软件包列表\n",[684,1033,1034,1037,1040],{"class":686,"line":761},[684,1035,1036],{"class":690},"sudo",[684,1038,1039],{"class":694}," apt",[684,1041,1042],{"class":694}," update\n",[684,1044,1045],{"class":686,"line":772},[684,1046,776],{"emptyLinePlaceholder":775},[684,1048,1049],{"class":686,"line":779},[684,1050,1051],{"class":757},"# 安装 fail2ban\n",[684,1053,1054,1056,1058,1060,1063],{"class":686,"line":785},[684,1055,1036],{"class":690},[684,1057,1039],{"class":694},[684,1059,695],{"class":694},[684,1061,1062],{"class":694}," fail2ban",[684,1064,1065],{"class":813}," -y\n",[684,1067,1068],{"class":686,"line":795},[684,1069,776],{"emptyLinePlaceholder":775},[684,1071,1072],{"class":686,"line":800},[684,1073,1074],{"class":757},"# 检查安装状态\n",[684,1076,1077,1079,1082,1084],{"class":686,"line":806},[684,1078,1036],{"class":690},[684,1080,1081],{"class":694}," systemctl",[684,1083,950],{"class":694},[684,1085,1086],{"class":694}," fail2ban\n",[684,1088,1089],{"class":686,"line":817},[684,1090,776],{"emptyLinePlaceholder":775},[684,1092,1093],{"class":686,"line":822},[684,1094,1095],{"class":757},"# 设置开机自启动\n",[684,1097,1098,1100,1102,1105],{"class":686,"line":828},[684,1099,1036],{"class":690},[684,1101,1081],{"class":694},[684,1103,1104],{"class":694}," enable",[684,1106,1086],{"class":694},[669,1108,1109],{"id":1109},"创建自定义过滤器",[995,1111,1112],{},"创建用于解析 Nginx Proxy Manager 日志格式的过滤器：",[673,1114,1116],{"className":675,"code":1115,"filename":677,"language":678,"meta":679,"style":679},"vi /etc/fail2ban/filter.d/nginx-proxy-manager.conf\n",[681,1117,1118],{"__ignoreMap":679},[684,1119,1120,1123],{"class":686,"line":687},[684,1121,1122],{"class":690},"vi",[684,1124,1125],{"class":694}," /etc/fail2ban/filter.d/nginx-proxy-manager.conf\n",[995,1127,1128],{},"添加以下内容：",[673,1130,1132],{"className":675,"code":1131,"filename":677,"language":678,"meta":679,"style":679},"[Definition]\n# Nginx Proxy Manager 日志过滤器\n# 日志格式: [时间] - 状态码 状态码 - 方法 协议 域名 \"路径\" [Client IP] [其他信息]...\n\n# 定义失败正则表达式（匹配所有请求）\nfailregex = \\[Client \u003CHOST>\\]\n\n# 忽略正则表达式（可选）\nignoreregex =\n\n# 日期格式定义\ndatepattern = ^\\[%%d/%%b/%%Y:%%H:%%M:%%S %%z\\]\n",[681,1133,1134,1140,1145,1150,1154,1159,1186,1190,1195,1203,1207,1212],{"__ignoreMap":679},[684,1135,1136],{"class":686,"line":687},[684,1137,1139],{"class":1138},"skGaQ","[Definition]\n",[684,1141,1142],{"class":686,"line":761},[684,1143,1144],{"class":757},"# Nginx Proxy Manager 日志过滤器\n",[684,1146,1147],{"class":686,"line":772},[684,1148,1149],{"class":757},"# 日志格式: [时间] - 状态码 状态码 - 方法 协议 域名 \"路径\" [Client IP] [其他信息]...\n",[684,1151,1152],{"class":686,"line":779},[684,1153,776],{"emptyLinePlaceholder":775},[684,1155,1156],{"class":686,"line":785},[684,1157,1158],{"class":757},"# 定义失败正则表达式（匹配所有请求）\n",[684,1160,1161,1164,1167,1171,1174,1177,1180,1183],{"class":686,"line":795},[684,1162,1163],{"class":690},"failregex",[684,1165,1166],{"class":694}," =",[684,1168,1170],{"class":1169},"sXhqU"," \\[",[684,1172,1173],{"class":694},"Client",[684,1175,1176],{"class":1138}," \u003C",[684,1178,1179],{"class":694},"HOS",[684,1181,1182],{"class":1138},"T>",[684,1184,1185],{"class":1169},"\\]\n",[684,1187,1188],{"class":686,"line":800},[684,1189,776],{"emptyLinePlaceholder":775},[684,1191,1192],{"class":686,"line":806},[684,1193,1194],{"class":757},"# 忽略正则表达式（可选）\n",[684,1196,1197,1200],{"class":686,"line":817},[684,1198,1199],{"class":690},"ignoreregex",[684,1201,1202],{"class":694}," =\n",[684,1204,1205],{"class":686,"line":822},[684,1206,776],{"emptyLinePlaceholder":775},[684,1208,1209],{"class":686,"line":828},[684,1210,1211],{"class":757},"# 日期格式定义\n",[684,1213,1214,1217,1219,1222,1225,1228,1231],{"class":686,"line":838},[684,1215,1216],{"class":690},"datepattern",[684,1218,1166],{"class":694},[684,1220,1221],{"class":694}," ^",[684,1223,1224],{"class":1169},"\\[",[684,1226,1227],{"class":694},"%%d/%%b/%%Y:%%H:%%M:%%S",[684,1229,1230],{"class":694}," %%z",[684,1232,1185],{"class":1169},[669,1234,1236],{"id":1235},"创建-jail-配置","创建 Jail 配置",[995,1238,1239],{},"创建专门的 jail 配置文件：",[673,1241,1243],{"className":675,"code":1242,"filename":677,"language":678,"meta":679,"style":679},"vi /etc/fail2ban/jail.d/nginx-proxy-manager.conf\n",[681,1244,1245],{"__ignoreMap":679},[684,1246,1247,1249],{"class":686,"line":687},[684,1248,1122],{"class":690},[684,1250,1251],{"class":694}," /etc/fail2ban/jail.d/nginx-proxy-manager.conf\n",[995,1253,1128],{},[673,1255,1257],{"className":675,"code":1256,"filename":677,"language":678,"meta":679,"style":679},"[nginx-proxy-manager]\n# 启用此 jail\nenabled = true\n\n# 使用自定义过滤器\nfilter = nginx-proxy-manager\n\n# 监控的日志文件路径\nlogpath = proxy-host-15_access.log\n\n# 后端类型\nbackend = pyinotify\n\n# 最大重试次数（1分钟内1000次）\nmaxretry = 1000\n\n# 时间窗口（1分钟 = 60秒）\nfindtime = 60\n\n# 封禁时长（72小时 = 259200秒）\nbantime = 259200\n\n# 自定义封禁动作\naction = npm-iptables\n\n# 忽略的 IP 地址（可选，添加信任的 IP）\nignoreip = 127.0.0.1/8 ::1\n           # 192.168.0.0/16\n           # 10.0.0.0/8\n",[681,1258,1259,1264,1269,1279,1283,1288,1298,1302,1307,1317,1321,1326,1336,1340,1345,1355,1359,1364,1374,1379,1385,1396,1401,1407,1418,1423,1429,1443,1449],{"__ignoreMap":679},[684,1260,1261],{"class":686,"line":687},[684,1262,1263],{"class":1138},"[nginx-proxy-manager]\n",[684,1265,1266],{"class":686,"line":761},[684,1267,1268],{"class":757},"# 启用此 jail\n",[684,1270,1271,1274,1276],{"class":686,"line":772},[684,1272,1273],{"class":690},"enabled",[684,1275,1166],{"class":694},[684,1277,1278],{"class":813}," true\n",[684,1280,1281],{"class":686,"line":779},[684,1282,776],{"emptyLinePlaceholder":775},[684,1284,1285],{"class":686,"line":785},[684,1286,1287],{"class":757},"# 使用自定义过滤器\n",[684,1289,1290,1293,1295],{"class":686,"line":795},[684,1291,1292],{"class":690},"filter",[684,1294,1166],{"class":694},[684,1296,1297],{"class":694}," nginx-proxy-manager\n",[684,1299,1300],{"class":686,"line":800},[684,1301,776],{"emptyLinePlaceholder":775},[684,1303,1304],{"class":686,"line":806},[684,1305,1306],{"class":757},"# 监控的日志文件路径\n",[684,1308,1309,1312,1314],{"class":686,"line":817},[684,1310,1311],{"class":690},"logpath",[684,1313,1166],{"class":694},[684,1315,1316],{"class":694}," proxy-host-15_access.log\n",[684,1318,1319],{"class":686,"line":822},[684,1320,776],{"emptyLinePlaceholder":775},[684,1322,1323],{"class":686,"line":828},[684,1324,1325],{"class":757},"# 后端类型\n",[684,1327,1328,1331,1333],{"class":686,"line":838},[684,1329,1330],{"class":690},"backend",[684,1332,1166],{"class":694},[684,1334,1335],{"class":694}," pyinotify\n",[684,1337,1338],{"class":686,"line":848},[684,1339,776],{"emptyLinePlaceholder":775},[684,1341,1342],{"class":686,"line":853},[684,1343,1344],{"class":757},"# 最大重试次数（1分钟内1000次）\n",[684,1346,1347,1350,1352],{"class":686,"line":859},[684,1348,1349],{"class":690},"maxretry",[684,1351,1166],{"class":694},[684,1353,1354],{"class":813}," 1000\n",[684,1356,1357],{"class":686,"line":872},[684,1358,776],{"emptyLinePlaceholder":775},[684,1360,1361],{"class":686,"line":877},[684,1362,1363],{"class":757},"# 时间窗口（1分钟 = 60秒）\n",[684,1365,1366,1369,1371],{"class":686,"line":883},[684,1367,1368],{"class":690},"findtime",[684,1370,1166],{"class":694},[684,1372,1373],{"class":813}," 60\n",[684,1375,1377],{"class":686,"line":1376},19,[684,1378,776],{"emptyLinePlaceholder":775},[684,1380,1382],{"class":686,"line":1381},20,[684,1383,1384],{"class":757},"# 封禁时长（72小时 = 259200秒）\n",[684,1386,1388,1391,1393],{"class":686,"line":1387},21,[684,1389,1390],{"class":690},"bantime",[684,1392,1166],{"class":694},[684,1394,1395],{"class":813}," 259200\n",[684,1397,1399],{"class":686,"line":1398},22,[684,1400,776],{"emptyLinePlaceholder":775},[684,1402,1404],{"class":686,"line":1403},23,[684,1405,1406],{"class":757},"# 自定义封禁动作\n",[684,1408,1410,1413,1415],{"class":686,"line":1409},24,[684,1411,1412],{"class":690},"action",[684,1414,1166],{"class":694},[684,1416,1417],{"class":694}," npm-iptables\n",[684,1419,1421],{"class":686,"line":1420},25,[684,1422,776],{"emptyLinePlaceholder":775},[684,1424,1426],{"class":686,"line":1425},26,[684,1427,1428],{"class":757},"# 忽略的 IP 地址（可选，添加信任的 IP）\n",[684,1430,1432,1435,1437,1440],{"class":686,"line":1431},27,[684,1433,1434],{"class":690},"ignoreip",[684,1436,1166],{"class":694},[684,1438,1439],{"class":694}," 127.0.0.1/8",[684,1441,1442],{"class":694}," ::1\n",[684,1444,1446],{"class":686,"line":1445},28,[684,1447,1448],{"class":757},"           # 192.168.0.0/16\n",[684,1450,1452],{"class":686,"line":1451},29,[684,1453,1454],{"class":757},"           # 10.0.0.0/8\n",[669,1456,1457],{"id":1457},"创建自定义动作",[995,1459,1239],{},[673,1461,1463],{"className":675,"code":1462,"filename":677,"language":678,"meta":679,"style":679},"vi /etc/fail2ban/action.d/npm-iptables.conf\n",[681,1464,1465],{"__ignoreMap":679},[684,1466,1467,1469],{"class":686,"line":687},[684,1468,1122],{"class":690},[684,1470,1471],{"class":694}," /etc/fail2ban/action.d/npm-iptables.conf\n",[995,1473,1128],{},[673,1475,1477],{"className":675,"code":1476,"filename":677,"language":678,"meta":679,"style":679},"[Definition]\n# 动作定义\nactionstart = \nactionstop = \nactioncheck = \n\n# 封禁动作\nactionban = iptables -I INPUT 1 -s \u003Cip> -j DROP\n            iptables -I FORWARD 1 -s \u003Cip> -j DROP\n\n# 解封动作\nactionunban = iptables -D INPUT -s \u003Cip> -j DROP\n              iptables -D FORWARD -s \u003Cip> -j DROP\n\n[Init]\n# 初始化参数\n",[681,1478,1479,1483,1488,1498,1507,1516,1520,1525,1561,1585,1589,1594,1620,1641,1645,1650],{"__ignoreMap":679},[684,1480,1481],{"class":686,"line":687},[684,1482,1139],{"class":1138},[684,1484,1485],{"class":686,"line":761},[684,1486,1487],{"class":757},"# 动作定义\n",[684,1489,1490,1493,1495],{"class":686,"line":772},[684,1491,1492],{"class":690},"actionstart",[684,1494,1166],{"class":694},[684,1496,1497],{"class":1138}," \n",[684,1499,1500,1503,1505],{"class":686,"line":779},[684,1501,1502],{"class":690},"actionstop",[684,1504,1166],{"class":694},[684,1506,1497],{"class":1138},[684,1508,1509,1512,1514],{"class":686,"line":785},[684,1510,1511],{"class":690},"actioncheck",[684,1513,1166],{"class":694},[684,1515,1497],{"class":1138},[684,1517,1518],{"class":686,"line":795},[684,1519,776],{"emptyLinePlaceholder":775},[684,1521,1522],{"class":686,"line":800},[684,1523,1524],{"class":757},"# 封禁动作\n",[684,1526,1527,1530,1532,1535,1538,1541,1544,1547,1549,1552,1555,1558],{"class":686,"line":806},[684,1528,1529],{"class":690},"actionban",[684,1531,1166],{"class":694},[684,1533,1534],{"class":694}," iptables",[684,1536,1537],{"class":813}," -I",[684,1539,1540],{"class":694}," INPUT",[684,1542,1543],{"class":813}," 1",[684,1545,1546],{"class":813}," -s",[684,1548,1176],{"class":1138},[684,1550,1551],{"class":694},"i",[684,1553,1554],{"class":1138},"p> ",[684,1556,1557],{"class":813},"-j",[684,1559,1560],{"class":694}," DROP\n",[684,1562,1563,1566,1568,1571,1573,1575,1577,1579,1581,1583],{"class":686,"line":817},[684,1564,1565],{"class":690},"            iptables",[684,1567,1537],{"class":813},[684,1569,1570],{"class":694}," FORWARD",[684,1572,1543],{"class":813},[684,1574,1546],{"class":813},[684,1576,1176],{"class":1138},[684,1578,1551],{"class":694},[684,1580,1554],{"class":1138},[684,1582,1557],{"class":813},[684,1584,1560],{"class":694},[684,1586,1587],{"class":686,"line":822},[684,1588,776],{"emptyLinePlaceholder":775},[684,1590,1591],{"class":686,"line":828},[684,1592,1593],{"class":757},"# 解封动作\n",[684,1595,1596,1599,1601,1603,1606,1608,1610,1612,1614,1616,1618],{"class":686,"line":838},[684,1597,1598],{"class":690},"actionunban",[684,1600,1166],{"class":694},[684,1602,1534],{"class":694},[684,1604,1605],{"class":813}," -D",[684,1607,1540],{"class":694},[684,1609,1546],{"class":813},[684,1611,1176],{"class":1138},[684,1613,1551],{"class":694},[684,1615,1554],{"class":1138},[684,1617,1557],{"class":813},[684,1619,1560],{"class":694},[684,1621,1622,1625,1627,1629,1631,1633,1635,1637,1639],{"class":686,"line":848},[684,1623,1624],{"class":690},"              iptables",[684,1626,1605],{"class":813},[684,1628,1570],{"class":694},[684,1630,1546],{"class":813},[684,1632,1176],{"class":1138},[684,1634,1551],{"class":694},[684,1636,1554],{"class":1138},[684,1638,1557],{"class":813},[684,1640,1560],{"class":694},[684,1642,1643],{"class":686,"line":853},[684,1644,776],{"emptyLinePlaceholder":775},[684,1646,1647],{"class":686,"line":859},[684,1648,1649],{"class":1138},"[Init]\n",[684,1651,1652],{"class":686,"line":872},[684,1653,1654],{"class":757},"# 初始化参数\n",[669,1656,1657],{"id":1657},"测试配置",[995,1659,1660],{},"验证过滤器",[673,1662,1664],{"className":675,"code":1663,"filename":677,"language":678,"meta":679,"style":679},"# 测试过滤器是否能正确匹配日志\nsudo fail2ban-regex proxy-host-15_access.log /etc/fail2ban/filter.d/nginx-proxy-manager.conf\n",[681,1665,1666,1671],{"__ignoreMap":679},[684,1667,1668],{"class":686,"line":687},[684,1669,1670],{"class":757},"# 测试过滤器是否能正确匹配日志\n",[684,1672,1673,1675,1678,1681],{"class":686,"line":761},[684,1674,1036],{"class":690},[684,1676,1677],{"class":694}," fail2ban-regex",[684,1679,1680],{"class":694}," proxy-host-15_access.log",[684,1682,1125],{"class":694},[995,1684,1685],{},"检查 Jail 配置",[673,1687,1689],{"className":675,"code":1688,"filename":677,"language":678,"meta":679,"style":679},"# 检查配置语法\nsudo fail2ban-client -d\n\n# 查看所有 jail\nsudo fail2ban-client status\n",[681,1690,1691,1696,1706,1710,1715],{"__ignoreMap":679},[684,1692,1693],{"class":686,"line":687},[684,1694,1695],{"class":757},"# 检查配置语法\n",[684,1697,1698,1700,1703],{"class":686,"line":761},[684,1699,1036],{"class":690},[684,1701,1702],{"class":694}," fail2ban-client",[684,1704,1705],{"class":813}," -d\n",[684,1707,1708],{"class":686,"line":772},[684,1709,776],{"emptyLinePlaceholder":775},[684,1711,1712],{"class":686,"line":779},[684,1713,1714],{"class":757},"# 查看所有 jail\n",[684,1716,1717,1719,1721],{"class":686,"line":785},[684,1718,1036],{"class":690},[684,1720,1702],{"class":694},[684,1722,1723],{"class":694}," status\n",[669,1725,1726],{"id":1726},"启动和管理",[673,1728,1730],{"className":675,"code":1729,"filename":677,"language":678,"meta":679,"style":679},"# 重启服务以应用新配置\nsudo systemctl restart fail2ban\n\n# 检查服务状态\nsudo systemctl status fail2ban\n",[681,1731,1732,1737,1748,1752,1757],{"__ignoreMap":679},[684,1733,1734],{"class":686,"line":687},[684,1735,1736],{"class":757},"# 重启服务以应用新配置\n",[684,1738,1739,1741,1743,1746],{"class":686,"line":761},[684,1740,1036],{"class":690},[684,1742,1081],{"class":694},[684,1744,1745],{"class":694}," restart",[684,1747,1086],{"class":694},[684,1749,1750],{"class":686,"line":772},[684,1751,776],{"emptyLinePlaceholder":775},[684,1753,1754],{"class":686,"line":779},[684,1755,1756],{"class":757},"# 检查服务状态\n",[684,1758,1759,1761,1763,1765],{"class":686,"line":785},[684,1760,1036],{"class":690},[684,1762,1081],{"class":694},[684,1764,950],{"class":694},[684,1766,1086],{"class":694},[669,1768,1769],{"id":1769},"常用管理命令",[673,1771,1773],{"className":675,"code":1772,"filename":677,"language":678,"meta":679,"style":679},"# 手动封禁 IP\nsudo fail2ban-client set nginx-proxy-manager banip 1.2.3.4\n\n# 手动解封 IP\nsudo fail2ban-client set nginx-proxy-manager unbanip 1.2.3.4\n\n# 查看被封禁的 IP 列表\nsudo fail2ban-client status nginx-proxy-manager | grep \"Banned IP\"\n\n# 查看 jail 的详细信息\nsudo fail2ban-client get nginx-proxy-manager actions\n\n# 重新加载配置\nsudo fail2ban-client reload\n\n# 查看日志\nsudo tail -f /var/log/fail2ban.log\n",[681,1774,1775,1780,1798,1802,1807,1822,1826,1831,1850,1854,1859,1873,1877,1882,1891,1895,1900],{"__ignoreMap":679},[684,1776,1777],{"class":686,"line":687},[684,1778,1779],{"class":757},"# 手动封禁 IP\n",[684,1781,1782,1784,1786,1789,1792,1795],{"class":686,"line":761},[684,1783,1036],{"class":690},[684,1785,1702],{"class":694},[684,1787,1788],{"class":694}," set",[684,1790,1791],{"class":694}," nginx-proxy-manager",[684,1793,1794],{"class":694}," banip",[684,1796,1797],{"class":813}," 1.2.3.4\n",[684,1799,1800],{"class":686,"line":772},[684,1801,776],{"emptyLinePlaceholder":775},[684,1803,1804],{"class":686,"line":779},[684,1805,1806],{"class":757},"# 手动解封 IP\n",[684,1808,1809,1811,1813,1815,1817,1820],{"class":686,"line":785},[684,1810,1036],{"class":690},[684,1812,1702],{"class":694},[684,1814,1788],{"class":694},[684,1816,1791],{"class":694},[684,1818,1819],{"class":694}," unbanip",[684,1821,1797],{"class":813},[684,1823,1824],{"class":686,"line":795},[684,1825,776],{"emptyLinePlaceholder":775},[684,1827,1828],{"class":686,"line":800},[684,1829,1830],{"class":757},"# 查看被封禁的 IP 列表\n",[684,1832,1833,1835,1837,1839,1841,1844,1847],{"class":686,"line":806},[684,1834,1036],{"class":690},[684,1836,1702],{"class":694},[684,1838,950],{"class":694},[684,1840,1791],{"class":694},[684,1842,1843],{"class":1138}," | ",[684,1845,1846],{"class":690},"grep",[684,1848,1849],{"class":694}," \"Banned IP\"\n",[684,1851,1852],{"class":686,"line":817},[684,1853,776],{"emptyLinePlaceholder":775},[684,1855,1856],{"class":686,"line":822},[684,1857,1858],{"class":757},"# 查看 jail 的详细信息\n",[684,1860,1861,1863,1865,1868,1870],{"class":686,"line":828},[684,1862,1036],{"class":690},[684,1864,1702],{"class":694},[684,1866,1867],{"class":694}," get",[684,1869,1791],{"class":694},[684,1871,1872],{"class":694}," actions\n",[684,1874,1875],{"class":686,"line":838},[684,1876,776],{"emptyLinePlaceholder":775},[684,1878,1879],{"class":686,"line":848},[684,1880,1881],{"class":757},"# 重新加载配置\n",[684,1883,1884,1886,1888],{"class":686,"line":853},[684,1885,1036],{"class":690},[684,1887,1702],{"class":694},[684,1889,1890],{"class":694}," reload\n",[684,1892,1893],{"class":686,"line":859},[684,1894,776],{"emptyLinePlaceholder":775},[684,1896,1897],{"class":686,"line":872},[684,1898,1899],{"class":757},"# 查看日志\n",[684,1901,1902,1904,1907,1910],{"class":686,"line":877},[684,1903,1036],{"class":690},[684,1905,1906],{"class":694}," tail",[684,1908,1909],{"class":813}," -f",[684,1911,1912],{"class":694}," /var/log/fail2ban.log\n",[669,1914,1915],{"id":1915},"监控和调试",[995,1917,1918],{},"查看 Fail2ban 日志",[673,1920,1922],{"className":675,"code":1921,"filename":677,"language":678,"meta":679,"style":679},"# 实时监控日志\nsudo tail -f /var/log/fail2ban.log\n\n# 查看最近的封禁记录\nsudo grep \"Ban\" /var/log/fail2ban.log | tail -20\n\n# 查看最近的解封记录\nsudo grep \"Unban\" /var/log/fail2ban.log | tail -20\n",[681,1923,1924,1929,1939,1943,1948,1969,1973,1978],{"__ignoreMap":679},[684,1925,1926],{"class":686,"line":687},[684,1927,1928],{"class":757},"# 实时监控日志\n",[684,1930,1931,1933,1935,1937],{"class":686,"line":761},[684,1932,1036],{"class":690},[684,1934,1906],{"class":694},[684,1936,1909],{"class":813},[684,1938,1912],{"class":694},[684,1940,1941],{"class":686,"line":772},[684,1942,776],{"emptyLinePlaceholder":775},[684,1944,1945],{"class":686,"line":779},[684,1946,1947],{"class":757},"# 查看最近的封禁记录\n",[684,1949,1950,1952,1955,1958,1961,1963,1966],{"class":686,"line":785},[684,1951,1036],{"class":690},[684,1953,1954],{"class":694}," grep",[684,1956,1957],{"class":694}," \"Ban\"",[684,1959,1960],{"class":694}," /var/log/fail2ban.log",[684,1962,1843],{"class":1138},[684,1964,1965],{"class":690},"tail",[684,1967,1968],{"class":813}," -20\n",[684,1970,1971],{"class":686,"line":795},[684,1972,776],{"emptyLinePlaceholder":775},[684,1974,1975],{"class":686,"line":800},[684,1976,1977],{"class":757},"# 查看最近的解封记录\n",[684,1979,1980,1982,1984,1987,1989,1991,1993],{"class":686,"line":806},[684,1981,1036],{"class":690},[684,1983,1954],{"class":694},[684,1985,1986],{"class":694}," \"Unban\"",[684,1988,1960],{"class":694},[684,1990,1843],{"class":1138},[684,1992,1965],{"class":690},[684,1994,1968],{"class":813},[995,1996,1997],{},"查看 iptables 规则",[673,1999,2001],{"className":675,"code":2000,"filename":677,"language":678,"meta":679,"style":679},"# 查看 INPUT 链规则\nsudo iptables -L INPUT -n -v --line-numbers\n\n# 查看 FORWARD 链规则\nsudo iptables -L FORWARD -n -v --line-numbers\n",[681,2002,2003,2008,2028,2032,2037],{"__ignoreMap":679},[684,2004,2005],{"class":686,"line":687},[684,2006,2007],{"class":757},"# 查看 INPUT 链规则\n",[684,2009,2010,2012,2014,2017,2019,2022,2025],{"class":686,"line":761},[684,2011,1036],{"class":690},[684,2013,1534],{"class":694},[684,2015,2016],{"class":813}," -L",[684,2018,1540],{"class":694},[684,2020,2021],{"class":813}," -n",[684,2023,2024],{"class":813}," -v",[684,2026,2027],{"class":813}," --line-numbers\n",[684,2029,2030],{"class":686,"line":772},[684,2031,776],{"emptyLinePlaceholder":775},[684,2033,2034],{"class":686,"line":779},[684,2035,2036],{"class":757},"# 查看 FORWARD 链规则\n",[684,2038,2039,2041,2043,2045,2047,2049,2051],{"class":686,"line":785},[684,2040,1036],{"class":690},[684,2042,1534],{"class":694},[684,2044,2016],{"class":813},[684,2046,1570],{"class":694},[684,2048,2021],{"class":813},[684,2050,2024],{"class":813},[684,2052,2027],{"class":813},[656,2054,2056],{"id":2055},"日志查看","📘 日志查看",[661,2058,2060],{"id":2059},"总访问量频繁的-ip","总访问量频繁的 IP",[673,2062,2064],{"className":675,"code":2063,"filename":677,"language":678,"meta":679,"style":679},"cat access.log | awk '{print $12}' |sort |uniq -c |sort -n -k 1 -r|more\n",[681,2065,2066],{"__ignoreMap":679},[684,2067,2068,2071,2074,2076,2079,2082,2085,2088,2090,2093,2096,2098,2100,2102,2105,2107,2110,2113],{"class":686,"line":687},[684,2069,2070],{"class":690},"cat",[684,2072,2073],{"class":694}," access.log",[684,2075,1843],{"class":1138},[684,2077,2078],{"class":690},"awk",[684,2080,2081],{"class":694}," '{print $12}'",[684,2083,2084],{"class":1138}," |",[684,2086,2087],{"class":690},"sort",[684,2089,2084],{"class":1138},[684,2091,2092],{"class":690},"uniq",[684,2094,2095],{"class":813}," -c",[684,2097,2084],{"class":1138},[684,2099,2087],{"class":690},[684,2101,2021],{"class":813},[684,2103,2104],{"class":813}," -k",[684,2106,1543],{"class":813},[684,2108,2109],{"class":813}," -r",[684,2111,2112],{"class":1138},"|",[684,2114,2115],{"class":690},"more\n",[661,2117,2119],{"id":2118},"查看某个-ip-访问量频繁的-url","查看某个 IP 访问量频繁的 URL",[673,2121,2123],{"className":675,"code":2122,"filename":677,"language":678,"meta":679,"style":679},"cat access.log | grep '75.221.79.53' |awk '{print $10}'|sort|uniq -c |sort -n -k 1 -r|more\n",[681,2124,2125],{"__ignoreMap":679},[684,2126,2127,2129,2131,2133,2135,2138,2140,2142,2145,2147,2149,2151,2153,2155,2157,2159,2161,2163,2165,2167,2169],{"class":686,"line":687},[684,2128,2070],{"class":690},[684,2130,2073],{"class":694},[684,2132,1843],{"class":1138},[684,2134,1846],{"class":690},[684,2136,2137],{"class":694}," '75.221.79.53'",[684,2139,2084],{"class":1138},[684,2141,2078],{"class":690},[684,2143,2144],{"class":694}," '{print $10}'",[684,2146,2112],{"class":1138},[684,2148,2087],{"class":690},[684,2150,2112],{"class":1138},[684,2152,2092],{"class":690},[684,2154,2095],{"class":813},[684,2156,2084],{"class":1138},[684,2158,2087],{"class":690},[684,2160,2021],{"class":813},[684,2162,2104],{"class":813},[684,2164,1543],{"class":813},[684,2166,2109],{"class":813},[684,2168,2112],{"class":1138},[684,2170,2115],{"class":690},[661,2172,2174],{"id":2173},"敏感-sql-语句","敏感 SQL 语句",[673,2176,2178],{"className":675,"code":2177,"filename":677,"language":678,"meta":679,"style":679},"cat access.log | awk '/select/{print $1}'|sort -n |uniq -c |sort -nr\ncat access.log | awk '/\\/and\\//||/\\+and\\+/||/%20and%20and/{print $1}'|sort -n|uniq -c|sort -nr\ncat access.log | awk '/sleep/{print $1}'|sort -n|uniq -c|sort -nr\n",[681,2179,2180,2212,2243],{"__ignoreMap":679},[684,2181,2182,2184,2186,2188,2190,2193,2195,2197,2199,2201,2203,2205,2207,2209],{"class":686,"line":687},[684,2183,2070],{"class":690},[684,2185,2073],{"class":694},[684,2187,1843],{"class":1138},[684,2189,2078],{"class":690},[684,2191,2192],{"class":694}," '/select/{print $1}'",[684,2194,2112],{"class":1138},[684,2196,2087],{"class":690},[684,2198,2021],{"class":813},[684,2200,2084],{"class":1138},[684,2202,2092],{"class":690},[684,2204,2095],{"class":813},[684,2206,2084],{"class":1138},[684,2208,2087],{"class":690},[684,2210,2211],{"class":813}," -nr\n",[684,2213,2214,2216,2218,2220,2222,2225,2227,2229,2231,2233,2235,2237,2239,2241],{"class":686,"line":761},[684,2215,2070],{"class":690},[684,2217,2073],{"class":694},[684,2219,1843],{"class":1138},[684,2221,2078],{"class":690},[684,2223,2224],{"class":694}," '/\\/and\\//||/\\+and\\+/||/%20and%20and/{print $1}'",[684,2226,2112],{"class":1138},[684,2228,2087],{"class":690},[684,2230,2021],{"class":813},[684,2232,2112],{"class":1138},[684,2234,2092],{"class":690},[684,2236,2095],{"class":813},[684,2238,2112],{"class":1138},[684,2240,2087],{"class":690},[684,2242,2211],{"class":813},[684,2244,2245,2247,2249,2251,2253,2256,2258,2260,2262,2264,2266,2268,2270,2272],{"class":686,"line":772},[684,2246,2070],{"class":690},[684,2248,2073],{"class":694},[684,2250,1843],{"class":1138},[684,2252,2078],{"class":690},[684,2254,2255],{"class":694}," '/sleep/{print $1}'",[684,2257,2112],{"class":1138},[684,2259,2087],{"class":690},[684,2261,2021],{"class":813},[684,2263,2112],{"class":1138},[684,2265,2092],{"class":690},[684,2267,2095],{"class":813},[684,2269,2112],{"class":1138},[684,2271,2087],{"class":690},[684,2273,2211],{"class":813},[656,2275,2277],{"id":2276},"端口扫描","📘 端口扫描",[661,2279,2281],{"id":2280},"简易-python-扫描程序","简易 Python 扫描程序",[673,2283,2287],{"className":2284,"code":2285,"filename":2286,"language":2286,"meta":679,"style":679},"language-python shiki shiki-themes one-light one-light one-dark-pro","import socket\nimport termcolor\n\n\ndef scan(target, ports):\n    print('\\n' + ' Starting Scan For ' + str(target))\n    for port in range(1,ports):\n        scan_port(target,port)\n\n\ndef scan_port(ipaddress, port):\n    try:\n        sock = socket.socket()\n        sock.connect((ipaddress, port))\n        print(\"[+] Port Opened \" + str(port))\n        sock.close()\n    except:\n        pass\n\n\ntargets = input(\"[*] Enter Targets To Scan(split them by ,): \")\nports = int(input(\"[*] Enter How Many Ports You Want To Scan: \"))\nif ',' in targets:\n    print(termcolor.colored((\"[*] Scanning Multiple Targets\"), 'green'))\n    for ip_addr in targets.split(','):\n        scan(ip_addr.strip(' '), ports)\nelse:\n    scan(targets,ports)\n","python",[681,2288,2289,2298,2305,2309,2313,2337,2367,2389,2398,2402,2406,2424,2432,2449,2460,2477,2486,2493,2498,2502,2506,2524,2547,2561,2585,2607,2626,2633],{"__ignoreMap":679},[684,2290,2291,2295],{"class":686,"line":687},[684,2292,2294],{"class":2293},"sRLjE","import",[684,2296,2297],{"class":1138}," socket\n",[684,2299,2300,2302],{"class":686,"line":761},[684,2301,2294],{"class":2293},[684,2303,2304],{"class":1138}," termcolor\n",[684,2306,2307],{"class":686,"line":772},[684,2308,776],{"emptyLinePlaceholder":775},[684,2310,2311],{"class":686,"line":779},[684,2312,776],{"emptyLinePlaceholder":775},[684,2314,2315,2318,2321,2324,2328,2331,2334],{"class":686,"line":785},[684,2316,2317],{"class":2293},"def",[684,2319,2320],{"class":690}," scan",[684,2322,2323],{"class":1138},"(",[684,2325,2327],{"class":2326},"sdCPU","target",[684,2329,2330],{"class":1138},",",[684,2332,2333],{"class":2326}," ports",[684,2335,2336],{"class":1138},"):\n",[684,2338,2339,2342,2344,2347,2350,2352,2356,2359,2361,2364],{"class":686,"line":795},[684,2340,2341],{"class":1169},"    print",[684,2343,2323],{"class":1138},[684,2345,2346],{"class":694},"'",[684,2348,2349],{"class":1169},"\\n",[684,2351,2346],{"class":694},[684,2353,2355],{"class":2354},"sQ8GY"," +",[684,2357,2358],{"class":694}," ' Starting Scan For '",[684,2360,2355],{"class":2354},[684,2362,2363],{"class":1169}," str",[684,2365,2366],{"class":1138},"(target))\n",[684,2368,2369,2372,2375,2378,2381,2383,2386],{"class":686,"line":800},[684,2370,2371],{"class":2293},"    for",[684,2373,2374],{"class":1138}," port ",[684,2376,2377],{"class":2293},"in",[684,2379,2380],{"class":1169}," range",[684,2382,2323],{"class":1138},[684,2384,2385],{"class":813},"1",[684,2387,2388],{"class":1138},",ports):\n",[684,2390,2391,2395],{"class":686,"line":806},[684,2392,2394],{"class":2393},"sPcG5","        scan_port",[684,2396,2397],{"class":1138},"(target,port)\n",[684,2399,2400],{"class":686,"line":817},[684,2401,776],{"emptyLinePlaceholder":775},[684,2403,2404],{"class":686,"line":822},[684,2405,776],{"emptyLinePlaceholder":775},[684,2407,2408,2410,2413,2415,2418,2420,2422],{"class":686,"line":828},[684,2409,2317],{"class":2293},[684,2411,2412],{"class":690}," scan_port",[684,2414,2323],{"class":1138},[684,2416,2417],{"class":2326},"ipaddress",[684,2419,2330],{"class":1138},[684,2421,901],{"class":2326},[684,2423,2336],{"class":1138},[684,2425,2426,2429],{"class":686,"line":838},[684,2427,2428],{"class":2293},"    try",[684,2430,2431],{"class":1138},":\n",[684,2433,2434,2437,2440,2443,2446],{"class":686,"line":848},[684,2435,2436],{"class":1138},"        sock ",[684,2438,2439],{"class":2354},"=",[684,2441,2442],{"class":1138}," socket.",[684,2444,2445],{"class":2393},"socket",[684,2447,2448],{"class":1138},"()\n",[684,2450,2451,2454,2457],{"class":686,"line":853},[684,2452,2453],{"class":1138},"        sock.",[684,2455,2456],{"class":2393},"connect",[684,2458,2459],{"class":1138},"((ipaddress, port))\n",[684,2461,2462,2465,2467,2470,2472,2474],{"class":686,"line":859},[684,2463,2464],{"class":1169},"        print",[684,2466,2323],{"class":1138},[684,2468,2469],{"class":694},"\"[+] Port Opened \"",[684,2471,2355],{"class":2354},[684,2473,2363],{"class":1169},[684,2475,2476],{"class":1138},"(port))\n",[684,2478,2479,2481,2484],{"class":686,"line":872},[684,2480,2453],{"class":1138},[684,2482,2483],{"class":2393},"close",[684,2485,2448],{"class":1138},[684,2487,2488,2491],{"class":686,"line":877},[684,2489,2490],{"class":2293},"    except",[684,2492,2431],{"class":1138},[684,2494,2495],{"class":686,"line":883},[684,2496,2497],{"class":2293},"        pass\n",[684,2499,2500],{"class":686,"line":1376},[684,2501,776],{"emptyLinePlaceholder":775},[684,2503,2504],{"class":686,"line":1381},[684,2505,776],{"emptyLinePlaceholder":775},[684,2507,2508,2511,2513,2516,2518,2521],{"class":686,"line":1387},[684,2509,2510],{"class":1138},"targets ",[684,2512,2439],{"class":2354},[684,2514,2515],{"class":1169}," input",[684,2517,2323],{"class":1138},[684,2519,2520],{"class":694},"\"[*] Enter Targets To Scan(split them by ,): \"",[684,2522,2523],{"class":1138},")\n",[684,2525,2526,2529,2531,2534,2536,2539,2541,2544],{"class":686,"line":1398},[684,2527,2528],{"class":1138},"ports ",[684,2530,2439],{"class":2354},[684,2532,2533],{"class":1169}," int",[684,2535,2323],{"class":1138},[684,2537,2538],{"class":1169},"input",[684,2540,2323],{"class":1138},[684,2542,2543],{"class":694},"\"[*] Enter How Many Ports You Want To Scan: \"",[684,2545,2546],{"class":1138},"))\n",[684,2548,2549,2552,2555,2558],{"class":686,"line":1403},[684,2550,2551],{"class":2293},"if",[684,2553,2554],{"class":694}," ','",[684,2556,2557],{"class":2293}," in",[684,2559,2560],{"class":1138}," targets:\n",[684,2562,2563,2565,2568,2571,2574,2577,2580,2583],{"class":686,"line":1409},[684,2564,2341],{"class":1169},[684,2566,2567],{"class":1138},"(termcolor.",[684,2569,2570],{"class":2393},"colored",[684,2572,2573],{"class":1138},"((",[684,2575,2576],{"class":694},"\"[*] Scanning Multiple Targets\"",[684,2578,2579],{"class":1138},"), ",[684,2581,2582],{"class":694},"'green'",[684,2584,2546],{"class":1138},[684,2586,2587,2589,2592,2594,2597,2600,2602,2605],{"class":686,"line":1420},[684,2588,2371],{"class":2293},[684,2590,2591],{"class":1138}," ip_addr ",[684,2593,2377],{"class":2293},[684,2595,2596],{"class":1138}," targets.",[684,2598,2599],{"class":2393},"split",[684,2601,2323],{"class":1138},[684,2603,2604],{"class":694},"','",[684,2606,2336],{"class":1138},[684,2608,2609,2612,2615,2618,2620,2623],{"class":686,"line":1425},[684,2610,2611],{"class":2393},"        scan",[684,2613,2614],{"class":1138},"(ip_addr.",[684,2616,2617],{"class":2393},"strip",[684,2619,2323],{"class":1138},[684,2621,2622],{"class":694},"' '",[684,2624,2625],{"class":1138},"), ports)\n",[684,2627,2628,2631],{"class":686,"line":1431},[684,2629,2630],{"class":2293},"else",[684,2632,2431],{"class":1138},[684,2634,2635,2638],{"class":686,"line":1445},[684,2636,2637],{"class":2393},"    scan",[684,2639,2640],{"class":1138},"(targets,ports)\n",[2642,2643,2644],"style",{},"html pre.shiki code .sgdWN, html code.shiki .sgdWN{--shiki-light:#4078F2;--shiki-default:#4078F2;--shiki-dark:#61AFEF}html pre.shiki code .sBZeU, html code.shiki .sBZeU{--shiki-light:#50A14F;--shiki-default:#50A14F;--shiki-dark:#98C379}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .slzXe, html code.shiki .slzXe{--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-default:#A0A1A7;--shiki-default-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic}html pre.shiki code .soiGB, html code.shiki .soiGB{--shiki-light:#986801;--shiki-default:#986801;--shiki-dark:#D19A66}html pre.shiki code .skGaQ, html code.shiki .skGaQ{--shiki-light:#383A42;--shiki-default:#383A42;--shiki-dark:#ABB2BF}html pre.shiki code .sXhqU, html code.shiki .sXhqU{--shiki-light:#0184BC;--shiki-default:#0184BC;--shiki-dark:#56B6C2}html pre.shiki code .sRLjE, html code.shiki .sRLjE{--shiki-light:#A626A4;--shiki-default:#A626A4;--shiki-dark:#C678DD}html pre.shiki code .sdCPU, html code.shiki .sdCPU{--shiki-light:#986801;--shiki-light-font-style:inherit;--shiki-default:#986801;--shiki-default-font-style:inherit;--shiki-dark:#D19A66;--shiki-dark-font-style:italic}html pre.shiki code .sQ8GY, html code.shiki .sQ8GY{--shiki-light:#383A42;--shiki-default:#383A42;--shiki-dark:#56B6C2}html pre.shiki code .sPcG5, html code.shiki .sPcG5{--shiki-light:#383A42;--shiki-default:#383A42;--shiki-dark:#61AFEF}",{"title":679,"searchDepth":761,"depth":761,"links":2646},[2647,2650,2651,2656],{"id":658,"depth":761,"text":659,"children":2648},[2649],{"id":663,"depth":772,"text":663},{"id":989,"depth":761,"text":990},{"id":2055,"depth":761,"text":2056,"children":2652},[2653,2654,2655],{"id":2059,"depth":772,"text":2060},{"id":2118,"depth":772,"text":2119},{"id":2173,"depth":772,"text":2174},{"id":2276,"depth":761,"text":2277,"children":2657},[2658],{"id":2280,"depth":772,"text":2281},"网络/数据安全（如 DDoS、防火墙、TLS 等）主题","md",null,{"date":2663},"2026-03-22",{"icon":81},{"title":78,"description":2659},"x0_cxjtuTAZ9XYtYRI7OQVEIhDZ_B5LTOHHcTRs7XmM",[2668,2670],{"title":73,"path":74,"stem":75,"description":2669,"icon":76,"children":-1},"服务器监控相关文档教程。",{"title":83,"path":84,"stem":85,"description":2671,"icon":86,"children":-1},"本文为大家准备了一系列建站教程。",1777777460279]