[{"data":1,"prerenderedAt":2005},["ShallowReactive",2],{"blog-taxonomies":3,"blog-stats":507,"post-2024\u002F2024-11-04-创建一个网络包解码器分析devp2p协议":1083},[4,11,16,21,25,29,36,39,44,47,52,58,63,66,71,76,80,84,87,93,96,101,105,110,113,117,122,127,132,136,141,143,146,151,155,157,162,165,169,173,176,179,183,186,190,193,197,200,205,208,211,214,219,222,228,234,237,239,245,249,253,256,260,266,271,276,281,283,287,290,293,298,301,304,306,308,311,314,316,318,321,327,332,337,342,347,352,354,356,358,361,365,367,369,371,374,376,378,381,386,390,393,396,400,404,407,411,413,415,417,421,423,425,428,431,433,435,437,439,441,443,446,448,450,454,456,459,461,463,465,467,469,471,473,477,483,486,488,491,493,495,497,499,501,503,505],{"category":5,"tags":6},"笔记",[7,8,9,10],"QQ","插件","LiteLoader","美化",{"category":12,"tags":13},"其他",[14,15,10],"博客","IP签名",{"category":17,"tags":18},"杂谈",[19,20],"互联网","观点",{"category":5,"tags":22},[14,23,24],"GitHub","数据可视化",{"category":5,"tags":26},[14,27,28],"访问统计","不蒜子",{"category":30,"tags":31},"工具",[32,33,34,35],"Python","爬虫","选课脚本","广州大学",{"category":5,"tags":37},[38,5],"数学分析",{"category":40,"tags":41},"算法",[42,40,43],"数据结构","线性表",{"category":40,"tags":45},[42,46],"复习",{"category":5,"tags":48},[49,50,51],"高等代数","线性代数","知识点",{"category":5,"tags":53},[14,54,55,56,57],"Typora","PicGo","图床","Markdown",{"category":30,"tags":59},[60,61,62],"Jupyter","工具配置","中文",{"category":30,"tags":64},[65,61,10],"VSCode",{"category":30,"tags":67},[68,69,70,35],"路由器","OpenWrt","校园网",{"category":12,"tags":72},[73,74,75],"网络协议","Wireshark","DEVP2P",{"category":5,"tags":77},[73,74,78,79],"Lua","解码器",{"category":5,"tags":81},[82,5,83],"常微分方程","数学",{"category":5,"tags":85},[86,5,83],"概率论",{"category":30,"tags":88},[89,90,91,92],"Docker","WSL","Windows","磁盘清理",{"category":30,"tags":94},[32,33,95,35],"课程表",{"category":5,"tags":97},[14,98,99,100],"Hexo","Gitalk","评论系统",{"category":5,"tags":102},[14,103,98,104],"Obsidian","写作工具",{"category":12,"tags":106},[107,108,109],"课题研究","泊松分布","参数估计",{"category":12,"tags":111},[107,108,109,112],"组会",{"category":12,"tags":114},[109,115,108,116],"IM模型","统计学",{"category":17,"tags":118},[119,120,121],"软考","网络规划","信息系统项目管理",{"category":30,"tags":123},[124,125,126],"Arch Linux","AppImage","Linux",{"category":5,"tags":128},[129,130,131],"编程语言","计算机科学","内存管理",{"category":5,"tags":133},[134,135],"Canvas","前端",{"category":5,"tags":137},[14,138,139,140],"GitHub Actions","Vite","部署",{"category":5,"tags":142},[135],{"category":5,"tags":144},[135,145],"系统设计",{"category":5,"tags":147},[135,148,149,150],"安全","XSS","CSRF",{"category":152,"tags":153},"项目",[134,154],"PixiJS",{"category":152,"tags":156},null,{"category":40,"tags":158},[42,159,160,161],"栈","队列","JavaScript",{"category":40,"tags":163},[42,164,161],"哈希表",{"category":5,"tags":166},[167,161,168],"ES6","Set",{"category":40,"tags":170},[40,171,172],"动态规划","背包问题",{"category":40,"tags":174},[40,175],"滑动窗口",{"category":40,"tags":177},[42,178,161],"链表",{"category":40,"tags":180},[40,181,161,182],"ACM","面试",{"category":40,"tags":184},[40,161,185],"数据类型转换",{"category":40,"tags":187},[42,188,178,189],"顺序表","TypeScript",{"category":5,"tags":191},[135,154,134,192],"渲染",{"category":5,"tags":194},[135,195,134,196],"富文本编辑","wangEditor",{"category":40,"tags":198},[199,40,178],"力扣",{"category":5,"tags":201},[202,203,204,91],"DNS","加密","网络安全",{"category":5,"tags":206},[135,207],"Axios",{"category":5,"tags":209},[135,207,189,210],"接口封装",{"category":5,"tags":212},[135,213,145],"JWT",{"category":152,"tags":215},[134,216,217,154,218],"画布","React","项目开发",{"category":17,"tags":220},[221],"日志",{"category":5,"tags":223},[224,225,226,227],"Neo4j","图数据库","中心度分析","PageRank",{"category":12,"tags":229},[230,231,232,233],"论文","机器学习","随机森林","保险欺诈",{"category":5,"tags":235},[236],"人工智能",{"category":5,"tags":238},[231,40,32],{"category":12,"tags":240},[241,242,243,244],"共识算法","最长链","区块链","算法设计",{"category":5,"tags":246},[161,247,248,135],"闭包","作用域",{"category":5,"tags":250},[14,138,251,252],"RSS","自动化",{"category":30,"tags":254},[89,90,91,255],"安装",{"category":30,"tags":257},[258,91,259],"MSYS2","开发环境",{"category":5,"tags":261},[262,263,264,265],"团队协作","Git","Commit规范","代码审查",{"category":30,"tags":267},[268,269,270],"oh-my-posh","终端美化","CLI",{"category":5,"tags":272},[273,274,275],"上下文工程","Agent","RAG",{"category":5,"tags":277},[278,279,280],"前端工程化","技术选型","工程基建",{"category":5,"tags":282},[275],{"category":5,"tags":284},[285,286],"SDD","规格驱动开发",{"category":5,"tags":288},[289],"neovim",{"category":5,"tags":291},[292],"技术写作",{"category":5,"tags":294},[295,32,296,89,297],"FastAPI","后端","工程实践",{"category":152,"tags":299},[274,300],"Harness Engineering",{"category":5,"tags":302},[303],"RFC",{"category":152,"tags":305},[274,300,275],{"category":152,"tags":307},[274],{"category":40,"tags":309},[199,40,161,310],"两数之和",{"category":40,"tags":312},[199,40,161,313],"双指针",{"category":40,"tags":315},[199,40,161,178],{"category":40,"tags":317},[199,40,161,175],{"category":40,"tags":319},[199,40,161,320],"回溯",{"category":5,"tags":322},[323,324,325,326],"分布式处理与计算","Spark","Scala","RDD",{"category":5,"tags":328},[323,329,330,331],"线性回归","逻辑回归","监督学习",{"category":5,"tags":333},[323,334,335,336],"数值优化","牛顿法","收敛性",{"category":5,"tags":338},[323,339,340,341],"PCA","数据降维","正则化",{"category":5,"tags":343},[323,344,345,346],"聚类","层次聚类","K-Means",{"category":5,"tags":348},[323,349,350,351],"随机模拟","统计推断","EM算法",{"category":5,"tags":353},[24],{"category":5,"tags":355},[24],{"category":5,"tags":357},[24],{"category":40,"tags":359},[42,360],"图论",{"category":40,"tags":362},[42,363,364],"树","二叉树",{"category":40,"tags":366},[42,160],{"category":40,"tags":368},[42],{"category":40,"tags":370},[42,159],{"category":40,"tags":372},[42,40,373],"复杂度分析",{"category":40,"tags":375},[42,43,178],{"category":40,"tags":377},[42,43,188],{"category":40,"tags":379},[42,380],"基础概念",{"category":17,"tags":382},[383,384,385],"随记","照片","高中",{"category":17,"tags":387},[383,388,389],"团建","战地",{"category":17,"tags":391},[383,392],"生活",{"category":17,"tags":394},[383,395],"文学",{"category":17,"tags":397},[383,398,399],"SCP","模因",{"category":17,"tags":401},[383,402,403],"画集","艺术",{"category":17,"tags":405},[14,406,383],"写作",{"category":17,"tags":408},[383,409,410],"音乐","摇滚",{"category":17,"tags":412},[383,392],{"category":17,"tags":414},[383,409],{"category":17,"tags":416},[383,35,392],{"category":17,"tags":418},[383,419,420],"同人","手书",{"category":17,"tags":422},[383,392],{"category":17,"tags":424},[383,392],{"category":17,"tags":426},[383,427],"植物",{"category":17,"tags":429},[383,430],"读书",{"category":17,"tags":432},[383,392],{"category":17,"tags":434},[383,392],{"category":17,"tags":436},[383,392],{"category":17,"tags":438},[383,392],{"category":17,"tags":440},[383,392],{"category":17,"tags":442},[383,392],{"category":17,"tags":444},[14,445,383],"一周年",{"category":17,"tags":447},[383,392],{"category":17,"tags":449},[383,392],{"category":17,"tags":451},[35,452,453],"开源组织","SITE-193",{"category":17,"tags":455},[383,392],{"category":17,"tags":457},[383,458],"年末",{"category":17,"tags":460},[383,392],{"category":17,"tags":462},[383,392],{"category":17,"tags":464},[14,17],{"category":17,"tags":466},[383,392],{"category":17,"tags":468},[383,392],{"category":17,"tags":470},[383,392],{"category":17,"tags":472},[383,392],{"category":17,"tags":474},[383,475,476],"游戏","Control",{"category":30,"tags":478},[479,480,481,482],"Quadim","图像处理","四叉树","Rust",{"category":17,"tags":484},[14,485],"上线纪念",{"category":17,"tags":487},[383,395],{"category":30,"tags":489},[203,490],"测试",{"category":17,"tags":492},[383],{"category":17,"tags":494},[383,392],{"category":17,"tags":496},[383],{"category":5,"tags":498},[40],{"category":5,"tags":500},[40],{"category":5,"tags":502},[40],{"category":5,"tags":504},[40],{"category":5,"tags":506},[40],[508,512,516,520,524,528,532,536,540,544,548,552,556,560,564,568,572,576,579,583,587,590,594,598,602,606,610,614,618,622,626,630,634,638,642,646,650,654,658,662,666,670,674,678,682,686,690,694,698,702,706,710,714,718,722,726,730,734,738,742,746,750,754,758,762,766,770,774,778,782,786,790,794,798,801,805,809,813,817,821,825,829,833,837,841,845,849,853,857,861,865,869,873,877,881,885,889,893,897,901,904,907,911,915,919,923,927,930,934,938,942,946,950,954,957,961,965,969,973,977,981,984,988,992,996,1000,1004,1007,1011,1015,1019,1023,1027,1031,1035,1039,1043,1047,1051,1055,1059,1063,1067,1071,1075,1079],{"path":509,"words":510,"published":511,"date":156},"\u002Fposts\u002F2024\u002F2024-06-25-liteloaderqqnt",1296,"2024-06-25 11:03:08",{"path":513,"words":514,"published":515,"date":156},"\u002Fposts\u002F2024\u002F2024-06-26-ip签名",0,"2024-06-26 22:53:53",{"path":517,"words":518,"published":519,"date":156},"\u002Fposts\u002F2024\u002F2024-06-29-何加盐中文互联网正在加速崩塌",4853,"2024-06-29 00:47:13",{"path":521,"words":522,"published":523,"date":156},"\u002Fposts\u002F2024\u002F2024-07-12-github-chart",270,"2024-07-12 20:02:50",{"path":525,"words":526,"published":527,"date":156},"\u002Fposts\u002F2024\u002F2024-07-14-访客数统计",192,"2024-07-24 01:34:28",{"path":529,"words":530,"published":531,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-广大选课脚本",110,"2024-07-26 01:34:28",{"path":533,"words":534,"published":535,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数学分析笔记其二",14,"2024-07-26 23:54:02",{"path":537,"words":538,"published":539,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数据结构复习其二",12856,"2024-07-26 02:48:08",{"path":541,"words":542,"published":543,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数据结构复习相关",32856,"2024-07-26 02:24:14",{"path":545,"words":546,"published":547,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-线性代数与空间解析几何知识点全汇总",6110,"2024-07-26 03:27:55",{"path":549,"words":550,"published":551,"date":156},"\u002Fposts\u002F2024\u002F2024-07-31-typora-picgo-兰空图床打造markdown写作环境",311,"2024-07-31 12:56:23",{"path":553,"words":554,"published":555,"date":156},"\u002Fposts\u002F2024\u002F2024-09-02-jupyter配置中文",441,"2024-09-02 23:49:05",{"path":557,"words":558,"published":559,"date":156},"\u002Fposts\u002F2024\u002F2024-09-02-自定义vscode背景图片",100,"2024-09-02 23:39:00",{"path":561,"words":562,"published":563,"date":156},"\u002Fposts\u002F2024\u002F2024-09-03-制作gzhu校园网路由器",1423,"2024-09-03 23:43:18",{"path":565,"words":566,"published":567,"date":156},"\u002Fposts\u002F2024\u002F2024-09-26-09-25-2024",136,"2024-09-26 00:49:26",{"path":569,"words":570,"published":571,"date":156},"\u002Fposts\u002F2024\u002F2024-11-04-创建一个网络包解码器分析devp2p协议",1943,"2024-11-04 16:45:19",{"path":573,"words":574,"published":575,"date":156},"\u002Fposts\u002F2024\u002F2025-03-09-2024一些笔记常微分",16,"2024-12-09 22:51:00",{"path":577,"words":574,"published":578,"date":156},"\u002Fposts\u002F2024\u002F2025-03-09-2024一些笔记概率论","2025-03-09 22:51:00",{"path":580,"words":581,"published":582,"date":156},"\u002Fposts\u002F2025\u002F2025-03-01-windows下释放docker占用的wsl空间",164,"2025-03-01 13:54:15",{"path":584,"words":585,"published":586,"date":156},"\u002Fposts\u002F2025\u002F2025-03-01-爬虫实战-爬取广州大学课程表",774,"2025-03-01 14:55:48",{"path":588,"words":530,"published":589,"date":156},"\u002Fposts\u002F2025\u002F2025-04-03-hexo集成gitalk的问题","2025-04-03 14:26:34",{"path":591,"words":592,"published":593,"date":156},"\u002Fposts\u002F2025\u002F2025-09-22-记一次配置obsidian配合hexo写博客",92,"2025-09-22 16:47:52",{"path":595,"words":596,"published":597,"date":156},"\u002Fposts\u002F2025\u002F2025-10-24-10-20课题",204,"2025-10-24 08:15:01",{"path":599,"words":600,"published":601,"date":156},"\u002Fposts\u002F2025\u002F2025-11-02-组会朝花夕拾",501,"2025-11-02 18:56:59",{"path":603,"words":604,"published":605,"date":156},"\u002Fposts\u002F2025\u002F2025-11-05-基于随机加权推断模型im的参数估计算法",481,"2025-11-05 20:51:41",{"path":607,"words":608,"published":609,"date":156},"\u002Fposts\u002F2025\u002F2025-11-09-关于软考高项网规",884,"2025-11-09 19:54:52",{"path":611,"words":612,"published":613,"date":156},"\u002Fposts\u002F2025\u002F2025-11-17-arch-linux运行appimage相关",365,"2025-11-17 09:59:59",{"path":615,"words":616,"published":617,"date":156},"\u002Fposts\u002F2025\u002F2025-11-19-相关概念",2058,"2025-11-19 11:06:20",{"path":619,"words":620,"published":621,"date":156},"\u002Fposts\u002F2025\u002F2025-11-21-web可视化实践canvas",6393,"2025-11-21 14:50:48",{"path":623,"words":624,"published":625,"date":156},"\u002Fposts\u002F2025\u002F2025-11-22-使用-github-actions-自动部署基于vite的项目到-github-pages",272,"2025-11-23 01:59:24",{"path":627,"words":628,"published":629,"date":156},"\u002Fposts\u002F2025\u002F2025-11-22-关于前端包管理器npmpnpmyarn和bun",4890,"2025-11-22 21:21:15",{"path":631,"words":632,"published":633,"date":156},"\u002Fposts\u002F2025\u002F2025-11-23-undo-redo-机制具体实现",7839,"2025-11-23 19:15:00",{"path":635,"words":636,"published":637,"date":156},"\u002Fposts\u002F2025\u002F2025-11-27-前端安全-关于xss与crsf",1866,"2025-11-28 02:05:25",{"path":639,"words":640,"published":641,"date":156},"\u002Fposts\u002F2025\u002F2025-12-05-现代协同-2d-画布编辑器pixijs-v8",4285,"2025-12-05 02:00:16",{"path":643,"words":644,"published":645,"date":156},"\u002Fposts\u002F2025\u002F2025-12-07-杂谈-课题组系统设计",3710,"2025-12-07 21:09:33",{"path":647,"words":648,"published":649,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-javascript中的数组方法与栈stack和队列queue的实现",474,"2025-11-29 16:58:15",{"path":651,"words":652,"published":653,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于javascript-实现哈希表",189,"2025-11-27 11:31:39",{"path":655,"words":656,"published":657,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于javascript的set方法",332,"2025-12-25 15:26:18",{"path":659,"words":660,"published":661,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于动态规划(背包问题为例)",1238,"2025-11-17 18:24:04",{"path":663,"words":664,"published":665,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于滑动窗口",712,"2025-11-20 15:04:40",{"path":667,"words":668,"published":669,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于链表(javascript)",500,"2025-11-25 13:00:48",{"path":671,"words":672,"published":673,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-面试算法acm模式构建构建输入输出模板",2051,"2025-12-25 23:09:45",{"path":675,"words":676,"published":677,"date":156},"\u002Fposts\u002F2025\u002F2025-12-26-javascript-数字数组字符串的处理",483,"2025-12-26 11:20:25",{"path":679,"words":680,"published":681,"date":156},"\u002Fposts\u002F2025\u002F2025-12-26-javascripttypescript-的顺序表链表实现",446,"2025-12-26 12:16:12",{"path":683,"words":684,"published":685,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-前端画布设计vol-1-实现基础yuan素渲染和状态控制",2136,"2025-12-28 01:23:08",{"path":687,"words":688,"published":689,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-前端画布设计vol-2-实现富文本编辑",1838,"2025-12-28 02:58:47",{"path":691,"words":692,"published":693,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-算法刷题-关于链表操作",2135,"2025-12-27 16:12:42",{"path":695,"words":696,"published":697,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-配置dnscrypt-proxy实现加密dns服务windows",1899,"2025-11-15 01:06:37",{"path":699,"words":700,"published":701,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-关于网络请求xhrajaxfetchaxios",7788,"2025-10-28 15:48:46",{"path":703,"words":704,"published":705,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-接口封装与请求规范axios为例",2373,"2025-12-29 01:01:18",{"path":707,"words":708,"published":709,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-身份验证管理-基于-jwt-token-的实现",2709,"2025-11-23 22:04:41",{"path":711,"words":712,"published":713,"date":156},"\u002Fposts\u002F2025\u002F2025-12-29-记canvas画布项目开发",6254,"2025-12-29 04:52:15",{"path":715,"words":716,"published":717,"date":156},"\u002Fposts\u002F2025\u002Fabout-site",116,"2025-03-31 16:44:24",{"path":719,"words":720,"published":721,"date":156},"\u002Fposts\u002F2025\u002F使用neo4j图数据科学库gds进行中心度分析",143,"2025-04-02 23:37:24",{"path":723,"words":724,"published":725,"date":156},"\u002Fposts\u002F2026\u002F2026-01-03-论文实训草稿",10445,"2026-01-03 14:10:49",{"path":727,"words":728,"published":729,"date":156},"\u002Fposts\u002F2026\u002F2026-01-06-人工智能导论",11461,"2026-01-07 03:25:49",{"path":731,"words":732,"published":733,"date":156},"\u002Fposts\u002F2026\u002F2026-01-07-机器学习相关算法",82,"2026-01-08 02:28:13",{"path":735,"words":736,"published":737,"date":156},"\u002Fposts\u002F2026\u002F2026-01-16-关于低复杂度最长链共识算法设计",4466,"2026-01-16 10:33:23",{"path":739,"words":740,"published":741,"date":156},"\u002Fposts\u002F2026\u002F2026-01-19-杂记2026-01-19",5754,"2026-01-20 01:03:26",{"path":743,"words":744,"published":745,"date":156},"\u002Fposts\u002F2026\u002F2026-01-22-github-action-自动同步博客到-github-主页",1069,"2026-01-22 16:31:47",{"path":747,"words":748,"published":749,"date":156},"\u002Fposts\u002F2026\u002F2026-03-01-windows-wsl安装docker",257,"2026-03-01 20:55:31",{"path":751,"words":752,"published":753,"date":156},"\u002Fposts\u002F2026\u002F2026-03-14-关于-msys2",701,"2026-03-15 03:05:04",{"path":755,"words":756,"published":757,"date":156},"\u002Fposts\u002F2026\u002F2026-03-28-团队项目协作规范随记",2419,"2026-03-29 05:33:50",{"path":759,"words":760,"published":761,"date":156},"\u002Fposts\u002F2026\u002F2026-03-29-oh-my-posh配置分享",104,"2026-03-29 16:34:43",{"path":763,"words":764,"published":765,"date":156},"\u002Fposts\u002F2026\u002F2026-06-13-从上下文工程到-agent-harness-engineering",8840,"2026-06-13 21:06:20",{"path":767,"words":768,"published":769,"date":156},"\u002Fposts\u002F2026\u002F2026-07-13-简谈前端基建质量标准与ai友好建设",3814,"2026-07-13 21:06:20",{"path":771,"words":772,"published":773,"date":156},"\u002Fposts\u002F2026\u002F2026-07-15-agentic-rag-系统实践",13357,"2026-07-15 21:06:20",{"path":775,"words":776,"published":777,"date":156},"\u002Fposts\u002F2026\u002F2026-07-18-简谈sdd规范驱动开发-copy",4476,"2026-07-18 11:06:20",{"path":779,"words":780,"published":781,"date":156},"\u002Fposts\u002F2026\u002F2026-07-20-个人neovim配置分享",366,"2026-07-22 13:46:50",{"path":783,"words":784,"published":785,"date":156},"\u002Fposts\u002F2026\u002F2026-07-20-关于技术写作-设计文档",6763,"2026-07-20 13:46:50",{"path":787,"words":788,"published":789,"date":156},"\u002Fposts\u002F2026\u002F2026-07-29-fastapi-工程实践随记",3417,"2026-07-29 04:58:34",{"path":791,"words":792,"published":793,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-06-19-rfc-liskin_code_agent",3563,"2026-06-19 15:18:20",{"path":795,"words":796,"published":797,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-07-25-rfc-glushkov_ogas",13461,"2026-07-28 23:46:50",{"path":799,"words":800,"published":793,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-08-03-adr-ogas-arkhiv",2698,{"path":802,"words":803,"published":804,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002Frag\u002F2026-08-12-arkhiv_rag-vol-1",4366,"2026-08-12 15:18:20",{"path":806,"words":807,"published":808,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-25-力扣百题速练javascripttypescriptvol-1",3108,"2025-12-25 13:57:08",{"path":810,"words":811,"published":812,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-26-力扣百题速练javascripttypescriptvol-2",3185,"2025-12-26 13:57:08",{"path":814,"words":815,"published":816,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-28-力扣百题速练javascripttypescriptvol-3",2533,"2025-12-29 02:15:44",{"path":818,"words":819,"published":820,"date":156},"\u002Fposts\u002Fleetcode\u002F2026-01-17-力扣百题速练javascripttypescriptvol-4",3024,"2026-01-17 22:53:01",{"path":822,"words":823,"published":824,"date":156},"\u002Fposts\u002Fleetcode\u002F2026-01-19-力扣百题速练javascripttypescriptvol-5",293,"2026-01-19 15:15:12",{"path":826,"words":827,"published":828,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算spark系统与scala语言",4320,"2026-07-06 14:10:49",{"path":830,"words":831,"published":832,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算分类与回归分析",2081,"2026-07-07 12:40:29",{"path":834,"words":835,"published":836,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算数值优化方法",2182,"2026-07-07 13:50:29",{"path":838,"words":839,"published":840,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算数据降维",1583,"2026-07-07 21:50:29",{"path":842,"words":843,"published":844,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算聚类分析",1882,"2026-07-07 16:50:29",{"path":846,"words":847,"published":848,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算随机模拟与统计推断",2433,"2026-07-06 22:40:29",{"path":850,"words":851,"published":852,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-14-数据可视化-基本图像",10011,"2026-06-14 20:18:20",{"path":854,"words":855,"published":856,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-14-数据可视化-概论",10030,"2026-06-14 15:18:20",{"path":858,"words":859,"published":860,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-15-数据可视化-可视化库",2032,"2026-06-15 20:18:20",{"path":862,"words":863,"published":864,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-图",5451,"2025-04-15 20:48:06",{"path":866,"words":867,"published":868,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-树",4211,"2025-04-30 02:19:06",{"path":870,"words":871,"published":872,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-队列",921,"2025-04-11 15:30:08",{"path":874,"words":875,"published":876,"date":156},"\u002Fposts\u002F数据结构\u002F关于数据结构的一些想法",456,"2025-04-04 19:13:49",{"path":878,"words":879,"published":880,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-栈",920,"2025-04-18 00:17:37",{"path":882,"words":883,"published":884,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-算法复杂度",2153,"2025-04-05 16:09:55",{"path":886,"words":887,"published":888,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-线性表链表",4572,"2025-04-06 00:24:40",{"path":890,"words":891,"published":892,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-线性表顺序表",4191,"2025-04-05 22:09:59",{"path":894,"words":895,"published":896,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-绪论",2881,"2025-04-05 11:31:22",{"path":898,"words":899,"published":156,"date":900},"\u002Fposts\u002F杂记\u002F2023-12-26-2023年12月26日",7,"2023-12-26 23:51:33",{"path":902,"words":899,"published":156,"date":903},"\u002Fposts\u002F杂记\u002F2024-01-01-2024团建","2024-01-01 01:51:27",{"path":905,"words":581,"published":156,"date":906},"\u002Fposts\u002F杂记\u002F2024-01-09-随记","2024-01-09 20:50:35",{"path":908,"words":909,"published":156,"date":910},"\u002Fposts\u002F杂记\u002F2024-03-12-花名",5275,"2024-03-12 16:04:23",{"path":912,"words":913,"published":156,"date":914},"\u002Fposts\u002F杂记\u002F2024-04-15-逆模因",1353,"2024-04-15 00:26:16",{"path":916,"words":917,"published":156,"date":918},"\u002Fposts\u002F杂记\u002F2024-05-03-艺作",27,"2024-05-03 00:01:00",{"path":920,"words":921,"published":156,"date":922},"\u002Fposts\u002F杂记\u002F2024-05-21-关于博客",1720,"2024-02-21 23:21:11",{"path":924,"words":925,"published":156,"date":926},"\u002Fposts\u002F杂记\u002F2024-06-20-dnvrc维克多崔专访-2023",2036,"2024-06-20 00:28:39",{"path":928,"words":760,"published":156,"date":929},"\u002Fposts\u002F杂记\u002F2024-06-25-6月25日随记","2024-06-25 12:46:36",{"path":931,"words":932,"published":156,"date":933},"\u002Fposts\u002F杂记\u002F2024-06-25-歌名-想見星星",148,"2024-06-25 22:47:59",{"path":935,"words":936,"published":156,"date":937},"\u002Fposts\u002F杂记\u002F2024-07-11-桂花岗",6,"2024-07-11 00:28:17",{"path":939,"words":940,"published":156,"date":941},"\u002Fposts\u002F杂记\u002F2024-07-15-rolling-bocci",9,"2024-07-15 21:25:56",{"path":943,"words":944,"published":156,"date":945},"\u002Fposts\u002F杂记\u002F2024-07-22-七月九日",34,"2024-07-09 17:54:23",{"path":947,"words":948,"published":156,"date":949},"\u002Fposts\u002F杂记\u002F2024-07-22-六月随记",1052,"2024-07-22 01:03:19",{"path":951,"words":952,"published":156,"date":953},"\u002Fposts\u002F杂记\u002F2024-07-22-石菖蒲",41,"2024-07-10 01:26:05",{"path":955,"words":514,"published":156,"date":956},"\u002Fposts\u002F杂记\u002F2024-07-23-新书","2024-07-23 01:05:49",{"path":958,"words":959,"published":156,"date":960},"\u002Fposts\u002F杂记\u002F2024-07-29-年前",74,"2024-07-29 23:59:07",{"path":962,"words":963,"published":156,"date":964},"\u002Fposts\u002F杂记\u002F2024-07-30-周边",138,"2024-07-30 02:03:23",{"path":966,"words":967,"published":156,"date":968},"\u002Fposts\u002F杂记\u002F2024-07-31-2024-7-31日",185,"2024-07-31 01:21:52",{"path":970,"words":971,"published":156,"date":972},"\u002Fposts\u002F杂记\u002F2024-08-02-八月",1710,"2024-08-30 00:31:02",{"path":974,"words":975,"published":156,"date":976},"\u002Fposts\u002F杂记\u002F2024-09-01-九月",1484,"2024-09-26 16:30:15",{"path":978,"words":979,"published":156,"date":980},"\u002Fposts\u002F杂记\u002F2024-09-08-2024年9月8日",97,"2024-09-08 13:59:36",{"path":982,"words":514,"published":156,"date":983},"\u002Fposts\u002F杂记\u002F2024-09-19-博客站的一周年","2024-09-18 23:36:24",{"path":985,"words":986,"published":156,"date":987},"\u002Fposts\u002F杂记\u002F2024-10-03-十月",1028,"2024-10-31 23:54:27",{"path":989,"words":990,"published":156,"date":991},"\u002Fposts\u002F杂记\u002F2024-11-04-十一月",2134,"2024-11-30 00:04:39",{"path":993,"words":994,"published":156,"date":995},"\u002Fposts\u002F杂记\u002F2024-11-10-gzhu-site-193",80,"2024-11-10 19:19:12",{"path":997,"words":998,"published":156,"date":999},"\u002Fposts\u002F杂记\u002F2024-12-01-十二月",455,"2024-12-30 23:13:47",{"path":1001,"words":1002,"published":156,"date":1003},"\u002Fposts\u002F杂记\u002F2024-12-21-年末",23,"2024-12-21 23:21:49",{"path":1005,"words":522,"published":156,"date":1006},"\u002Fposts\u002F杂记\u002F2025-01-30-一月","2025-01-30 23:44:41",{"path":1008,"words":1009,"published":156,"date":1010},"\u002Fposts\u002F杂记\u002F2025-03-01-二月",224,"2025-02-28 00:11:08",{"path":1012,"words":1013,"published":156,"date":1014},"\u002Fposts\u002F杂记\u002F2025-03-01-博客杂谈",344,"2025-03-01 16:03:18",{"path":1016,"words":1017,"published":156,"date":1018},"\u002Fposts\u002F杂记\u002F2025-03-05-三月",2090,"2025-03-05 19:17:28",{"path":1020,"words":1021,"published":156,"date":1022},"\u002Fposts\u002F杂记\u002F2025-07-10-七月",361,"2025-07-10 22:04:32",{"path":1024,"words":1025,"published":156,"date":1026},"\u002Fposts\u002F杂记\u002F2025-09-21-九月",781,"2025-09-21 20:53:37",{"path":1028,"words":1029,"published":156,"date":1030},"\u002Fposts\u002F杂记\u002F2025-10-09-十月",591,"2025-10-09 00:35:07",{"path":1032,"words":1033,"published":156,"date":1034},"\u002Fposts\u002F杂记\u002Fcontrol",13,"2023-09-25 13:03:59",{"path":1036,"words":1037,"published":156,"date":1038},"\u002Fposts\u002F杂记\u002Fquadim四叉树图像处理",1094,"2023-10-21 11:27:06",{"path":1040,"words":1041,"published":156,"date":1042},"\u002Fposts\u002F杂记\u002Fsuccess",24,"2023-09-22 15:59:07",{"path":1044,"words":1045,"published":156,"date":1046},"\u002Fposts\u002F杂记\u002F三光年",295,"2023-11-18 04:18:40",{"path":1048,"words":1049,"published":156,"date":1050},"\u002Fposts\u002F杂记\u002F加密测试",961,"2023-11-21 14:24:01",{"path":1052,"words":1053,"published":156,"date":1054},"\u002Fposts\u002F杂记\u002F啊啊啊啊啊啊啊",54,"2023-09-20 17:29:33",{"path":1056,"words":1057,"published":156,"date":1058},"\u002Fposts\u002F杂记\u002F杂谈",124,"2023-09-25 23:11:32",{"path":1060,"words":1061,"published":156,"date":1062},"\u002Fposts\u002F杂记\u002F艹",25,"2023-10-21 17:40:43",{"path":1064,"words":1065,"published":1066,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习卷积神经网络",3168,"2026-06-07 11:23:08",{"path":1068,"words":1069,"published":1070,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习循环神经网络",2348,"2026-06-07 11:33:08",{"path":1072,"words":1073,"published":1074,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习改进学习方法",3360,"2026-06-07 10:13:08",{"path":1076,"words":1077,"published":1078,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习深度生成模型",2727,"2026-06-07 11:43:08",{"path":1080,"words":1081,"published":1082,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习神经网络基础",3205,"2026-06-07 10:03:08",{"id":1084,"title":1085,"abbrlink":1086,"body":1087,"category":5,"cover":1992,"date":156,"description":1085,"extension":1993,"mathjax":1994,"meta":1995,"navigation":1994,"path":569,"published":571,"readingMinutes":936,"seo":2001,"stem":2002,"sticky":156,"swiper_index":156,"tags":2003,"updated":156,"words":570,"__hash__":2004},"posts\u002Fposts\u002F2024\u002F2024-11-04-创建一个网络包解码器分析DEVP2P协议.md","创建一个网络包解码器分析DEVP2P协议","20624",{"type":1088,"value":1089,"toc":1949},"minimark",[1090,1093,1098,1108,1111,1114,1120,1125,1128,1136,1149,1158,1163,1166,1169,1175,1189,1194,1197,1204,1209,1212,1217,1223,1230,1235,1242,1249,1254,1257,1262,1265,1270,1273,1283,1288,1291,1296,1299,1305,1310,1315,1320,1325,1330,1333,1338,1341,1346,1349,1354,1357,1362,1370,1374,1377,1382,1385,1390,1393,1398,1401,1406,1409,1414,1424,1429,1432,1437,1440,1445,1448,1453,1456,1461,1464,1467,1473,1477,1487,1490,1499,1502,1506,1514,1518,1526,1529,1533,1541,1544,1547,1553,1556,1564,1568,1571,1579,1582,1586,1589,1595,1598,1603,1606,1609,1615,1623,1631,1634,1636,1638,1641,1644,1693,1697,1700,1708,1712,1715,1721,1726,1735,1747,1752,1761,1765,1771,1775,1781,1785,1791,1795,1801,1806,1810,1815,1818,1824,1830,1833,1839,1844,1848,1854,1858,1864,1867,1870,1875,1879,1885,1889,1895,1900,1903,1907,1913,1916,1921,1924,1929,1933,1943,1946],[1091,1092],"hr",{},[1094,1095,1097],"h2",{"id":1096},"_1安装虚拟机软件","1.安装虚拟机软件",[1099,1100,1101,1102],"p",{},"VMware16下载地址：",[1103,1104,1105],"a",{"href":1105,"rel":1106},"https:\u002F\u002Fpan.baidu.com\u002Fs\u002F14tM3ApjTBXTA80aqmsbUnw?pwd=adc8",[1107],"nofollow",[1099,1109,1110],{},"激活码的话上网搜有很多",[1099,1112,1113],{},"安装好的界面是这样的：",[1099,1115,1116],{},[1117,1118],"img",{"alt":1117,"src":1119},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bf4753ce.png",[1121,1122,1124],"h3",{"id":1123},"ubuntu-下载","Ubuntu 下载",[1099,1126,1127],{},"两种方式：",[1129,1130,1132],"h4",{"id":1131},"_1官网下载",[1133,1134,1135],"strong",{},"（1）官网下载",[1099,1137,1138,1143,1144,1148],{},[1103,1139,1142],{"href":1140,"rel":1141},"https:\u002F\u002Fubuntu.com\u002Fdownload!%5Bimg",[1107],"https:\u002F\u002Fubuntu.com\u002Fdownload![img","](",[1103,1145,1146],{"href":1146,"rel":1147},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bf500222.png",[1107],")",[1099,1150,1151,1152,1157],{},"点击",[1103,1153,1156],{"href":1154,"rel":1155},"https:\u002F\u002Fubuntu.com\u002Fdownload\u002Fdesktop",[1107],"Ubuntu 24.04.1 LTS","即可开始下载",[1099,1159,1160],{},[1117,1161],{"alt":1117,"src":1162},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bf57d0b6.png",[1099,1164,1165],{},"最新版 Ubuntu 24.04.1 LTS 大小为 5.8 GB，由于官网是从国外服务器下载，速度比较慢。",[1099,1167,1168],{},"这里推荐另外一种下载方式：",[1129,1170,1172],{"id":1171},"_2清华镜像网站下载",[1133,1173,1174],{},"（2）清华镜像网站下载",[1099,1176,1177,1179,1184,1185],{},[1133,1178,1151],{},[1103,1180,1183],{"href":1181,"rel":1182},"https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fubuntu-releases\u002F24.04.1\u002F",[1107],"清华大学开源软件镜像站 - Ubuntu 24.04.1","页面中的",[1186,1187,1188],"code",{},"ubuntu-24.04.1-desktop-amd64.iso",[1099,1190,1191],{},[1117,1192],{"alt":1117,"src":1193},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bf5bd80e.png",[1121,1195,1196],{"id":1196},"创建虚拟机",[1099,1198,1199,1200,1203],{},"1、打开VMware Workstation软件，点击**\"创建新的虚拟机\"",[1133,1201,1202],{},"。（或者点击左上角","“文件 -> 新建虚拟机”**）",[1099,1205,1206],{},[1117,1207],{"alt":1117,"src":1208},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bf58d892.png",[1099,1210,1211],{},"2、进入导向窗口，选择**“自定义”**选项，进入下一步",[1099,1213,1214],{},[1117,1215],{"alt":1117,"src":1216},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288be87986b.png",[1099,1218,1219,1220],{},"3、点击",[1133,1221,1222],{},"下一步",[1099,1224,1225,1226,1229],{},"**注：**选项 ",[1133,1227,1228],{},"硬件兼容性（H）","，这里选择默认值即可，进入下一步（系统会显示与你的选择相兼容的VMware产品及版本的列表，以及你的选择所具有的限制和不可用的功能）",[1099,1231,1232],{},[1117,1233],{"alt":1117,"src":1234},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288be8d4c01.png",[1099,1236,1237,1238,1241],{},"4、选择**“安装程序光盘映像文件”",[1133,1239,1240],{},"，点击输入框旁边的","“浏览”**按钮。找到自己前边下载好的镜像，双击选择。",[1099,1243,1244,1245,1248],{},"如果能看到如图标注的小字**“已检测到Ubuntu 64 位 24.04.1”",[1133,1246,1247],{},"，说明安装包是对的，并且可以正常安装，这时点击","“下一步”**",[1099,1250,1251],{},[1117,1252],{"alt":1117,"src":1253},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288be89d5fe.png",[1099,1255,1256],{},"5、设置安装信息：全名和密码随便写，用户名只能用小写字母、数字和破折号，输入完毕后，点击**“下一步”**",[1099,1258,1259],{},[1117,1260],{"alt":1117,"src":1261},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288be9195b4.png",[1099,1263,1264],{},"6、虚拟机名称为“Ubuntu24.04.1_64 位”（这个根据个人习惯，随便写），虚拟机的路径自定义，根据自己的实际情况修改，它关系到硬盘空间的大小，建议选择可用空间比较大的盘符。点击**“下一步”**",[1099,1266,1267],{},[1117,1268],{"alt":1117,"src":1269},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288be88473f.png",[1099,1271,1272],{},"7、 设置处理器参数，选处理器数量和内核数量建议根据自身处理器情况来。这里处理器数量我设置为4，内核数量为2。点击**“下一步”**",[1099,1274,1275,1282],{},[1133,1276,1277,1278,1281],{},"注：",[1133,1279,1280],{},"每个处理器的内核数量","一定要","修改成 2。",[1099,1284,1285],{},[1117,1286],{"alt":1117,"src":1287},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288be9753b7.png",[1099,1289,1290],{},"8、 内存选择建议 4 GB，单击“下一步”。",[1099,1292,1293],{},[1117,1294],{"alt":1117,"src":1295},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288beabd902.png",[1099,1297,1298],{},"9、网络类型这里，使用网络地址转换(NAT)(E)",[1099,1300,1301,1302,1248],{},"10、SCSI 控制器类型选择推荐的**“LSI Logic”",[1133,1303,1304],{},"，点击",[1099,1306,1307],{},[1117,1308],{"alt":1117,"src":1309},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288beb00495.png",[1099,1311,1312,1313,1248],{},"11、虚拟磁盘类型选择推荐的**“SCSI”",[1133,1314,1304],{},[1099,1316,1317],{},[1117,1318],{"alt":1117,"src":1319},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bead5852.png",[1099,1321,1322,1323,1248],{},"12、选择**“新建虚拟磁盘”",[1133,1324,1304],{},[1099,1326,1327],{},[1117,1328],{"alt":1117,"src":1329},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bebdd50d.png",[1099,1331,1332],{},"13、设置磁盘容量，并选择“将虚拟磁盘拆分成多个文件”。（这里磁盘大小看个人需求，大于等于推荐的大小）容量默认是 20 GB，这里建议弄大一点，不然空间不够，单击**“下一步”**。",[1099,1334,1335],{},[1117,1336],{"alt":1117,"src":1337},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bed3b92d.png",[1099,1339,1340],{},"14、磁盘文件命名。（自行修改或默认命名）单击**“下一步”**。",[1099,1342,1343],{},[1117,1344],{"alt":1117,"src":1345},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bed03808.png",[1099,1347,1348],{},"15、到这一步虚拟机已经创建完成！可以直接点击“完成”，也可以点击“自定义硬件”，修改内存大小、处理器内核等设置。",[1099,1350,1351],{},[1117,1352],{"alt":1117,"src":1353},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bed5b568.png",[1099,1355,1356],{},"16、自定义硬件，可自行修改",[1099,1358,1359],{},[1117,1360],{"alt":1117,"src":1361},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bedef47a.png",[1099,1363,1364,1365,1369],{},"注意，到这一步只是把 Ubuntu 的虚拟机创建好了，并不是把 [Ubuntu 系统](",[1103,1366,1367],{"href":1367,"rel":1368},"https:\u002F\u002Fso.csdn.net\u002Fso\u002Fsearch?q=Ubuntu",[1107]," 系统&spm=1001.2101.3001.7020)安装了，正式的安装需要启动虚拟机。",[1121,1371,1373],{"id":1372},"五ubuntu-系统安装过程的配置","五、Ubuntu 系统安装过程的配置",[1099,1375,1376],{},"虚拟机创建好后，可以通过点击下图中两个按钮中的任意一个启动虚拟机",[1099,1378,1379],{},[1117,1380],{"alt":1117,"src":1381},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bee4e2d6.png",[1099,1383,1384],{},"启动虚拟机后出现如下界面，即可进入安装界面，由于博主英文水平有限，这里博主选择了中文（简体），各位英语大神们可以选择英文。",[1099,1386,1387],{},[1117,1388],{"alt":1117,"src":1389},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bee87bc0.png",[1099,1391,1392],{},"保持默认即可，点击**“下一步”**",[1099,1394,1395],{},[1117,1396],{"alt":1117,"src":1397},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bee8dec2.png",[1099,1399,1400],{},"这里我们选择交换安装（交互安装，系统会对我们进行引导安装），相信看到博主这篇文章的朋友应该对这部分知识也不是很懂，那我们就按照引导逐步安装吧~",[1099,1402,1403],{},[1117,1404],{"alt":1117,"src":1405},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bef79777.png",[1099,1407,1408],{},"保持默认选项，点击**“下一步”**",[1099,1410,1411],{},[1117,1412],{"alt":1117,"src":1413},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bef799b5.png",[1099,1415,1416,1417,1423],{},"注意这里，",[1418,1419,1420],"em",{},[1133,1421,1422],{},"*不用勾选*","，对于初学者来说，我们暂时用不到那么多内容",[1099,1425,1426],{},[1117,1427],{"alt":1117,"src":1428},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bf0019da.png",[1099,1430,1431],{},"选择安装方式，保持默认即可，点击**“下一步”**",[1099,1433,1434],{},[1117,1435],{"alt":1117,"src":1436},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288befb2a15.png",[1099,1438,1439],{},"设置账户信息",[1099,1441,1442],{},[1117,1443],{"alt":1117,"src":1444},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bf0ae372.png",[1099,1446,1447],{},"选择地区，时区选择**“shanghai”**",[1099,1449,1450],{},[1117,1451],{"alt":1117,"src":1452},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bf0ecf4c.png",[1099,1454,1455],{},"确认安装信息，点击**“安装”**",[1099,1457,1458],{},[1117,1459],{"alt":1117,"src":1460},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288bf208c90.png",[1099,1462,1463],{},"接下来就是等待安装完成后",[1099,1465,1466],{},"点击账号图标，输入密码，即可进入",[1099,1468,1469],{},[1117,1470],{"alt":1471,"src":1472},"","https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F6728904b5b249.png",[1094,1474,1476],{"id":1475},"_2安装docker","2.安装Docker",[1478,1479,1480,1484],"ul",{},[1481,1482,1483],"li",{},"Ubuntu 22.04",[1481,1485,1486],{},"linux内核版本 6.8（版本不低于3.10）",[1121,1488,1489],{"id":1489},"更新ubuntu",[1491,1492,1497],"pre",{"className":1493,"code":1495,"language":1496,"meta":1471},[1494],"language-crystal","$ sudo apt update\n\n\n\n$ sudo apt upgrade\n\n\n\n$ sudo apt full-upgrade\n","crystal",[1186,1498,1495],{"__ignoreMap":1471},[1121,1500,1501],{"id":1501},"添加docker库",[1129,1503,1505],{"id":1504},"_1-安装docker的必要依赖","1 安装docker的必要依赖",[1491,1507,1512],{"className":1508,"code":1510,"language":1511,"meta":1471},[1509],"language-sql","sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release\n","sql",[1186,1513,1510],{"__ignoreMap":1471},[1129,1515,1517],{"id":1516},"_2-添加docker-gpg密钥","2 添加docker GPG密钥",[1491,1519,1524],{"className":1520,"code":1522,"language":1523,"meta":1471},[1521],"language-cobol","curl -fsSL http:\u002F\u002Fmirrors.aliyun.com\u002Fdocker-ce\u002Flinux\u002Fubuntu\u002Fgpg | sudo apt-key add -\n","cobol",[1186,1525,1522],{"__ignoreMap":1471},[1099,1527,1528],{},"这里选择从阿里云上docker密钥添加，官方密钥存在网络问题，添加命令会不成功，成果了之后也下载不了docker。 这里会将密钥写入ubuntu密钥环中（\u002Fetc\u002Fapt\u002Ftrusted.list）",[1129,1530,1532],{"id":1531},"_3-添加docker仓库","3 添加docker仓库",[1491,1534,1539],{"className":1535,"code":1537,"language":1538,"meta":1471},[1536],"language-csharp","sudo add-apt-repository \"deb [arch=amd64] http:\u002F\u002Fmirrors.aliyun.com\u002Fdocker-ce\u002Flinux\u002Fubuntu $(lsb_release -cs) stable\"\n","csharp",[1186,1540,1537],{"__ignoreMap":1471},[1099,1542,1543],{},"这里也是选择阿里的镜像源。",[1121,1545,1546],{"id":1546},"更新apt",[1491,1548,1551],{"className":1549,"code":1550,"language":1511,"meta":1471},[1509],"sudo apt update\n",[1186,1552,1550],{"__ignoreMap":1471},[1121,1554,1555],{"id":1555},"安装docker",[1491,1557,1562],{"className":1558,"code":1560,"language":1561,"meta":1471},[1559],"language-lua"," sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin\n","lua",[1186,1563,1560],{"__ignoreMap":1471},[1121,1565,1567],{"id":1566},"验证docker安装","验证Docker安装",[1099,1569,1570],{},"使用以下命令验证Docker是否安装成功：",[1491,1572,1577],{"className":1573,"code":1575,"language":1576,"meta":1471},[1574],"language-bash","sudo docker --version\n","bash",[1186,1578,1575],{"__ignoreMap":1471},[1099,1580,1581],{},"你应该会看到Docker的版本信息。",[1129,1583,1585],{"id":1584},"运行docker-hello-world容器","运行Docker Hello World容器",[1099,1587,1588],{},"运行一个简单的Hello World容器以确保Docker正常工作：",[1491,1590,1593],{"className":1591,"code":1592,"language":1576,"meta":1471},[1574],"sudo docker run hello-world\n",[1186,1594,1592],{"__ignoreMap":1471},[1099,1596,1597],{},"正常情况下，会看到Docker成功下载Hello World镜像并运行的输出",[1099,1599,1600],{},[1117,1601],{"alt":1471,"src":1602},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F67288fa1ceabe.png",[1099,1604,1605],{},"拉镜像大概率会出错，因为从官网上拉取存在网络问题（搞不懂墙这个干啥",[1099,1607,1608],{},"修改“\u002Fetc\u002Fdocker\u002Fdaemon.json”文件（如果没有，可以手动创建），在该文件内添加如下内容：",[1491,1610,1613],{"className":1611,"code":1612,"language":1576,"meta":1471},[1574],"#使用vim打开daemon.json文件\nsudo vim \u002Fetc\u002Fdocker\u002Fdaemon.json\n#向文件中添加如下内容\n{\n    \"registry-mirrors\": [ \"https:\u002F\u002F你的地址.mirror.swr.myhuaweicloud.com\" ]\n}\n\n按“Esc”，输入:wq保存并退出。\n",[1186,1614,1612],{"__ignoreMap":1471},[1099,1616,1617,1618,1622],{},"目前各大镜像站都挂掉很多了，我目前在用的镜像站为\"",[1103,1619,1620],{"href":1620,"rel":1621},"https:\u002F\u002Fdockerpull.org",[1107],"\"",[1099,1624,1625,1626],{},"附件：",[1103,1627,1630],{"href":1628,"rel":1629},"https:\u002F\u002Fwww.coderjia.cn\u002Farchives\u002Fdba3f94c-a021-468a-8ac6-e840f85867ea",[1107],"目前国内可用Docker镜像源汇总（截至2024年11月） - CoderJia",[1099,1632,1633],{},"重启docker测试拉取是否成功",[1091,1635],{},[1091,1637],{},[1094,1639,1640],{"id":1640},"项目实现",[1099,1642,1643],{},"相关资料",[1478,1645,1646,1657,1666,1675,1684],{},[1481,1647,1648,1651,1652],{},[1133,1649,1650],{},"Lua-devp2p-wireshark-dissector",": ",[1103,1653,1656],{"href":1654,"rel":1655},"https:\u002F\u002Fgithub.com\u002Fjmkemp20\u002Flua-devp2p-wireshark-dissector",[1107],"GitHub链接",[1481,1658,1659,1651,1662],{},[1133,1660,1661],{},"PYDEVP2P",[1103,1663,1656],{"href":1664,"rel":1665},"https:\u002F\u002Fgithub.com\u002Fjmkemp20\u002Fpydevp2p",[1107],[1481,1667,1668,1651,1671],{},[1133,1669,1670],{},"Lunatic-Python",[1103,1672,1656],{"href":1673,"rel":1674},"https:\u002F\u002Fgithub.com\u002Fjmkemp20\u002Flunatic-python",[1107],[1481,1676,1677,1651,1680],{},[1133,1678,1679],{},"Go-Ethereum",[1103,1681,1656],{"href":1682,"rel":1683},"https:\u002F\u002Fgithub.com\u002Fjmkemp20\u002Fgo-ethereum",[1107],[1481,1685,1686,1651,1689],{},[1133,1687,1688],{},"GETH-Docker",[1103,1690,1656],{"href":1691,"rel":1692},"https:\u002F\u002Fgithub.com\u002Fjmkemp20\u002Fgeth-docker",[1107],[1129,1694,1696],{"id":1695},"_1-安装wireshark和特定版本的lua","1 安装Wireshark和特定版本的LUA",[1099,1698,1699],{},"linux的python版本要为3.10",[1491,1701,1706],{"className":1702,"code":1704,"language":1705},[1703],"language-text","sudo apt-get update && sudo apt-get upgrade\nsudo apt-get install lua5.2 liblua5.2-dev wireshark python3.10\n","text",[1186,1707,1704],{"__ignoreMap":1471},[1129,1709,1711],{"id":1710},"_2-更改权限并复制lunatic-python-lua-python桥接二进制文件","2 更改权限并复制Lunatic Python LUA ⇔ Python桥接二进制文件",[1099,1713,1714],{},"python.so为文章最开始编译得来的",[1491,1716,1719],{"className":1717,"code":1718,"language":1705},[1703],"sudo chmod +x python.so\ncp python.so \u002Fusr\u002Flocal\u002Flib\u002Flua\u002F5.2\u002F\n",[1186,1720,1718],{"__ignoreMap":1471},[1099,1722,1723],{},[1133,1724,1725],{},"关于python.so是从哪来的：",[1099,1727,1728,1731,1734],{},[1133,1729,1730],{},"python在linux编译后的文件为.so",[1133,1732,1733],{},"这个由编译Lunatic-Python得到","\n不会编译的可以找我要我编译好的（",[1099,1736,1737,1738,1742,1743],{},"link python.so, ",[1103,1739,1740],{"href":1740,"rel":1741},"https:\u002F\u002Fshort-link.me\u002FOIk7",[1107],", ",[1103,1744,1745],{"href":1745,"rel":1746},"https:\u002F\u002Fpic3.zhimg.com\u002F80\u002Fv2-58b297e0356a934ce8595de873e5b70e_720w.webp",[1107],[1099,1748,1749],{},[1133,1750,1751],{},"要自己编译的话见项目文档Lunatic-Python",[1099,1753,1737,1754,1742,1757],{},[1103,1755,1673],{"href":1673,"rel":1756},[1107],[1103,1758,1759],{"href":1759,"rel":1760},"https:\u002F\u002Fpic1.zhimg.com\u002F80\u002Fv2-593dd0a3b84d023b3827b97e81e0242a_720w.webp",[1107],[1129,1762,1764],{"id":1763},"_3-克隆lua解码器和pydevp2p项目","3 克隆LUA解码器和PYDEVP2P项目",[1491,1766,1769],{"className":1767,"code":1768,"language":1705},[1703],"git clone https:\u002F\u002Fgithub.com\u002Fjmkemp20\u002Flua-devp2p-wireshark-dissector.git\ngit clone https:\u002F\u002Fgithub.com\u002Fjmkemp20\u002Fpydevp2p.git\n",[1186,1770,1768],{"__ignoreMap":1471},[1129,1772,1774],{"id":1773},"_4-安装pydevp2p-pip包","4 安装PYDEVP2P PIP包",[1491,1776,1779],{"className":1777,"code":1778,"language":1705},[1703],"cd pydevp2p\npip install -e .\nsudo pip install -e .\n",[1186,1780,1778],{"__ignoreMap":1471},[1129,1782,1784],{"id":1783},"_5-创建wireshark插件目录本地用户和root","5 创建Wireshark插件目录（本地用户和root）",[1491,1786,1789],{"className":1787,"code":1788,"language":1705},[1703],"mkdir -p ~\u002F.local\u002Flib\u002Fwireshark\u002Fplugins\nsudo mkdir -p \u002Fusr\u002Flocal\u002Flib\u002Fwireshark\u002Fplugins\n",[1186,1790,1788],{"__ignoreMap":1471},[1129,1792,1794],{"id":1793},"_6-符号链接或复制lua解码器文件到wireshark插件目录","6 符号链接或复制.lua解码器文件到Wireshark插件目录",[1491,1796,1799],{"className":1797,"code":1798,"language":1705},[1703],"ln -s \u003Clocation of cloned dissector>\u002Frlpx.lua ~\u002F.local\u002Flib\u002Fwireshark\u002Fplugins\u002Frlpx.lua\nln -s \u003Clocation of cloned dissector>\u002Fdiscovery.lua ~\u002F.local\u002Flib\u002Fwireshark\u002Fplugins\u002Fdiscovery.lua\nsudo ln -s \u003Clocation of cloned dissector>\u002Frlpx.lua \u002Fusr\u002Flocal\u002Flib\u002Fwireshark\u002Fplugins\u002Frlpx.lua\nsudo ln -s \u003Clocation of cloned dissector>\u002Fdiscovery.lua \u002Fusr\u002Flocal\u002Flib\u002Fwireshark\u002Fplugins\u002Fdiscovery.lua\n",[1186,1800,1798],{"__ignoreMap":1471},[1099,1802,1803],{},[1133,1804,1805],{},"其实可以直接复制这些.lua文件到wireshark插件目录下",[1129,1807,1809],{"id":1808},"_7-live-geth-docker-startup","7 Live GETH Docker Startup",[1811,1812,1814],"h5",{"id":1813},"step-1-确保docker和docker-compose已安装并正在运行","Step 1) 确保Docker和Docker Compose已安装并正在运行",[1099,1816,1817],{},"检查Docker版本：",[1491,1819,1822],{"className":1820,"code":1821,"language":1705},[1703],"docker --version\n",[1186,1823,1821],{"__ignoreMap":1471},[1099,1825,1826],{},[1117,1827],{"alt":1828,"src":1829},"pic","https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F10\u002F14\u002F670d2fbc87f5d.png",[1099,1831,1832],{},"检查Docker Compose版本：",[1491,1834,1837],{"className":1835,"code":1836,"language":1705},[1703],"docker-compose --version\n",[1186,1838,1836],{"__ignoreMap":1471},[1099,1840,1841],{},[1117,1842],{"alt":1828,"src":1843},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F10\u002F14\u002F670d2fbf0229a.png",[1811,1845,1847],{"id":1846},"step-2-克隆geth-docker存储库","Step 2) 克隆GETH-Docker存储库",[1491,1849,1852],{"className":1850,"code":1851,"language":1705},[1703],"git clone https:\u002F\u002Fgithub.com\u002Fjmkemp20\u002Fgeth-docker.git\ncd geth-docker\n",[1186,1853,1851],{"__ignoreMap":1471},[1811,1855,1857],{"id":1856},"step-3-构建自定义docker镜像","Step 3) 构建自定义docker镜像",[1491,1859,1862],{"className":1860,"code":1861,"language":1705},[1703],".\u002Fbuild-dockers.sh\n",[1186,1863,1861],{"__ignoreMap":1471},[1099,1865,1866],{},"在这一步会遇到go语言依赖无法拉取的情况",[1099,1868,1869],{},"解决方法是在dockerfile.manual的第10行中添加go代理如下：",[1099,1871,1872],{},[1117,1873],{"alt":1471,"src":1874},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F6728953f00b18.png",[1811,1876,1878],{"id":1877},"step-4-启动路由器容器","Step 4) 启动路由器容器",[1491,1880,1883],{"className":1881,"code":1882,"language":1705},[1703],"docker-compose up -d bridge-router\n",[1186,1884,1882],{"__ignoreMap":1471},[1811,1886,1888],{"id":1887},"step-5-打开wireshark并连接到网络接口","Step 5) 打开Wireshark并连接到网络接口",[1491,1890,1893],{"className":1891,"code":1892,"language":1705},[1703],"sudo wireshark\n",[1186,1894,1892],{"__ignoreMap":1471},[1099,1896,1897],{},[1117,1898],{"alt":1471,"src":1899},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F672895d2d39af.png",[1099,1901,1902],{},"会有几个br网桥，进入10.1.X.X网络",[1811,1904,1906],{"id":1905},"step-6-依次启动每个geth节点客户端容器","Step 6) 依次启动每个GETH节点\u002F客户端容器",[1491,1908,1911],{"className":1909,"code":1910,"language":1705},[1703],"docker-compose up -d geth-ubuntu-bootnode\ndocker-compose up -d geth-client-1\ndocker-compose up -d geth-client-2\ndocker-compose up -d geth-client-3\n",[1186,1912,1910],{"__ignoreMap":1471},[1099,1914,1915],{},"运行结果如下：",[1099,1917,1918],{},[1117,1919],{"alt":1471,"src":1920},"https:\u002F\u002Ffree-img.400040.xyz\u002F4\u002F2024\u002F11\u002F04\u002F672895d87b618.png",[1099,1922,1923],{},"开始捕获rlpx和devP2P网络",[1099,1925,1926],{},[1927,1928],"br",{},[1930,1931,1932],"center",{},"本文档历史版本",[1099,1934,1935,1936,1742,1940],{},"link 本文档历史版本, ",[1103,1937,1938],{"href":1938,"rel":1939},"https:\u002F\u002Fzhongye1.github.io\u002Fposts\u002Fcc887582.html",[1107],[1103,1941,1759],{"href":1759,"rel":1942},[1107],[1930,1944,1945],{},"附注：使用wsl构建不可行",[1099,1947,1948],{},"er>",{"title":1471,"searchDepth":1950,"depth":1950,"links":1951},4,[1952,1962,1975],{"id":1096,"depth":1953,"text":1097,"children":1954},2,[1955,1960,1961],{"id":1123,"depth":1956,"text":1124,"children":1957},3,[1958,1959],{"id":1131,"depth":1950,"text":1135},{"id":1171,"depth":1950,"text":1174},{"id":1196,"depth":1956,"text":1196},{"id":1372,"depth":1956,"text":1373},{"id":1475,"depth":1953,"text":1476,"children":1963},[1964,1965,1970,1971,1972],{"id":1489,"depth":1956,"text":1489},{"id":1501,"depth":1956,"text":1501,"children":1966},[1967,1968,1969],{"id":1504,"depth":1950,"text":1505},{"id":1516,"depth":1950,"text":1517},{"id":1531,"depth":1950,"text":1532},{"id":1546,"depth":1956,"text":1546},{"id":1555,"depth":1956,"text":1555},{"id":1566,"depth":1956,"text":1567,"children":1973},[1974],{"id":1584,"depth":1950,"text":1585},{"id":1640,"depth":1953,"text":1640,"children":1976},[1977,1978,1979,1980,1981,1982,1983],{"id":1695,"depth":1950,"text":1696},{"id":1710,"depth":1950,"text":1711},{"id":1763,"depth":1950,"text":1764},{"id":1773,"depth":1950,"text":1774},{"id":1783,"depth":1950,"text":1784},{"id":1793,"depth":1950,"text":1794},{"id":1808,"depth":1950,"text":1809,"children":1984},[1985,1987,1988,1989,1990,1991],{"id":1813,"depth":1986,"text":1814},5,{"id":1846,"depth":1986,"text":1847},{"id":1856,"depth":1986,"text":1857},{"id":1877,"depth":1986,"text":1878},{"id":1887,"depth":1986,"text":1888},{"id":1905,"depth":1986,"text":1906},"https:\u002F\u002Fpica.zhimg.com\u002F80\u002Fv2-e8cfe5272808d7d34394ac62edb904f0_720w.webp","md",true,{"uuid":1996,"password":1997,"abstract":1998,"message":1998,"wrong_pass_message":1999,"slots":2000},"093daead-1054-11f0-9848-0b39a1ee406d","zhongye","联系站长以查看密码","如果是项目组成员，请联系站长。WXID:Zhong_ye1",{},{"title":1085,"description":1085},"posts\u002F2024\u002F2024-11-04-创建一个网络包解码器分析DEVP2P协议",[73,74,78,79],"X8J8aV6DvPqdCLz8DLQqf2oXI6VQD0hVS0S1g1xXgBs",1790443289258]