[{"data":1,"prerenderedAt":10430},["Reactive",2],{"article-navigation":3},[4,29,1298,1534,1633,4954,5794,6148,6198,6443,8146,9035,9734],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":6,"title":8,"description":6,"layout":9,"head":10,"body":12,"_type":24,"_id":25,"_source":26,"_file":27,"_extension":28},"/articles","",false,"所有记录","page",{"title":11},"所有记录 · 雀雀博客",{"type":13,"children":14,"toc":21},"root",[15],{"type":16,"tag":17,"props":18,"children":20},"element","articles-list",{"path":19},"articles",[],{"title":6,"searchDepth":22,"depth":22,"links":23},2,[],"markdown","content:2.articles.md","content","2.articles.md","md",{"_path":30,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":31,"description":31,"cover":32,"date":33,"category":34,"layout":35,"body":36,"_type":24,"_id":1296,"_source":26,"_file":1297,"_extension":28},"/articles/01-allinoneplan","All In One 方案变更","https://img.mxai.eu.cc/imgs/cover_1776321104590_1776321104.jpg","2024-09-23T00:00:00.000Z","HOMELAB","article",{"type":13,"children":37,"toc":1286},[38,45,70,76,81,107,112,119,143,149,162,168,191,196,205,210,218,354,362,476,484,603,611,758,766,861,869,874,937,942,1112,1120,1225,1231,1245,1251,1280],{"type":16,"tag":39,"props":40,"children":42},"h1",{"id":41},"all-in-one-方案变更",[43],{"type":44,"value":31},"text",{"type":16,"tag":46,"props":47,"children":48},"ul",{},[49,55,60,65],{"type":16,"tag":50,"props":51,"children":52},"li",{},[53],{"type":44,"value":54},"群晖引导 100.raw (考虑转换后直接用，通过增加硬盘后迁移盘数据，存储池切换)",{"type":16,"tag":50,"props":56,"children":57},{},[58],{"type":44,"value":59},"Centos 101.raw (考虑导出文件重新部署，能在宿主机搞定的直接宿主机)",{"type":16,"tag":50,"props":61,"children":62},{},[63],{"type":44,"value":64},"IStoreOS 102.raw （不重要，最后处理，最好转换直接用，看看能不能下掉这个方案）",{"type":16,"tag":50,"props":66,"children":67},{},[68],{"type":44,"value":69},"Windows 103.raw （提取文件，直接不要了）",{"type":16,"tag":71,"props":72,"children":74},"h2",{"id":73},"迁移镜像准备",[75],{"type":44,"value":73},{"type":16,"tag":71,"props":77,"children":79},{"id":78},"迁移技术支持内容",[80],{"type":44,"value":78},{"type":16,"tag":46,"props":82,"children":83},{},[84,96],{"type":16,"tag":50,"props":85,"children":86},{},[87,89],{"type":44,"value":88},"PVE重新挂载磁盘解决只读问题 ",{"type":16,"tag":90,"props":91,"children":93},"code",{"className":92},[],[94],{"type":44,"value":95},"mount -o remount rw /",{"type":16,"tag":50,"props":97,"children":98},{},[99,101],{"type":44,"value":100},"PVE挂载移动硬盘 ",{"type":16,"tag":90,"props":102,"children":104},{"className":103},[],[105],{"type":44,"value":106},"mount /dev/sdc1 /opt/onvme",{"type":16,"tag":71,"props":108,"children":110},{"id":109},"迁移文件存放地",[111],{"type":44,"value":109},{"type":16,"tag":113,"props":114,"children":116},"h3",{"id":115},"_100-群晖-迁移备份内容",[117],{"type":44,"value":118},"100-群晖-迁移备份内容",{"type":16,"tag":46,"props":120,"children":121},{},[122,133,138],{"type":16,"tag":50,"props":123,"children":124},{},[125,127],{"type":44,"value":126},"备份100.raw ",{"type":16,"tag":90,"props":128,"children":130},{"className":129},[],[131],{"type":44,"value":132},"cp -R /var/lib/pve/local-btrfs/images/100 /opt/onvme",{"type":16,"tag":50,"props":134,"children":135},{},[136],{"type":44,"value":137},"保留现有两块机械数据硬盘",{"type":16,"tag":50,"props":139,"children":140},{},[141],{"type":44,"value":142},"增加两块新的机械硬盘",{"type":16,"tag":144,"props":145,"children":146},"p",{},[147],{"type":44,"value":148},"新方案",{"type":16,"tag":46,"props":150,"children":151},{},[152,157],{"type":16,"tag":50,"props":153,"children":154},{},[155],{"type":44,"value":156},"使用Hyper-V部署SA6400",{"type":16,"tag":50,"props":158,"children":159},{},[160],{"type":44,"value":161},"Windows命令直通PCIE转SATA卡 参考",{"type":16,"tag":113,"props":163,"children":165},{"id":164},"_101-centos-迁移备份内容",[166],{"type":44,"value":167},"101-Centos-迁移备份内容",{"type":16,"tag":46,"props":169,"children":170},{},[171,176,181,186],{"type":16,"tag":50,"props":172,"children":173},{},[174],{"type":44,"value":175},"不再备份整个虚拟机的镜像",{"type":16,"tag":50,"props":177,"children":178},{},[179],{"type":44,"value":180},"备份整个 /opt 目录下的内容",{"type":16,"tag":50,"props":182,"children":183},{},[184],{"type":44,"value":185},"备份Docker容器相关",{"type":16,"tag":50,"props":187,"children":188},{},[189],{"type":44,"value":190},"备份nginx配置",{"type":16,"tag":144,"props":192,"children":193},{},[194],{"type":44,"value":195},"镜像下载",{"type":16,"tag":197,"props":198,"children":200},"pre",{"code":199},"docker pull whyour/qinglong:latest\ndocker pull dushixiang/next-terminal:latest\ndocker pull dushixiang/guacd:latest\ndocker pull xhofe/alist\n",[201],{"type":16,"tag":90,"props":202,"children":203},{"__ignoreMap":6},[204],{"type":44,"value":199},{"type":16,"tag":144,"props":206,"children":207},{},[208],{"type":44,"value":209},"Docker 容器列表",{"type":16,"tag":46,"props":211,"children":212},{},[213],{"type":16,"tag":50,"props":214,"children":215},{},[216],{"type":44,"value":217},"mysql:latest",{"type":16,"tag":197,"props":219,"children":223},{"code":220,"language":221,"meta":6,"className":222,"style":6},"docker run \\\n --name mysql \\\n -p 3306:3306 \\\n -v /opt/mysql_data/:/var/lib/mysql \\\n --restart=always \\\n -e MYSQL_ROOT_PASSWORD=witque666 \\\n -d mysql\n","bash","language-bash shiki shiki-themes github-light github-dark",[224],{"type":16,"tag":90,"props":225,"children":226},{"__ignoreMap":6},[227,251,268,291,309,322,340],{"type":16,"tag":228,"props":229,"children":232},"span",{"class":230,"line":231},"line",1,[233,239,245],{"type":16,"tag":228,"props":234,"children":236},{"style":235},"--shiki-default:#6F42C1;--shiki-dark:#B392F0",[237],{"type":44,"value":238},"docker",{"type":16,"tag":228,"props":240,"children":242},{"style":241},"--shiki-default:#032F62;--shiki-dark:#9ECBFF",[243],{"type":44,"value":244}," run",{"type":16,"tag":228,"props":246,"children":248},{"style":247},"--shiki-default:#005CC5;--shiki-dark:#79B8FF",[249],{"type":44,"value":250}," \\\n",{"type":16,"tag":228,"props":252,"children":253},{"class":230,"line":22},[254,259,264],{"type":16,"tag":228,"props":255,"children":256},{"style":247},[257],{"type":44,"value":258}," --name",{"type":16,"tag":228,"props":260,"children":261},{"style":241},[262],{"type":44,"value":263}," mysql",{"type":16,"tag":228,"props":265,"children":266},{"style":247},[267],{"type":44,"value":250},{"type":16,"tag":228,"props":269,"children":271},{"class":230,"line":270},3,[272,277,282,287],{"type":16,"tag":228,"props":273,"children":274},{"style":247},[275],{"type":44,"value":276}," -p",{"type":16,"tag":228,"props":278,"children":279},{"style":247},[280],{"type":44,"value":281}," 3306",{"type":16,"tag":228,"props":283,"children":284},{"style":241},[285],{"type":44,"value":286},":3306",{"type":16,"tag":228,"props":288,"children":289},{"style":247},[290],{"type":44,"value":250},{"type":16,"tag":228,"props":292,"children":294},{"class":230,"line":293},4,[295,300,305],{"type":16,"tag":228,"props":296,"children":297},{"style":247},[298],{"type":44,"value":299}," -v",{"type":16,"tag":228,"props":301,"children":302},{"style":241},[303],{"type":44,"value":304}," /opt/mysql_data/:/var/lib/mysql",{"type":16,"tag":228,"props":306,"children":307},{"style":247},[308],{"type":44,"value":250},{"type":16,"tag":228,"props":310,"children":312},{"class":230,"line":311},5,[313,318],{"type":16,"tag":228,"props":314,"children":315},{"style":247},[316],{"type":44,"value":317}," --restart=always",{"type":16,"tag":228,"props":319,"children":320},{"style":247},[321],{"type":44,"value":250},{"type":16,"tag":228,"props":323,"children":325},{"class":230,"line":324},6,[326,331,336],{"type":16,"tag":228,"props":327,"children":328},{"style":247},[329],{"type":44,"value":330}," -e",{"type":16,"tag":228,"props":332,"children":333},{"style":241},[334],{"type":44,"value":335}," MYSQL_ROOT_PASSWORD=witque666",{"type":16,"tag":228,"props":337,"children":338},{"style":247},[339],{"type":44,"value":250},{"type":16,"tag":228,"props":341,"children":343},{"class":230,"line":342},7,[344,349],{"type":16,"tag":228,"props":345,"children":346},{"style":247},[347],{"type":44,"value":348}," -d",{"type":16,"tag":228,"props":350,"children":351},{"style":241},[352],{"type":44,"value":353}," mysql\n",{"type":16,"tag":46,"props":355,"children":356},{},[357],{"type":16,"tag":50,"props":358,"children":359},{},[360],{"type":44,"value":361},"postgres:latest",{"type":16,"tag":197,"props":363,"children":365},{"code":364,"language":221,"meta":6,"className":222,"style":6},"docker run -d \\\n --name postgres \\\n --restart=always \\\n -p 5432:5432 \\\n -e POSTGRES_PASSWORD=Witque666.. \\\n -v /opt/postgres:/var/lib/postgresql/data \\\n postgres\n",[366],{"type":16,"tag":90,"props":367,"children":368},{"__ignoreMap":6},[369,388,404,415,436,452,468],{"type":16,"tag":228,"props":370,"children":371},{"class":230,"line":231},[372,376,380,384],{"type":16,"tag":228,"props":373,"children":374},{"style":235},[375],{"type":44,"value":238},{"type":16,"tag":228,"props":377,"children":378},{"style":241},[379],{"type":44,"value":244},{"type":16,"tag":228,"props":381,"children":382},{"style":247},[383],{"type":44,"value":348},{"type":16,"tag":228,"props":385,"children":386},{"style":247},[387],{"type":44,"value":250},{"type":16,"tag":228,"props":389,"children":390},{"class":230,"line":22},[391,395,400],{"type":16,"tag":228,"props":392,"children":393},{"style":247},[394],{"type":44,"value":258},{"type":16,"tag":228,"props":396,"children":397},{"style":241},[398],{"type":44,"value":399}," postgres",{"type":16,"tag":228,"props":401,"children":402},{"style":247},[403],{"type":44,"value":250},{"type":16,"tag":228,"props":405,"children":406},{"class":230,"line":270},[407,411],{"type":16,"tag":228,"props":408,"children":409},{"style":247},[410],{"type":44,"value":317},{"type":16,"tag":228,"props":412,"children":413},{"style":247},[414],{"type":44,"value":250},{"type":16,"tag":228,"props":416,"children":417},{"class":230,"line":293},[418,422,427,432],{"type":16,"tag":228,"props":419,"children":420},{"style":247},[421],{"type":44,"value":276},{"type":16,"tag":228,"props":423,"children":424},{"style":247},[425],{"type":44,"value":426}," 5432",{"type":16,"tag":228,"props":428,"children":429},{"style":241},[430],{"type":44,"value":431},":5432",{"type":16,"tag":228,"props":433,"children":434},{"style":247},[435],{"type":44,"value":250},{"type":16,"tag":228,"props":437,"children":438},{"class":230,"line":311},[439,443,448],{"type":16,"tag":228,"props":440,"children":441},{"style":247},[442],{"type":44,"value":330},{"type":16,"tag":228,"props":444,"children":445},{"style":241},[446],{"type":44,"value":447}," POSTGRES_PASSWORD=Witque666..",{"type":16,"tag":228,"props":449,"children":450},{"style":247},[451],{"type":44,"value":250},{"type":16,"tag":228,"props":453,"children":454},{"class":230,"line":324},[455,459,464],{"type":16,"tag":228,"props":456,"children":457},{"style":247},[458],{"type":44,"value":299},{"type":16,"tag":228,"props":460,"children":461},{"style":241},[462],{"type":44,"value":463}," /opt/postgres:/var/lib/postgresql/data",{"type":16,"tag":228,"props":465,"children":466},{"style":247},[467],{"type":44,"value":250},{"type":16,"tag":228,"props":469,"children":470},{"class":230,"line":342},[471],{"type":16,"tag":228,"props":472,"children":473},{"style":241},[474],{"type":44,"value":475}," postgres\n",{"type":16,"tag":46,"props":477,"children":478},{},[479],{"type":16,"tag":50,"props":480,"children":481},{},[482],{"type":44,"value":483},"neosmemo/memos:latest v0.21.0",{"type":16,"tag":197,"props":485,"children":487},{"code":486,"language":221,"meta":6,"className":222,"style":6},"docker run -d \\\n --name memos \\\n --restart=always \\\n --publish 5230:5230 \\\n --volume /opt/memos:/var/opt/memos \\\n neosmemo/memos:latest --driver postgres --dsn 'postgresql://postgres:Witque666..@172.17.0.1:5432/memos?sslmode=disable'\n",[488],{"type":16,"tag":90,"props":489,"children":490},{"__ignoreMap":6},[491,510,526,537,559,576],{"type":16,"tag":228,"props":492,"children":493},{"class":230,"line":231},[494,498,502,506],{"type":16,"tag":228,"props":495,"children":496},{"style":235},[497],{"type":44,"value":238},{"type":16,"tag":228,"props":499,"children":500},{"style":241},[501],{"type":44,"value":244},{"type":16,"tag":228,"props":503,"children":504},{"style":247},[505],{"type":44,"value":348},{"type":16,"tag":228,"props":507,"children":508},{"style":247},[509],{"type":44,"value":250},{"type":16,"tag":228,"props":511,"children":512},{"class":230,"line":22},[513,517,522],{"type":16,"tag":228,"props":514,"children":515},{"style":247},[516],{"type":44,"value":258},{"type":16,"tag":228,"props":518,"children":519},{"style":241},[520],{"type":44,"value":521}," memos",{"type":16,"tag":228,"props":523,"children":524},{"style":247},[525],{"type":44,"value":250},{"type":16,"tag":228,"props":527,"children":528},{"class":230,"line":270},[529,533],{"type":16,"tag":228,"props":530,"children":531},{"style":247},[532],{"type":44,"value":317},{"type":16,"tag":228,"props":534,"children":535},{"style":247},[536],{"type":44,"value":250},{"type":16,"tag":228,"props":538,"children":539},{"class":230,"line":293},[540,545,550,555],{"type":16,"tag":228,"props":541,"children":542},{"style":247},[543],{"type":44,"value":544}," --publish",{"type":16,"tag":228,"props":546,"children":547},{"style":247},[548],{"type":44,"value":549}," 5230",{"type":16,"tag":228,"props":551,"children":552},{"style":241},[553],{"type":44,"value":554},":5230",{"type":16,"tag":228,"props":556,"children":557},{"style":247},[558],{"type":44,"value":250},{"type":16,"tag":228,"props":560,"children":561},{"class":230,"line":311},[562,567,572],{"type":16,"tag":228,"props":563,"children":564},{"style":247},[565],{"type":44,"value":566}," --volume",{"type":16,"tag":228,"props":568,"children":569},{"style":241},[570],{"type":44,"value":571}," /opt/memos:/var/opt/memos",{"type":16,"tag":228,"props":573,"children":574},{"style":247},[575],{"type":44,"value":250},{"type":16,"tag":228,"props":577,"children":578},{"class":230,"line":324},[579,584,589,593,598],{"type":16,"tag":228,"props":580,"children":581},{"style":241},[582],{"type":44,"value":583}," neosmemo/memos:latest",{"type":16,"tag":228,"props":585,"children":586},{"style":247},[587],{"type":44,"value":588}," --driver",{"type":16,"tag":228,"props":590,"children":591},{"style":241},[592],{"type":44,"value":399},{"type":16,"tag":228,"props":594,"children":595},{"style":247},[596],{"type":44,"value":597}," --dsn",{"type":16,"tag":228,"props":599,"children":600},{"style":241},[601],{"type":44,"value":602}," 'postgresql://postgres:Witque666..@172.17.0.1:5432/memos?sslmode=disable'\n",{"type":16,"tag":46,"props":604,"children":605},{},[606],{"type":16,"tag":50,"props":607,"children":608},{},[609],{"type":44,"value":610},"xhofe/alist:latest",{"type":16,"tag":197,"props":612,"children":614},{"code":613,"language":221,"meta":6,"className":222,"style":6},"docker run -d --restart=always -v /opt/alist:/opt/alist/data -p 5235:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name=\"alist\" xhofe/alist:latest\ndocker exec -it alist ./alist admin set NEW_PASSWORD\n",[615],{"type":16,"tag":90,"props":616,"children":617},{"__ignoreMap":6},[618,716],{"type":16,"tag":228,"props":619,"children":620},{"class":230,"line":231},[621,625,629,633,637,641,646,650,655,660,664,669,674,678,683,687,691,696,701,706,711],{"type":16,"tag":228,"props":622,"children":623},{"style":235},[624],{"type":44,"value":238},{"type":16,"tag":228,"props":626,"children":627},{"style":241},[628],{"type":44,"value":244},{"type":16,"tag":228,"props":630,"children":631},{"style":247},[632],{"type":44,"value":348},{"type":16,"tag":228,"props":634,"children":635},{"style":247},[636],{"type":44,"value":317},{"type":16,"tag":228,"props":638,"children":639},{"style":247},[640],{"type":44,"value":299},{"type":16,"tag":228,"props":642,"children":643},{"style":241},[644],{"type":44,"value":645}," /opt/alist:/opt/alist/data",{"type":16,"tag":228,"props":647,"children":648},{"style":247},[649],{"type":44,"value":276},{"type":16,"tag":228,"props":651,"children":652},{"style":247},[653],{"type":44,"value":654}," 5235",{"type":16,"tag":228,"props":656,"children":657},{"style":241},[658],{"type":44,"value":659},":5244",{"type":16,"tag":228,"props":661,"children":662},{"style":247},[663],{"type":44,"value":330},{"type":16,"tag":228,"props":665,"children":666},{"style":241},[667],{"type":44,"value":668}," PUID=",{"type":16,"tag":228,"props":670,"children":671},{"style":247},[672],{"type":44,"value":673},"0",{"type":16,"tag":228,"props":675,"children":676},{"style":247},[677],{"type":44,"value":330},{"type":16,"tag":228,"props":679,"children":680},{"style":241},[681],{"type":44,"value":682}," PGID=",{"type":16,"tag":228,"props":684,"children":685},{"style":247},[686],{"type":44,"value":673},{"type":16,"tag":228,"props":688,"children":689},{"style":247},[690],{"type":44,"value":330},{"type":16,"tag":228,"props":692,"children":693},{"style":241},[694],{"type":44,"value":695}," UMASK=",{"type":16,"tag":228,"props":697,"children":698},{"style":247},[699],{"type":44,"value":700},"022",{"type":16,"tag":228,"props":702,"children":703},{"style":247},[704],{"type":44,"value":705}," --name=",{"type":16,"tag":228,"props":707,"children":708},{"style":241},[709],{"type":44,"value":710},"\"alist\"",{"type":16,"tag":228,"props":712,"children":713},{"style":241},[714],{"type":44,"value":715}," xhofe/alist:latest\n",{"type":16,"tag":228,"props":717,"children":718},{"class":230,"line":22},[719,723,728,733,738,743,748,753],{"type":16,"tag":228,"props":720,"children":721},{"style":235},[722],{"type":44,"value":238},{"type":16,"tag":228,"props":724,"children":725},{"style":241},[726],{"type":44,"value":727}," exec",{"type":16,"tag":228,"props":729,"children":730},{"style":247},[731],{"type":44,"value":732}," -it",{"type":16,"tag":228,"props":734,"children":735},{"style":241},[736],{"type":44,"value":737}," alist",{"type":16,"tag":228,"props":739,"children":740},{"style":241},[741],{"type":44,"value":742}," ./alist",{"type":16,"tag":228,"props":744,"children":745},{"style":241},[746],{"type":44,"value":747}," admin",{"type":16,"tag":228,"props":749,"children":750},{"style":241},[751],{"type":44,"value":752}," set",{"type":16,"tag":228,"props":754,"children":755},{"style":241},[756],{"type":44,"value":757}," NEW_PASSWORD\n",{"type":16,"tag":46,"props":759,"children":760},{},[761],{"type":16,"tag":50,"props":762,"children":763},{},[764],{"type":44,"value":765},"portainer/portainer-ee",{"type":16,"tag":197,"props":767,"children":769},{"code":768,"language":221,"meta":6,"className":222,"style":6},"docker run -d --restart=always --name=\"portainer\" -p 5245:9000 -p 5246:9443 -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer/data:/data -v /opt/portainer/portainer-ee:/public portainer/portainer-ee\n",[770],{"type":16,"tag":90,"props":771,"children":772},{"__ignoreMap":6},[773],{"type":16,"tag":228,"props":774,"children":775},{"class":230,"line":231},[776,780,784,788,792,796,801,805,810,815,819,824,829,833,838,842,847,851,856],{"type":16,"tag":228,"props":777,"children":778},{"style":235},[779],{"type":44,"value":238},{"type":16,"tag":228,"props":781,"children":782},{"style":241},[783],{"type":44,"value":244},{"type":16,"tag":228,"props":785,"children":786},{"style":247},[787],{"type":44,"value":348},{"type":16,"tag":228,"props":789,"children":790},{"style":247},[791],{"type":44,"value":317},{"type":16,"tag":228,"props":793,"children":794},{"style":247},[795],{"type":44,"value":705},{"type":16,"tag":228,"props":797,"children":798},{"style":241},[799],{"type":44,"value":800},"\"portainer\"",{"type":16,"tag":228,"props":802,"children":803},{"style":247},[804],{"type":44,"value":276},{"type":16,"tag":228,"props":806,"children":807},{"style":247},[808],{"type":44,"value":809}," 5245",{"type":16,"tag":228,"props":811,"children":812},{"style":241},[813],{"type":44,"value":814},":9000",{"type":16,"tag":228,"props":816,"children":817},{"style":247},[818],{"type":44,"value":276},{"type":16,"tag":228,"props":820,"children":821},{"style":247},[822],{"type":44,"value":823}," 5246",{"type":16,"tag":228,"props":825,"children":826},{"style":241},[827],{"type":44,"value":828},":9443",{"type":16,"tag":228,"props":830,"children":831},{"style":247},[832],{"type":44,"value":299},{"type":16,"tag":228,"props":834,"children":835},{"style":241},[836],{"type":44,"value":837}," /var/run/docker.sock:/var/run/docker.sock",{"type":16,"tag":228,"props":839,"children":840},{"style":247},[841],{"type":44,"value":299},{"type":16,"tag":228,"props":843,"children":844},{"style":241},[845],{"type":44,"value":846}," /opt/portainer/data:/data",{"type":16,"tag":228,"props":848,"children":849},{"style":247},[850],{"type":44,"value":299},{"type":16,"tag":228,"props":852,"children":853},{"style":241},[854],{"type":44,"value":855}," /opt/portainer/portainer-ee:/public",{"type":16,"tag":228,"props":857,"children":858},{"style":241},[859],{"type":44,"value":860}," portainer/portainer-ee\n",{"type":16,"tag":46,"props":862,"children":863},{},[864],{"type":16,"tag":50,"props":865,"children":866},{},[867],{"type":44,"value":868},"Next Terminal",{"type":16,"tag":144,"props":870,"children":871},{},[872],{"type":44,"value":873},"安装 guacd",{"type":16,"tag":197,"props":875,"children":877},{"code":876,"language":221,"meta":6,"className":222,"style":6},"docker run --restart=always --name guacd -d \\\n -v /opt/next-terminal/data:/usr/local/next-terminal/data \\\n dushixiang/guacd:latest\n",[878],{"type":16,"tag":90,"props":879,"children":880},{"__ignoreMap":6},[881,913,929],{"type":16,"tag":228,"props":882,"children":883},{"class":230,"line":231},[884,888,892,896,900,905,909],{"type":16,"tag":228,"props":885,"children":886},{"style":235},[887],{"type":44,"value":238},{"type":16,"tag":228,"props":889,"children":890},{"style":241},[891],{"type":44,"value":244},{"type":16,"tag":228,"props":893,"children":894},{"style":247},[895],{"type":44,"value":317},{"type":16,"tag":228,"props":897,"children":898},{"style":247},[899],{"type":44,"value":258},{"type":16,"tag":228,"props":901,"children":902},{"style":241},[903],{"type":44,"value":904}," guacd",{"type":16,"tag":228,"props":906,"children":907},{"style":247},[908],{"type":44,"value":348},{"type":16,"tag":228,"props":910,"children":911},{"style":247},[912],{"type":44,"value":250},{"type":16,"tag":228,"props":914,"children":915},{"class":230,"line":22},[916,920,925],{"type":16,"tag":228,"props":917,"children":918},{"style":247},[919],{"type":44,"value":299},{"type":16,"tag":228,"props":921,"children":922},{"style":241},[923],{"type":44,"value":924}," /opt/next-terminal/data:/usr/local/next-terminal/data",{"type":16,"tag":228,"props":926,"children":927},{"style":247},[928],{"type":44,"value":250},{"type":16,"tag":228,"props":930,"children":931},{"class":230,"line":270},[932],{"type":16,"tag":228,"props":933,"children":934},{"style":241},[935],{"type":44,"value":936}," dushixiang/guacd:latest\n",{"type":16,"tag":144,"props":938,"children":939},{},[940],{"type":44,"value":941},"安装 next-terminal",{"type":16,"tag":197,"props":943,"children":945},{"code":944,"language":221,"meta":6,"className":222,"style":6},"docker run --restart=always --name next-terminal -d \\\n --link guacd \\\n -p 5240:8088 \\\n -v /opt/next-terminal/data:/usr/local/next-terminal/data \\\n -v /etc/localtime:/etc/localtime \\\n -e DB=sqlite \\\n -e GUACD_HOSTNAME=guacd \\\n -e GUACD_PORT=4822 \\\n dushixiang/next-terminal:latest\n",[946],{"type":16,"tag":90,"props":947,"children":948},{"__ignoreMap":6},[949,981,997,1018,1033,1049,1065,1081,1103],{"type":16,"tag":228,"props":950,"children":951},{"class":230,"line":231},[952,956,960,964,968,973,977],{"type":16,"tag":228,"props":953,"children":954},{"style":235},[955],{"type":44,"value":238},{"type":16,"tag":228,"props":957,"children":958},{"style":241},[959],{"type":44,"value":244},{"type":16,"tag":228,"props":961,"children":962},{"style":247},[963],{"type":44,"value":317},{"type":16,"tag":228,"props":965,"children":966},{"style":247},[967],{"type":44,"value":258},{"type":16,"tag":228,"props":969,"children":970},{"style":241},[971],{"type":44,"value":972}," next-terminal",{"type":16,"tag":228,"props":974,"children":975},{"style":247},[976],{"type":44,"value":348},{"type":16,"tag":228,"props":978,"children":979},{"style":247},[980],{"type":44,"value":250},{"type":16,"tag":228,"props":982,"children":983},{"class":230,"line":22},[984,989,993],{"type":16,"tag":228,"props":985,"children":986},{"style":247},[987],{"type":44,"value":988}," --link",{"type":16,"tag":228,"props":990,"children":991},{"style":241},[992],{"type":44,"value":904},{"type":16,"tag":228,"props":994,"children":995},{"style":247},[996],{"type":44,"value":250},{"type":16,"tag":228,"props":998,"children":999},{"class":230,"line":270},[1000,1004,1009,1014],{"type":16,"tag":228,"props":1001,"children":1002},{"style":247},[1003],{"type":44,"value":276},{"type":16,"tag":228,"props":1005,"children":1006},{"style":247},[1007],{"type":44,"value":1008}," 5240",{"type":16,"tag":228,"props":1010,"children":1011},{"style":241},[1012],{"type":44,"value":1013},":8088",{"type":16,"tag":228,"props":1015,"children":1016},{"style":247},[1017],{"type":44,"value":250},{"type":16,"tag":228,"props":1019,"children":1020},{"class":230,"line":293},[1021,1025,1029],{"type":16,"tag":228,"props":1022,"children":1023},{"style":247},[1024],{"type":44,"value":299},{"type":16,"tag":228,"props":1026,"children":1027},{"style":241},[1028],{"type":44,"value":924},{"type":16,"tag":228,"props":1030,"children":1031},{"style":247},[1032],{"type":44,"value":250},{"type":16,"tag":228,"props":1034,"children":1035},{"class":230,"line":311},[1036,1040,1045],{"type":16,"tag":228,"props":1037,"children":1038},{"style":247},[1039],{"type":44,"value":299},{"type":16,"tag":228,"props":1041,"children":1042},{"style":241},[1043],{"type":44,"value":1044}," /etc/localtime:/etc/localtime",{"type":16,"tag":228,"props":1046,"children":1047},{"style":247},[1048],{"type":44,"value":250},{"type":16,"tag":228,"props":1050,"children":1051},{"class":230,"line":324},[1052,1056,1061],{"type":16,"tag":228,"props":1053,"children":1054},{"style":247},[1055],{"type":44,"value":330},{"type":16,"tag":228,"props":1057,"children":1058},{"style":241},[1059],{"type":44,"value":1060}," DB=sqlite",{"type":16,"tag":228,"props":1062,"children":1063},{"style":247},[1064],{"type":44,"value":250},{"type":16,"tag":228,"props":1066,"children":1067},{"class":230,"line":342},[1068,1072,1077],{"type":16,"tag":228,"props":1069,"children":1070},{"style":247},[1071],{"type":44,"value":330},{"type":16,"tag":228,"props":1073,"children":1074},{"style":241},[1075],{"type":44,"value":1076}," GUACD_HOSTNAME=guacd",{"type":16,"tag":228,"props":1078,"children":1079},{"style":247},[1080],{"type":44,"value":250},{"type":16,"tag":228,"props":1082,"children":1084},{"class":230,"line":1083},8,[1085,1089,1094,1099],{"type":16,"tag":228,"props":1086,"children":1087},{"style":247},[1088],{"type":44,"value":330},{"type":16,"tag":228,"props":1090,"children":1091},{"style":241},[1092],{"type":44,"value":1093}," GUACD_PORT=",{"type":16,"tag":228,"props":1095,"children":1096},{"style":247},[1097],{"type":44,"value":1098},"4822",{"type":16,"tag":228,"props":1100,"children":1101},{"style":247},[1102],{"type":44,"value":250},{"type":16,"tag":228,"props":1104,"children":1106},{"class":230,"line":1105},9,[1107],{"type":16,"tag":228,"props":1108,"children":1109},{"style":241},[1110],{"type":44,"value":1111}," dushixiang/next-terminal:latest\n",{"type":16,"tag":46,"props":1113,"children":1114},{},[1115],{"type":16,"tag":50,"props":1116,"children":1117},{},[1118],{"type":44,"value":1119},"青龙面板部署",{"type":16,"tag":197,"props":1121,"children":1123},{"code":1122,"language":221,"meta":6,"className":222,"style":6},"docker run -dit \\\n -v /opt/ql/data:/ql/data \\\n -p 5260:5700 \\\n --name qinglong \\\n --restart always \\\n whyour/qinglong:latest\n",[1124],{"type":16,"tag":90,"props":1125,"children":1126},{"__ignoreMap":6},[1127,1147,1163,1184,1200,1217],{"type":16,"tag":228,"props":1128,"children":1129},{"class":230,"line":231},[1130,1134,1138,1143],{"type":16,"tag":228,"props":1131,"children":1132},{"style":235},[1133],{"type":44,"value":238},{"type":16,"tag":228,"props":1135,"children":1136},{"style":241},[1137],{"type":44,"value":244},{"type":16,"tag":228,"props":1139,"children":1140},{"style":247},[1141],{"type":44,"value":1142}," -dit",{"type":16,"tag":228,"props":1144,"children":1145},{"style":247},[1146],{"type":44,"value":250},{"type":16,"tag":228,"props":1148,"children":1149},{"class":230,"line":22},[1150,1154,1159],{"type":16,"tag":228,"props":1151,"children":1152},{"style":247},[1153],{"type":44,"value":299},{"type":16,"tag":228,"props":1155,"children":1156},{"style":241},[1157],{"type":44,"value":1158}," /opt/ql/data:/ql/data",{"type":16,"tag":228,"props":1160,"children":1161},{"style":247},[1162],{"type":44,"value":250},{"type":16,"tag":228,"props":1164,"children":1165},{"class":230,"line":270},[1166,1170,1175,1180],{"type":16,"tag":228,"props":1167,"children":1168},{"style":247},[1169],{"type":44,"value":276},{"type":16,"tag":228,"props":1171,"children":1172},{"style":247},[1173],{"type":44,"value":1174}," 5260",{"type":16,"tag":228,"props":1176,"children":1177},{"style":241},[1178],{"type":44,"value":1179},":5700",{"type":16,"tag":228,"props":1181,"children":1182},{"style":247},[1183],{"type":44,"value":250},{"type":16,"tag":228,"props":1185,"children":1186},{"class":230,"line":293},[1187,1191,1196],{"type":16,"tag":228,"props":1188,"children":1189},{"style":247},[1190],{"type":44,"value":258},{"type":16,"tag":228,"props":1192,"children":1193},{"style":241},[1194],{"type":44,"value":1195}," qinglong",{"type":16,"tag":228,"props":1197,"children":1198},{"style":247},[1199],{"type":44,"value":250},{"type":16,"tag":228,"props":1201,"children":1202},{"class":230,"line":311},[1203,1208,1213],{"type":16,"tag":228,"props":1204,"children":1205},{"style":247},[1206],{"type":44,"value":1207}," --restart",{"type":16,"tag":228,"props":1209,"children":1210},{"style":241},[1211],{"type":44,"value":1212}," always",{"type":16,"tag":228,"props":1214,"children":1215},{"style":247},[1216],{"type":44,"value":250},{"type":16,"tag":228,"props":1218,"children":1219},{"class":230,"line":324},[1220],{"type":16,"tag":228,"props":1221,"children":1222},{"style":241},[1223],{"type":44,"value":1224}," whyour/qinglong:latest\n",{"type":16,"tag":113,"props":1226,"children":1228},{"id":1227},"_102-istoreos-迁移备份内容",[1229],{"type":44,"value":1230},"102-IStoreOs-迁移备份内容",{"type":16,"tag":46,"props":1232,"children":1233},{},[1234],{"type":16,"tag":50,"props":1235,"children":1236},{},[1237,1239],{"type":44,"value":1238},"备份102.raw ",{"type":16,"tag":90,"props":1240,"children":1242},{"className":1241},[],[1243],{"type":44,"value":1244},"cp -R /var/lib/pve/local-btrfs/images/102 /opt/onvme",{"type":16,"tag":113,"props":1246,"children":1248},{"id":1247},"_103-windows-迁移备份内容",[1249],{"type":44,"value":1250},"103-Windows-迁移备份内容",{"type":16,"tag":46,"props":1252,"children":1253},{},[1254,1265],{"type":16,"tag":50,"props":1255,"children":1256},{},[1257,1259],{"type":44,"value":1258},"备份Minecraft ",{"type":16,"tag":90,"props":1260,"children":1262},{"className":1261},[],[1263],{"type":44,"value":1264},"C:\\Users\\Administrator\\Desktop\\bedrock-server-1.21.20.03",{"type":16,"tag":50,"props":1266,"children":1267},{},[1268,1270,1278],{"type":44,"value":1269},"备份PalWorld 链接：",{"type":16,"tag":1271,"props":1272,"children":1276},"a",{"href":1273,"rel":1274},"https://pan.quark.cn/s/f9382557d40f",[1275],"nofollow",[1277],{"type":44,"value":1273},{"type":44,"value":1279}," 提取码：d2Ft",{"type":16,"tag":1281,"props":1282,"children":1283},"style",{},[1284],{"type":44,"value":1285},"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 .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 .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 .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);}",{"title":6,"searchDepth":22,"depth":22,"links":1287},[1288,1289,1290],{"id":73,"depth":22,"text":73},{"id":78,"depth":22,"text":78},{"id":109,"depth":22,"text":109,"children":1291},[1292,1293,1294,1295],{"id":115,"depth":270,"text":118},{"id":164,"depth":270,"text":167},{"id":1227,"depth":270,"text":1230},{"id":1247,"depth":270,"text":1250},"content:articles:01-allinoneplan.md","articles/01-allinoneplan.md",{"_path":1299,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":1300,"description":1300,"cover":1301,"date":33,"category":1302,"layout":35,"body":1303,"_type":24,"_id":1532,"_source":26,"_file":1533,"_extension":28},"/articles/02-hypervdda","Hyper-v 直通和卸载命令","https://img.mxai.eu.cc/imgs/cover_1776321128625_1776321128.jpg","VIRTUALIZATION",{"type":13,"children":1304,"toc":1525},[1305,1310,1315,1320,1364,1369,1410,1415,1443,1448,1489,1494,1521],{"type":16,"tag":39,"props":1306,"children":1308},{"id":1307},"hyper-v-直通和卸载命令",[1309],{"type":44,"value":1300},{"type":16,"tag":144,"props":1311,"children":1312},{},[1313],{"type":44,"value":1314},"\"PCIROOT(0)#PCI(0600)#PCI(0000)\"",{"type":16,"tag":113,"props":1316,"children":1318},{"id":1317},"下线设备",[1319],{"type":44,"value":1317},{"type":16,"tag":197,"props":1321,"children":1325},{"className":1322,"code":1323,"language":1324,"meta":6,"style":6},"language-powershell shiki shiki-themes github-light github-dark","Dismount-VMHostAssignableDevice -Force -LocationPath \"位置路径\"\n","powershell",[1326],{"type":16,"tag":90,"props":1327,"children":1328},{"__ignoreMap":6},[1329],{"type":16,"tag":228,"props":1330,"children":1331},{"class":230,"line":231},[1332,1337,1343,1349,1354,1359],{"type":16,"tag":228,"props":1333,"children":1334},{"style":247},[1335],{"type":44,"value":1336},"Dismount-VMHostAssignableDevice",{"type":16,"tag":228,"props":1338,"children":1340},{"style":1339},"--shiki-default:#D73A49;--shiki-dark:#F97583",[1341],{"type":44,"value":1342}," -",{"type":16,"tag":228,"props":1344,"children":1346},{"style":1345},"--shiki-default:#24292E;--shiki-dark:#E1E4E8",[1347],{"type":44,"value":1348},"Force ",{"type":16,"tag":228,"props":1350,"children":1351},{"style":1339},[1352],{"type":44,"value":1353},"-",{"type":16,"tag":228,"props":1355,"children":1356},{"style":1345},[1357],{"type":44,"value":1358},"LocationPath ",{"type":16,"tag":228,"props":1360,"children":1361},{"style":241},[1362],{"type":44,"value":1363},"\"位置路径\"\n",{"type":16,"tag":113,"props":1365,"children":1367},{"id":1366},"分配设备给虚拟机",[1368],{"type":44,"value":1366},{"type":16,"tag":197,"props":1370,"children":1372},{"className":1322,"code":1371,"language":1324,"meta":6,"style":6},"Add-VMAssignableDevice -VMName \"SA6400\" -LocationPath \"位置路径\"\n",[1373],{"type":16,"tag":90,"props":1374,"children":1375},{"__ignoreMap":6},[1376],{"type":16,"tag":228,"props":1377,"children":1378},{"class":230,"line":231},[1379,1384,1388,1393,1398,1402,1406],{"type":16,"tag":228,"props":1380,"children":1381},{"style":247},[1382],{"type":44,"value":1383},"Add-VMAssignableDevice",{"type":16,"tag":228,"props":1385,"children":1386},{"style":1339},[1387],{"type":44,"value":1342},{"type":16,"tag":228,"props":1389,"children":1390},{"style":1345},[1391],{"type":44,"value":1392},"VMName ",{"type":16,"tag":228,"props":1394,"children":1395},{"style":241},[1396],{"type":44,"value":1397},"\"SA6400\"",{"type":16,"tag":228,"props":1399,"children":1400},{"style":1339},[1401],{"type":44,"value":1342},{"type":16,"tag":228,"props":1403,"children":1404},{"style":1345},[1405],{"type":44,"value":1358},{"type":16,"tag":228,"props":1407,"children":1408},{"style":241},[1409],{"type":44,"value":1363},{"type":16,"tag":113,"props":1411,"children":1413},{"id":1412},"查看设备",[1414],{"type":44,"value":1412},{"type":16,"tag":197,"props":1416,"children":1418},{"className":1322,"code":1417,"language":1324,"meta":6,"style":6},"Get-VMAssignableDevice -VMName \"SA6400\"\n",[1419],{"type":16,"tag":90,"props":1420,"children":1421},{"__ignoreMap":6},[1422],{"type":16,"tag":228,"props":1423,"children":1424},{"class":230,"line":231},[1425,1430,1434,1438],{"type":16,"tag":228,"props":1426,"children":1427},{"style":247},[1428],{"type":44,"value":1429},"Get-VMAssignableDevice",{"type":16,"tag":228,"props":1431,"children":1432},{"style":1339},[1433],{"type":44,"value":1342},{"type":16,"tag":228,"props":1435,"children":1436},{"style":1345},[1437],{"type":44,"value":1392},{"type":16,"tag":228,"props":1439,"children":1440},{"style":241},[1441],{"type":44,"value":1442},"\"SA6400\"\n",{"type":16,"tag":113,"props":1444,"children":1446},{"id":1445},"卸载命令",[1447],{"type":44,"value":1445},{"type":16,"tag":197,"props":1449,"children":1451},{"className":1322,"code":1450,"language":1324,"meta":6,"style":6},"Remove-VMAssignableDevice -LocationPath \"位置路径\" -VMName \"虚拟机名称\"\n",[1452],{"type":16,"tag":90,"props":1453,"children":1454},{"__ignoreMap":6},[1455],{"type":16,"tag":228,"props":1456,"children":1457},{"class":230,"line":231},[1458,1463,1467,1471,1476,1480,1484],{"type":16,"tag":228,"props":1459,"children":1460},{"style":247},[1461],{"type":44,"value":1462},"Remove-VMAssignableDevice",{"type":16,"tag":228,"props":1464,"children":1465},{"style":1339},[1466],{"type":44,"value":1342},{"type":16,"tag":228,"props":1468,"children":1469},{"style":1345},[1470],{"type":44,"value":1358},{"type":16,"tag":228,"props":1472,"children":1473},{"style":241},[1474],{"type":44,"value":1475},"\"位置路径\"",{"type":16,"tag":228,"props":1477,"children":1478},{"style":1339},[1479],{"type":44,"value":1342},{"type":16,"tag":228,"props":1481,"children":1482},{"style":1345},[1483],{"type":44,"value":1392},{"type":16,"tag":228,"props":1485,"children":1486},{"style":241},[1487],{"type":44,"value":1488},"\"虚拟机名称\"\n",{"type":16,"tag":113,"props":1490,"children":1492},{"id":1491},"重新挂载",[1493],{"type":44,"value":1491},{"type":16,"tag":197,"props":1495,"children":1497},{"className":1322,"code":1496,"language":1324,"meta":6,"style":6},"Mount-VMHostAssignableDevice -LocationPath \"位置路径\"\n",[1498],{"type":16,"tag":90,"props":1499,"children":1500},{"__ignoreMap":6},[1501],{"type":16,"tag":228,"props":1502,"children":1503},{"class":230,"line":231},[1504,1509,1513,1517],{"type":16,"tag":228,"props":1505,"children":1506},{"style":247},[1507],{"type":44,"value":1508},"Mount-VMHostAssignableDevice",{"type":16,"tag":228,"props":1510,"children":1511},{"style":1339},[1512],{"type":44,"value":1342},{"type":16,"tag":228,"props":1514,"children":1515},{"style":1345},[1516],{"type":44,"value":1358},{"type":16,"tag":228,"props":1518,"children":1519},{"style":241},[1520],{"type":44,"value":1363},{"type":16,"tag":1281,"props":1522,"children":1523},{},[1524],{"type":44,"value":1285},{"title":6,"searchDepth":22,"depth":22,"links":1526},[1527,1528,1529,1530,1531],{"id":1317,"depth":270,"text":1317},{"id":1366,"depth":270,"text":1366},{"id":1412,"depth":270,"text":1412},{"id":1445,"depth":270,"text":1445},{"id":1491,"depth":270,"text":1491},"content:articles:02-hypervdda.md","articles/02-hypervdda.md",{"_path":1535,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":1536,"description":1537,"cover":1538,"date":1539,"category":1540,"layout":35,"body":1541,"_type":24,"_id":1631,"_source":26,"_file":1632,"_extension":28},"/articles/03-wallpaper240823","报纸墙壁纸收集（持续更新）","报纸墙壁纸","https://img.mxai.eu.cc/imgs/cover_1776321158670_1776321158.jpg","2024-08-23T00:00:00.000Z","VISUAL ARCHIVE",{"type":13,"children":1542,"toc":1629},[1543,1548,1560,1572],{"type":16,"tag":39,"props":1544,"children":1546},{"id":1545},"报纸墙壁纸收集持续更新",[1547],{"type":44,"value":1536},{"type":16,"tag":144,"props":1549,"children":1550},{},[1551,1553],{"type":44,"value":1552},"原图下载：",{"type":16,"tag":1271,"props":1554,"children":1557},{"href":1555,"rel":1556},"http://yun.witque.cn:18080/wallpaper/240823",[1275],[1558],{"type":44,"value":1559},"小雀网盘",{"type":16,"tag":46,"props":1561,"children":1562},{},[1563],{"type":16,"tag":50,"props":1564,"children":1565},{},[1566],{"type":16,"tag":1567,"props":1568,"children":1569},"strong",{},[1570],{"type":44,"value":1571},"报纸墙女孩",{"type":16,"tag":144,"props":1573,"children":1574},{},[1575,1581,1585,1589,1593,1597,1601,1605,1609,1613,1617,1621,1625],{"type":16,"tag":1576,"props":1577,"children":1580},"img",{"alt":1578,"src":1579},"wallpaper_newspaper01","https://image.baidu.com/search/down?url=https://tvax4.sinaimg.cn/wap720/006PuDzUgy1ht19ahjljcj31z418ge81.jpg",[],{"type":16,"tag":1576,"props":1582,"children":1584},{"alt":1583,"src":1583},"wallpaper_newspaper02",[],{"type":16,"tag":1576,"props":1586,"children":1588},{"alt":1587,"src":1587},"wallpaper_newspaper03",[],{"type":16,"tag":1576,"props":1590,"children":1592},{"alt":1591,"src":1591},"wallpaper_newspaper04",[],{"type":16,"tag":1576,"props":1594,"children":1596},{"alt":1595,"src":1595},"wallpaper_newspaper05",[],{"type":16,"tag":1576,"props":1598,"children":1600},{"alt":1599,"src":1599},"wallpaper_newspaper06",[],{"type":16,"tag":1576,"props":1602,"children":1604},{"alt":1603,"src":1603},"wallpaper_newspaper07",[],{"type":16,"tag":1576,"props":1606,"children":1608},{"alt":1607,"src":1607},"wallpaper_newspaper08",[],{"type":16,"tag":1576,"props":1610,"children":1612},{"alt":1611,"src":1611},"wallpaper_newspaper09",[],{"type":16,"tag":1576,"props":1614,"children":1616},{"alt":1615,"src":1615},"wallpaper_newspaper10",[],{"type":16,"tag":1576,"props":1618,"children":1620},{"alt":1619,"src":1619},"wallpaper_newspaper11",[],{"type":16,"tag":1576,"props":1622,"children":1624},{"alt":1623,"src":1623},"wallpaper_newspaper12",[],{"type":16,"tag":1576,"props":1626,"children":1628},{"alt":1627,"src":1627},"wallpaper_newspaper13",[],{"title":6,"searchDepth":22,"depth":22,"links":1630},[],"content:articles:03-wallpaper240823.md","articles/03-wallpaper240823.md",{"_path":1634,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":1635,"description":1636,"cover":1637,"date":1638,"category":1639,"layout":35,"body":1640,"_type":24,"_id":4952,"_source":26,"_file":4953,"_extension":28},"/articles/04-dockernote","Docker 笔记","小雀 Docker 笔记整理归纳","https://img.mxai.eu.cc/imgs/cover_1776321181642_1776321181.jpg","2024-08-16T00:00:00.000Z","CONTAINERS",{"type":13,"children":1641,"toc":4911},[1642,1648,1654,1659,1665,1718,1724,1730,1735,1760,1765,1813,1818,1868,1873,1912,1917,1938,1943,1974,1980,1985,2017,2022,2051,2056,2093,2099,2138,2144,2171,2177,2206,2212,2217,2222,2227,2255,2260,2288,2293,2326,2332,2369,2375,2402,2408,2436,2442,2475,2481,2483,2622,2628,2633,2683,2688,2707,2712,2736,2741,2764,2769,2800,2805,2839,2844,2868,2874,2876,3145,3150,3208,3214,3219,3282,3287,3325,3330,3423,3428,3474,3479,3511,3516,3548,3553,3580,3585,3612,3617,3658,3664,3669,3674,3676,4009,4015,4209,4215,4220,4225,4230,4235,4263,4268,4291,4296,4322,4327,4370,4375,4419,4424,4467,4472,4498,4504,4509,4611,4616,4718,4723,4770,4775,4822,4827,4907],{"type":16,"tag":39,"props":1643,"children":1645},{"id":1644},"docker笔记",[1646],{"type":44,"value":1647},"Docker笔记",{"type":16,"tag":71,"props":1649,"children":1651},{"id":1650},"docker简介",[1652],{"type":44,"value":1653},"Docker简介",{"type":16,"tag":144,"props":1655,"children":1656},{},[1657],{"type":44,"value":1658},"Docker 是一个开源的容器化平台，它允许开发者将应用及其依赖环境打包到一个轻量级、可移植的容器中，然后可以在任何支持Docker的机器上运行。Docker 使用 Linux 容器（LXC）技术，但提供了比传统容器更加易用的工作流和用户界面。",{"type":16,"tag":113,"props":1660,"children":1662},{"id":1661},"docker的主要特点",[1663],{"type":44,"value":1664},"Docker的主要特点",{"type":16,"tag":46,"props":1666,"children":1667},{},[1668,1678,1688,1698,1708],{"type":16,"tag":50,"props":1669,"children":1670},{},[1671,1676],{"type":16,"tag":1567,"props":1672,"children":1673},{},[1674],{"type":44,"value":1675},"轻量级",{"type":44,"value":1677},"：Docker 容器共享宿主机的内核，不需要像虚拟机那样模拟整个操作系统。",{"type":16,"tag":50,"props":1679,"children":1680},{},[1681,1686],{"type":16,"tag":1567,"props":1682,"children":1683},{},[1684],{"type":44,"value":1685},"可移植性",{"type":44,"value":1687},"：容器可以在任何安装了Docker的机器上运行，无需担心环境差异。",{"type":16,"tag":50,"props":1689,"children":1690},{},[1691,1696],{"type":16,"tag":1567,"props":1692,"children":1693},{},[1694],{"type":44,"value":1695},"自动化部署",{"type":44,"value":1697},"：Docker 通过 Dockerfile 来自动化构建容器镜像，简化部署流程。",{"type":16,"tag":50,"props":1699,"children":1700},{},[1701,1706],{"type":16,"tag":1567,"props":1702,"children":1703},{},[1704],{"type":44,"value":1705},"版本控制和组件重用",{"type":44,"value":1707},"：Docker Hub 和其他注册中心可以用来分享和存储容器镜像。",{"type":16,"tag":50,"props":1709,"children":1710},{},[1711,1716],{"type":16,"tag":1567,"props":1712,"children":1713},{},[1714],{"type":44,"value":1715},"微服务架构",{"type":44,"value":1717},"：Docker 容器非常适合微服务架构，每个服务可以独立部署和扩展。",{"type":16,"tag":71,"props":1719,"children":1721},{"id":1720},"docker安装",[1722],{"type":44,"value":1723},"Docker安装",{"type":16,"tag":113,"props":1725,"children":1727},{"id":1726},"对于-ubuntudebian-系统",[1728],{"type":44,"value":1729},"对于 Ubuntu/Debian 系统",{"type":16,"tag":144,"props":1731,"children":1732},{},[1733],{"type":44,"value":1734},"更新软件包列表：",{"type":16,"tag":197,"props":1736,"children":1738},{"className":222,"code":1737,"language":221,"meta":6,"style":6},"sudo apt-get update\n",[1739],{"type":16,"tag":90,"props":1740,"children":1741},{"__ignoreMap":6},[1742],{"type":16,"tag":228,"props":1743,"children":1744},{"class":230,"line":231},[1745,1750,1755],{"type":16,"tag":228,"props":1746,"children":1747},{"style":235},[1748],{"type":44,"value":1749},"sudo",{"type":16,"tag":228,"props":1751,"children":1752},{"style":241},[1753],{"type":44,"value":1754}," apt-get",{"type":16,"tag":228,"props":1756,"children":1757},{"style":241},[1758],{"type":44,"value":1759}," update\n",{"type":16,"tag":144,"props":1761,"children":1762},{},[1763],{"type":44,"value":1764},"安装 Docker 的依赖项：",{"type":16,"tag":197,"props":1766,"children":1768},{"className":222,"code":1767,"language":221,"meta":6,"style":6},"sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common\n",[1769],{"type":16,"tag":90,"props":1770,"children":1771},{"__ignoreMap":6},[1772],{"type":16,"tag":228,"props":1773,"children":1774},{"class":230,"line":231},[1775,1779,1783,1788,1793,1798,1803,1808],{"type":16,"tag":228,"props":1776,"children":1777},{"style":235},[1778],{"type":44,"value":1749},{"type":16,"tag":228,"props":1780,"children":1781},{"style":241},[1782],{"type":44,"value":1754},{"type":16,"tag":228,"props":1784,"children":1785},{"style":241},[1786],{"type":44,"value":1787}," install",{"type":16,"tag":228,"props":1789,"children":1790},{"style":247},[1791],{"type":44,"value":1792}," -y",{"type":16,"tag":228,"props":1794,"children":1795},{"style":241},[1796],{"type":44,"value":1797}," apt-transport-https",{"type":16,"tag":228,"props":1799,"children":1800},{"style":241},[1801],{"type":44,"value":1802}," ca-certificates",{"type":16,"tag":228,"props":1804,"children":1805},{"style":241},[1806],{"type":44,"value":1807}," curl",{"type":16,"tag":228,"props":1809,"children":1810},{"style":241},[1811],{"type":44,"value":1812}," software-properties-common\n",{"type":16,"tag":144,"props":1814,"children":1815},{},[1816],{"type":44,"value":1817},"添加 Docker 的官方 GPG 密钥：",{"type":16,"tag":197,"props":1819,"children":1821},{"className":222,"code":1820,"language":221,"meta":6,"style":6},"curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\n",[1822],{"type":16,"tag":90,"props":1823,"children":1824},{"__ignoreMap":6},[1825],{"type":16,"tag":228,"props":1826,"children":1827},{"class":230,"line":231},[1828,1833,1838,1843,1848,1853,1858,1863],{"type":16,"tag":228,"props":1829,"children":1830},{"style":235},[1831],{"type":44,"value":1832},"curl",{"type":16,"tag":228,"props":1834,"children":1835},{"style":247},[1836],{"type":44,"value":1837}," -fsSL",{"type":16,"tag":228,"props":1839,"children":1840},{"style":241},[1841],{"type":44,"value":1842}," https://download.docker.com/linux/ubuntu/gpg",{"type":16,"tag":228,"props":1844,"children":1845},{"style":1339},[1846],{"type":44,"value":1847}," |",{"type":16,"tag":228,"props":1849,"children":1850},{"style":235},[1851],{"type":44,"value":1852}," sudo",{"type":16,"tag":228,"props":1854,"children":1855},{"style":241},[1856],{"type":44,"value":1857}," apt-key",{"type":16,"tag":228,"props":1859,"children":1860},{"style":241},[1861],{"type":44,"value":1862}," add",{"type":16,"tag":228,"props":1864,"children":1865},{"style":241},[1866],{"type":44,"value":1867}," -\n",{"type":16,"tag":144,"props":1869,"children":1870},{},[1871],{"type":44,"value":1872},"添加 Docker 仓库：",{"type":16,"tag":197,"props":1874,"children":1876},{"className":222,"code":1875,"language":221,"meta":6,"style":6},"sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\"\n",[1877],{"type":16,"tag":90,"props":1878,"children":1879},{"__ignoreMap":6},[1880],{"type":16,"tag":228,"props":1881,"children":1882},{"class":230,"line":231},[1883,1887,1892,1897,1902,1907],{"type":16,"tag":228,"props":1884,"children":1885},{"style":235},[1886],{"type":44,"value":1749},{"type":16,"tag":228,"props":1888,"children":1889},{"style":241},[1890],{"type":44,"value":1891}," add-apt-repository",{"type":16,"tag":228,"props":1893,"children":1894},{"style":241},[1895],{"type":44,"value":1896}," \"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(",{"type":16,"tag":228,"props":1898,"children":1899},{"style":235},[1900],{"type":44,"value":1901},"lsb_release",{"type":16,"tag":228,"props":1903,"children":1904},{"style":247},[1905],{"type":44,"value":1906}," -cs",{"type":16,"tag":228,"props":1908,"children":1909},{"style":241},[1910],{"type":44,"value":1911},") stable\"\n",{"type":16,"tag":144,"props":1913,"children":1914},{},[1915],{"type":44,"value":1916},"再次更新软件包列表：",{"type":16,"tag":197,"props":1918,"children":1919},{"className":222,"code":1737,"language":221,"meta":6,"style":6},[1920],{"type":16,"tag":90,"props":1921,"children":1922},{"__ignoreMap":6},[1923],{"type":16,"tag":228,"props":1924,"children":1925},{"class":230,"line":231},[1926,1930,1934],{"type":16,"tag":228,"props":1927,"children":1928},{"style":235},[1929],{"type":44,"value":1749},{"type":16,"tag":228,"props":1931,"children":1932},{"style":241},[1933],{"type":44,"value":1754},{"type":16,"tag":228,"props":1935,"children":1936},{"style":241},[1937],{"type":44,"value":1759},{"type":16,"tag":144,"props":1939,"children":1940},{},[1941],{"type":44,"value":1942},"安装 Docker CE（社区版）：",{"type":16,"tag":197,"props":1944,"children":1946},{"className":222,"code":1945,"language":221,"meta":6,"style":6},"sudo apt-get install -y docker-ce\n",[1947],{"type":16,"tag":90,"props":1948,"children":1949},{"__ignoreMap":6},[1950],{"type":16,"tag":228,"props":1951,"children":1952},{"class":230,"line":231},[1953,1957,1961,1965,1969],{"type":16,"tag":228,"props":1954,"children":1955},{"style":235},[1956],{"type":44,"value":1749},{"type":16,"tag":228,"props":1958,"children":1959},{"style":241},[1960],{"type":44,"value":1754},{"type":16,"tag":228,"props":1962,"children":1963},{"style":241},[1964],{"type":44,"value":1787},{"type":16,"tag":228,"props":1966,"children":1967},{"style":247},[1968],{"type":44,"value":1792},{"type":16,"tag":228,"props":1970,"children":1971},{"style":241},[1972],{"type":44,"value":1973}," docker-ce\n",{"type":16,"tag":113,"props":1975,"children":1977},{"id":1976},"对于-centosrhel-系统",[1978],{"type":44,"value":1979},"对于 CentOS/RHEL 系统",{"type":16,"tag":144,"props":1981,"children":1982},{},[1983],{"type":44,"value":1984},"安装所需的软件包：",{"type":16,"tag":197,"props":1986,"children":1988},{"className":222,"code":1987,"language":221,"meta":6,"style":6},"sudo yum install -y yum-utils\n",[1989],{"type":16,"tag":90,"props":1990,"children":1991},{"__ignoreMap":6},[1992],{"type":16,"tag":228,"props":1993,"children":1994},{"class":230,"line":231},[1995,1999,2004,2008,2012],{"type":16,"tag":228,"props":1996,"children":1997},{"style":235},[1998],{"type":44,"value":1749},{"type":16,"tag":228,"props":2000,"children":2001},{"style":241},[2002],{"type":44,"value":2003}," yum",{"type":16,"tag":228,"props":2005,"children":2006},{"style":241},[2007],{"type":44,"value":1787},{"type":16,"tag":228,"props":2009,"children":2010},{"style":247},[2011],{"type":44,"value":1792},{"type":16,"tag":228,"props":2013,"children":2014},{"style":241},[2015],{"type":44,"value":2016}," yum-utils\n",{"type":16,"tag":144,"props":2018,"children":2019},{},[2020],{"type":44,"value":2021},"设置 Docker 仓库：",{"type":16,"tag":197,"props":2023,"children":2025},{"className":222,"code":2024,"language":221,"meta":6,"style":6},"sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo\n",[2026],{"type":16,"tag":90,"props":2027,"children":2028},{"__ignoreMap":6},[2029],{"type":16,"tag":228,"props":2030,"children":2031},{"class":230,"line":231},[2032,2036,2041,2046],{"type":16,"tag":228,"props":2033,"children":2034},{"style":235},[2035],{"type":44,"value":1749},{"type":16,"tag":228,"props":2037,"children":2038},{"style":241},[2039],{"type":44,"value":2040}," yum-config-manager",{"type":16,"tag":228,"props":2042,"children":2043},{"style":247},[2044],{"type":44,"value":2045}," --add-repo",{"type":16,"tag":228,"props":2047,"children":2048},{"style":241},[2049],{"type":44,"value":2050}," https://download.docker.com/linux/centos/docker-ce.repo\n",{"type":16,"tag":144,"props":2052,"children":2053},{},[2054],{"type":44,"value":2055},"安装 Docker CE：",{"type":16,"tag":197,"props":2057,"children":2059},{"className":222,"code":2058,"language":221,"meta":6,"style":6},"sudo yum install docker-ce docker-ce-cli containerd.io\n",[2060],{"type":16,"tag":90,"props":2061,"children":2062},{"__ignoreMap":6},[2063],{"type":16,"tag":228,"props":2064,"children":2065},{"class":230,"line":231},[2066,2070,2074,2078,2083,2088],{"type":16,"tag":228,"props":2067,"children":2068},{"style":235},[2069],{"type":44,"value":1749},{"type":16,"tag":228,"props":2071,"children":2072},{"style":241},[2073],{"type":44,"value":2003},{"type":16,"tag":228,"props":2075,"children":2076},{"style":241},[2077],{"type":44,"value":1787},{"type":16,"tag":228,"props":2079,"children":2080},{"style":241},[2081],{"type":44,"value":2082}," docker-ce",{"type":16,"tag":228,"props":2084,"children":2085},{"style":241},[2086],{"type":44,"value":2087}," docker-ce-cli",{"type":16,"tag":228,"props":2089,"children":2090},{"style":241},[2091],{"type":44,"value":2092}," containerd.io\n",{"type":16,"tag":113,"props":2094,"children":2096},{"id":2095},"对于-fedora-系统",[2097],{"type":44,"value":2098},"对于 Fedora 系统",{"type":16,"tag":197,"props":2100,"children":2102},{"className":222,"code":2101,"language":221,"meta":6,"style":6},"sudo dnf -y install docker-ce docker-ce-cli containerd.io\n",[2103],{"type":16,"tag":90,"props":2104,"children":2105},{"__ignoreMap":6},[2106],{"type":16,"tag":228,"props":2107,"children":2108},{"class":230,"line":231},[2109,2113,2118,2122,2126,2130,2134],{"type":16,"tag":228,"props":2110,"children":2111},{"style":235},[2112],{"type":44,"value":1749},{"type":16,"tag":228,"props":2114,"children":2115},{"style":241},[2116],{"type":44,"value":2117}," dnf",{"type":16,"tag":228,"props":2119,"children":2120},{"style":247},[2121],{"type":44,"value":1792},{"type":16,"tag":228,"props":2123,"children":2124},{"style":241},[2125],{"type":44,"value":1787},{"type":16,"tag":228,"props":2127,"children":2128},{"style":241},[2129],{"type":44,"value":2082},{"type":16,"tag":228,"props":2131,"children":2132},{"style":241},[2133],{"type":44,"value":2087},{"type":16,"tag":228,"props":2135,"children":2136},{"style":241},[2137],{"type":44,"value":2092},{"type":16,"tag":113,"props":2139,"children":2141},{"id":2140},"对于-opensuse-系统",[2142],{"type":44,"value":2143},"对于 openSUSE 系统",{"type":16,"tag":197,"props":2145,"children":2147},{"className":222,"code":2146,"language":221,"meta":6,"style":6},"sudo zypper install docker-ce\n",[2148],{"type":16,"tag":90,"props":2149,"children":2150},{"__ignoreMap":6},[2151],{"type":16,"tag":228,"props":2152,"children":2153},{"class":230,"line":231},[2154,2158,2163,2167],{"type":16,"tag":228,"props":2155,"children":2156},{"style":235},[2157],{"type":44,"value":1749},{"type":16,"tag":228,"props":2159,"children":2160},{"style":241},[2161],{"type":44,"value":2162}," zypper",{"type":16,"tag":228,"props":2164,"children":2165},{"style":241},[2166],{"type":44,"value":1787},{"type":16,"tag":228,"props":2168,"children":2169},{"style":241},[2170],{"type":44,"value":1973},{"type":16,"tag":113,"props":2172,"children":2174},{"id":2173},"对于-arch-linux-系统",[2175],{"type":44,"value":2176},"对于 Arch Linux 系统",{"type":16,"tag":197,"props":2178,"children":2180},{"className":222,"code":2179,"language":221,"meta":6,"style":6},"sudo pacman -Syu docker\n",[2181],{"type":16,"tag":90,"props":2182,"children":2183},{"__ignoreMap":6},[2184],{"type":16,"tag":228,"props":2185,"children":2186},{"class":230,"line":231},[2187,2191,2196,2201],{"type":16,"tag":228,"props":2188,"children":2189},{"style":235},[2190],{"type":44,"value":1749},{"type":16,"tag":228,"props":2192,"children":2193},{"style":241},[2194],{"type":44,"value":2195}," pacman",{"type":16,"tag":228,"props":2197,"children":2198},{"style":247},[2199],{"type":44,"value":2200}," -Syu",{"type":16,"tag":228,"props":2202,"children":2203},{"style":241},[2204],{"type":44,"value":2205}," docker\n",{"type":16,"tag":113,"props":2207,"children":2209},{"id":2208},"对于-windows-或-macos",[2210],{"type":44,"value":2211},"对于 Windows 或 macOS",{"type":16,"tag":144,"props":2213,"children":2214},{},[2215],{"type":44,"value":2216},"从 Docker 官网下载 Docker Desktop 版本，然后按照安装向导进行安装。",{"type":16,"tag":113,"props":2218,"children":2220},{"id":2219},"通用步骤",[2221],{"type":44,"value":2219},{"type":16,"tag":144,"props":2223,"children":2224},{},[2225],{"type":44,"value":2226},"启动 Docker 服务：",{"type":16,"tag":197,"props":2228,"children":2230},{"className":222,"code":2229,"language":221,"meta":6,"style":6},"sudo systemctl start docker\n",[2231],{"type":16,"tag":90,"props":2232,"children":2233},{"__ignoreMap":6},[2234],{"type":16,"tag":228,"props":2235,"children":2236},{"class":230,"line":231},[2237,2241,2246,2251],{"type":16,"tag":228,"props":2238,"children":2239},{"style":235},[2240],{"type":44,"value":1749},{"type":16,"tag":228,"props":2242,"children":2243},{"style":241},[2244],{"type":44,"value":2245}," systemctl",{"type":16,"tag":228,"props":2247,"children":2248},{"style":241},[2249],{"type":44,"value":2250}," start",{"type":16,"tag":228,"props":2252,"children":2253},{"style":241},[2254],{"type":44,"value":2205},{"type":16,"tag":144,"props":2256,"children":2257},{},[2258],{"type":44,"value":2259},"验证 Docker 是否正确安装：",{"type":16,"tag":197,"props":2261,"children":2263},{"className":222,"code":2262,"language":221,"meta":6,"style":6},"sudo docker run hello-world\n",[2264],{"type":16,"tag":90,"props":2265,"children":2266},{"__ignoreMap":6},[2267],{"type":16,"tag":228,"props":2268,"children":2269},{"class":230,"line":231},[2270,2274,2279,2283],{"type":16,"tag":228,"props":2271,"children":2272},{"style":235},[2273],{"type":44,"value":1749},{"type":16,"tag":228,"props":2275,"children":2276},{"style":241},[2277],{"type":44,"value":2278}," docker",{"type":16,"tag":228,"props":2280,"children":2281},{"style":241},[2282],{"type":44,"value":244},{"type":16,"tag":228,"props":2284,"children":2285},{"style":241},[2286],{"type":44,"value":2287}," hello-world\n",{"type":16,"tag":144,"props":2289,"children":2290},{},[2291],{"type":44,"value":2292},"将用户添加到 docker 组：",{"type":16,"tag":197,"props":2294,"children":2296},{"className":222,"code":2295,"language":221,"meta":6,"style":6},"sudo usermod -aG docker your-username\n",[2297],{"type":16,"tag":90,"props":2298,"children":2299},{"__ignoreMap":6},[2300],{"type":16,"tag":228,"props":2301,"children":2302},{"class":230,"line":231},[2303,2307,2312,2317,2321],{"type":16,"tag":228,"props":2304,"children":2305},{"style":235},[2306],{"type":44,"value":1749},{"type":16,"tag":228,"props":2308,"children":2309},{"style":241},[2310],{"type":44,"value":2311}," usermod",{"type":16,"tag":228,"props":2313,"children":2314},{"style":247},[2315],{"type":44,"value":2316}," -aG",{"type":16,"tag":228,"props":2318,"children":2319},{"style":241},[2320],{"type":44,"value":2278},{"type":16,"tag":228,"props":2322,"children":2323},{"style":241},[2324],{"type":44,"value":2325}," your-username\n",{"type":16,"tag":71,"props":2327,"children":2329},{"id":2328},"docker使用场景",[2330],{"type":44,"value":2331},"Docker使用场景",{"type":16,"tag":46,"props":2333,"children":2334},{},[2335,2340,2345,2350,2354,2359,2364],{"type":16,"tag":50,"props":2336,"children":2337},{},[2338],{"type":44,"value":2339},"持续集成和持续部署（CI/CD）",{"type":16,"tag":50,"props":2341,"children":2342},{},[2343],{"type":44,"value":2344},"本地开发环境",{"type":16,"tag":50,"props":2346,"children":2347},{},[2348],{"type":44,"value":2349},"应用部署",{"type":16,"tag":50,"props":2351,"children":2352},{},[2353],{"type":44,"value":1715},{"type":16,"tag":50,"props":2355,"children":2356},{},[2357],{"type":44,"value":2358},"多环境一致性",{"type":16,"tag":50,"props":2360,"children":2361},{},[2362],{"type":44,"value":2363},"资源利用和隔离",{"type":16,"tag":50,"props":2365,"children":2366},{},[2367],{"type":44,"value":2368},"快速扩展和弹性",{"type":16,"tag":113,"props":2370,"children":2372},{"id":2371},"docker-的特点和用途",[2373],{"type":44,"value":2374},"Docker 的特点和用途",{"type":16,"tag":46,"props":2376,"children":2377},{},[2378,2383,2388,2393,2397],{"type":16,"tag":50,"props":2379,"children":2380},{},[2381],{"type":44,"value":2382},"容器化平台",{"type":16,"tag":50,"props":2384,"children":2385},{},[2386],{"type":44,"value":2387},"快速部署",{"type":16,"tag":50,"props":2389,"children":2390},{},[2391],{"type":44,"value":2392},"跨平台",{"type":16,"tag":50,"props":2394,"children":2395},{},[2396],{"type":44,"value":1705},{"type":16,"tag":50,"props":2398,"children":2399},{},[2400],{"type":44,"value":2401},"单机使用",{"type":16,"tag":113,"props":2403,"children":2405},{"id":2404},"kubernetes-的特点和用途",[2406],{"type":44,"value":2407},"Kubernetes 的特点和用途",{"type":16,"tag":46,"props":2409,"children":2410},{},[2411,2416,2421,2426,2431],{"type":16,"tag":50,"props":2412,"children":2413},{},[2414],{"type":44,"value":2415},"容器编排平台",{"type":16,"tag":50,"props":2417,"children":2418},{},[2419],{"type":44,"value":2420},"集群管理",{"type":16,"tag":50,"props":2422,"children":2423},{},[2424],{"type":44,"value":2425},"服务发现和负载均衡",{"type":16,"tag":50,"props":2427,"children":2428},{},[2429],{"type":44,"value":2430},"自动部署和回滚",{"type":16,"tag":50,"props":2432,"children":2433},{},[2434],{"type":44,"value":2435},"存储和网络管理",{"type":16,"tag":113,"props":2437,"children":2439},{"id":2438},"docker-与-kubernetes-的关系",[2440],{"type":44,"value":2441},"Docker 与 Kubernetes 的关系",{"type":16,"tag":46,"props":2443,"children":2444},{},[2445,2455,2465],{"type":16,"tag":50,"props":2446,"children":2447},{},[2448,2453],{"type":16,"tag":1567,"props":2449,"children":2450},{},[2451],{"type":44,"value":2452},"互补性",{"type":44,"value":2454},"：Docker 可以作为 Kubernetes 中的容器运行时，但 Kubernetes 支持多种容器运行时，如 containerd、CRI-O 等。",{"type":16,"tag":50,"props":2456,"children":2457},{},[2458,2463],{"type":16,"tag":1567,"props":2459,"children":2460},{},[2461],{"type":44,"value":2462},"集成",{"type":44,"value":2464},"：Docker 容器可以被 Kubernetes 管理，利用 Kubernetes 的编排能力来部署、扩展和管理 Docker 容器。",{"type":16,"tag":50,"props":2466,"children":2467},{},[2468,2473],{"type":16,"tag":1567,"props":2469,"children":2470},{},[2471],{"type":44,"value":2472},"生态",{"type":44,"value":2474},"：Docker 生态系统中的许多工具和实践可以与 Kubernetes 集成，形成完整的云原生技术栈。",{"type":16,"tag":71,"props":2476,"children":2478},{"id":2477},"docker和虚拟机的区别",[2479],{"type":44,"value":2480},"Docker和虚拟机的区别",{"type":44,"value":2482},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":16,"tag":2484,"props":2485,"children":2486},"table",{},[2487,2511],{"type":16,"tag":2488,"props":2489,"children":2490},"thead",{},[2491],{"type":16,"tag":2492,"props":2493,"children":2494},"tr",{},[2495,2501,2506],{"type":16,"tag":2496,"props":2497,"children":2498},"th",{},[2499],{"type":44,"value":2500},"特性",{"type":16,"tag":2496,"props":2502,"children":2503},{},[2504],{"type":44,"value":2505},"Docker 容器",{"type":16,"tag":2496,"props":2507,"children":2508},{},[2509],{"type":44,"value":2510},"虚拟机",{"type":16,"tag":2512,"props":2513,"children":2514},"tbody",{},[2515,2533,2551,2569,2587,2604],{"type":16,"tag":2492,"props":2516,"children":2517},{},[2518,2524,2529],{"type":16,"tag":2519,"props":2520,"children":2521},"td",{},[2522],{"type":44,"value":2523},"操作系统级别",{"type":16,"tag":2519,"props":2525,"children":2526},{},[2527],{"type":44,"value":2528},"应用级别",{"type":16,"tag":2519,"props":2530,"children":2531},{},[2532],{"type":44,"value":2523},{"type":16,"tag":2492,"props":2534,"children":2535},{},[2536,2541,2546],{"type":16,"tag":2519,"props":2537,"children":2538},{},[2539],{"type":44,"value":2540},"启动速度",{"type":16,"tag":2519,"props":2542,"children":2543},{},[2544],{"type":44,"value":2545},"几乎瞬间",{"type":16,"tag":2519,"props":2547,"children":2548},{},[2549],{"type":44,"value":2550},"数分钟",{"type":16,"tag":2492,"props":2552,"children":2553},{},[2554,2559,2564],{"type":16,"tag":2519,"props":2555,"children":2556},{},[2557],{"type":44,"value":2558},"资源占用",{"type":16,"tag":2519,"props":2560,"children":2561},{},[2562],{"type":44,"value":2563},"共享宿主机内核",{"type":16,"tag":2519,"props":2565,"children":2566},{},[2567],{"type":44,"value":2568},"独立分配内存和存储",{"type":16,"tag":2492,"props":2570,"children":2571},{},[2572,2577,2582],{"type":16,"tag":2519,"props":2573,"children":2574},{},[2575],{"type":44,"value":2576},"性能开销",{"type":16,"tag":2519,"props":2578,"children":2579},{},[2580],{"type":44,"value":2581},"接近原生",{"type":16,"tag":2519,"props":2583,"children":2584},{},[2585],{"type":44,"value":2586},"较高",{"type":16,"tag":2492,"props":2588,"children":2589},{},[2590,2594,2599],{"type":16,"tag":2519,"props":2591,"children":2592},{},[2593],{"type":44,"value":1685},{"type":16,"tag":2519,"props":2595,"children":2596},{},[2597],{"type":44,"value":2598},"更好",{"type":16,"tag":2519,"props":2600,"children":2601},{},[2602],{"type":44,"value":2603},"依赖虚拟机管理程序",{"type":16,"tag":2492,"props":2605,"children":2606},{},[2607,2612,2617],{"type":16,"tag":2519,"props":2608,"children":2609},{},[2610],{"type":44,"value":2611},"隔离性",{"type":16,"tag":2519,"props":2613,"children":2614},{},[2615],{"type":44,"value":2616},"较低",{"type":16,"tag":2519,"props":2618,"children":2619},{},[2620],{"type":44,"value":2621},"较强",{"type":16,"tag":71,"props":2623,"children":2625},{"id":2624},"docker基本使用",[2626],{"type":44,"value":2627},"Docker基本使用",{"type":16,"tag":144,"props":2629,"children":2630},{},[2631],{"type":44,"value":2632},"运行容器：",{"type":16,"tag":197,"props":2634,"children":2636},{"className":222,"code":2635,"language":221,"meta":6,"style":6},"docker run -d -p 80:80 --name webserver nginx\n",[2637],{"type":16,"tag":90,"props":2638,"children":2639},{"__ignoreMap":6},[2640],{"type":16,"tag":228,"props":2641,"children":2642},{"class":230,"line":231},[2643,2647,2651,2655,2659,2664,2669,2673,2678],{"type":16,"tag":228,"props":2644,"children":2645},{"style":235},[2646],{"type":44,"value":238},{"type":16,"tag":228,"props":2648,"children":2649},{"style":241},[2650],{"type":44,"value":244},{"type":16,"tag":228,"props":2652,"children":2653},{"style":247},[2654],{"type":44,"value":348},{"type":16,"tag":228,"props":2656,"children":2657},{"style":247},[2658],{"type":44,"value":276},{"type":16,"tag":228,"props":2660,"children":2661},{"style":247},[2662],{"type":44,"value":2663}," 80",{"type":16,"tag":228,"props":2665,"children":2666},{"style":241},[2667],{"type":44,"value":2668},":80",{"type":16,"tag":228,"props":2670,"children":2671},{"style":247},[2672],{"type":44,"value":258},{"type":16,"tag":228,"props":2674,"children":2675},{"style":241},[2676],{"type":44,"value":2677}," webserver",{"type":16,"tag":228,"props":2679,"children":2680},{"style":241},[2681],{"type":44,"value":2682}," nginx\n",{"type":16,"tag":144,"props":2684,"children":2685},{},[2686],{"type":44,"value":2687},"查看容器列表：",{"type":16,"tag":197,"props":2689,"children":2691},{"className":222,"code":2690,"language":221,"meta":6,"style":6},"docker ps\n",[2692],{"type":16,"tag":90,"props":2693,"children":2694},{"__ignoreMap":6},[2695],{"type":16,"tag":228,"props":2696,"children":2697},{"class":230,"line":231},[2698,2702],{"type":16,"tag":228,"props":2699,"children":2700},{"style":235},[2701],{"type":44,"value":238},{"type":16,"tag":228,"props":2703,"children":2704},{"style":241},[2705],{"type":44,"value":2706}," ps\n",{"type":16,"tag":144,"props":2708,"children":2709},{},[2710],{"type":44,"value":2711},"停止容器：",{"type":16,"tag":197,"props":2713,"children":2715},{"className":222,"code":2714,"language":221,"meta":6,"style":6},"docker stop webserver\n",[2716],{"type":16,"tag":90,"props":2717,"children":2718},{"__ignoreMap":6},[2719],{"type":16,"tag":228,"props":2720,"children":2721},{"class":230,"line":231},[2722,2726,2731],{"type":16,"tag":228,"props":2723,"children":2724},{"style":235},[2725],{"type":44,"value":238},{"type":16,"tag":228,"props":2727,"children":2728},{"style":241},[2729],{"type":44,"value":2730}," stop",{"type":16,"tag":228,"props":2732,"children":2733},{"style":241},[2734],{"type":44,"value":2735}," webserver\n",{"type":16,"tag":144,"props":2737,"children":2738},{},[2739],{"type":44,"value":2740},"查看容器日志：",{"type":16,"tag":197,"props":2742,"children":2744},{"className":222,"code":2743,"language":221,"meta":6,"style":6},"docker logs webserver\n",[2745],{"type":16,"tag":90,"props":2746,"children":2747},{"__ignoreMap":6},[2748],{"type":16,"tag":228,"props":2749,"children":2750},{"class":230,"line":231},[2751,2755,2760],{"type":16,"tag":228,"props":2752,"children":2753},{"style":235},[2754],{"type":44,"value":238},{"type":16,"tag":228,"props":2756,"children":2757},{"style":241},[2758],{"type":44,"value":2759}," logs",{"type":16,"tag":228,"props":2761,"children":2762},{"style":241},[2763],{"type":44,"value":2735},{"type":16,"tag":144,"props":2765,"children":2766},{},[2767],{"type":44,"value":2768},"进入容器：",{"type":16,"tag":197,"props":2770,"children":2772},{"className":222,"code":2771,"language":221,"meta":6,"style":6},"docker exec -it webserver /bin/bash\n",[2773],{"type":16,"tag":90,"props":2774,"children":2775},{"__ignoreMap":6},[2776],{"type":16,"tag":228,"props":2777,"children":2778},{"class":230,"line":231},[2779,2783,2787,2791,2795],{"type":16,"tag":228,"props":2780,"children":2781},{"style":235},[2782],{"type":44,"value":238},{"type":16,"tag":228,"props":2784,"children":2785},{"style":241},[2786],{"type":44,"value":727},{"type":16,"tag":228,"props":2788,"children":2789},{"style":247},[2790],{"type":44,"value":732},{"type":16,"tag":228,"props":2792,"children":2793},{"style":241},[2794],{"type":44,"value":2677},{"type":16,"tag":228,"props":2796,"children":2797},{"style":241},[2798],{"type":44,"value":2799}," /bin/bash\n",{"type":16,"tag":144,"props":2801,"children":2802},{},[2803],{"type":44,"value":2804},"构建镜像：",{"type":16,"tag":197,"props":2806,"children":2808},{"className":222,"code":2807,"language":221,"meta":6,"style":6},"docker build -t myimage .\n",[2809],{"type":16,"tag":90,"props":2810,"children":2811},{"__ignoreMap":6},[2812],{"type":16,"tag":228,"props":2813,"children":2814},{"class":230,"line":231},[2815,2819,2824,2829,2834],{"type":16,"tag":228,"props":2816,"children":2817},{"style":235},[2818],{"type":44,"value":238},{"type":16,"tag":228,"props":2820,"children":2821},{"style":241},[2822],{"type":44,"value":2823}," build",{"type":16,"tag":228,"props":2825,"children":2826},{"style":247},[2827],{"type":44,"value":2828}," -t",{"type":16,"tag":228,"props":2830,"children":2831},{"style":241},[2832],{"type":44,"value":2833}," myimage",{"type":16,"tag":228,"props":2835,"children":2836},{"style":241},[2837],{"type":44,"value":2838}," .\n",{"type":16,"tag":144,"props":2840,"children":2841},{},[2842],{"type":44,"value":2843},"推送镜像到 Docker Hub：",{"type":16,"tag":197,"props":2845,"children":2847},{"className":222,"code":2846,"language":221,"meta":6,"style":6},"docker push myusername/myimage\n",[2848],{"type":16,"tag":90,"props":2849,"children":2850},{"__ignoreMap":6},[2851],{"type":16,"tag":228,"props":2852,"children":2853},{"class":230,"line":231},[2854,2858,2863],{"type":16,"tag":228,"props":2855,"children":2856},{"style":235},[2857],{"type":44,"value":238},{"type":16,"tag":228,"props":2859,"children":2860},{"style":241},[2861],{"type":44,"value":2862}," push",{"type":16,"tag":228,"props":2864,"children":2865},{"style":241},[2866],{"type":44,"value":2867}," myusername/myimage\n",{"type":16,"tag":71,"props":2869,"children":2871},{"id":2870},"常用的-docker-run-参数",[2872],{"type":44,"value":2873},"常用的 docker run 参数",{"type":44,"value":2875},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":16,"tag":2484,"props":2877,"children":2878},{},[2879,2895],{"type":16,"tag":2488,"props":2880,"children":2881},{},[2882],{"type":16,"tag":2492,"props":2883,"children":2884},{},[2885,2890],{"type":16,"tag":2496,"props":2886,"children":2887},{},[2888],{"type":44,"value":2889},"参数",{"type":16,"tag":2496,"props":2891,"children":2892},{},[2893],{"type":44,"value":2894},"说明",{"type":16,"tag":2512,"props":2896,"children":2897},{},[2898,2911,2924,2937,2950,2963,2976,2989,3002,3015,3028,3041,3054,3067,3080,3093,3106,3119,3132],{"type":16,"tag":2492,"props":2899,"children":2900},{},[2901,2906],{"type":16,"tag":2519,"props":2902,"children":2903},{},[2904],{"type":44,"value":2905},"-d",{"type":16,"tag":2519,"props":2907,"children":2908},{},[2909],{"type":44,"value":2910},"以守护进程模式运行容器（后台运行）",{"type":16,"tag":2492,"props":2912,"children":2913},{},[2914,2919],{"type":16,"tag":2519,"props":2915,"children":2916},{},[2917],{"type":44,"value":2918},"--name",{"type":16,"tag":2519,"props":2920,"children":2921},{},[2922],{"type":44,"value":2923},"为容器指定一个名称",{"type":16,"tag":2492,"props":2925,"children":2926},{},[2927,2932],{"type":16,"tag":2519,"props":2928,"children":2929},{},[2930],{"type":44,"value":2931},"-e / --env",{"type":16,"tag":2519,"props":2933,"children":2934},{},[2935],{"type":44,"value":2936},"设置环境变量",{"type":16,"tag":2492,"props":2938,"children":2939},{},[2940,2945],{"type":16,"tag":2519,"props":2941,"children":2942},{},[2943],{"type":44,"value":2944},"-P",{"type":16,"tag":2519,"props":2946,"children":2947},{},[2948],{"type":44,"value":2949},"启用端口的随机分配",{"type":16,"tag":2492,"props":2951,"children":2952},{},[2953,2958],{"type":16,"tag":2519,"props":2954,"children":2955},{},[2956],{"type":44,"value":2957},"-p / --publish",{"type":16,"tag":2519,"props":2959,"children":2960},{},[2961],{"type":44,"value":2962},"端口映射",{"type":16,"tag":2492,"props":2964,"children":2965},{},[2966,2971],{"type":16,"tag":2519,"props":2967,"children":2968},{},[2969],{"type":44,"value":2970},"-v / --volume",{"type":16,"tag":2519,"props":2972,"children":2973},{},[2974],{"type":44,"value":2975},"挂载卷",{"type":16,"tag":2492,"props":2977,"children":2978},{},[2979,2984],{"type":16,"tag":2519,"props":2980,"children":2981},{},[2982],{"type":44,"value":2983},"--mount",{"type":16,"tag":2519,"props":2985,"children":2986},{},[2987],{"type":44,"value":2988},"更高级的挂载语法",{"type":16,"tag":2492,"props":2990,"children":2991},{},[2992,2997],{"type":16,"tag":2519,"props":2993,"children":2994},{},[2995],{"type":44,"value":2996},"-w / --workdir",{"type":16,"tag":2519,"props":2998,"children":2999},{},[3000],{"type":44,"value":3001},"指定工作目录",{"type":16,"tag":2492,"props":3003,"children":3004},{},[3005,3010],{"type":16,"tag":2519,"props":3006,"children":3007},{},[3008],{"type":44,"value":3009},"--restart",{"type":16,"tag":2519,"props":3011,"children":3012},{},[3013],{"type":44,"value":3014},"设置容器的重启策略",{"type":16,"tag":2492,"props":3016,"children":3017},{},[3018,3023],{"type":16,"tag":2519,"props":3019,"children":3020},{},[3021],{"type":44,"value":3022},"--rm",{"type":16,"tag":2519,"props":3024,"children":3025},{},[3026],{"type":44,"value":3027},"容器退出时自动清理",{"type":16,"tag":2492,"props":3029,"children":3030},{},[3031,3036],{"type":16,"tag":2519,"props":3032,"children":3033},{},[3034],{"type":44,"value":3035},"--network",{"type":16,"tag":2519,"props":3037,"children":3038},{},[3039],{"type":44,"value":3040},"指定容器连接的网络",{"type":16,"tag":2492,"props":3042,"children":3043},{},[3044,3049],{"type":16,"tag":2519,"props":3045,"children":3046},{},[3047],{"type":44,"value":3048},"--cpus",{"type":16,"tag":2519,"props":3050,"children":3051},{},[3052],{"type":44,"value":3053},"限制容器可以使用的 CPU 数量",{"type":16,"tag":2492,"props":3055,"children":3056},{},[3057,3062],{"type":16,"tag":2519,"props":3058,"children":3059},{},[3060],{"type":44,"value":3061},"--memory / -m",{"type":16,"tag":2519,"props":3063,"children":3064},{},[3065],{"type":44,"value":3066},"设置内存限制",{"type":16,"tag":2492,"props":3068,"children":3069},{},[3070,3075],{"type":16,"tag":2519,"props":3071,"children":3072},{},[3073],{"type":44,"value":3074},"--gpus",{"type":16,"tag":2519,"props":3076,"children":3077},{},[3078],{"type":44,"value":3079},"指定容器可以使用的 GPU 设备",{"type":16,"tag":2492,"props":3081,"children":3082},{},[3083,3088],{"type":16,"tag":2519,"props":3084,"children":3085},{},[3086],{"type":44,"value":3087},"--privileged",{"type":16,"tag":2519,"props":3089,"children":3090},{},[3091],{"type":44,"value":3092},"以特权模式运行容器",{"type":16,"tag":2492,"props":3094,"children":3095},{},[3096,3101],{"type":16,"tag":2519,"props":3097,"children":3098},{},[3099],{"type":44,"value":3100},"--read-only",{"type":16,"tag":2519,"props":3102,"children":3103},{},[3104],{"type":44,"value":3105},"使容器的根文件系统为只读模式",{"type":16,"tag":2492,"props":3107,"children":3108},{},[3109,3114],{"type":16,"tag":2519,"props":3110,"children":3111},{},[3112],{"type":44,"value":3113},"--entrypoint",{"type":16,"tag":2519,"props":3115,"children":3116},{},[3117],{"type":44,"value":3118},"覆盖容器的默认入口点",{"type":16,"tag":2492,"props":3120,"children":3121},{},[3122,3127],{"type":16,"tag":2519,"props":3123,"children":3124},{},[3125],{"type":44,"value":3126},"-t / --tty",{"type":16,"tag":2519,"props":3128,"children":3129},{},[3130],{"type":44,"value":3131},"分配一个伪终端",{"type":16,"tag":2492,"props":3133,"children":3134},{},[3135,3140],{"type":16,"tag":2519,"props":3136,"children":3137},{},[3138],{"type":44,"value":3139},"-i / --interactive",{"type":16,"tag":2519,"props":3141,"children":3142},{},[3143],{"type":44,"value":3144},"保持 STDIN 打开",{"type":16,"tag":144,"props":3146,"children":3147},{},[3148],{"type":44,"value":3149},"示例：",{"type":16,"tag":197,"props":3151,"children":3153},{"className":222,"code":3152,"language":221,"meta":6,"style":6},"docker run -d --name my_container -p 8080:80 -v my_volume:/path/in/container some-image\n",[3154],{"type":16,"tag":90,"props":3155,"children":3156},{"__ignoreMap":6},[3157],{"type":16,"tag":228,"props":3158,"children":3159},{"class":230,"line":231},[3160,3164,3168,3172,3176,3181,3185,3190,3194,3198,3203],{"type":16,"tag":228,"props":3161,"children":3162},{"style":235},[3163],{"type":44,"value":238},{"type":16,"tag":228,"props":3165,"children":3166},{"style":241},[3167],{"type":44,"value":244},{"type":16,"tag":228,"props":3169,"children":3170},{"style":247},[3171],{"type":44,"value":348},{"type":16,"tag":228,"props":3173,"children":3174},{"style":247},[3175],{"type":44,"value":258},{"type":16,"tag":228,"props":3177,"children":3178},{"style":241},[3179],{"type":44,"value":3180}," my_container",{"type":16,"tag":228,"props":3182,"children":3183},{"style":247},[3184],{"type":44,"value":276},{"type":16,"tag":228,"props":3186,"children":3187},{"style":247},[3188],{"type":44,"value":3189}," 8080",{"type":16,"tag":228,"props":3191,"children":3192},{"style":241},[3193],{"type":44,"value":2668},{"type":16,"tag":228,"props":3195,"children":3196},{"style":247},[3197],{"type":44,"value":299},{"type":16,"tag":228,"props":3199,"children":3200},{"style":241},[3201],{"type":44,"value":3202}," my_volume:/path/in/container",{"type":16,"tag":228,"props":3204,"children":3205},{"style":241},[3206],{"type":44,"value":3207}," some-image\n",{"type":16,"tag":71,"props":3209,"children":3211},{"id":3210},"docker-网络",[3212],{"type":44,"value":3213},"Docker 网络",{"type":16,"tag":113,"props":3215,"children":3217},{"id":3216},"网络类型",[3218],{"type":44,"value":3216},{"type":16,"tag":46,"props":3220,"children":3221},{},[3222,3232,3242,3252,3262,3272],{"type":16,"tag":50,"props":3223,"children":3224},{},[3225,3230],{"type":16,"tag":1567,"props":3226,"children":3227},{},[3228],{"type":44,"value":3229},"桥接网络（Bridge）",{"type":44,"value":3231},"：默认网络类型，适合大多数容器间通信需求。",{"type":16,"tag":50,"props":3233,"children":3234},{},[3235,3240],{"type":16,"tag":1567,"props":3236,"children":3237},{},[3238],{"type":44,"value":3239},"覆盖网络（Overlay）",{"type":44,"value":3241},"：用于跨主机的容器通信，常用于多节点的 Docker 集群。",{"type":16,"tag":50,"props":3243,"children":3244},{},[3245,3250],{"type":16,"tag":1567,"props":3246,"children":3247},{},[3248],{"type":44,"value":3249},"主机网络（Host）",{"type":44,"value":3251},"：容器共享主机的网络命名空间。",{"type":16,"tag":50,"props":3253,"children":3254},{},[3255,3260],{"type":16,"tag":1567,"props":3256,"children":3257},{},[3258],{"type":44,"value":3259},"无网络（None）",{"type":44,"value":3261},"：容器没有分配网络，完全隔离。",{"type":16,"tag":50,"props":3263,"children":3264},{},[3265,3270],{"type":16,"tag":1567,"props":3266,"children":3267},{},[3268],{"type":44,"value":3269},"Macvlan 网络",{"type":44,"value":3271},"：允许容器拥有独立的 MAC 地址。",{"type":16,"tag":50,"props":3273,"children":3274},{},[3275,3280],{"type":16,"tag":1567,"props":3276,"children":3277},{},[3278],{"type":44,"value":3279},"插件网络",{"type":44,"value":3281},"：第三方插件提供的网络类型。",{"type":16,"tag":113,"props":3283,"children":3285},{"id":3284},"创建网络",[3286],{"type":44,"value":3284},{"type":16,"tag":197,"props":3288,"children":3290},{"className":222,"code":3289,"language":221,"meta":6,"style":6},"docker network create --driver bridge my-bridge-network\n",[3291],{"type":16,"tag":90,"props":3292,"children":3293},{"__ignoreMap":6},[3294],{"type":16,"tag":228,"props":3295,"children":3296},{"class":230,"line":231},[3297,3301,3306,3311,3315,3320],{"type":16,"tag":228,"props":3298,"children":3299},{"style":235},[3300],{"type":44,"value":238},{"type":16,"tag":228,"props":3302,"children":3303},{"style":241},[3304],{"type":44,"value":3305}," network",{"type":16,"tag":228,"props":3307,"children":3308},{"style":241},[3309],{"type":44,"value":3310}," create",{"type":16,"tag":228,"props":3312,"children":3313},{"style":247},[3314],{"type":44,"value":588},{"type":16,"tag":228,"props":3316,"children":3317},{"style":241},[3318],{"type":44,"value":3319}," bridge",{"type":16,"tag":228,"props":3321,"children":3322},{"style":241},[3323],{"type":44,"value":3324}," my-bridge-network\n",{"type":16,"tag":144,"props":3326,"children":3327},{},[3328],{"type":44,"value":3329},"配置子网和网关：",{"type":16,"tag":197,"props":3331,"children":3333},{"className":222,"code":3332,"language":221,"meta":6,"style":6},"docker network create \\\n  --driver bridge \\\n  --subnet 192.168.1.0/24 \\\n  --gateway 192.168.1.1 \\\n  my-bridge-network\n",[3334],{"type":16,"tag":90,"props":3335,"children":3336},{"__ignoreMap":6},[3337,3356,3372,3394,3415],{"type":16,"tag":228,"props":3338,"children":3339},{"class":230,"line":231},[3340,3344,3348,3352],{"type":16,"tag":228,"props":3341,"children":3342},{"style":235},[3343],{"type":44,"value":238},{"type":16,"tag":228,"props":3345,"children":3346},{"style":241},[3347],{"type":44,"value":3305},{"type":16,"tag":228,"props":3349,"children":3350},{"style":241},[3351],{"type":44,"value":3310},{"type":16,"tag":228,"props":3353,"children":3354},{"style":247},[3355],{"type":44,"value":250},{"type":16,"tag":228,"props":3357,"children":3358},{"class":230,"line":22},[3359,3364,3368],{"type":16,"tag":228,"props":3360,"children":3361},{"style":247},[3362],{"type":44,"value":3363},"  --driver",{"type":16,"tag":228,"props":3365,"children":3366},{"style":241},[3367],{"type":44,"value":3319},{"type":16,"tag":228,"props":3369,"children":3370},{"style":247},[3371],{"type":44,"value":250},{"type":16,"tag":228,"props":3373,"children":3374},{"class":230,"line":270},[3375,3380,3385,3390],{"type":16,"tag":228,"props":3376,"children":3377},{"style":247},[3378],{"type":44,"value":3379},"  --subnet",{"type":16,"tag":228,"props":3381,"children":3382},{"style":247},[3383],{"type":44,"value":3384}," 192.168",{"type":16,"tag":228,"props":3386,"children":3387},{"style":241},[3388],{"type":44,"value":3389},".1.0/24",{"type":16,"tag":228,"props":3391,"children":3392},{"style":247},[3393],{"type":44,"value":250},{"type":16,"tag":228,"props":3395,"children":3396},{"class":230,"line":293},[3397,3402,3406,3411],{"type":16,"tag":228,"props":3398,"children":3399},{"style":247},[3400],{"type":44,"value":3401},"  --gateway",{"type":16,"tag":228,"props":3403,"children":3404},{"style":247},[3405],{"type":44,"value":3384},{"type":16,"tag":228,"props":3407,"children":3408},{"style":241},[3409],{"type":44,"value":3410},".1.1",{"type":16,"tag":228,"props":3412,"children":3413},{"style":247},[3414],{"type":44,"value":250},{"type":16,"tag":228,"props":3416,"children":3417},{"class":230,"line":311},[3418],{"type":16,"tag":228,"props":3419,"children":3420},{"style":241},[3421],{"type":44,"value":3422},"  my-bridge-network\n",{"type":16,"tag":144,"props":3424,"children":3425},{},[3426],{"type":44,"value":3427},"连接容器到网络：",{"type":16,"tag":197,"props":3429,"children":3431},{"className":222,"code":3430,"language":221,"meta":6,"style":6},"docker run -d --name my-container --network my-bridge-network my-image\n",[3432],{"type":16,"tag":90,"props":3433,"children":3434},{"__ignoreMap":6},[3435],{"type":16,"tag":228,"props":3436,"children":3437},{"class":230,"line":231},[3438,3442,3446,3450,3454,3459,3464,3469],{"type":16,"tag":228,"props":3439,"children":3440},{"style":235},[3441],{"type":44,"value":238},{"type":16,"tag":228,"props":3443,"children":3444},{"style":241},[3445],{"type":44,"value":244},{"type":16,"tag":228,"props":3447,"children":3448},{"style":247},[3449],{"type":44,"value":348},{"type":16,"tag":228,"props":3451,"children":3452},{"style":247},[3453],{"type":44,"value":258},{"type":16,"tag":228,"props":3455,"children":3456},{"style":241},[3457],{"type":44,"value":3458}," my-container",{"type":16,"tag":228,"props":3460,"children":3461},{"style":247},[3462],{"type":44,"value":3463}," --network",{"type":16,"tag":228,"props":3465,"children":3466},{"style":241},[3467],{"type":44,"value":3468}," my-bridge-network",{"type":16,"tag":228,"props":3470,"children":3471},{"style":241},[3472],{"type":44,"value":3473}," my-image\n",{"type":16,"tag":144,"props":3475,"children":3476},{},[3477],{"type":44,"value":3478},"将已有容器连接到网络：",{"type":16,"tag":197,"props":3480,"children":3482},{"className":222,"code":3481,"language":221,"meta":6,"style":6},"docker network connect my-bridge-network my-existing-container\n",[3483],{"type":16,"tag":90,"props":3484,"children":3485},{"__ignoreMap":6},[3486],{"type":16,"tag":228,"props":3487,"children":3488},{"class":230,"line":231},[3489,3493,3497,3502,3506],{"type":16,"tag":228,"props":3490,"children":3491},{"style":235},[3492],{"type":44,"value":238},{"type":16,"tag":228,"props":3494,"children":3495},{"style":241},[3496],{"type":44,"value":3305},{"type":16,"tag":228,"props":3498,"children":3499},{"style":241},[3500],{"type":44,"value":3501}," connect",{"type":16,"tag":228,"props":3503,"children":3504},{"style":241},[3505],{"type":44,"value":3468},{"type":16,"tag":228,"props":3507,"children":3508},{"style":241},[3509],{"type":44,"value":3510}," my-existing-container\n",{"type":16,"tag":144,"props":3512,"children":3513},{},[3514],{"type":44,"value":3515},"断开容器与网络的连接：",{"type":16,"tag":197,"props":3517,"children":3519},{"className":222,"code":3518,"language":221,"meta":6,"style":6},"docker network disconnect my-bridge-network my-container\n",[3520],{"type":16,"tag":90,"props":3521,"children":3522},{"__ignoreMap":6},[3523],{"type":16,"tag":228,"props":3524,"children":3525},{"class":230,"line":231},[3526,3530,3534,3539,3543],{"type":16,"tag":228,"props":3527,"children":3528},{"style":235},[3529],{"type":44,"value":238},{"type":16,"tag":228,"props":3531,"children":3532},{"style":241},[3533],{"type":44,"value":3305},{"type":16,"tag":228,"props":3535,"children":3536},{"style":241},[3537],{"type":44,"value":3538}," disconnect",{"type":16,"tag":228,"props":3540,"children":3541},{"style":241},[3542],{"type":44,"value":3468},{"type":16,"tag":228,"props":3544,"children":3545},{"style":241},[3546],{"type":44,"value":3547}," my-container\n",{"type":16,"tag":144,"props":3549,"children":3550},{},[3551],{"type":44,"value":3552},"查看网络详情：",{"type":16,"tag":197,"props":3554,"children":3556},{"className":222,"code":3555,"language":221,"meta":6,"style":6},"docker network inspect my-bridge-network\n",[3557],{"type":16,"tag":90,"props":3558,"children":3559},{"__ignoreMap":6},[3560],{"type":16,"tag":228,"props":3561,"children":3562},{"class":230,"line":231},[3563,3567,3571,3576],{"type":16,"tag":228,"props":3564,"children":3565},{"style":235},[3566],{"type":44,"value":238},{"type":16,"tag":228,"props":3568,"children":3569},{"style":241},[3570],{"type":44,"value":3305},{"type":16,"tag":228,"props":3572,"children":3573},{"style":241},[3574],{"type":44,"value":3575}," inspect",{"type":16,"tag":228,"props":3577,"children":3578},{"style":241},[3579],{"type":44,"value":3324},{"type":16,"tag":144,"props":3581,"children":3582},{},[3583],{"type":44,"value":3584},"删除网络：",{"type":16,"tag":197,"props":3586,"children":3588},{"className":222,"code":3587,"language":221,"meta":6,"style":6},"docker network rm my-bridge-network\n",[3589],{"type":16,"tag":90,"props":3590,"children":3591},{"__ignoreMap":6},[3592],{"type":16,"tag":228,"props":3593,"children":3594},{"class":230,"line":231},[3595,3599,3603,3608],{"type":16,"tag":228,"props":3596,"children":3597},{"style":235},[3598],{"type":44,"value":238},{"type":16,"tag":228,"props":3600,"children":3601},{"style":241},[3602],{"type":44,"value":3305},{"type":16,"tag":228,"props":3604,"children":3605},{"style":241},[3606],{"type":44,"value":3607}," rm",{"type":16,"tag":228,"props":3609,"children":3610},{"style":241},[3611],{"type":44,"value":3324},{"type":16,"tag":144,"props":3613,"children":3614},{},[3615],{"type":44,"value":3616},"使用覆盖网络：",{"type":16,"tag":197,"props":3618,"children":3620},{"className":222,"code":3619,"language":221,"meta":6,"style":6},"docker network create --driver overlay --attachable my-overlay-network\n",[3621],{"type":16,"tag":90,"props":3622,"children":3623},{"__ignoreMap":6},[3624],{"type":16,"tag":228,"props":3625,"children":3626},{"class":230,"line":231},[3627,3631,3635,3639,3643,3648,3653],{"type":16,"tag":228,"props":3628,"children":3629},{"style":235},[3630],{"type":44,"value":238},{"type":16,"tag":228,"props":3632,"children":3633},{"style":241},[3634],{"type":44,"value":3305},{"type":16,"tag":228,"props":3636,"children":3637},{"style":241},[3638],{"type":44,"value":3310},{"type":16,"tag":228,"props":3640,"children":3641},{"style":247},[3642],{"type":44,"value":588},{"type":16,"tag":228,"props":3644,"children":3645},{"style":241},[3646],{"type":44,"value":3647}," overlay",{"type":16,"tag":228,"props":3649,"children":3650},{"style":247},[3651],{"type":44,"value":3652}," --attachable",{"type":16,"tag":228,"props":3654,"children":3655},{"style":241},[3656],{"type":44,"value":3657}," my-overlay-network\n",{"type":16,"tag":71,"props":3659,"children":3661},{"id":3660},"dockerfile",[3662],{"type":44,"value":3663},"Dockerfile",{"type":16,"tag":144,"props":3665,"children":3666},{},[3667],{"type":44,"value":3668},"Dockerfile 是一个文本文件，包含了一系列的指令和参数，用于定义如何构建一个 Docker 镜像。",{"type":16,"tag":113,"props":3670,"children":3672},{"id":3671},"常用指令",[3673],{"type":44,"value":3671},{"type":44,"value":3675},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":16,"tag":2484,"props":3677,"children":3678},{},[3679,3699],{"type":16,"tag":2488,"props":3680,"children":3681},{},[3682],{"type":16,"tag":2492,"props":3683,"children":3684},{},[3685,3690,3694],{"type":16,"tag":2496,"props":3686,"children":3687},{},[3688],{"type":44,"value":3689},"指令",{"type":16,"tag":2496,"props":3691,"children":3692},{},[3693],{"type":44,"value":2894},{"type":16,"tag":2496,"props":3695,"children":3696},{},[3697],{"type":44,"value":3698},"示例",{"type":16,"tag":2512,"props":3700,"children":3701},{},[3702,3724,3746,3768,3790,3811,3833,3855,3877,3899,3921,3943,3965,3987],{"type":16,"tag":2492,"props":3703,"children":3704},{},[3705,3710,3715],{"type":16,"tag":2519,"props":3706,"children":3707},{},[3708],{"type":44,"value":3709},"FROM",{"type":16,"tag":2519,"props":3711,"children":3712},{},[3713],{"type":44,"value":3714},"基础镜像",{"type":16,"tag":2519,"props":3716,"children":3717},{},[3718],{"type":16,"tag":90,"props":3719,"children":3721},{"className":3720},[],[3722],{"type":44,"value":3723},"FROM ubuntu:20.04",{"type":16,"tag":2492,"props":3725,"children":3726},{},[3727,3732,3737],{"type":16,"tag":2519,"props":3728,"children":3729},{},[3730],{"type":44,"value":3731},"RUN",{"type":16,"tag":2519,"props":3733,"children":3734},{},[3735],{"type":44,"value":3736},"执行命令",{"type":16,"tag":2519,"props":3738,"children":3739},{},[3740],{"type":16,"tag":90,"props":3741,"children":3743},{"className":3742},[],[3744],{"type":44,"value":3745},"RUN apt-get update && apt-get install -y curl",{"type":16,"tag":2492,"props":3747,"children":3748},{},[3749,3754,3759],{"type":16,"tag":2519,"props":3750,"children":3751},{},[3752],{"type":44,"value":3753},"CMD",{"type":16,"tag":2519,"props":3755,"children":3756},{},[3757],{"type":44,"value":3758},"容器默认执行的命令",{"type":16,"tag":2519,"props":3760,"children":3761},{},[3762],{"type":16,"tag":90,"props":3763,"children":3765},{"className":3764},[],[3766],{"type":44,"value":3767},"CMD [\"python\", \"app.py\"]",{"type":16,"tag":2492,"props":3769,"children":3770},{},[3771,3776,3781],{"type":16,"tag":2519,"props":3772,"children":3773},{},[3774],{"type":44,"value":3775},"EXPOSE",{"type":16,"tag":2519,"props":3777,"children":3778},{},[3779],{"type":44,"value":3780},"暴露端口",{"type":16,"tag":2519,"props":3782,"children":3783},{},[3784],{"type":16,"tag":90,"props":3785,"children":3787},{"className":3786},[],[3788],{"type":44,"value":3789},"EXPOSE 80",{"type":16,"tag":2492,"props":3791,"children":3792},{},[3793,3798,3802],{"type":16,"tag":2519,"props":3794,"children":3795},{},[3796],{"type":44,"value":3797},"ENV",{"type":16,"tag":2519,"props":3799,"children":3800},{},[3801],{"type":44,"value":2936},{"type":16,"tag":2519,"props":3803,"children":3804},{},[3805],{"type":16,"tag":90,"props":3806,"children":3808},{"className":3807},[],[3809],{"type":44,"value":3810},"ENV PATH /usr/local/nginx/bin:$PATH",{"type":16,"tag":2492,"props":3812,"children":3813},{},[3814,3819,3824],{"type":16,"tag":2519,"props":3815,"children":3816},{},[3817],{"type":44,"value":3818},"ADD",{"type":16,"tag":2519,"props":3820,"children":3821},{},[3822],{"type":44,"value":3823},"添加文件",{"type":16,"tag":2519,"props":3825,"children":3826},{},[3827],{"type":16,"tag":90,"props":3828,"children":3830},{"className":3829},[],[3831],{"type":44,"value":3832},"ADD source_file.txt /dest/path/",{"type":16,"tag":2492,"props":3834,"children":3835},{},[3836,3841,3846],{"type":16,"tag":2519,"props":3837,"children":3838},{},[3839],{"type":44,"value":3840},"COPY",{"type":16,"tag":2519,"props":3842,"children":3843},{},[3844],{"type":44,"value":3845},"复制文件",{"type":16,"tag":2519,"props":3847,"children":3848},{},[3849],{"type":16,"tag":90,"props":3850,"children":3852},{"className":3851},[],[3853],{"type":44,"value":3854},"COPY source_file.txt /dest/path/",{"type":16,"tag":2492,"props":3856,"children":3857},{},[3858,3863,3868],{"type":16,"tag":2519,"props":3859,"children":3860},{},[3861],{"type":44,"value":3862},"ENTRYPOINT",{"type":16,"tag":2519,"props":3864,"children":3865},{},[3866],{"type":44,"value":3867},"配置容器的入口点",{"type":16,"tag":2519,"props":3869,"children":3870},{},[3871],{"type":16,"tag":90,"props":3872,"children":3874},{"className":3873},[],[3875],{"type":44,"value":3876},"ENTRYPOINT [\"python\"]",{"type":16,"tag":2492,"props":3878,"children":3879},{},[3880,3885,3890],{"type":16,"tag":2519,"props":3881,"children":3882},{},[3883],{"type":44,"value":3884},"VOLUME",{"type":16,"tag":2519,"props":3886,"children":3887},{},[3888],{"type":44,"value":3889},"创建挂载点",{"type":16,"tag":2519,"props":3891,"children":3892},{},[3893],{"type":16,"tag":90,"props":3894,"children":3896},{"className":3895},[],[3897],{"type":44,"value":3898},"VOLUME /data",{"type":16,"tag":2492,"props":3900,"children":3901},{},[3902,3907,3912],{"type":16,"tag":2519,"props":3903,"children":3904},{},[3905],{"type":44,"value":3906},"USER",{"type":16,"tag":2519,"props":3908,"children":3909},{},[3910],{"type":44,"value":3911},"指定用户",{"type":16,"tag":2519,"props":3913,"children":3914},{},[3915],{"type":16,"tag":90,"props":3916,"children":3918},{"className":3917},[],[3919],{"type":44,"value":3920},"USER root",{"type":16,"tag":2492,"props":3922,"children":3923},{},[3924,3929,3934],{"type":16,"tag":2519,"props":3925,"children":3926},{},[3927],{"type":44,"value":3928},"WORKDIR",{"type":16,"tag":2519,"props":3930,"children":3931},{},[3932],{"type":44,"value":3933},"工作目录",{"type":16,"tag":2519,"props":3935,"children":3936},{},[3937],{"type":16,"tag":90,"props":3938,"children":3940},{"className":3939},[],[3941],{"type":44,"value":3942},"WORKDIR /app",{"type":16,"tag":2492,"props":3944,"children":3945},{},[3946,3951,3956],{"type":16,"tag":2519,"props":3947,"children":3948},{},[3949],{"type":44,"value":3950},"ARG",{"type":16,"tag":2519,"props":3952,"children":3953},{},[3954],{"type":44,"value":3955},"构建参数",{"type":16,"tag":2519,"props":3957,"children":3958},{},[3959],{"type":16,"tag":90,"props":3960,"children":3962},{"className":3961},[],[3963],{"type":44,"value":3964},"ARG VERSION=latest",{"type":16,"tag":2492,"props":3966,"children":3967},{},[3968,3973,3978],{"type":16,"tag":2519,"props":3969,"children":3970},{},[3971],{"type":44,"value":3972},"LABEL",{"type":16,"tag":2519,"props":3974,"children":3975},{},[3976],{"type":44,"value":3977},"元数据",{"type":16,"tag":2519,"props":3979,"children":3980},{},[3981],{"type":16,"tag":90,"props":3982,"children":3984},{"className":3983},[],[3985],{"type":44,"value":3986},"LABEL maintainer=\"name@example.com\"",{"type":16,"tag":2492,"props":3988,"children":3989},{},[3990,3995,4000],{"type":16,"tag":2519,"props":3991,"children":3992},{},[3993],{"type":44,"value":3994},"STOPSIGNAL",{"type":16,"tag":2519,"props":3996,"children":3997},{},[3998],{"type":44,"value":3999},"停止信号",{"type":16,"tag":2519,"props":4001,"children":4002},{},[4003],{"type":16,"tag":90,"props":4004,"children":4006},{"className":4005},[],[4007],{"type":44,"value":4008},"STOPSIGNAL SIGTERM",{"type":16,"tag":113,"props":4010,"children":4012},{"id":4011},"dockerfile-示例",[4013],{"type":44,"value":4014},"Dockerfile 示例",{"type":16,"tag":197,"props":4016,"children":4019},{"className":4017,"code":4018,"language":3660,"meta":6,"style":6},"language-dockerfile shiki shiki-themes github-light github-dark","# 使用官方 Python 运行时作为父镜像\nFROM python:3.8-slim\n\n# 设置工作目录\nWORKDIR /app\n\n# 将本地代码复制到容器中\nCOPY . /app\n\n# 安装任何必要的依赖\nRUN pip install --no-cache-dir -r requirements.txt\n\n# 声明运行时需要暴露的端口\nEXPOSE 5000\n\n# 定义容器启动时执行的命令\nCMD [\"python\", \"./app.py\"]\n",[4020],{"type":16,"tag":90,"props":4021,"children":4022},{"__ignoreMap":6},[4023,4032,4044,4053,4061,4073,4080,4088,4100,4107,4116,4129,4137,4146,4159,4167,4176],{"type":16,"tag":228,"props":4024,"children":4025},{"class":230,"line":231},[4026],{"type":16,"tag":228,"props":4027,"children":4029},{"style":4028},"--shiki-default:#6A737D;--shiki-dark:#6A737D",[4030],{"type":44,"value":4031},"# 使用官方 Python 运行时作为父镜像\n",{"type":16,"tag":228,"props":4033,"children":4034},{"class":230,"line":22},[4035,4039],{"type":16,"tag":228,"props":4036,"children":4037},{"style":1339},[4038],{"type":44,"value":3709},{"type":16,"tag":228,"props":4040,"children":4041},{"style":1345},[4042],{"type":44,"value":4043}," python:3.8-slim\n",{"type":16,"tag":228,"props":4045,"children":4046},{"class":230,"line":270},[4047],{"type":16,"tag":228,"props":4048,"children":4050},{"emptyLinePlaceholder":4049},true,[4051],{"type":44,"value":4052},"\n",{"type":16,"tag":228,"props":4054,"children":4055},{"class":230,"line":293},[4056],{"type":16,"tag":228,"props":4057,"children":4058},{"style":4028},[4059],{"type":44,"value":4060},"# 设置工作目录\n",{"type":16,"tag":228,"props":4062,"children":4063},{"class":230,"line":311},[4064,4068],{"type":16,"tag":228,"props":4065,"children":4066},{"style":1339},[4067],{"type":44,"value":3928},{"type":16,"tag":228,"props":4069,"children":4070},{"style":1345},[4071],{"type":44,"value":4072}," /app\n",{"type":16,"tag":228,"props":4074,"children":4075},{"class":230,"line":324},[4076],{"type":16,"tag":228,"props":4077,"children":4078},{"emptyLinePlaceholder":4049},[4079],{"type":44,"value":4052},{"type":16,"tag":228,"props":4081,"children":4082},{"class":230,"line":342},[4083],{"type":16,"tag":228,"props":4084,"children":4085},{"style":4028},[4086],{"type":44,"value":4087},"# 将本地代码复制到容器中\n",{"type":16,"tag":228,"props":4089,"children":4090},{"class":230,"line":1083},[4091,4095],{"type":16,"tag":228,"props":4092,"children":4093},{"style":1339},[4094],{"type":44,"value":3840},{"type":16,"tag":228,"props":4096,"children":4097},{"style":1345},[4098],{"type":44,"value":4099}," . /app\n",{"type":16,"tag":228,"props":4101,"children":4102},{"class":230,"line":1105},[4103],{"type":16,"tag":228,"props":4104,"children":4105},{"emptyLinePlaceholder":4049},[4106],{"type":44,"value":4052},{"type":16,"tag":228,"props":4108,"children":4110},{"class":230,"line":4109},10,[4111],{"type":16,"tag":228,"props":4112,"children":4113},{"style":4028},[4114],{"type":44,"value":4115},"# 安装任何必要的依赖\n",{"type":16,"tag":228,"props":4117,"children":4119},{"class":230,"line":4118},11,[4120,4124],{"type":16,"tag":228,"props":4121,"children":4122},{"style":1339},[4123],{"type":44,"value":3731},{"type":16,"tag":228,"props":4125,"children":4126},{"style":1345},[4127],{"type":44,"value":4128}," pip install --no-cache-dir -r requirements.txt\n",{"type":16,"tag":228,"props":4130,"children":4132},{"class":230,"line":4131},12,[4133],{"type":16,"tag":228,"props":4134,"children":4135},{"emptyLinePlaceholder":4049},[4136],{"type":44,"value":4052},{"type":16,"tag":228,"props":4138,"children":4140},{"class":230,"line":4139},13,[4141],{"type":16,"tag":228,"props":4142,"children":4143},{"style":4028},[4144],{"type":44,"value":4145},"# 声明运行时需要暴露的端口\n",{"type":16,"tag":228,"props":4147,"children":4149},{"class":230,"line":4148},14,[4150,4154],{"type":16,"tag":228,"props":4151,"children":4152},{"style":1339},[4153],{"type":44,"value":3775},{"type":16,"tag":228,"props":4155,"children":4156},{"style":1345},[4157],{"type":44,"value":4158}," 5000\n",{"type":16,"tag":228,"props":4160,"children":4162},{"class":230,"line":4161},15,[4163],{"type":16,"tag":228,"props":4164,"children":4165},{"emptyLinePlaceholder":4049},[4166],{"type":44,"value":4052},{"type":16,"tag":228,"props":4168,"children":4170},{"class":230,"line":4169},16,[4171],{"type":16,"tag":228,"props":4172,"children":4173},{"style":4028},[4174],{"type":44,"value":4175},"# 定义容器启动时执行的命令\n",{"type":16,"tag":228,"props":4177,"children":4179},{"class":230,"line":4178},17,[4180,4184,4189,4194,4199,4204],{"type":16,"tag":228,"props":4181,"children":4182},{"style":1339},[4183],{"type":44,"value":3753},{"type":16,"tag":228,"props":4185,"children":4186},{"style":1345},[4187],{"type":44,"value":4188}," [",{"type":16,"tag":228,"props":4190,"children":4191},{"style":241},[4192],{"type":44,"value":4193},"\"python\"",{"type":16,"tag":228,"props":4195,"children":4196},{"style":1345},[4197],{"type":44,"value":4198},", ",{"type":16,"tag":228,"props":4200,"children":4201},{"style":241},[4202],{"type":44,"value":4203},"\"./app.py\"",{"type":16,"tag":228,"props":4205,"children":4206},{"style":1345},[4207],{"type":44,"value":4208},"]\n",{"type":16,"tag":71,"props":4210,"children":4212},{"id":4211},"docker卷volume管理",[4213],{"type":44,"value":4214},"Docker卷（Volume）管理",{"type":16,"tag":113,"props":4216,"children":4218},{"id":4217},"卷的概念",[4219],{"type":44,"value":4217},{"type":16,"tag":144,"props":4221,"children":4222},{},[4223],{"type":44,"value":4224},"卷（Volume）是一个目录，Docker 容器可以将其挂载到容器内部作为数据持久化存储。卷独立于容器生命周期，即使容器被删除，卷中的数据依然保留。",{"type":16,"tag":113,"props":4226,"children":4228},{"id":4227},"常用操作",[4229],{"type":44,"value":4227},{"type":16,"tag":144,"props":4231,"children":4232},{},[4233],{"type":44,"value":4234},"创建卷：",{"type":16,"tag":197,"props":4236,"children":4238},{"className":222,"code":4237,"language":221,"meta":6,"style":6},"docker volume create my-volume\n",[4239],{"type":16,"tag":90,"props":4240,"children":4241},{"__ignoreMap":6},[4242],{"type":16,"tag":228,"props":4243,"children":4244},{"class":230,"line":231},[4245,4249,4254,4258],{"type":16,"tag":228,"props":4246,"children":4247},{"style":235},[4248],{"type":44,"value":238},{"type":16,"tag":228,"props":4250,"children":4251},{"style":241},[4252],{"type":44,"value":4253}," volume",{"type":16,"tag":228,"props":4255,"children":4256},{"style":241},[4257],{"type":44,"value":3310},{"type":16,"tag":228,"props":4259,"children":4260},{"style":241},[4261],{"type":44,"value":4262}," my-volume\n",{"type":16,"tag":144,"props":4264,"children":4265},{},[4266],{"type":44,"value":4267},"列出卷：",{"type":16,"tag":197,"props":4269,"children":4271},{"className":222,"code":4270,"language":221,"meta":6,"style":6},"docker volume ls\n",[4272],{"type":16,"tag":90,"props":4273,"children":4274},{"__ignoreMap":6},[4275],{"type":16,"tag":228,"props":4276,"children":4277},{"class":230,"line":231},[4278,4282,4286],{"type":16,"tag":228,"props":4279,"children":4280},{"style":235},[4281],{"type":44,"value":238},{"type":16,"tag":228,"props":4283,"children":4284},{"style":241},[4285],{"type":44,"value":4253},{"type":16,"tag":228,"props":4287,"children":4288},{"style":241},[4289],{"type":44,"value":4290}," ls\n",{"type":16,"tag":144,"props":4292,"children":4293},{},[4294],{"type":44,"value":4295},"检查卷：",{"type":16,"tag":197,"props":4297,"children":4299},{"className":222,"code":4298,"language":221,"meta":6,"style":6},"docker volume inspect my-volume\n",[4300],{"type":16,"tag":90,"props":4301,"children":4302},{"__ignoreMap":6},[4303],{"type":16,"tag":228,"props":4304,"children":4305},{"class":230,"line":231},[4306,4310,4314,4318],{"type":16,"tag":228,"props":4307,"children":4308},{"style":235},[4309],{"type":44,"value":238},{"type":16,"tag":228,"props":4311,"children":4312},{"style":241},[4313],{"type":44,"value":4253},{"type":16,"tag":228,"props":4315,"children":4316},{"style":241},[4317],{"type":44,"value":3575},{"type":16,"tag":228,"props":4319,"children":4320},{"style":241},[4321],{"type":44,"value":4262},{"type":16,"tag":144,"props":4323,"children":4324},{},[4325],{"type":44,"value":4326},"挂载卷到容器：",{"type":16,"tag":197,"props":4328,"children":4330},{"className":222,"code":4329,"language":221,"meta":6,"style":6},"docker run -d --name my-container -v my-volume:/path/in/container some-image\n",[4331],{"type":16,"tag":90,"props":4332,"children":4333},{"__ignoreMap":6},[4334],{"type":16,"tag":228,"props":4335,"children":4336},{"class":230,"line":231},[4337,4341,4345,4349,4353,4357,4361,4366],{"type":16,"tag":228,"props":4338,"children":4339},{"style":235},[4340],{"type":44,"value":238},{"type":16,"tag":228,"props":4342,"children":4343},{"style":241},[4344],{"type":44,"value":244},{"type":16,"tag":228,"props":4346,"children":4347},{"style":247},[4348],{"type":44,"value":348},{"type":16,"tag":228,"props":4350,"children":4351},{"style":247},[4352],{"type":44,"value":258},{"type":16,"tag":228,"props":4354,"children":4355},{"style":241},[4356],{"type":44,"value":3458},{"type":16,"tag":228,"props":4358,"children":4359},{"style":247},[4360],{"type":44,"value":299},{"type":16,"tag":228,"props":4362,"children":4363},{"style":241},[4364],{"type":44,"value":4365}," my-volume:/path/in/container",{"type":16,"tag":228,"props":4367,"children":4368},{"style":241},[4369],{"type":44,"value":3207},{"type":16,"tag":144,"props":4371,"children":4372},{},[4373],{"type":44,"value":4374},"使用 --mount 语法：",{"type":16,"tag":197,"props":4376,"children":4378},{"className":222,"code":4377,"language":221,"meta":6,"style":6},"docker run -d --name my-container --mount source=my-volume,target=/path/in/container some-image\n",[4379],{"type":16,"tag":90,"props":4380,"children":4381},{"__ignoreMap":6},[4382],{"type":16,"tag":228,"props":4383,"children":4384},{"class":230,"line":231},[4385,4389,4393,4397,4401,4405,4410,4415],{"type":16,"tag":228,"props":4386,"children":4387},{"style":235},[4388],{"type":44,"value":238},{"type":16,"tag":228,"props":4390,"children":4391},{"style":241},[4392],{"type":44,"value":244},{"type":16,"tag":228,"props":4394,"children":4395},{"style":247},[4396],{"type":44,"value":348},{"type":16,"tag":228,"props":4398,"children":4399},{"style":247},[4400],{"type":44,"value":258},{"type":16,"tag":228,"props":4402,"children":4403},{"style":241},[4404],{"type":44,"value":3458},{"type":16,"tag":228,"props":4406,"children":4407},{"style":247},[4408],{"type":44,"value":4409}," --mount",{"type":16,"tag":228,"props":4411,"children":4412},{"style":241},[4413],{"type":44,"value":4414}," source=my-volume,target=/path/in/container",{"type":16,"tag":228,"props":4416,"children":4417},{"style":241},[4418],{"type":44,"value":3207},{"type":16,"tag":144,"props":4420,"children":4421},{},[4422],{"type":44,"value":4423},"只读挂载：",{"type":16,"tag":197,"props":4425,"children":4427},{"className":222,"code":4426,"language":221,"meta":6,"style":6},"docker run -d --name my-container -v my-volume:/path/in/container:ro some-image\n",[4428],{"type":16,"tag":90,"props":4429,"children":4430},{"__ignoreMap":6},[4431],{"type":16,"tag":228,"props":4432,"children":4433},{"class":230,"line":231},[4434,4438,4442,4446,4450,4454,4458,4463],{"type":16,"tag":228,"props":4435,"children":4436},{"style":235},[4437],{"type":44,"value":238},{"type":16,"tag":228,"props":4439,"children":4440},{"style":241},[4441],{"type":44,"value":244},{"type":16,"tag":228,"props":4443,"children":4444},{"style":247},[4445],{"type":44,"value":348},{"type":16,"tag":228,"props":4447,"children":4448},{"style":247},[4449],{"type":44,"value":258},{"type":16,"tag":228,"props":4451,"children":4452},{"style":241},[4453],{"type":44,"value":3458},{"type":16,"tag":228,"props":4455,"children":4456},{"style":247},[4457],{"type":44,"value":299},{"type":16,"tag":228,"props":4459,"children":4460},{"style":241},[4461],{"type":44,"value":4462}," my-volume:/path/in/container:ro",{"type":16,"tag":228,"props":4464,"children":4465},{"style":241},[4466],{"type":44,"value":3207},{"type":16,"tag":144,"props":4468,"children":4469},{},[4470],{"type":44,"value":4471},"删除卷：",{"type":16,"tag":197,"props":4473,"children":4475},{"className":222,"code":4474,"language":221,"meta":6,"style":6},"docker volume rm my-volume\n",[4476],{"type":16,"tag":90,"props":4477,"children":4478},{"__ignoreMap":6},[4479],{"type":16,"tag":228,"props":4480,"children":4481},{"class":230,"line":231},[4482,4486,4490,4494],{"type":16,"tag":228,"props":4483,"children":4484},{"style":235},[4485],{"type":44,"value":238},{"type":16,"tag":228,"props":4487,"children":4488},{"style":241},[4489],{"type":44,"value":4253},{"type":16,"tag":228,"props":4491,"children":4492},{"style":241},[4493],{"type":44,"value":3607},{"type":16,"tag":228,"props":4495,"children":4496},{"style":241},[4497],{"type":44,"value":4262},{"type":16,"tag":71,"props":4499,"children":4501},{"id":4500},"docker常用命令",[4502],{"type":44,"value":4503},"Docker常用命令",{"type":16,"tag":113,"props":4505,"children":4507},{"id":4506},"镜像相关",[4508],{"type":44,"value":4506},{"type":16,"tag":46,"props":4510,"children":4511},{},[4512,4523,4534,4545,4556,4567,4578,4589,4600],{"type":16,"tag":50,"props":4513,"children":4514},{},[4515,4521],{"type":16,"tag":90,"props":4516,"children":4518},{"className":4517},[],[4519],{"type":44,"value":4520},"docker images",{"type":44,"value":4522},"：列出本地主机上的镜像",{"type":16,"tag":50,"props":4524,"children":4525},{},[4526,4532],{"type":16,"tag":90,"props":4527,"children":4529},{"className":4528},[],[4530],{"type":44,"value":4531},"docker pull IMAGE_NAME[:TAG]",{"type":44,"value":4533},"：拉取指定的镜像",{"type":16,"tag":50,"props":4535,"children":4536},{},[4537,4543],{"type":16,"tag":90,"props":4538,"children":4540},{"className":4539},[],[4541],{"type":44,"value":4542},"docker push IMAGE_NAME[:TAG]",{"type":44,"value":4544},"：推送镜像到注册中心",{"type":16,"tag":50,"props":4546,"children":4547},{},[4548,4554],{"type":16,"tag":90,"props":4549,"children":4551},{"className":4550},[],[4552],{"type":44,"value":4553},"docker rmi IMAGE_ID",{"type":44,"value":4555},"：删除本地镜像",{"type":16,"tag":50,"props":4557,"children":4558},{},[4559,4565],{"type":16,"tag":90,"props":4560,"children":4562},{"className":4561},[],[4563],{"type":44,"value":4564},"docker build -t IMAGE_NAME[:TAG] PATH",{"type":44,"value":4566},"：构建镜像",{"type":16,"tag":50,"props":4568,"children":4569},{},[4570,4576],{"type":16,"tag":90,"props":4571,"children":4573},{"className":4572},[],[4574],{"type":44,"value":4575},"docker login",{"type":44,"value":4577},"：登录 Docker 注册中心",{"type":16,"tag":50,"props":4579,"children":4580},{},[4581,4587],{"type":16,"tag":90,"props":4582,"children":4584},{"className":4583},[],[4585],{"type":44,"value":4586},"docker logout",{"type":44,"value":4588},"：登出 Docker 注册中心",{"type":16,"tag":50,"props":4590,"children":4591},{},[4592,4598],{"type":16,"tag":90,"props":4593,"children":4595},{"className":4594},[],[4596],{"type":44,"value":4597},"docker tag IMAGE_NAME[:TAG] NEW_IMAGE_NAME[:NEW_TAG]",{"type":44,"value":4599},"：给镜像打上新的标签",{"type":16,"tag":50,"props":4601,"children":4602},{},[4603,4609],{"type":16,"tag":90,"props":4604,"children":4606},{"className":4605},[],[4607],{"type":44,"value":4608},"docker inspect IMAGE_NAME[:TAG]",{"type":44,"value":4610},"：获取镜像或容器的元数据",{"type":16,"tag":113,"props":4612,"children":4614},{"id":4613},"容器相关",[4615],{"type":44,"value":4613},{"type":16,"tag":46,"props":4617,"children":4618},{},[4619,4630,4641,4652,4663,4674,4685,4696,4707],{"type":16,"tag":50,"props":4620,"children":4621},{},[4622,4628],{"type":16,"tag":90,"props":4623,"children":4625},{"className":4624},[],[4626],{"type":44,"value":4627},"docker run",{"type":44,"value":4629},"：运行一个容器",{"type":16,"tag":50,"props":4631,"children":4632},{},[4633,4639],{"type":16,"tag":90,"props":4634,"children":4636},{"className":4635},[],[4637],{"type":44,"value":4638},"docker start CONTAINER_ID",{"type":44,"value":4640},"：启动已停止的容器",{"type":16,"tag":50,"props":4642,"children":4643},{},[4644,4650],{"type":16,"tag":90,"props":4645,"children":4647},{"className":4646},[],[4648],{"type":44,"value":4649},"docker stop",{"type":44,"value":4651},"：停止正在运行的容器",{"type":16,"tag":50,"props":4653,"children":4654},{},[4655,4661],{"type":16,"tag":90,"props":4656,"children":4658},{"className":4657},[],[4659],{"type":44,"value":4660},"docker restart",{"type":44,"value":4662},"：重启容器",{"type":16,"tag":50,"props":4664,"children":4665},{},[4666,4672],{"type":16,"tag":90,"props":4667,"children":4669},{"className":4668},[],[4670],{"type":44,"value":4671},"docker rm",{"type":44,"value":4673},"：删除容器",{"type":16,"tag":50,"props":4675,"children":4676},{},[4677,4683],{"type":16,"tag":90,"props":4678,"children":4680},{"className":4679},[],[4681],{"type":44,"value":4682},"docker ps",{"type":44,"value":4684},"：列出正在运行的容器（-a 显示所有）",{"type":16,"tag":50,"props":4686,"children":4687},{},[4688,4694],{"type":16,"tag":90,"props":4689,"children":4691},{"className":4690},[],[4692],{"type":44,"value":4693},"docker logs",{"type":44,"value":4695},"：获取容器的日志",{"type":16,"tag":50,"props":4697,"children":4698},{},[4699,4705],{"type":16,"tag":90,"props":4700,"children":4702},{"className":4701},[],[4703],{"type":44,"value":4704},"docker exec",{"type":44,"value":4706},"：在运行的容器中执行命令",{"type":16,"tag":50,"props":4708,"children":4709},{},[4710,4716],{"type":16,"tag":90,"props":4711,"children":4713},{"className":4712},[],[4714],{"type":44,"value":4715},"docker attach",{"type":44,"value":4717},"：附加到正在运行的容器",{"type":16,"tag":113,"props":4719,"children":4721},{"id":4720},"网络相关",[4722],{"type":44,"value":4720},{"type":16,"tag":46,"props":4724,"children":4725},{},[4726,4737,4748,4759],{"type":16,"tag":50,"props":4727,"children":4728},{},[4729,4735],{"type":16,"tag":90,"props":4730,"children":4732},{"className":4731},[],[4733],{"type":44,"value":4734},"docker network ls",{"type":44,"value":4736},"：列出 Docker 网络",{"type":16,"tag":50,"props":4738,"children":4739},{},[4740,4746],{"type":16,"tag":90,"props":4741,"children":4743},{"className":4742},[],[4744],{"type":44,"value":4745},"docker network create",{"type":44,"value":4747},"：创建新网络",{"type":16,"tag":50,"props":4749,"children":4750},{},[4751,4757],{"type":16,"tag":90,"props":4752,"children":4754},{"className":4753},[],[4755],{"type":44,"value":4756},"docker network rm",{"type":44,"value":4758},"：删除网络",{"type":16,"tag":50,"props":4760,"children":4761},{},[4762,4768],{"type":16,"tag":90,"props":4763,"children":4765},{"className":4764},[],[4766],{"type":44,"value":4767},"docker network inspect",{"type":44,"value":4769},"：查看网络详情",{"type":16,"tag":113,"props":4771,"children":4773},{"id":4772},"卷相关",[4774],{"type":44,"value":4772},{"type":16,"tag":46,"props":4776,"children":4777},{},[4778,4789,4800,4811],{"type":16,"tag":50,"props":4779,"children":4780},{},[4781,4787],{"type":16,"tag":90,"props":4782,"children":4784},{"className":4783},[],[4785],{"type":44,"value":4786},"docker volume create",{"type":44,"value":4788},"：创建新卷",{"type":16,"tag":50,"props":4790,"children":4791},{},[4792,4798],{"type":16,"tag":90,"props":4793,"children":4795},{"className":4794},[],[4796],{"type":44,"value":4797},"docker volume ls",{"type":44,"value":4799},"：列出卷",{"type":16,"tag":50,"props":4801,"children":4802},{},[4803,4809],{"type":16,"tag":90,"props":4804,"children":4806},{"className":4805},[],[4807],{"type":44,"value":4808},"docker volume rm",{"type":44,"value":4810},"：删除卷",{"type":16,"tag":50,"props":4812,"children":4813},{},[4814,4820],{"type":16,"tag":90,"props":4815,"children":4817},{"className":4816},[],[4818],{"type":44,"value":4819},"docker volume inspect",{"type":44,"value":4821},"：获取卷详细信息",{"type":16,"tag":113,"props":4823,"children":4825},{"id":4824},"系统管理",[4826],{"type":44,"value":4824},{"type":16,"tag":46,"props":4828,"children":4829},{},[4830,4841,4852,4863,4874,4885,4896],{"type":16,"tag":50,"props":4831,"children":4832},{},[4833,4839],{"type":16,"tag":90,"props":4834,"children":4836},{"className":4835},[],[4837],{"type":44,"value":4838},"docker info",{"type":44,"value":4840},"：显示 Docker 系统信息",{"type":16,"tag":50,"props":4842,"children":4843},{},[4844,4850],{"type":16,"tag":90,"props":4845,"children":4847},{"className":4846},[],[4848],{"type":44,"value":4849},"docker version",{"type":44,"value":4851},"：显示 Docker 版本信息",{"type":16,"tag":50,"props":4853,"children":4854},{},[4855,4861],{"type":16,"tag":90,"props":4856,"children":4858},{"className":4857},[],[4859],{"type":44,"value":4860},"docker prune",{"type":44,"value":4862},"：清理未使用的资源",{"type":16,"tag":50,"props":4864,"children":4865},{},[4866,4872],{"type":16,"tag":90,"props":4867,"children":4869},{"className":4868},[],[4870],{"type":44,"value":4871},"docker system df",{"type":44,"value":4873},"：显示 Docker 系统的空间使用情况",{"type":16,"tag":50,"props":4875,"children":4876},{},[4877,4883],{"type":16,"tag":90,"props":4878,"children":4880},{"className":4879},[],[4881],{"type":44,"value":4882},"docker stats",{"type":44,"value":4884},"：实时显示容器的性能数据",{"type":16,"tag":50,"props":4886,"children":4887},{},[4888,4894],{"type":16,"tag":90,"props":4889,"children":4891},{"className":4890},[],[4892],{"type":44,"value":4893},"docker top",{"type":44,"value":4895},"：查看容器内运行的进程",{"type":16,"tag":50,"props":4897,"children":4898},{},[4899,4905],{"type":16,"tag":90,"props":4900,"children":4902},{"className":4901},[],[4903],{"type":44,"value":4904},"docker cp",{"type":44,"value":4906},"：在容器和本地之间复制文件",{"type":16,"tag":1281,"props":4908,"children":4909},{},[4910],{"type":44,"value":1285},{"title":6,"searchDepth":22,"depth":22,"links":4912},[4913,4916,4925,4930,4931,4932,4933,4937,4941,4945],{"id":1650,"depth":22,"text":1653,"children":4914},[4915],{"id":1661,"depth":270,"text":1664},{"id":1720,"depth":22,"text":1723,"children":4917},[4918,4919,4920,4921,4922,4923,4924],{"id":1726,"depth":270,"text":1729},{"id":1976,"depth":270,"text":1979},{"id":2095,"depth":270,"text":2098},{"id":2140,"depth":270,"text":2143},{"id":2173,"depth":270,"text":2176},{"id":2208,"depth":270,"text":2211},{"id":2219,"depth":270,"text":2219},{"id":2328,"depth":22,"text":2331,"children":4926},[4927,4928,4929],{"id":2371,"depth":270,"text":2374},{"id":2404,"depth":270,"text":2407},{"id":2438,"depth":270,"text":2441},{"id":2477,"depth":22,"text":2480},{"id":2624,"depth":22,"text":2627},{"id":2870,"depth":22,"text":2873},{"id":3210,"depth":22,"text":3213,"children":4934},[4935,4936],{"id":3216,"depth":270,"text":3216},{"id":3284,"depth":270,"text":3284},{"id":3660,"depth":22,"text":3663,"children":4938},[4939,4940],{"id":3671,"depth":270,"text":3671},{"id":4011,"depth":270,"text":4014},{"id":4211,"depth":22,"text":4214,"children":4942},[4943,4944],{"id":4217,"depth":270,"text":4217},{"id":4227,"depth":270,"text":4227},{"id":4500,"depth":22,"text":4503,"children":4946},[4947,4948,4949,4950,4951],{"id":4506,"depth":270,"text":4506},{"id":4613,"depth":270,"text":4613},{"id":4720,"depth":270,"text":4720},{"id":4772,"depth":270,"text":4772},{"id":4824,"depth":270,"text":4824},"content:articles:04-dockernote.md","articles/04-dockernote.md",{"_path":4955,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":4956,"description":4956,"cover":4957,"date":4958,"category":4959,"layout":35,"body":4960,"_type":24,"_id":5792,"_source":26,"_file":5793,"_extension":28},"/articles/05-p2pmove","Zerotier/FRP迁移的记录文档","https://img.mxai.eu.cc/imgs/cover_1776321204820_1776321204.jpg","2024-07-14T00:00:00.000Z","NETWORKING",{"type":13,"children":4961,"toc":5786},[4962,4968,4972,4978,5002,5161,5258,5264,5269,5275,5295,5428,5448,5454,5782],{"type":16,"tag":39,"props":4963,"children":4965},{"id":4964},"p2pmove",[4966],{"type":44,"value":4967},"P2pmove",{"type":16,"tag":144,"props":4969,"children":4970},{},[4971],{"type":44,"value":4956},{"type":16,"tag":71,"props":4973,"children":4975},{"id":4974},"_1-安装zerotier",[4976],{"type":44,"value":4977},"1. 安装zerotier",{"type":16,"tag":197,"props":4979,"children":4981},{"className":222,"code":4980,"language":221,"meta":6,"style":6},"docker pull keynetworks/ztncui\n",[4982],{"type":16,"tag":90,"props":4983,"children":4984},{"__ignoreMap":6},[4985],{"type":16,"tag":228,"props":4986,"children":4987},{"class":230,"line":231},[4988,4992,4997],{"type":16,"tag":228,"props":4989,"children":4990},{"style":235},[4991],{"type":44,"value":238},{"type":16,"tag":228,"props":4993,"children":4994},{"style":241},[4995],{"type":44,"value":4996}," pull",{"type":16,"tag":228,"props":4998,"children":4999},{"style":241},[5000],{"type":44,"value":5001}," keynetworks/ztncui\n",{"type":16,"tag":197,"props":5003,"children":5005},{"className":222,"code":5004,"language":221,"meta":6,"style":6},"docker run -d --name zt-ui -v /home/docker/zt-ui/zerotier-one:/var/lib/zerotier-one -v /home/docker/zt-ui/ztncui/etc:/opt/key-networks/ztncui/etc -p 4000:4000 -p 3180:3180 -p 9993:9993 -p 9993:9993/udp -e MYADDR=公网ip -e HTTP_PORT=4000 -e HTTP_ALL_INTERFACES=yes -e ZTNCUI_PASSWD=admin123 --restart=always 4bb2\n",[5006],{"type":16,"tag":90,"props":5007,"children":5008},{"__ignoreMap":6},[5009],{"type":16,"tag":228,"props":5010,"children":5011},{"class":230,"line":231},[5012,5016,5020,5024,5028,5033,5037,5042,5046,5051,5055,5060,5065,5069,5074,5079,5083,5088,5093,5097,5101,5106,5110,5115,5119,5124,5129,5133,5138,5142,5147,5151,5156],{"type":16,"tag":228,"props":5013,"children":5014},{"style":235},[5015],{"type":44,"value":238},{"type":16,"tag":228,"props":5017,"children":5018},{"style":241},[5019],{"type":44,"value":244},{"type":16,"tag":228,"props":5021,"children":5022},{"style":247},[5023],{"type":44,"value":348},{"type":16,"tag":228,"props":5025,"children":5026},{"style":247},[5027],{"type":44,"value":258},{"type":16,"tag":228,"props":5029,"children":5030},{"style":241},[5031],{"type":44,"value":5032}," zt-ui",{"type":16,"tag":228,"props":5034,"children":5035},{"style":247},[5036],{"type":44,"value":299},{"type":16,"tag":228,"props":5038,"children":5039},{"style":241},[5040],{"type":44,"value":5041}," /home/docker/zt-ui/zerotier-one:/var/lib/zerotier-one",{"type":16,"tag":228,"props":5043,"children":5044},{"style":247},[5045],{"type":44,"value":299},{"type":16,"tag":228,"props":5047,"children":5048},{"style":241},[5049],{"type":44,"value":5050}," /home/docker/zt-ui/ztncui/etc:/opt/key-networks/ztncui/etc",{"type":16,"tag":228,"props":5052,"children":5053},{"style":247},[5054],{"type":44,"value":276},{"type":16,"tag":228,"props":5056,"children":5057},{"style":247},[5058],{"type":44,"value":5059}," 4000",{"type":16,"tag":228,"props":5061,"children":5062},{"style":241},[5063],{"type":44,"value":5064},":4000",{"type":16,"tag":228,"props":5066,"children":5067},{"style":247},[5068],{"type":44,"value":276},{"type":16,"tag":228,"props":5070,"children":5071},{"style":247},[5072],{"type":44,"value":5073}," 3180",{"type":16,"tag":228,"props":5075,"children":5076},{"style":241},[5077],{"type":44,"value":5078},":3180",{"type":16,"tag":228,"props":5080,"children":5081},{"style":247},[5082],{"type":44,"value":276},{"type":16,"tag":228,"props":5084,"children":5085},{"style":247},[5086],{"type":44,"value":5087}," 9993",{"type":16,"tag":228,"props":5089,"children":5090},{"style":241},[5091],{"type":44,"value":5092},":9993",{"type":16,"tag":228,"props":5094,"children":5095},{"style":247},[5096],{"type":44,"value":276},{"type":16,"tag":228,"props":5098,"children":5099},{"style":247},[5100],{"type":44,"value":5087},{"type":16,"tag":228,"props":5102,"children":5103},{"style":241},[5104],{"type":44,"value":5105},":9993/udp",{"type":16,"tag":228,"props":5107,"children":5108},{"style":247},[5109],{"type":44,"value":330},{"type":16,"tag":228,"props":5111,"children":5112},{"style":241},[5113],{"type":44,"value":5114}," MYADDR=公网ip",{"type":16,"tag":228,"props":5116,"children":5117},{"style":247},[5118],{"type":44,"value":330},{"type":16,"tag":228,"props":5120,"children":5121},{"style":241},[5122],{"type":44,"value":5123}," HTTP_PORT=",{"type":16,"tag":228,"props":5125,"children":5126},{"style":247},[5127],{"type":44,"value":5128},"4000",{"type":16,"tag":228,"props":5130,"children":5131},{"style":247},[5132],{"type":44,"value":330},{"type":16,"tag":228,"props":5134,"children":5135},{"style":241},[5136],{"type":44,"value":5137}," HTTP_ALL_INTERFACES=yes",{"type":16,"tag":228,"props":5139,"children":5140},{"style":247},[5141],{"type":44,"value":330},{"type":16,"tag":228,"props":5143,"children":5144},{"style":241},[5145],{"type":44,"value":5146}," ZTNCUI_PASSWD=admin123",{"type":16,"tag":228,"props":5148,"children":5149},{"style":247},[5150],{"type":44,"value":317},{"type":16,"tag":228,"props":5152,"children":5153},{"style":247},[5154],{"type":44,"value":5155}," 4",{"type":16,"tag":228,"props":5157,"children":5158},{"style":241},[5159],{"type":44,"value":5160},"bb2\n",{"type":16,"tag":197,"props":5162,"children":5164},{"className":222,"code":5163,"language":221,"meta":6,"style":6},"docker cp patch.sh zt-ui:/tmp\ndocker cp mkmoonworld-x86_64 zt-ui:/tmp\ndocker exec -it zt-ui bash /tmp/patch.sh && docker restart zt-ui\n",[5165],{"type":16,"tag":90,"props":5166,"children":5167},{"__ignoreMap":6},[5168,5190,5210],{"type":16,"tag":228,"props":5169,"children":5170},{"class":230,"line":231},[5171,5175,5180,5185],{"type":16,"tag":228,"props":5172,"children":5173},{"style":235},[5174],{"type":44,"value":238},{"type":16,"tag":228,"props":5176,"children":5177},{"style":241},[5178],{"type":44,"value":5179}," cp",{"type":16,"tag":228,"props":5181,"children":5182},{"style":241},[5183],{"type":44,"value":5184}," patch.sh",{"type":16,"tag":228,"props":5186,"children":5187},{"style":241},[5188],{"type":44,"value":5189}," zt-ui:/tmp\n",{"type":16,"tag":228,"props":5191,"children":5192},{"class":230,"line":22},[5193,5197,5201,5206],{"type":16,"tag":228,"props":5194,"children":5195},{"style":235},[5196],{"type":44,"value":238},{"type":16,"tag":228,"props":5198,"children":5199},{"style":241},[5200],{"type":44,"value":5179},{"type":16,"tag":228,"props":5202,"children":5203},{"style":241},[5204],{"type":44,"value":5205}," mkmoonworld-x86_64",{"type":16,"tag":228,"props":5207,"children":5208},{"style":241},[5209],{"type":44,"value":5189},{"type":16,"tag":228,"props":5211,"children":5212},{"class":230,"line":270},[5213,5217,5221,5225,5229,5234,5239,5244,5248,5253],{"type":16,"tag":228,"props":5214,"children":5215},{"style":235},[5216],{"type":44,"value":238},{"type":16,"tag":228,"props":5218,"children":5219},{"style":241},[5220],{"type":44,"value":727},{"type":16,"tag":228,"props":5222,"children":5223},{"style":247},[5224],{"type":44,"value":732},{"type":16,"tag":228,"props":5226,"children":5227},{"style":241},[5228],{"type":44,"value":5032},{"type":16,"tag":228,"props":5230,"children":5231},{"style":241},[5232],{"type":44,"value":5233}," bash",{"type":16,"tag":228,"props":5235,"children":5236},{"style":241},[5237],{"type":44,"value":5238}," /tmp/patch.sh",{"type":16,"tag":228,"props":5240,"children":5241},{"style":1345},[5242],{"type":44,"value":5243}," && ",{"type":16,"tag":228,"props":5245,"children":5246},{"style":235},[5247],{"type":44,"value":238},{"type":16,"tag":228,"props":5249,"children":5250},{"style":241},[5251],{"type":44,"value":5252}," restart",{"type":16,"tag":228,"props":5254,"children":5255},{"style":241},[5256],{"type":44,"value":5257}," zt-ui\n",{"type":16,"tag":71,"props":5259,"children":5261},{"id":5260},"_2-安装xray",[5262],{"type":44,"value":5263},"2. 安装xray",{"type":16,"tag":144,"props":5265,"children":5266},{},[5267],{"type":44,"value":5268},"直接访问xray官网",{"type":16,"tag":71,"props":5270,"children":5272},{"id":5271},"_3-安装frps",[5273],{"type":44,"value":5274},"3. 安装frps",{"type":16,"tag":197,"props":5276,"children":5278},{"className":222,"code":5277,"language":221,"meta":6,"style":6},"vim /etc/systemd/system/frps.service\n",[5279],{"type":16,"tag":90,"props":5280,"children":5281},{"__ignoreMap":6},[5282],{"type":16,"tag":228,"props":5283,"children":5284},{"class":230,"line":231},[5285,5290],{"type":16,"tag":228,"props":5286,"children":5287},{"style":235},[5288],{"type":44,"value":5289},"vim",{"type":16,"tag":228,"props":5291,"children":5292},{"style":241},[5293],{"type":44,"value":5294}," /etc/systemd/system/frps.service\n",{"type":16,"tag":197,"props":5296,"children":5300},{"className":5297,"code":5298,"language":5299,"meta":6,"style":6},"language-ini shiki shiki-themes github-light github-dark","[Unit]\nDescription = frp server\nAfter = network.target syslog.target\nWants = network.target\n\n[Service]\nType = simple\n# 启动frps的命令，需修改为您的frps的安装路径\nExecStart = /opt/frp/frps -c /opt/frp/frps.ini\n\n[Install]\nWantedBy = multi-user.target\n","ini",[5301],{"type":16,"tag":90,"props":5302,"children":5303},{"__ignoreMap":6},[5304,5312,5325,5338,5351,5358,5366,5379,5387,5400,5407,5415],{"type":16,"tag":228,"props":5305,"children":5306},{"class":230,"line":231},[5307],{"type":16,"tag":228,"props":5308,"children":5309},{"style":235},[5310],{"type":44,"value":5311},"[Unit]\n",{"type":16,"tag":228,"props":5313,"children":5314},{"class":230,"line":22},[5315,5320],{"type":16,"tag":228,"props":5316,"children":5317},{"style":1339},[5318],{"type":44,"value":5319},"Description",{"type":16,"tag":228,"props":5321,"children":5322},{"style":1345},[5323],{"type":44,"value":5324}," = frp server\n",{"type":16,"tag":228,"props":5326,"children":5327},{"class":230,"line":270},[5328,5333],{"type":16,"tag":228,"props":5329,"children":5330},{"style":1339},[5331],{"type":44,"value":5332},"After",{"type":16,"tag":228,"props":5334,"children":5335},{"style":1345},[5336],{"type":44,"value":5337}," = network.target syslog.target\n",{"type":16,"tag":228,"props":5339,"children":5340},{"class":230,"line":293},[5341,5346],{"type":16,"tag":228,"props":5342,"children":5343},{"style":1339},[5344],{"type":44,"value":5345},"Wants",{"type":16,"tag":228,"props":5347,"children":5348},{"style":1345},[5349],{"type":44,"value":5350}," = network.target\n",{"type":16,"tag":228,"props":5352,"children":5353},{"class":230,"line":311},[5354],{"type":16,"tag":228,"props":5355,"children":5356},{"emptyLinePlaceholder":4049},[5357],{"type":44,"value":4052},{"type":16,"tag":228,"props":5359,"children":5360},{"class":230,"line":324},[5361],{"type":16,"tag":228,"props":5362,"children":5363},{"style":235},[5364],{"type":44,"value":5365},"[Service]\n",{"type":16,"tag":228,"props":5367,"children":5368},{"class":230,"line":342},[5369,5374],{"type":16,"tag":228,"props":5370,"children":5371},{"style":1339},[5372],{"type":44,"value":5373},"Type",{"type":16,"tag":228,"props":5375,"children":5376},{"style":1345},[5377],{"type":44,"value":5378}," = simple\n",{"type":16,"tag":228,"props":5380,"children":5381},{"class":230,"line":1083},[5382],{"type":16,"tag":228,"props":5383,"children":5384},{"style":4028},[5385],{"type":44,"value":5386},"# 启动frps的命令，需修改为您的frps的安装路径\n",{"type":16,"tag":228,"props":5388,"children":5389},{"class":230,"line":1105},[5390,5395],{"type":16,"tag":228,"props":5391,"children":5392},{"style":1339},[5393],{"type":44,"value":5394},"ExecStart",{"type":16,"tag":228,"props":5396,"children":5397},{"style":1345},[5398],{"type":44,"value":5399}," = /opt/frp/frps -c /opt/frp/frps.ini\n",{"type":16,"tag":228,"props":5401,"children":5402},{"class":230,"line":4109},[5403],{"type":16,"tag":228,"props":5404,"children":5405},{"emptyLinePlaceholder":4049},[5406],{"type":44,"value":4052},{"type":16,"tag":228,"props":5408,"children":5409},{"class":230,"line":4118},[5410],{"type":16,"tag":228,"props":5411,"children":5412},{"style":235},[5413],{"type":44,"value":5414},"[Install]\n",{"type":16,"tag":228,"props":5416,"children":5417},{"class":230,"line":4131},[5418,5423],{"type":16,"tag":228,"props":5419,"children":5420},{"style":1339},[5421],{"type":44,"value":5422},"WantedBy",{"type":16,"tag":228,"props":5424,"children":5425},{"style":1345},[5426],{"type":44,"value":5427}," = multi-user.target\n",{"type":16,"tag":197,"props":5429,"children":5431},{"className":222,"code":5430,"language":221,"meta":6,"style":6},"systemctl daemon-reload\n",[5432],{"type":16,"tag":90,"props":5433,"children":5434},{"__ignoreMap":6},[5435],{"type":16,"tag":228,"props":5436,"children":5437},{"class":230,"line":231},[5438,5443],{"type":16,"tag":228,"props":5439,"children":5440},{"style":235},[5441],{"type":44,"value":5442},"systemctl",{"type":16,"tag":228,"props":5444,"children":5445},{"style":241},[5446],{"type":44,"value":5447}," daemon-reload\n",{"type":16,"tag":71,"props":5449,"children":5451},{"id":5450},"_4-配置nginx",[5452],{"type":44,"value":5453},"4. 配置Nginx",{"type":16,"tag":197,"props":5455,"children":5459},{"className":5456,"code":5457,"language":5458,"meta":6,"style":6},"language-nginx shiki shiki-themes github-light github-dark","server\n{\nlisten 80;\nserver_name p2p.witque.cn;\n\nlocation /{\nproxy_pass http://127.0.0.1:4000;\nproxy_redirect off;\nproxy_set_header X-Real-IP $remote_addr;\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\nproxy_set_header Host $http_host;\nproxy_set_header X-NginX-Proxy true;\n}\n\nlocation /api{\nproxy_pass http://127.0.0.1:7500/api;\n}\n\nlocation /static {\nreturn 301 $request_uri/frp/;\n}\n\nlocation /frp/{\nproxy_pass http://127.0.0.1:7500/static/;\n}\n\n}\n","nginx",[5460],{"type":16,"tag":90,"props":5461,"children":5462},{"__ignoreMap":6},[5463,5471,5479,5497,5510,5517,5534,5547,5560,5573,5585,5597,5618,5626,5633,5649,5661,5668,5676,5693,5712,5720,5728,5745,5758,5766,5774],{"type":16,"tag":228,"props":5464,"children":5465},{"class":230,"line":231},[5466],{"type":16,"tag":228,"props":5467,"children":5468},{"style":1339},[5469],{"type":44,"value":5470},"server\n",{"type":16,"tag":228,"props":5472,"children":5473},{"class":230,"line":22},[5474],{"type":16,"tag":228,"props":5475,"children":5476},{"style":1345},[5477],{"type":44,"value":5478},"{\n",{"type":16,"tag":228,"props":5480,"children":5481},{"class":230,"line":270},[5482,5487,5492],{"type":16,"tag":228,"props":5483,"children":5484},{"style":1345},[5485],{"type":44,"value":5486},"listen ",{"type":16,"tag":228,"props":5488,"children":5489},{"style":247},[5490],{"type":44,"value":5491},"80",{"type":16,"tag":228,"props":5493,"children":5494},{"style":1345},[5495],{"type":44,"value":5496},";\n",{"type":16,"tag":228,"props":5498,"children":5499},{"class":230,"line":293},[5500,5505],{"type":16,"tag":228,"props":5501,"children":5502},{"style":1339},[5503],{"type":44,"value":5504},"server_name ",{"type":16,"tag":228,"props":5506,"children":5507},{"style":1345},[5508],{"type":44,"value":5509},"p2p.witque.cn;\n",{"type":16,"tag":228,"props":5511,"children":5512},{"class":230,"line":311},[5513],{"type":16,"tag":228,"props":5514,"children":5515},{"emptyLinePlaceholder":4049},[5516],{"type":44,"value":4052},{"type":16,"tag":228,"props":5518,"children":5519},{"class":230,"line":324},[5520,5525,5530],{"type":16,"tag":228,"props":5521,"children":5522},{"style":1339},[5523],{"type":44,"value":5524},"location",{"type":16,"tag":228,"props":5526,"children":5527},{"style":235},[5528],{"type":44,"value":5529}," /",{"type":16,"tag":228,"props":5531,"children":5532},{"style":1345},[5533],{"type":44,"value":5478},{"type":16,"tag":228,"props":5535,"children":5536},{"class":230,"line":342},[5537,5542],{"type":16,"tag":228,"props":5538,"children":5539},{"style":1339},[5540],{"type":44,"value":5541},"proxy_pass ",{"type":16,"tag":228,"props":5543,"children":5544},{"style":1345},[5545],{"type":44,"value":5546},"http://127.0.0.1:4000;\n",{"type":16,"tag":228,"props":5548,"children":5549},{"class":230,"line":1083},[5550,5555],{"type":16,"tag":228,"props":5551,"children":5552},{"style":1339},[5553],{"type":44,"value":5554},"proxy_redirect ",{"type":16,"tag":228,"props":5556,"children":5557},{"style":1345},[5558],{"type":44,"value":5559},"off;\n",{"type":16,"tag":228,"props":5561,"children":5562},{"class":230,"line":1105},[5563,5568],{"type":16,"tag":228,"props":5564,"children":5565},{"style":1339},[5566],{"type":44,"value":5567},"proxy_set_header ",{"type":16,"tag":228,"props":5569,"children":5570},{"style":1345},[5571],{"type":44,"value":5572},"X-Real-IP $remote_addr;\n",{"type":16,"tag":228,"props":5574,"children":5575},{"class":230,"line":4109},[5576,5580],{"type":16,"tag":228,"props":5577,"children":5578},{"style":1339},[5579],{"type":44,"value":5567},{"type":16,"tag":228,"props":5581,"children":5582},{"style":1345},[5583],{"type":44,"value":5584},"X-Forwarded-For $proxy_add_x_forwarded_for;\n",{"type":16,"tag":228,"props":5586,"children":5587},{"class":230,"line":4118},[5588,5592],{"type":16,"tag":228,"props":5589,"children":5590},{"style":1339},[5591],{"type":44,"value":5567},{"type":16,"tag":228,"props":5593,"children":5594},{"style":1345},[5595],{"type":44,"value":5596},"Host $http_host;\n",{"type":16,"tag":228,"props":5598,"children":5599},{"class":230,"line":4131},[5600,5604,5609,5614],{"type":16,"tag":228,"props":5601,"children":5602},{"style":1339},[5603],{"type":44,"value":5567},{"type":16,"tag":228,"props":5605,"children":5606},{"style":1345},[5607],{"type":44,"value":5608},"X-NginX-Proxy",{"type":16,"tag":228,"props":5610,"children":5611},{"style":247},[5612],{"type":44,"value":5613}," true",{"type":16,"tag":228,"props":5615,"children":5616},{"style":1345},[5617],{"type":44,"value":5496},{"type":16,"tag":228,"props":5619,"children":5620},{"class":230,"line":4139},[5621],{"type":16,"tag":228,"props":5622,"children":5623},{"style":1345},[5624],{"type":44,"value":5625},"}\n",{"type":16,"tag":228,"props":5627,"children":5628},{"class":230,"line":4148},[5629],{"type":16,"tag":228,"props":5630,"children":5631},{"emptyLinePlaceholder":4049},[5632],{"type":44,"value":4052},{"type":16,"tag":228,"props":5634,"children":5635},{"class":230,"line":4161},[5636,5640,5645],{"type":16,"tag":228,"props":5637,"children":5638},{"style":1339},[5639],{"type":44,"value":5524},{"type":16,"tag":228,"props":5641,"children":5642},{"style":235},[5643],{"type":44,"value":5644}," /api",{"type":16,"tag":228,"props":5646,"children":5647},{"style":1345},[5648],{"type":44,"value":5478},{"type":16,"tag":228,"props":5650,"children":5651},{"class":230,"line":4169},[5652,5656],{"type":16,"tag":228,"props":5653,"children":5654},{"style":1339},[5655],{"type":44,"value":5541},{"type":16,"tag":228,"props":5657,"children":5658},{"style":1345},[5659],{"type":44,"value":5660},"http://127.0.0.1:7500/api;\n",{"type":16,"tag":228,"props":5662,"children":5663},{"class":230,"line":4178},[5664],{"type":16,"tag":228,"props":5665,"children":5666},{"style":1345},[5667],{"type":44,"value":5625},{"type":16,"tag":228,"props":5669,"children":5671},{"class":230,"line":5670},18,[5672],{"type":16,"tag":228,"props":5673,"children":5674},{"emptyLinePlaceholder":4049},[5675],{"type":44,"value":4052},{"type":16,"tag":228,"props":5677,"children":5679},{"class":230,"line":5678},19,[5680,5684,5689],{"type":16,"tag":228,"props":5681,"children":5682},{"style":1339},[5683],{"type":44,"value":5524},{"type":16,"tag":228,"props":5685,"children":5686},{"style":235},[5687],{"type":44,"value":5688}," /static ",{"type":16,"tag":228,"props":5690,"children":5691},{"style":1345},[5692],{"type":44,"value":5478},{"type":16,"tag":228,"props":5694,"children":5696},{"class":230,"line":5695},20,[5697,5702,5707],{"type":16,"tag":228,"props":5698,"children":5699},{"style":1339},[5700],{"type":44,"value":5701},"return",{"type":16,"tag":228,"props":5703,"children":5704},{"style":247},[5705],{"type":44,"value":5706}," 301",{"type":16,"tag":228,"props":5708,"children":5709},{"style":1345},[5710],{"type":44,"value":5711}," $request_uri/frp/;\n",{"type":16,"tag":228,"props":5713,"children":5715},{"class":230,"line":5714},21,[5716],{"type":16,"tag":228,"props":5717,"children":5718},{"style":1345},[5719],{"type":44,"value":5625},{"type":16,"tag":228,"props":5721,"children":5723},{"class":230,"line":5722},22,[5724],{"type":16,"tag":228,"props":5725,"children":5726},{"emptyLinePlaceholder":4049},[5727],{"type":44,"value":4052},{"type":16,"tag":228,"props":5729,"children":5731},{"class":230,"line":5730},23,[5732,5736,5741],{"type":16,"tag":228,"props":5733,"children":5734},{"style":1339},[5735],{"type":44,"value":5524},{"type":16,"tag":228,"props":5737,"children":5738},{"style":235},[5739],{"type":44,"value":5740}," /frp/",{"type":16,"tag":228,"props":5742,"children":5743},{"style":1345},[5744],{"type":44,"value":5478},{"type":16,"tag":228,"props":5746,"children":5748},{"class":230,"line":5747},24,[5749,5753],{"type":16,"tag":228,"props":5750,"children":5751},{"style":1339},[5752],{"type":44,"value":5541},{"type":16,"tag":228,"props":5754,"children":5755},{"style":1345},[5756],{"type":44,"value":5757},"http://127.0.0.1:7500/static/;\n",{"type":16,"tag":228,"props":5759,"children":5761},{"class":230,"line":5760},25,[5762],{"type":16,"tag":228,"props":5763,"children":5764},{"style":1345},[5765],{"type":44,"value":5625},{"type":16,"tag":228,"props":5767,"children":5769},{"class":230,"line":5768},26,[5770],{"type":16,"tag":228,"props":5771,"children":5772},{"emptyLinePlaceholder":4049},[5773],{"type":44,"value":4052},{"type":16,"tag":228,"props":5775,"children":5777},{"class":230,"line":5776},27,[5778],{"type":16,"tag":228,"props":5779,"children":5780},{"style":1345},[5781],{"type":44,"value":5625},{"type":16,"tag":1281,"props":5783,"children":5784},{},[5785],{"type":44,"value":1285},{"title":6,"searchDepth":22,"depth":22,"links":5787},[5788,5789,5790,5791],{"id":4974,"depth":22,"text":4977},{"id":5260,"depth":22,"text":5263},{"id":5271,"depth":22,"text":5274},{"id":5450,"depth":22,"text":5453},"content:articles:05-p2pmove.md","articles/05-p2pmove.md",{"_path":5795,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":5796,"description":5797,"cover":5798,"date":5799,"category":5800,"layout":35,"body":5801,"_type":24,"_id":6146,"_source":26,"_file":6147,"_extension":28},"/articles/06-sysctlconfig","Linux Service/Systemctl 服务配置","service服务的配置","https://img.mxai.eu.cc/imgs/cover_1776321240715_1776321240.jpg","2024-06-14T00:00:00.000Z","LINUX",{"type":13,"children":5802,"toc":6144},[5803,5808,5813,5980,5985,6129,6140],{"type":16,"tag":39,"props":5804,"children":5806},{"id":5805},"linux-servicesystemctl-服务配置",[5807],{"type":44,"value":5796},{"type":16,"tag":144,"props":5809,"children":5810},{},[5811],{"type":44,"value":5812},"Python 服务配置：",{"type":16,"tag":197,"props":5814,"children":5816},{"className":5297,"code":5815,"language":5299,"meta":6,"style":6},"[Unit]\nDescription= Qyue Api\nAfter=network.target\n\n[Service]\nType=simple\nWorkingDirectory= /opt/api/bin\nExecStart= python3 api.py\nExecReload=/bin/kill -HUP $MAINPID\nRestart=on-failure\nKillMode=process\nRestartSec=5s\n\n[Install]\nWantedBy=multi-user.target\n",[5817],{"type":16,"tag":90,"props":5818,"children":5819},{"__ignoreMap":6},[5820,5827,5839,5851,5858,5865,5877,5890,5902,5915,5928,5941,5954,5961,5968],{"type":16,"tag":228,"props":5821,"children":5822},{"class":230,"line":231},[5823],{"type":16,"tag":228,"props":5824,"children":5825},{"style":235},[5826],{"type":44,"value":5311},{"type":16,"tag":228,"props":5828,"children":5829},{"class":230,"line":22},[5830,5834],{"type":16,"tag":228,"props":5831,"children":5832},{"style":1339},[5833],{"type":44,"value":5319},{"type":16,"tag":228,"props":5835,"children":5836},{"style":1345},[5837],{"type":44,"value":5838},"= Qyue Api\n",{"type":16,"tag":228,"props":5840,"children":5841},{"class":230,"line":270},[5842,5846],{"type":16,"tag":228,"props":5843,"children":5844},{"style":1339},[5845],{"type":44,"value":5332},{"type":16,"tag":228,"props":5847,"children":5848},{"style":1345},[5849],{"type":44,"value":5850},"=network.target\n",{"type":16,"tag":228,"props":5852,"children":5853},{"class":230,"line":293},[5854],{"type":16,"tag":228,"props":5855,"children":5856},{"emptyLinePlaceholder":4049},[5857],{"type":44,"value":4052},{"type":16,"tag":228,"props":5859,"children":5860},{"class":230,"line":311},[5861],{"type":16,"tag":228,"props":5862,"children":5863},{"style":235},[5864],{"type":44,"value":5365},{"type":16,"tag":228,"props":5866,"children":5867},{"class":230,"line":324},[5868,5872],{"type":16,"tag":228,"props":5869,"children":5870},{"style":1339},[5871],{"type":44,"value":5373},{"type":16,"tag":228,"props":5873,"children":5874},{"style":1345},[5875],{"type":44,"value":5876},"=simple\n",{"type":16,"tag":228,"props":5878,"children":5879},{"class":230,"line":342},[5880,5885],{"type":16,"tag":228,"props":5881,"children":5882},{"style":1339},[5883],{"type":44,"value":5884},"WorkingDirectory",{"type":16,"tag":228,"props":5886,"children":5887},{"style":1345},[5888],{"type":44,"value":5889},"= /opt/api/bin\n",{"type":16,"tag":228,"props":5891,"children":5892},{"class":230,"line":1083},[5893,5897],{"type":16,"tag":228,"props":5894,"children":5895},{"style":1339},[5896],{"type":44,"value":5394},{"type":16,"tag":228,"props":5898,"children":5899},{"style":1345},[5900],{"type":44,"value":5901},"= python3 api.py\n",{"type":16,"tag":228,"props":5903,"children":5904},{"class":230,"line":1105},[5905,5910],{"type":16,"tag":228,"props":5906,"children":5907},{"style":1339},[5908],{"type":44,"value":5909},"ExecReload",{"type":16,"tag":228,"props":5911,"children":5912},{"style":1345},[5913],{"type":44,"value":5914},"=/bin/kill -HUP $MAINPID\n",{"type":16,"tag":228,"props":5916,"children":5917},{"class":230,"line":4109},[5918,5923],{"type":16,"tag":228,"props":5919,"children":5920},{"style":1339},[5921],{"type":44,"value":5922},"Restart",{"type":16,"tag":228,"props":5924,"children":5925},{"style":1345},[5926],{"type":44,"value":5927},"=on-failure\n",{"type":16,"tag":228,"props":5929,"children":5930},{"class":230,"line":4118},[5931,5936],{"type":16,"tag":228,"props":5932,"children":5933},{"style":1339},[5934],{"type":44,"value":5935},"KillMode",{"type":16,"tag":228,"props":5937,"children":5938},{"style":1345},[5939],{"type":44,"value":5940},"=process\n",{"type":16,"tag":228,"props":5942,"children":5943},{"class":230,"line":4131},[5944,5949],{"type":16,"tag":228,"props":5945,"children":5946},{"style":1339},[5947],{"type":44,"value":5948},"RestartSec",{"type":16,"tag":228,"props":5950,"children":5951},{"style":1345},[5952],{"type":44,"value":5953},"=5s\n",{"type":16,"tag":228,"props":5955,"children":5956},{"class":230,"line":4139},[5957],{"type":16,"tag":228,"props":5958,"children":5959},{"emptyLinePlaceholder":4049},[5960],{"type":44,"value":4052},{"type":16,"tag":228,"props":5962,"children":5963},{"class":230,"line":4148},[5964],{"type":16,"tag":228,"props":5965,"children":5966},{"style":235},[5967],{"type":44,"value":5414},{"type":16,"tag":228,"props":5969,"children":5970},{"class":230,"line":4161},[5971,5975],{"type":16,"tag":228,"props":5972,"children":5973},{"style":1339},[5974],{"type":44,"value":5422},{"type":16,"tag":228,"props":5976,"children":5977},{"style":1345},[5978],{"type":44,"value":5979},"=multi-user.target\n",{"type":16,"tag":144,"props":5981,"children":5982},{},[5983],{"type":44,"value":5984},"Java 服务配置：",{"type":16,"tag":197,"props":5986,"children":5988},{"className":5297,"code":5987,"language":5299,"meta":6,"style":6},"[Unit]\nDescription= 说明\n\n[Service]\nType=simple\nWorkingDirectory= 执行路径\nExecStart= java -jar ***.jar\nExecReload=/bin/kill -HUP $MAINPID\nRestart=on-failure\nKillMode=process\nRestartSec=5s\n\n[Install]\nWantedBy=multi-user.target\n",[5989],{"type":16,"tag":90,"props":5990,"children":5991},{"__ignoreMap":6},[5992,5999,6011,6018,6025,6036,6048,6060,6071,6082,6093,6104,6111,6118],{"type":16,"tag":228,"props":5993,"children":5994},{"class":230,"line":231},[5995],{"type":16,"tag":228,"props":5996,"children":5997},{"style":235},[5998],{"type":44,"value":5311},{"type":16,"tag":228,"props":6000,"children":6001},{"class":230,"line":22},[6002,6006],{"type":16,"tag":228,"props":6003,"children":6004},{"style":1339},[6005],{"type":44,"value":5319},{"type":16,"tag":228,"props":6007,"children":6008},{"style":1345},[6009],{"type":44,"value":6010},"= 说明\n",{"type":16,"tag":228,"props":6012,"children":6013},{"class":230,"line":270},[6014],{"type":16,"tag":228,"props":6015,"children":6016},{"emptyLinePlaceholder":4049},[6017],{"type":44,"value":4052},{"type":16,"tag":228,"props":6019,"children":6020},{"class":230,"line":293},[6021],{"type":16,"tag":228,"props":6022,"children":6023},{"style":235},[6024],{"type":44,"value":5365},{"type":16,"tag":228,"props":6026,"children":6027},{"class":230,"line":311},[6028,6032],{"type":16,"tag":228,"props":6029,"children":6030},{"style":1339},[6031],{"type":44,"value":5373},{"type":16,"tag":228,"props":6033,"children":6034},{"style":1345},[6035],{"type":44,"value":5876},{"type":16,"tag":228,"props":6037,"children":6038},{"class":230,"line":324},[6039,6043],{"type":16,"tag":228,"props":6040,"children":6041},{"style":1339},[6042],{"type":44,"value":5884},{"type":16,"tag":228,"props":6044,"children":6045},{"style":1345},[6046],{"type":44,"value":6047},"= 执行路径\n",{"type":16,"tag":228,"props":6049,"children":6050},{"class":230,"line":342},[6051,6055],{"type":16,"tag":228,"props":6052,"children":6053},{"style":1339},[6054],{"type":44,"value":5394},{"type":16,"tag":228,"props":6056,"children":6057},{"style":1345},[6058],{"type":44,"value":6059},"= java -jar ***.jar\n",{"type":16,"tag":228,"props":6061,"children":6062},{"class":230,"line":1083},[6063,6067],{"type":16,"tag":228,"props":6064,"children":6065},{"style":1339},[6066],{"type":44,"value":5909},{"type":16,"tag":228,"props":6068,"children":6069},{"style":1345},[6070],{"type":44,"value":5914},{"type":16,"tag":228,"props":6072,"children":6073},{"class":230,"line":1105},[6074,6078],{"type":16,"tag":228,"props":6075,"children":6076},{"style":1339},[6077],{"type":44,"value":5922},{"type":16,"tag":228,"props":6079,"children":6080},{"style":1345},[6081],{"type":44,"value":5927},{"type":16,"tag":228,"props":6083,"children":6084},{"class":230,"line":4109},[6085,6089],{"type":16,"tag":228,"props":6086,"children":6087},{"style":1339},[6088],{"type":44,"value":5935},{"type":16,"tag":228,"props":6090,"children":6091},{"style":1345},[6092],{"type":44,"value":5940},{"type":16,"tag":228,"props":6094,"children":6095},{"class":230,"line":4118},[6096,6100],{"type":16,"tag":228,"props":6097,"children":6098},{"style":1339},[6099],{"type":44,"value":5948},{"type":16,"tag":228,"props":6101,"children":6102},{"style":1345},[6103],{"type":44,"value":5953},{"type":16,"tag":228,"props":6105,"children":6106},{"class":230,"line":4131},[6107],{"type":16,"tag":228,"props":6108,"children":6109},{"emptyLinePlaceholder":4049},[6110],{"type":44,"value":4052},{"type":16,"tag":228,"props":6112,"children":6113},{"class":230,"line":4139},[6114],{"type":16,"tag":228,"props":6115,"children":6116},{"style":235},[6117],{"type":44,"value":5414},{"type":16,"tag":228,"props":6119,"children":6120},{"class":230,"line":4148},[6121,6125],{"type":16,"tag":228,"props":6122,"children":6123},{"style":1339},[6124],{"type":44,"value":5422},{"type":16,"tag":228,"props":6126,"children":6127},{"style":1345},[6128],{"type":44,"value":5979},{"type":16,"tag":144,"props":6130,"children":6131},{},[6132,6134],{"type":44,"value":6133},"原文链接：",{"type":16,"tag":1271,"props":6135,"children":6138},{"href":6136,"rel":6137},"https://blog.csdn.net/csdn_zhangjinyu/article/details/122585191",[1275],[6139],{"type":44,"value":6136},{"type":16,"tag":1281,"props":6141,"children":6142},{},[6143],{"type":44,"value":1285},{"title":6,"searchDepth":22,"depth":22,"links":6145},[],"content:articles:06-sysctlconfig.md","articles/06-sysctlconfig.md",{"_path":6149,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":6150,"description":6150,"cover":6151,"date":6152,"category":6153,"layout":35,"body":6154,"_type":24,"_id":6196,"_source":26,"_file":6197,"_extension":28},"/articles/07-airport","常用机场记录","https://img.mxai.eu.cc/imgs/cover_1776321264254_1776321264.jpg","2024-05-19T00:00:00.000Z","LINKS",{"type":13,"children":6155,"toc":6194},[6156,6160,6165],{"type":16,"tag":39,"props":6157,"children":6158},{"id":6150},[6159],{"type":44,"value":6150},{"type":16,"tag":144,"props":6161,"children":6162},{},[6163],{"type":44,"value":6164},"平价或备用机场的记录",{"type":16,"tag":46,"props":6166,"children":6167},{},[6168,6173,6178,6183],{"type":16,"tag":50,"props":6169,"children":6170},{},[6171],{"type":44,"value":6172},"三分起飞 1元/10G/1月",{"type":16,"tag":50,"props":6174,"children":6175},{},[6176],{"type":44,"value":6177},"泡泡Dog 20元/110G/不限时",{"type":16,"tag":50,"props":6179,"children":6180},{},[6181],{"type":44,"value":6182},"sgkpx 1元/10G/1月/100M/5节点",{"type":16,"tag":50,"props":6184,"children":6185},{},[6186,6188],{"type":44,"value":6187},"外部推荐 ",{"type":16,"tag":1271,"props":6189,"children":6192},{"href":6190,"rel":6191},"https://9.234456.xyz/abc.html?t=638200884798013862",[1275],[6193],{"type":44,"value":6190},{"title":6,"searchDepth":22,"depth":22,"links":6195},[],"content:articles:07-airport.md","articles/07-airport.md",{"_path":6199,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":6200,"description":6201,"cover":6202,"date":6203,"category":6204,"layout":35,"body":6205,"_type":24,"_id":6441,"_source":26,"_file":6442,"_extension":28},"/articles/08-openclaw-deploy","OpenClaw 部署教程","OpenClaw AI 助手部署指南","https://img.mxai.eu.cc/imgs/cover_1776321288087_1776321288.jpg","2026-03-31T00:00:00.000Z","AI / DEPLOY",{"type":13,"children":6206,"toc":6428},[6207,6212,6217,6222,6228,6260,6266,6291,6297,6326,6332,6343,6348,6354,6378,6383,6389,6394,6399,6424],{"type":16,"tag":39,"props":6208,"children":6210},{"id":6209},"openclaw-部署教程",[6211],{"type":44,"value":6200},{"type":16,"tag":144,"props":6213,"children":6214},{},[6215],{"type":44,"value":6216},"OpenClaw 是一个自托管的 AI 助手网关，支持 WhatsApp、Telegram、Discord 等消息渠道。",{"type":16,"tag":71,"props":6218,"children":6220},{"id":6219},"快速开始",[6221],{"type":44,"value":6219},{"type":16,"tag":113,"props":6223,"children":6225},{"id":6224},"_1-安装",[6226],{"type":44,"value":6227},"1. 安装",{"type":16,"tag":197,"props":6229,"children":6231},{"className":222,"code":6230,"language":221,"meta":6,"style":6},"curl -fsSL https://openclaw.ai/install.sh | bash\n",[6232],{"type":16,"tag":90,"props":6233,"children":6234},{"__ignoreMap":6},[6235],{"type":16,"tag":228,"props":6236,"children":6237},{"class":230,"line":231},[6238,6242,6246,6251,6255],{"type":16,"tag":228,"props":6239,"children":6240},{"style":235},[6241],{"type":44,"value":1832},{"type":16,"tag":228,"props":6243,"children":6244},{"style":247},[6245],{"type":44,"value":1837},{"type":16,"tag":228,"props":6247,"children":6248},{"style":241},[6249],{"type":44,"value":6250}," https://openclaw.ai/install.sh",{"type":16,"tag":228,"props":6252,"children":6253},{"style":1339},[6254],{"type":44,"value":1847},{"type":16,"tag":228,"props":6256,"children":6257},{"style":235},[6258],{"type":44,"value":6259}," bash\n",{"type":16,"tag":113,"props":6261,"children":6263},{"id":6262},"_2-新手引导",[6264],{"type":44,"value":6265},"2. 新手引导",{"type":16,"tag":197,"props":6267,"children":6269},{"className":222,"code":6268,"language":221,"meta":6,"style":6},"openclaw onboard --install-daemon\n",[6270],{"type":16,"tag":90,"props":6271,"children":6272},{"__ignoreMap":6},[6273],{"type":16,"tag":228,"props":6274,"children":6275},{"class":230,"line":231},[6276,6281,6286],{"type":16,"tag":228,"props":6277,"children":6278},{"style":235},[6279],{"type":44,"value":6280},"openclaw",{"type":16,"tag":228,"props":6282,"children":6283},{"style":241},[6284],{"type":44,"value":6285}," onboard",{"type":16,"tag":228,"props":6287,"children":6288},{"style":247},[6289],{"type":44,"value":6290}," --install-daemon\n",{"type":16,"tag":113,"props":6292,"children":6294},{"id":6293},"_3-启动网关",[6295],{"type":44,"value":6296},"3. 启动网关",{"type":16,"tag":197,"props":6298,"children":6300},{"className":222,"code":6299,"language":221,"meta":6,"style":6},"openclaw gateway --port 18789\n",[6301],{"type":16,"tag":90,"props":6302,"children":6303},{"__ignoreMap":6},[6304],{"type":16,"tag":228,"props":6305,"children":6306},{"class":230,"line":231},[6307,6311,6316,6321],{"type":16,"tag":228,"props":6308,"children":6309},{"style":235},[6310],{"type":44,"value":6280},{"type":16,"tag":228,"props":6312,"children":6313},{"style":241},[6314],{"type":44,"value":6315}," gateway",{"type":16,"tag":228,"props":6317,"children":6318},{"style":247},[6319],{"type":44,"value":6320}," --port",{"type":16,"tag":228,"props":6322,"children":6323},{"style":247},[6324],{"type":44,"value":6325}," 18789\n",{"type":16,"tag":113,"props":6327,"children":6329},{"id":6328},"_4-访问控制台",[6330],{"type":44,"value":6331},"4. 访问控制台",{"type":16,"tag":144,"props":6333,"children":6334},{},[6335,6337],{"type":44,"value":6336},"打开浏览器访问 ",{"type":16,"tag":1271,"props":6338,"children":6341},{"href":6339,"rel":6340},"http://127.0.0.1:18789/",[1275],[6342],{"type":44,"value":6339},{"type":16,"tag":71,"props":6344,"children":6346},{"id":6345},"渠道配置",[6347],{"type":44,"value":6345},{"type":16,"tag":113,"props":6349,"children":6351},{"id":6350},"whatsapp",[6352],{"type":44,"value":6353},"WhatsApp",{"type":16,"tag":197,"props":6355,"children":6357},{"className":222,"code":6356,"language":221,"meta":6,"style":6},"openclaw channels login\n",[6358],{"type":16,"tag":90,"props":6359,"children":6360},{"__ignoreMap":6},[6361],{"type":16,"tag":228,"props":6362,"children":6363},{"class":230,"line":231},[6364,6368,6373],{"type":16,"tag":228,"props":6365,"children":6366},{"style":235},[6367],{"type":44,"value":6280},{"type":16,"tag":228,"props":6369,"children":6370},{"style":241},[6371],{"type":44,"value":6372}," channels",{"type":16,"tag":228,"props":6374,"children":6375},{"style":241},[6376],{"type":44,"value":6377}," login\n",{"type":16,"tag":144,"props":6379,"children":6380},{},[6381],{"type":44,"value":6382},"扫描二维码完成配对。",{"type":16,"tag":113,"props":6384,"children":6386},{"id":6385},"telegram",[6387],{"type":44,"value":6388},"Telegram",{"type":16,"tag":144,"props":6390,"children":6391},{},[6392],{"type":44,"value":6393},"在 BotFather 创建机器人，获取 Token 后配置。",{"type":16,"tag":71,"props":6395,"children":6397},{"id":6396},"更多信息",[6398],{"type":44,"value":6396},{"type":16,"tag":46,"props":6400,"children":6401},{},[6402,6413],{"type":16,"tag":50,"props":6403,"children":6404},{},[6405,6407],{"type":44,"value":6406},"官方文档：",{"type":16,"tag":1271,"props":6408,"children":6411},{"href":6409,"rel":6410},"https://docs.openclaw.ai",[1275],[6412],{"type":44,"value":6409},{"type":16,"tag":50,"props":6414,"children":6415},{},[6416,6418],{"type":44,"value":6417},"GitHub：",{"type":16,"tag":1271,"props":6419,"children":6422},{"href":6420,"rel":6421},"https://github.com/openclaw/openclaw",[1275],[6423],{"type":44,"value":6420},{"type":16,"tag":1281,"props":6425,"children":6426},{},[6427],{"type":44,"value":1285},{"title":6,"searchDepth":22,"depth":22,"links":6429},[6430,6436,6440],{"id":6219,"depth":22,"text":6219,"children":6431},[6432,6433,6434,6435],{"id":6224,"depth":270,"text":6227},{"id":6262,"depth":270,"text":6265},{"id":6293,"depth":270,"text":6296},{"id":6328,"depth":270,"text":6331},{"id":6345,"depth":22,"text":6345,"children":6437},[6438,6439],{"id":6350,"depth":270,"text":6353},{"id":6385,"depth":270,"text":6388},{"id":6396,"depth":22,"text":6396},"content:articles:08-openclaw-deploy.md","articles/08-openclaw-deploy.md",{"_path":6444,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":6445,"description":6446,"cover":6447,"date":6203,"category":6448,"layout":35,"body":6449,"_type":24,"_id":8144,"_source":26,"_file":8145,"_extension":28},"/articles/09-chinese-openclaw-products","国产 OpenClaw 衍生产品大盘点","JVS Claw、Qclaw、ClawX 等国产 OpenClaw 衍生产品对比，包含价格、客户端、功能特性","https://img.mxai.eu.cc/imgs/cover_1776321315117_1776321315.jpg","AI / TOOLS",{"type":13,"children":6450,"toc":8122},[6451,6456,6461,6466,6468,6669,6673,6679,6689,6705,6714,6728,6737,6750,6759,6782,6792,6795,6801,6810,6824,6839,6848,6857,6865,6883,6892,6910,6919,6952,6960,6983,6992,6995,7001,7010,7024,7038,7046,7054,7062,7080,7088,7106,7114,7152,7161,7189,7197,7220,7229,7232,7238,7247,7261,7271,7280,7288,7296,7309,7318,7362,7370,7393,7402,7425,7434,7452,7461,7464,7470,7479,7493,7507,7516,7524,7533,7541,7569,7578,7606,7614,7636,7645,7648,7654,7660,7674,7692,7698,7712,7735,7741,7755,7768,7774,7788,7801,7804,7809,7814,7829,7847,7852,7860,7877,7882,7896,7914,7919,7927,7945,7948,7953,7958,7960,8053,8058,8061,8066,8118],{"type":16,"tag":39,"props":6452,"children":6454},{"id":6453},"国产-openclaw-衍生产品大盘点",[6455],{"type":44,"value":6445},{"type":16,"tag":144,"props":6457,"children":6458},{},[6459],{"type":44,"value":6460},"OpenClaw 作为 GitHub 195,000+ Stars 的开源个人 AI 助手平台，在国内也涌现出了许多优秀的衍生产品和本土化版本。本文为你详细盘点市面上的国产 OpenClaw 衍生产品。",{"type":16,"tag":71,"props":6462,"children":6464},{"id":6463},"产品对比总览",[6465],{"type":44,"value":6463},{"type":44,"value":6467},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":16,"tag":2484,"props":6469,"children":6470},{},[6471,6507],{"type":16,"tag":2488,"props":6472,"children":6473},{},[6474],{"type":16,"tag":2492,"props":6475,"children":6476},{},[6477,6482,6487,6492,6497,6502],{"type":16,"tag":2496,"props":6478,"children":6479},{},[6480],{"type":44,"value":6481},"产品名称",{"type":16,"tag":2496,"props":6483,"children":6484},{},[6485],{"type":44,"value":6486},"类型",{"type":16,"tag":2496,"props":6488,"children":6489},{},[6490],{"type":44,"value":6491},"价格",{"type":16,"tag":2496,"props":6493,"children":6494},{},[6495],{"type":44,"value":6496},"客户端",{"type":16,"tag":2496,"props":6498,"children":6499},{},[6500],{"type":44,"value":6501},"GitHub Stars",{"type":16,"tag":2496,"props":6503,"children":6504},{},[6505],{"type":44,"value":6506},"特色",{"type":16,"tag":2512,"props":6508,"children":6509},{},[6510,6542,6575,6606,6638],{"type":16,"tag":2492,"props":6511,"children":6512},{},[6513,6518,6523,6528,6533,6537],{"type":16,"tag":2519,"props":6514,"children":6515},{},[6516],{"type":44,"value":6517},"JVS Claw",{"type":16,"tag":2519,"props":6519,"children":6520},{},[6521],{"type":44,"value":6522},"云服务",{"type":16,"tag":2519,"props":6524,"children":6525},{},[6526],{"type":44,"value":6527},"官网查看",{"type":16,"tag":2519,"props":6529,"children":6530},{},[6531],{"type":44,"value":6532},"Web",{"type":16,"tag":2519,"props":6534,"children":6535},{},[6536],{"type":44,"value":1353},{"type":16,"tag":2519,"props":6538,"children":6539},{},[6540],{"type":44,"value":6541},"阿里云无影出品",{"type":16,"tag":2492,"props":6543,"children":6544},{},[6545,6550,6555,6560,6565,6570],{"type":16,"tag":2519,"props":6546,"children":6547},{},[6548],{"type":44,"value":6549},"Qclaw",{"type":16,"tag":2519,"props":6551,"children":6552},{},[6553],{"type":44,"value":6554},"桌面应用",{"type":16,"tag":2519,"props":6556,"children":6557},{},[6558],{"type":44,"value":6559},"免费",{"type":16,"tag":2519,"props":6561,"children":6562},{},[6563],{"type":44,"value":6564},"macOS/Windows",{"type":16,"tag":2519,"props":6566,"children":6567},{},[6568],{"type":44,"value":6569},"1.4k",{"type":16,"tag":2519,"props":6571,"children":6572},{},[6573],{"type":44,"value":6574},"小白友好",{"type":16,"tag":2492,"props":6576,"children":6577},{},[6578,6583,6587,6591,6596,6601],{"type":16,"tag":2519,"props":6579,"children":6580},{},[6581],{"type":44,"value":6582},"ClawX",{"type":16,"tag":2519,"props":6584,"children":6585},{},[6586],{"type":44,"value":6554},{"type":16,"tag":2519,"props":6588,"children":6589},{},[6590],{"type":44,"value":6559},{"type":16,"tag":2519,"props":6592,"children":6593},{},[6594],{"type":44,"value":6595},"macOS/Windows/Linux",{"type":16,"tag":2519,"props":6597,"children":6598},{},[6599],{"type":44,"value":6600},"5.9k",{"type":16,"tag":2519,"props":6602,"children":6603},{},[6604],{"type":44,"value":6605},"图形界面",{"type":16,"tag":2492,"props":6607,"children":6608},{},[6609,6614,6619,6623,6628,6633],{"type":16,"tag":2519,"props":6610,"children":6611},{},[6612],{"type":44,"value":6613},"OpenClaw 汉化版",{"type":16,"tag":2519,"props":6615,"children":6616},{},[6617],{"type":44,"value":6618},"汉化包",{"type":16,"tag":2519,"props":6620,"children":6621},{},[6622],{"type":44,"value":6559},{"type":16,"tag":2519,"props":6624,"children":6625},{},[6626],{"type":44,"value":6627},"CLI/Web",{"type":16,"tag":2519,"props":6629,"children":6630},{},[6631],{"type":44,"value":6632},"3.6k",{"type":16,"tag":2519,"props":6634,"children":6635},{},[6636],{"type":44,"value":6637},"全中文界面",{"type":16,"tag":2492,"props":6639,"children":6640},{},[6641,6646,6651,6655,6659,6664],{"type":16,"tag":2519,"props":6642,"children":6643},{},[6644],{"type":44,"value":6645},"OpenClaw 101",{"type":16,"tag":2519,"props":6647,"children":6648},{},[6649],{"type":44,"value":6650},"教程站",{"type":16,"tag":2519,"props":6652,"children":6653},{},[6654],{"type":44,"value":6559},{"type":16,"tag":2519,"props":6656,"children":6657},{},[6658],{"type":44,"value":6532},{"type":16,"tag":2519,"props":6660,"children":6661},{},[6662],{"type":44,"value":6663},"2.6k",{"type":16,"tag":2519,"props":6665,"children":6666},{},[6667],{"type":44,"value":6668},"资源聚合",{"type":16,"tag":6670,"props":6671,"children":6672},"hr",{},[],{"type":16,"tag":71,"props":6674,"children":6676},{"id":6675},"_1-jvs-claw",[6677],{"type":44,"value":6678},"1. JVS Claw",{"type":16,"tag":144,"props":6680,"children":6681},{},[6682,6687],{"type":16,"tag":1567,"props":6683,"children":6684},{},[6685],{"type":44,"value":6686},"出品方",{"type":44,"value":6688},": 阿里云无影",{"type":16,"tag":144,"props":6690,"children":6691},{},[6692,6697,6699],{"type":16,"tag":1567,"props":6693,"children":6694},{},[6695],{"type":44,"value":6696},"官网",{"type":44,"value":6698},": ",{"type":16,"tag":1271,"props":6700,"children":6703},{"href":6701,"rel":6702},"https://jvsclaw.aliyun.com",[1275],[6704],{"type":44,"value":6701},{"type":16,"tag":144,"props":6706,"children":6707},{},[6708,6712],{"type":16,"tag":1567,"props":6709,"children":6710},{},[6711],{"type":44,"value":6486},{"type":44,"value":6713},": 云服务",{"type":16,"tag":144,"props":6715,"children":6716},{},[6717,6721,6723],{"type":16,"tag":1567,"props":6718,"children":6719},{},[6720],{"type":44,"value":6491},{"type":44,"value":6722},": JVS Claw 计费相关内容，请前往官网查看：",{"type":16,"tag":1271,"props":6724,"children":6726},{"href":6701,"rel":6725},[1275],[6727],{"type":44,"value":6701},{"type":16,"tag":144,"props":6729,"children":6730},{},[6731,6735],{"type":16,"tag":1567,"props":6732,"children":6733},{},[6734],{"type":44,"value":6496},{"type":44,"value":6736},":",{"type":16,"tag":46,"props":6738,"children":6739},{},[6740,6745],{"type":16,"tag":50,"props":6741,"children":6742},{},[6743],{"type":44,"value":6744},"Web 控制台",{"type":16,"tag":50,"props":6746,"children":6747},{},[6748],{"type":44,"value":6749},"支持多渠道接入",{"type":16,"tag":144,"props":6751,"children":6752},{},[6753,6758],{"type":16,"tag":1567,"props":6754,"children":6755},{},[6756],{"type":44,"value":6757},"特点",{"type":44,"value":6736},{"type":16,"tag":46,"props":6760,"children":6761},{},[6762,6767,6772,6777],{"type":16,"tag":50,"props":6763,"children":6764},{},[6765],{"type":44,"value":6766},"阿里云官方出品",{"type":16,"tag":50,"props":6768,"children":6769},{},[6770],{"type":44,"value":6771},"企业级部署方案",{"type":16,"tag":50,"props":6773,"children":6774},{},[6775],{"type":44,"value":6776},"与无影云电脑深度集成",{"type":16,"tag":50,"props":6778,"children":6779},{},[6780],{"type":44,"value":6781},"支持私有化部署",{"type":16,"tag":144,"props":6783,"children":6784},{},[6785,6790],{"type":16,"tag":1567,"props":6786,"children":6787},{},[6788],{"type":44,"value":6789},"适合人群",{"type":44,"value":6791},": 企业用户、需要云服务支持的用户",{"type":16,"tag":6670,"props":6793,"children":6794},{},[],{"type":16,"tag":71,"props":6796,"children":6798},{"id":6797},"_2-qclaw",[6799],{"type":44,"value":6800},"2. Qclaw",{"type":16,"tag":144,"props":6802,"children":6803},{},[6804,6808],{"type":16,"tag":1567,"props":6805,"children":6806},{},[6807],{"type":44,"value":6686},{"type":44,"value":6809},": 个人开发者 (@qiuzhi2046)",{"type":16,"tag":144,"props":6811,"children":6812},{},[6813,6817,6818],{"type":16,"tag":1567,"props":6814,"children":6815},{},[6816],{"type":44,"value":6696},{"type":44,"value":6698},{"type":16,"tag":1271,"props":6819,"children":6822},{"href":6820,"rel":6821},"https://qclawai.com",[1275],[6823],{"type":44,"value":6820},{"type":16,"tag":144,"props":6825,"children":6826},{},[6827,6832,6833],{"type":16,"tag":1567,"props":6828,"children":6829},{},[6830],{"type":44,"value":6831},"GitHub",{"type":44,"value":6698},{"type":16,"tag":1271,"props":6834,"children":6837},{"href":6835,"rel":6836},"https://github.com/qiuzhi2046/Qclaw",[1275],[6838],{"type":44,"value":6835},{"type":16,"tag":144,"props":6840,"children":6841},{},[6842,6846],{"type":16,"tag":1567,"props":6843,"children":6844},{},[6845],{"type":44,"value":6486},{"type":44,"value":6847},": 桌面应用",{"type":16,"tag":144,"props":6849,"children":6850},{},[6851,6855],{"type":16,"tag":1567,"props":6852,"children":6853},{},[6854],{"type":44,"value":6491},{"type":44,"value":6856},": 免费开源",{"type":16,"tag":144,"props":6858,"children":6859},{},[6860,6864],{"type":16,"tag":1567,"props":6861,"children":6862},{},[6863],{"type":44,"value":6496},{"type":44,"value":6736},{"type":16,"tag":46,"props":6866,"children":6867},{},[6868,6873,6878],{"type":16,"tag":50,"props":6869,"children":6870},{},[6871],{"type":44,"value":6872},"macOS (已发布)",{"type":16,"tag":50,"props":6874,"children":6875},{},[6876],{"type":44,"value":6877},"Windows (开发中)",{"type":16,"tag":50,"props":6879,"children":6880},{},[6881],{"type":44,"value":6882},"Linux (计划中)",{"type":16,"tag":144,"props":6884,"children":6885},{},[6886,6891],{"type":16,"tag":1567,"props":6887,"children":6888},{},[6889],{"type":44,"value":6890},"技术栈",{"type":44,"value":6736},{"type":16,"tag":46,"props":6893,"children":6894},{},[6895,6900,6905],{"type":16,"tag":50,"props":6896,"children":6897},{},[6898],{"type":44,"value":6899},"Electron + React + TypeScript",{"type":16,"tag":50,"props":6901,"children":6902},{},[6903],{"type":44,"value":6904},"Mantine UI + Tailwind CSS",{"type":16,"tag":50,"props":6906,"children":6907},{},[6908],{"type":44,"value":6909},"Vite 构建",{"type":16,"tag":144,"props":6911,"children":6912},{},[6913,6918],{"type":16,"tag":1567,"props":6914,"children":6915},{},[6916],{"type":44,"value":6917},"核心功能",{"type":44,"value":6736},{"type":16,"tag":46,"props":6920,"children":6921},{},[6922,6927,6932,6937,6942,6947],{"type":16,"tag":50,"props":6923,"children":6924},{},[6925],{"type":44,"value":6926},"环境自检 — 自动检测 Node.js 和 OpenClaw CLI",{"type":16,"tag":50,"props":6928,"children":6929},{},[6930],{"type":44,"value":6931},"IM 插件接入 — 飞书、微信、企业微信、钉钉、QQ",{"type":16,"tag":50,"props":6933,"children":6934},{},[6935],{"type":44,"value":6936},"网关管理 — 实时监控、一键重启、修复",{"type":16,"tag":50,"props":6938,"children":6939},{},[6940],{"type":44,"value":6941},"Skills 管理 — 多来源技能管理",{"type":16,"tag":50,"props":6943,"children":6944},{},[6945],{"type":44,"value":6946},"数据备份 — 自动 + 手动备份",{"type":16,"tag":50,"props":6948,"children":6949},{},[6950],{"type":44,"value":6951},"自动更新 — 支持 OpenClaw 最新版本",{"type":16,"tag":144,"props":6953,"children":6954},{},[6955,6959],{"type":16,"tag":1567,"props":6956,"children":6957},{},[6958],{"type":44,"value":6757},{"type":44,"value":6736},{"type":16,"tag":46,"props":6961,"children":6962},{},[6963,6968,6973,6978],{"type":16,"tag":50,"props":6964,"children":6965},{},[6966],{"type":44,"value":6967},"零基础上手，教程即操作",{"type":16,"tag":50,"props":6969,"children":6970},{},[6971],{"type":44,"value":6972},"关闭客户端不影响后台 OpenClaw 运行",{"type":16,"tag":50,"props":6974,"children":6975},{},[6976],{"type":44,"value":6977},"支持 OpenClaw 全量模型",{"type":16,"tag":50,"props":6979,"children":6980},{},[6981],{"type":44,"value":6982},"扫码一键接入 IM 渠道",{"type":16,"tag":144,"props":6984,"children":6985},{},[6986,6990],{"type":16,"tag":1567,"props":6987,"children":6988},{},[6989],{"type":44,"value":6789},{"type":44,"value":6991},": 新手用户、不想使用命令行的用户",{"type":16,"tag":6670,"props":6993,"children":6994},{},[],{"type":16,"tag":71,"props":6996,"children":6998},{"id":6997},"_3-clawx",[6999],{"type":44,"value":7000},"3. ClawX",{"type":16,"tag":144,"props":7002,"children":7003},{},[7004,7008],{"type":16,"tag":1567,"props":7005,"children":7006},{},[7007],{"type":44,"value":6686},{"type":44,"value":7009},": ValueCell AI",{"type":16,"tag":144,"props":7011,"children":7012},{},[7013,7017,7018],{"type":16,"tag":1567,"props":7014,"children":7015},{},[7016],{"type":44,"value":6696},{"type":44,"value":6698},{"type":16,"tag":1271,"props":7019,"children":7022},{"href":7020,"rel":7021},"https://clawx.com.cn",[1275],[7023],{"type":44,"value":7020},{"type":16,"tag":144,"props":7025,"children":7026},{},[7027,7031,7032],{"type":16,"tag":1567,"props":7028,"children":7029},{},[7030],{"type":44,"value":6831},{"type":44,"value":6698},{"type":16,"tag":1271,"props":7033,"children":7036},{"href":7034,"rel":7035},"https://github.com/ValueCell-ai/ClawX",[1275],[7037],{"type":44,"value":7034},{"type":16,"tag":144,"props":7039,"children":7040},{},[7041,7045],{"type":16,"tag":1567,"props":7042,"children":7043},{},[7044],{"type":44,"value":6486},{"type":44,"value":6847},{"type":16,"tag":144,"props":7047,"children":7048},{},[7049,7053],{"type":16,"tag":1567,"props":7050,"children":7051},{},[7052],{"type":44,"value":6491},{"type":44,"value":6856},{"type":16,"tag":144,"props":7055,"children":7056},{},[7057,7061],{"type":16,"tag":1567,"props":7058,"children":7059},{},[7060],{"type":44,"value":6496},{"type":44,"value":6736},{"type":16,"tag":46,"props":7063,"children":7064},{},[7065,7070,7075],{"type":16,"tag":50,"props":7066,"children":7067},{},[7068],{"type":44,"value":7069},"macOS",{"type":16,"tag":50,"props":7071,"children":7072},{},[7073],{"type":44,"value":7074},"Windows",{"type":16,"tag":50,"props":7076,"children":7077},{},[7078],{"type":44,"value":7079},"Linux",{"type":16,"tag":144,"props":7081,"children":7082},{},[7083,7087],{"type":16,"tag":1567,"props":7084,"children":7085},{},[7086],{"type":44,"value":6890},{"type":44,"value":6736},{"type":16,"tag":46,"props":7089,"children":7090},{},[7091,7096,7101],{"type":16,"tag":50,"props":7092,"children":7093},{},[7094],{"type":44,"value":7095},"Electron 40+",{"type":16,"tag":50,"props":7097,"children":7098},{},[7099],{"type":44,"value":7100},"React 19",{"type":16,"tag":50,"props":7102,"children":7103},{},[7104],{"type":44,"value":7105},"TypeScript",{"type":16,"tag":144,"props":7107,"children":7108},{},[7109,7113],{"type":16,"tag":1567,"props":7110,"children":7111},{},[7112],{"type":44,"value":6917},{"type":44,"value":6736},{"type":16,"tag":46,"props":7115,"children":7116},{},[7117,7122,7127,7132,7137,7142,7147],{"type":16,"tag":50,"props":7118,"children":7119},{},[7120],{"type":44,"value":7121},"一键安装 — 图形化安装向导",{"type":16,"tag":50,"props":7123,"children":7124},{},[7125],{"type":44,"value":7126},"可视化设置 — 实时验证配置",{"type":16,"tag":50,"props":7128,"children":7129},{},[7130],{"type":44,"value":7131},"进程管理 — 自动网关生命周期管理",{"type":16,"tag":50,"props":7133,"children":7134},{},[7135],{"type":44,"value":7136},"多 AI 提供商 — 统一配置面板",{"type":16,"tag":50,"props":7138,"children":7139},{},[7140],{"type":44,"value":7141},"技能市场 — 内置技能管理",{"type":16,"tag":50,"props":7143,"children":7144},{},[7145],{"type":44,"value":7146},"定时任务 — Cron 任务可视化配置",{"type":16,"tag":50,"props":7148,"children":7149},{},[7150],{"type":44,"value":7151},"多渠道管理 — 支持多账号",{"type":16,"tag":144,"props":7153,"children":7154},{},[7155,7160],{"type":16,"tag":1567,"props":7156,"children":7157},{},[7158],{"type":44,"value":7159},"捆绑技能",{"type":44,"value":6736},{"type":16,"tag":46,"props":7162,"children":7163},{},[7164,7169,7174,7179,7184],{"type":16,"tag":50,"props":7165,"children":7166},{},[7167],{"type":44,"value":7168},"pdf, xlsx, docx, pptx 文档处理",{"type":16,"tag":50,"props":7170,"children":7171},{},[7172],{"type":44,"value":7173},"find-skills 技能发现",{"type":16,"tag":50,"props":7175,"children":7176},{},[7177],{"type":44,"value":7178},"self-improving-agent 自我改进",{"type":16,"tag":50,"props":7180,"children":7181},{},[7182],{"type":44,"value":7183},"tavily-search 网络搜索",{"type":16,"tag":50,"props":7185,"children":7186},{},[7187],{"type":44,"value":7188},"brave-web-search 网络搜索",{"type":16,"tag":144,"props":7190,"children":7191},{},[7192,7196],{"type":16,"tag":1567,"props":7193,"children":7194},{},[7195],{"type":44,"value":6757},{"type":44,"value":6736},{"type":16,"tag":46,"props":7198,"children":7199},{},[7200,7205,7210,7215],{"type":16,"tag":50,"props":7201,"children":7202},{},[7203],{"type":44,"value":7204},"严格对齐上游 OpenClaw 项目",{"type":16,"tag":50,"props":7206,"children":7207},{},[7208],{"type":44,"value":7209},"内置腾讯官方微信渠道插件",{"type":16,"tag":50,"props":7211,"children":7212},{},[7213],{"type":44,"value":7214},"支持 OAuth 和 API Key 双认证",{"type":16,"tag":50,"props":7216,"children":7217},{},[7218],{"type":44,"value":7219},"系统启动项自动启动",{"type":16,"tag":144,"props":7221,"children":7222},{},[7223,7227],{"type":16,"tag":1567,"props":7224,"children":7225},{},[7226],{"type":44,"value":6789},{"type":44,"value":7228},": 需要图形界面的高级用户",{"type":16,"tag":6670,"props":7230,"children":7231},{},[],{"type":16,"tag":71,"props":7233,"children":7235},{"id":7234},"_4-openclaw-汉化版",[7236],{"type":44,"value":7237},"4. OpenClaw 汉化版",{"type":16,"tag":144,"props":7239,"children":7240},{},[7241,7245],{"type":16,"tag":1567,"props":7242,"children":7243},{},[7244],{"type":44,"value":6686},{"type":44,"value":7246},": 个人开发者 (@1186258278)",{"type":16,"tag":144,"props":7248,"children":7249},{},[7250,7254,7255],{"type":16,"tag":1567,"props":7251,"children":7252},{},[7253],{"type":44,"value":6831},{"type":44,"value":6698},{"type":16,"tag":1271,"props":7256,"children":7259},{"href":7257,"rel":7258},"https://github.com/1186258278/OpenClawChineseTranslation",[1275],[7260],{"type":44,"value":7257},{"type":16,"tag":144,"props":7262,"children":7263},{},[7264,7269],{"type":16,"tag":1567,"props":7265,"children":7266},{},[7267],{"type":44,"value":7268},"NPM",{"type":44,"value":7270},": @qingchencloud/openclaw-zh",{"type":16,"tag":144,"props":7272,"children":7273},{},[7274,7278],{"type":16,"tag":1567,"props":7275,"children":7276},{},[7277],{"type":44,"value":6486},{"type":44,"value":7279},": 汉化包",{"type":16,"tag":144,"props":7281,"children":7282},{},[7283,7287],{"type":16,"tag":1567,"props":7284,"children":7285},{},[7286],{"type":44,"value":6491},{"type":44,"value":6856},{"type":16,"tag":144,"props":7289,"children":7290},{},[7291,7295],{"type":16,"tag":1567,"props":7292,"children":7293},{},[7294],{"type":44,"value":6496},{"type":44,"value":6736},{"type":16,"tag":46,"props":7297,"children":7298},{},[7299,7304],{"type":16,"tag":50,"props":7300,"children":7301},{},[7302],{"type":44,"value":7303},"CLI 命令行（汉化）",{"type":16,"tag":50,"props":7305,"children":7306},{},[7307],{"type":44,"value":7308},"Dashboard Web（汉化）",{"type":16,"tag":144,"props":7310,"children":7311},{},[7312,7317],{"type":16,"tag":1567,"props":7313,"children":7314},{},[7315],{"type":44,"value":7316},"安装方式",{"type":44,"value":6736},{"type":16,"tag":197,"props":7319,"children":7321},{"className":222,"code":7320,"language":221,"meta":6,"style":6},"npm install -g @qingchencloud/openclaw-zh@latest\nopenclaw onboard --install-daemon\n",[7322],{"type":16,"tag":90,"props":7323,"children":7324},{"__ignoreMap":6},[7325,7347],{"type":16,"tag":228,"props":7326,"children":7327},{"class":230,"line":231},[7328,7333,7337,7342],{"type":16,"tag":228,"props":7329,"children":7330},{"style":235},[7331],{"type":44,"value":7332},"npm",{"type":16,"tag":228,"props":7334,"children":7335},{"style":241},[7336],{"type":44,"value":1787},{"type":16,"tag":228,"props":7338,"children":7339},{"style":247},[7340],{"type":44,"value":7341}," -g",{"type":16,"tag":228,"props":7343,"children":7344},{"style":241},[7345],{"type":44,"value":7346}," @qingchencloud/openclaw-zh@latest\n",{"type":16,"tag":228,"props":7348,"children":7349},{"class":230,"line":22},[7350,7354,7358],{"type":16,"tag":228,"props":7351,"children":7352},{"style":235},[7353],{"type":44,"value":6280},{"type":16,"tag":228,"props":7355,"children":7356},{"style":241},[7357],{"type":44,"value":6285},{"type":16,"tag":228,"props":7359,"children":7360},{"style":247},[7361],{"type":44,"value":6290},{"type":16,"tag":144,"props":7363,"children":7364},{},[7365,7369],{"type":16,"tag":1567,"props":7366,"children":7367},{},[7368],{"type":44,"value":6917},{"type":44,"value":6736},{"type":16,"tag":46,"props":7371,"children":7372},{},[7373,7378,7383,7388],{"type":16,"tag":50,"props":7374,"children":7375},{},[7376],{"type":44,"value":7377},"全中文 CLI 界面",{"type":16,"tag":50,"props":7379,"children":7380},{},[7381],{"type":44,"value":7382},"全中文 Dashboard",{"type":16,"tag":50,"props":7384,"children":7385},{},[7386],{"type":44,"value":7387},"每小时自动同步官方更新",{"type":16,"tag":50,"props":7389,"children":7390},{},[7391],{"type":44,"value":7392},"汉化延迟 \u003C 1 小时",{"type":16,"tag":144,"props":7394,"children":7395},{},[7396,7401],{"type":16,"tag":1567,"props":7397,"children":7398},{},[7399],{"type":44,"value":7400},"生态工具",{"type":44,"value":6736},{"type":16,"tag":46,"props":7403,"children":7404},{},[7405,7415],{"type":16,"tag":50,"props":7406,"children":7407},{},[7408,7413],{"type":16,"tag":1567,"props":7409,"children":7410},{},[7411],{"type":44,"value":7412},"ClawPanel",{"type":44,"value":7414},": 内置 AI 助手的可视化管理面板",{"type":16,"tag":50,"props":7416,"children":7417},{},[7418,7423],{"type":16,"tag":1567,"props":7419,"children":7420},{},[7421],{"type":44,"value":7422},"ClawApp",{"type":44,"value":7424},": 手机端聊天客户端（PWA + APK）",{"type":16,"tag":144,"props":7426,"children":7427},{},[7428,7433],{"type":16,"tag":1567,"props":7429,"children":7430},{},[7431],{"type":44,"value":7432},"免费 AI 接口",{"type":44,"value":6736},{"type":16,"tag":46,"props":7435,"children":7436},{},[7437,7442,7447],{"type":16,"tag":50,"props":7438,"children":7439},{},[7440],{"type":44,"value":7441},"内部公益平台 gpt.qt.cool",{"type":16,"tag":50,"props":7443,"children":7444},{},[7445],{"type":44,"value":7446},"签到领免费额度",{"type":16,"tag":50,"props":7448,"children":7449},{},[7450],{"type":44,"value":7451},"兼容 OpenAI 接口",{"type":16,"tag":144,"props":7453,"children":7454},{},[7455,7459],{"type":16,"tag":1567,"props":7456,"children":7457},{},[7458],{"type":44,"value":6789},{"type":44,"value":7460},": 需要中文界面的用户",{"type":16,"tag":6670,"props":7462,"children":7463},{},[],{"type":16,"tag":71,"props":7465,"children":7467},{"id":7466},"_5-openclaw-101",[7468],{"type":44,"value":7469},"5. OpenClaw 101",{"type":16,"tag":144,"props":7471,"children":7472},{},[7473,7477],{"type":16,"tag":1567,"props":7474,"children":7475},{},[7476],{"type":44,"value":6686},{"type":44,"value":7478},": 小墨 (@mengjian-github)",{"type":16,"tag":144,"props":7480,"children":7481},{},[7482,7486,7487],{"type":16,"tag":1567,"props":7483,"children":7484},{},[7485],{"type":44,"value":6696},{"type":44,"value":6698},{"type":16,"tag":1271,"props":7488,"children":7491},{"href":7489,"rel":7490},"https://openclaw101.dev",[1275],[7492],{"type":44,"value":7489},{"type":16,"tag":144,"props":7494,"children":7495},{},[7496,7500,7501],{"type":16,"tag":1567,"props":7497,"children":7498},{},[7499],{"type":44,"value":6831},{"type":44,"value":6698},{"type":16,"tag":1271,"props":7502,"children":7505},{"href":7503,"rel":7504},"https://github.com/mengjian-github/openclaw101",[1275],[7506],{"type":44,"value":7503},{"type":16,"tag":144,"props":7508,"children":7509},{},[7510,7514],{"type":16,"tag":1567,"props":7511,"children":7512},{},[7513],{"type":44,"value":6486},{"type":44,"value":7515},": 资源聚合站",{"type":16,"tag":144,"props":7517,"children":7518},{},[7519,7523],{"type":16,"tag":1567,"props":7520,"children":7521},{},[7522],{"type":44,"value":6491},{"type":44,"value":6856},{"type":16,"tag":144,"props":7525,"children":7526},{},[7527,7531],{"type":16,"tag":1567,"props":7528,"children":7529},{},[7530],{"type":44,"value":6496},{"type":44,"value":7532},": Web",{"type":16,"tag":144,"props":7534,"children":7535},{},[7536,7540],{"type":16,"tag":1567,"props":7537,"children":7538},{},[7539],{"type":44,"value":6917},{"type":44,"value":6736},{"type":16,"tag":46,"props":7542,"children":7543},{},[7544,7549,7554,7559,7564],{"type":16,"tag":50,"props":7545,"children":7546},{},[7547],{"type":44,"value":7548},"35+ 篇优质教程聚合",{"type":16,"tag":50,"props":7550,"children":7551},{},[7552],{"type":44,"value":7553},"7 天学习路径",{"type":16,"tag":50,"props":7555,"children":7556},{},[7557],{"type":44,"value":7558},"技能推荐",{"type":16,"tag":50,"props":7560,"children":7561},{},[7562],{"type":44,"value":7563},"中英双语资源",{"type":16,"tag":50,"props":7565,"children":7566},{},[7567],{"type":44,"value":7568},"筛选搜索",{"type":16,"tag":144,"props":7570,"children":7571},{},[7572,7577],{"type":16,"tag":1567,"props":7573,"children":7574},{},[7575],{"type":44,"value":7576},"资源来源",{"type":44,"value":6736},{"type":16,"tag":46,"props":7579,"children":7580},{},[7581,7586,7591,7596,7601],{"type":16,"tag":50,"props":7582,"children":7583},{},[7584],{"type":44,"value":7585},"阿里云：钉钉接入、企业微信 AppFlow",{"type":16,"tag":50,"props":7587,"children":7588},{},[7589],{"type":44,"value":7590},"腾讯云：飞书接入、企业微信接入",{"type":16,"tag":50,"props":7592,"children":7593},{},[7594],{"type":44,"value":7595},"DigitalOcean：一键部署",{"type":16,"tag":50,"props":7597,"children":7598},{},[7599],{"type":44,"value":7600},"B 站：视频教程",{"type":16,"tag":50,"props":7602,"children":7603},{},[7604],{"type":44,"value":7605},"博客园/CSDN：飞书/Telegram 对接",{"type":16,"tag":144,"props":7607,"children":7608},{},[7609,7613],{"type":16,"tag":1567,"props":7610,"children":7611},{},[7612],{"type":44,"value":6890},{"type":44,"value":6736},{"type":16,"tag":46,"props":7615,"children":7616},{},[7617,7622,7626,7631],{"type":16,"tag":50,"props":7618,"children":7619},{},[7620],{"type":44,"value":7621},"Next.js 14",{"type":16,"tag":50,"props":7623,"children":7624},{},[7625],{"type":44,"value":7105},{"type":16,"tag":50,"props":7627,"children":7628},{},[7629],{"type":44,"value":7630},"Tailwind CSS",{"type":16,"tag":50,"props":7632,"children":7633},{},[7634],{"type":44,"value":7635},"Cloudflare Pages 托管",{"type":16,"tag":144,"props":7637,"children":7638},{},[7639,7643],{"type":16,"tag":1567,"props":7640,"children":7641},{},[7642],{"type":44,"value":6789},{"type":44,"value":7644},": 想要系统学习 OpenClaw 的用户",{"type":16,"tag":6670,"props":7646,"children":7647},{},[],{"type":16,"tag":71,"props":7649,"children":7651},{"id":7650},"_6-其他衍生项目",[7652],{"type":44,"value":7653},"6. 其他衍生项目",{"type":16,"tag":113,"props":7655,"children":7657},{"id":7656},"_61-clawpanel",[7658],{"type":44,"value":7659},"6.1 ClawPanel",{"type":16,"tag":144,"props":7661,"children":7662},{},[7663,7667,7668],{"type":16,"tag":1567,"props":7664,"children":7665},{},[7666],{"type":44,"value":6831},{"type":44,"value":6698},{"type":16,"tag":1271,"props":7669,"children":7672},{"href":7670,"rel":7671},"https://github.com/qingchencloud/clawpanel",[1275],[7673],{"type":44,"value":7670},{"type":16,"tag":46,"props":7675,"children":7676},{},[7677,7682,7687],{"type":16,"tag":50,"props":7678,"children":7679},{},[7680],{"type":44,"value":7681},"内置 AI 助手的可视化管理面板",{"type":16,"tag":50,"props":7683,"children":7684},{},[7685],{"type":44,"value":7686},"图片识别功能",{"type":16,"tag":50,"props":7688,"children":7689},{},[7690],{"type":44,"value":7691},"一键安装",{"type":16,"tag":113,"props":7693,"children":7695},{"id":7694},"_62-clawapp",[7696],{"type":44,"value":7697},"6.2 ClawApp",{"type":16,"tag":144,"props":7699,"children":7700},{},[7701,7705,7706],{"type":16,"tag":1567,"props":7702,"children":7703},{},[7704],{"type":44,"value":6831},{"type":44,"value":6698},{"type":16,"tag":1271,"props":7707,"children":7710},{"href":7708,"rel":7709},"https://github.com/qingchencloud/clawapp",[1275],[7711],{"type":44,"value":7708},{"type":16,"tag":46,"props":7713,"children":7714},{},[7715,7720,7725,7730],{"type":16,"tag":50,"props":7716,"children":7717},{},[7718],{"type":44,"value":7719},"手机端聊天客户端",{"type":16,"tag":50,"props":7721,"children":7722},{},[7723],{"type":44,"value":7724},"流式聊天（WebSocket）",{"type":16,"tag":50,"props":7726,"children":7727},{},[7728],{"type":44,"value":7729},"图片收发",{"type":16,"tag":50,"props":7731,"children":7732},{},[7733],{"type":44,"value":7734},"PWA + APK",{"type":16,"tag":113,"props":7736,"children":7738},{"id":7737},"_63-wechat-openclaw-channel",[7739],{"type":44,"value":7740},"6.3 wechat-openclaw-channel",{"type":16,"tag":144,"props":7742,"children":7743},{},[7744,7748,7749],{"type":16,"tag":1567,"props":7745,"children":7746},{},[7747],{"type":44,"value":6831},{"type":44,"value":6698},{"type":16,"tag":1271,"props":7750,"children":7753},{"href":7751,"rel":7752},"https://github.com/HenryXiaoYang/wechat-openclaw-channel",[1275],[7754],{"type":44,"value":7751},{"type":16,"tag":46,"props":7756,"children":7757},{},[7758,7763],{"type":16,"tag":50,"props":7759,"children":7760},{},[7761],{"type":44,"value":7762},"微信渠道插件",{"type":16,"tag":50,"props":7764,"children":7765},{},[7766],{"type":44,"value":7767},"支持 QClaw 和 WorkBuddy 登录",{"type":16,"tag":113,"props":7769,"children":7771},{"id":7770},"_64-awesome-openclaw-usecases-zh",[7772],{"type":44,"value":7773},"6.4 awesome-openclaw-usecases-zh",{"type":16,"tag":144,"props":7775,"children":7776},{},[7777,7781,7782],{"type":16,"tag":1567,"props":7778,"children":7779},{},[7780],{"type":44,"value":6831},{"type":44,"value":6698},{"type":16,"tag":1271,"props":7783,"children":7786},{"href":7784,"rel":7785},"https://github.com/AlexAnys/awesome-openclaw-usecases-zh",[1275],[7787],{"type":44,"value":7784},{"type":16,"tag":46,"props":7789,"children":7790},{},[7791,7796],{"type":16,"tag":50,"props":7792,"children":7793},{},[7794],{"type":44,"value":7795},"40+ 个中文使用场景",{"type":16,"tag":50,"props":7797,"children":7798},{},[7799],{"type":44,"value":7800},"自动化办公、内容创作、服务器运维等",{"type":16,"tag":6670,"props":7802,"children":7803},{},[],{"type":16,"tag":71,"props":7805,"children":7807},{"id":7806},"选择建议",[7808],{"type":44,"value":7806},{"type":16,"tag":113,"props":7810,"children":7812},{"id":7811},"新手用户",[7813],{"type":44,"value":7811},{"type":16,"tag":144,"props":7815,"children":7816},{},[7817,7819,7823,7825],{"type":44,"value":7818},"推荐 ",{"type":16,"tag":1567,"props":7820,"children":7821},{},[7822],{"type":44,"value":6549},{"type":44,"value":7824}," 或 ",{"type":16,"tag":1567,"props":7826,"children":7827},{},[7828],{"type":44,"value":6582},{"type":16,"tag":46,"props":7830,"children":7831},{},[7832,7837,7842],{"type":16,"tag":50,"props":7833,"children":7834},{},[7835],{"type":44,"value":7836},"图形界面，无需命令行",{"type":16,"tag":50,"props":7838,"children":7839},{},[7840],{"type":44,"value":7841},"一键安装和配置",{"type":16,"tag":50,"props":7843,"children":7844},{},[7845],{"type":44,"value":7846},"完善的引导流程",{"type":16,"tag":113,"props":7848,"children":7850},{"id":7849},"企业用户",[7851],{"type":44,"value":7849},{"type":16,"tag":144,"props":7853,"children":7854},{},[7855,7856],{"type":44,"value":7818},{"type":16,"tag":1567,"props":7857,"children":7858},{},[7859],{"type":44,"value":6517},{"type":16,"tag":46,"props":7861,"children":7862},{},[7863,7868,7872],{"type":16,"tag":50,"props":7864,"children":7865},{},[7866],{"type":44,"value":7867},"阿里云官方支持",{"type":16,"tag":50,"props":7869,"children":7870},{},[7871],{"type":44,"value":6771},{"type":16,"tag":50,"props":7873,"children":7874},{},[7875],{"type":44,"value":7876},"专业技术支持",{"type":16,"tag":113,"props":7878,"children":7880},{"id":7879},"开发者",[7881],{"type":44,"value":7879},{"type":16,"tag":144,"props":7883,"children":7884},{},[7885,7886,7890,7892],{"type":44,"value":7818},{"type":16,"tag":1567,"props":7887,"children":7888},{},[7889],{"type":44,"value":6613},{"type":44,"value":7891}," + ",{"type":16,"tag":1567,"props":7893,"children":7894},{},[7895],{"type":44,"value":7412},{"type":16,"tag":46,"props":7897,"children":7898},{},[7899,7904,7909],{"type":16,"tag":50,"props":7900,"children":7901},{},[7902],{"type":44,"value":7903},"完整的 CLI 控制",{"type":16,"tag":50,"props":7905,"children":7906},{},[7907],{"type":44,"value":7908},"可视化管理",{"type":16,"tag":50,"props":7910,"children":7911},{},[7912],{"type":44,"value":7913},"可扩展性强",{"type":16,"tag":113,"props":7915,"children":7917},{"id":7916},"移动端用户",[7918],{"type":44,"value":7916},{"type":16,"tag":144,"props":7920,"children":7921},{},[7922,7923],{"type":44,"value":7818},{"type":16,"tag":1567,"props":7924,"children":7925},{},[7926],{"type":44,"value":7422},{"type":16,"tag":46,"props":7928,"children":7929},{},[7930,7935,7940],{"type":16,"tag":50,"props":7931,"children":7932},{},[7933],{"type":44,"value":7934},"手机聊天客户端",{"type":16,"tag":50,"props":7936,"children":7937},{},[7938],{"type":44,"value":7939},"支持图片收发",{"type":16,"tag":50,"props":7941,"children":7942},{},[7943],{"type":44,"value":7944},"PWA 可添加到主屏幕",{"type":16,"tag":6670,"props":7946,"children":7947},{},[],{"type":16,"tag":71,"props":7949,"children":7951},{"id":7950},"总结",[7952],{"type":44,"value":7950},{"type":16,"tag":144,"props":7954,"children":7955},{},[7956],{"type":44,"value":7957},"国产 OpenClaw 衍生产品已经形成了完整的生态：",{"type":44,"value":7959},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":16,"tag":2484,"props":7961,"children":7962},{},[7963,7979],{"type":16,"tag":2488,"props":7964,"children":7965},{},[7966],{"type":16,"tag":2492,"props":7967,"children":7968},{},[7969,7974],{"type":16,"tag":2496,"props":7970,"children":7971},{},[7972],{"type":44,"value":7973},"需求",{"type":16,"tag":2496,"props":7975,"children":7976},{},[7977],{"type":44,"value":7978},"推荐产品",{"type":16,"tag":2512,"props":7980,"children":7981},{},[7982,7994,8006,8018,8030,8042],{"type":16,"tag":2492,"props":7983,"children":7984},{},[7985,7989],{"type":16,"tag":2519,"props":7986,"children":7987},{},[7988],{"type":44,"value":6605},{"type":16,"tag":2519,"props":7990,"children":7991},{},[7992],{"type":44,"value":7993},"Qclaw, ClawX",{"type":16,"tag":2492,"props":7995,"children":7996},{},[7997,8002],{"type":16,"tag":2519,"props":7998,"children":7999},{},[8000],{"type":44,"value":8001},"中文界面",{"type":16,"tag":2519,"props":8003,"children":8004},{},[8005],{"type":44,"value":6613},{"type":16,"tag":2492,"props":8007,"children":8008},{},[8009,8014],{"type":16,"tag":2519,"props":8010,"children":8011},{},[8012],{"type":44,"value":8013},"企业部署",{"type":16,"tag":2519,"props":8015,"children":8016},{},[8017],{"type":44,"value":6517},{"type":16,"tag":2492,"props":8019,"children":8020},{},[8021,8026],{"type":16,"tag":2519,"props":8022,"children":8023},{},[8024],{"type":44,"value":8025},"学习教程",{"type":16,"tag":2519,"props":8027,"children":8028},{},[8029],{"type":44,"value":6645},{"type":16,"tag":2492,"props":8031,"children":8032},{},[8033,8038],{"type":16,"tag":2519,"props":8034,"children":8035},{},[8036],{"type":44,"value":8037},"手机访问",{"type":16,"tag":2519,"props":8039,"children":8040},{},[8041],{"type":44,"value":7422},{"type":16,"tag":2492,"props":8043,"children":8044},{},[8045,8049],{"type":16,"tag":2519,"props":8046,"children":8047},{},[8048],{"type":44,"value":7908},{"type":16,"tag":2519,"props":8050,"children":8051},{},[8052],{"type":44,"value":7412},{"type":16,"tag":144,"props":8054,"children":8055},{},[8056],{"type":44,"value":8057},"所有产品均基于 OpenClaw 核心，保持了与上游项目的兼容性。你可以根据自己的需求选择最适合的产品。",{"type":16,"tag":6670,"props":8059,"children":8060},{},[],{"type":16,"tag":71,"props":8062,"children":8064},{"id":8063},"相关链接",[8065],{"type":44,"value":8063},{"type":16,"tag":46,"props":8067,"children":8068},{},[8069,8078,8086,8094,8102,8110],{"type":16,"tag":50,"props":8070,"children":8071},{},[8072],{"type":16,"tag":1271,"props":8073,"children":8075},{"href":6420,"rel":8074},[1275],[8076],{"type":44,"value":8077},"OpenClaw 官方",{"type":16,"tag":50,"props":8079,"children":8080},{},[8081],{"type":16,"tag":1271,"props":8082,"children":8084},{"href":6701,"rel":8083},[1275],[8085],{"type":44,"value":6517},{"type":16,"tag":50,"props":8087,"children":8088},{},[8089],{"type":16,"tag":1271,"props":8090,"children":8092},{"href":6820,"rel":8091},[1275],[8093],{"type":44,"value":6549},{"type":16,"tag":50,"props":8095,"children":8096},{},[8097],{"type":16,"tag":1271,"props":8098,"children":8100},{"href":7020,"rel":8099},[1275],[8101],{"type":44,"value":6582},{"type":16,"tag":50,"props":8103,"children":8104},{},[8105],{"type":16,"tag":1271,"props":8106,"children":8108},{"href":7257,"rel":8107},[1275],[8109],{"type":44,"value":6613},{"type":16,"tag":50,"props":8111,"children":8112},{},[8113],{"type":16,"tag":1271,"props":8114,"children":8116},{"href":7489,"rel":8115},[1275],[8117],{"type":44,"value":6645},{"type":16,"tag":1281,"props":8119,"children":8120},{},[8121],{"type":44,"value":1285},{"title":6,"searchDepth":22,"depth":22,"links":8123},[8124,8125,8126,8127,8128,8129,8130,8136,8142,8143],{"id":6463,"depth":22,"text":6463},{"id":6675,"depth":22,"text":6678},{"id":6797,"depth":22,"text":6800},{"id":6997,"depth":22,"text":7000},{"id":7234,"depth":22,"text":7237},{"id":7466,"depth":22,"text":7469},{"id":7650,"depth":22,"text":7653,"children":8131},[8132,8133,8134,8135],{"id":7656,"depth":270,"text":7659},{"id":7694,"depth":270,"text":7697},{"id":7737,"depth":270,"text":7740},{"id":7770,"depth":270,"text":7773},{"id":7806,"depth":22,"text":7806,"children":8137},[8138,8139,8140,8141],{"id":7811,"depth":270,"text":7811},{"id":7849,"depth":270,"text":7849},{"id":7879,"depth":270,"text":7879},{"id":7916,"depth":270,"text":7916},{"id":7950,"depth":22,"text":7950},{"id":8063,"depth":22,"text":8063},"content:articles:09-chinese-openclaw-products.md","articles/09-chinese-openclaw-products.md",{"_path":8147,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":8148,"description":8149,"cover":8150,"date":8151,"category":8152,"layout":35,"body":8153,"_type":24,"_id":9033,"_source":26,"_file":9034,"_extension":28},"/articles/10-cloudflare-worker-https-forward","用 Cloudflare Worker 将带端口的 HTTP 地址转为 HTTPS","使用 Cloudflare Worker 将非标准端口的 HTTP 服务转为干净的 HTTPS 对外暴露","https://img.mxai.eu.cc/imgs/cover_1776321345148_1776321345.jpg","2026-04-14T00:00:00.000Z","INFRASTRUCTURE",{"type":13,"children":8154,"toc":9023},[8155,8176,8179,8184,8202,8205,8211,8259,8622,8647,8662,8665,8671,8691,8703,8705,8778,8790,8793,8799,8850,8853,8858,8878,8881,8886,8894,8897,8902,8910,8929,8937,8949,8957,8962,8965,8971,8976,9006,9019],{"type":16,"tag":144,"props":8156,"children":8157},{},[8158,8160,8166,8168,8174],{"type":44,"value":8159},"有时候我们的服务跑在一个非标准端口上，比如 ",{"type":16,"tag":90,"props":8161,"children":8163},{"className":8162},[],[8164],{"type":44,"value":8165},"http://1.2.3.4:8080",{"type":44,"value":8167},"，想对外暴露一个干净的 ",{"type":16,"tag":90,"props":8169,"children":8171},{"className":8170},[],[8172],{"type":44,"value":8173},"https://api.yourdomain.com",{"type":44,"value":8175},"。Cloudflare Worker 可以免费实现这个转发，本文记录完整步骤和踩坑解决方案。",{"type":16,"tag":6670,"props":8177,"children":8178},{},[],{"type":16,"tag":71,"props":8180,"children":8182},{"id":8181},"前提条件",[8183],{"type":44,"value":8181},{"type":16,"tag":46,"props":8185,"children":8186},{},[8187,8192,8197],{"type":16,"tag":50,"props":8188,"children":8189},{},[8190],{"type":44,"value":8191},"域名已托管在 Cloudflare（免费套餐即可）",{"type":16,"tag":50,"props":8193,"children":8194},{},[8195],{"type":44,"value":8196},"服务器有公网 IP",{"type":16,"tag":50,"props":8198,"children":8199},{},[8200],{"type":44,"value":8201},"本地服务正常运行在某个端口",{"type":16,"tag":6670,"props":8203,"children":8204},{},[],{"type":16,"tag":71,"props":8206,"children":8208},{"id":8207},"第一步创建-worker",[8209],{"type":44,"value":8210},"第一步：创建 Worker",{"type":16,"tag":8212,"props":8213,"children":8214},"ol",{},[8215,8227,8244,8254],{"type":16,"tag":50,"props":8216,"children":8217},{},[8218,8220],{"type":44,"value":8219},"登录 ",{"type":16,"tag":1271,"props":8221,"children":8224},{"href":8222,"rel":8223},"https://dash.cloudflare.com",[1275],[8225],{"type":44,"value":8226},"Cloudflare 控制台",{"type":16,"tag":50,"props":8228,"children":8229},{},[8230,8232,8237,8239],{"type":44,"value":8231},"左侧导航进入 ",{"type":16,"tag":1567,"props":8233,"children":8234},{},[8235],{"type":44,"value":8236},"Workers & Pages",{"type":44,"value":8238}," → 点击 ",{"type":16,"tag":1567,"props":8240,"children":8241},{},[8242],{"type":44,"value":8243},"Create",{"type":16,"tag":50,"props":8245,"children":8246},{},[8247,8249],{"type":44,"value":8248},"选择 ",{"type":16,"tag":1567,"props":8250,"children":8251},{},[8252],{"type":44,"value":8253},"Create Worker",{"type":16,"tag":50,"props":8255,"children":8256},{},[8257],{"type":44,"value":8258},"将编辑器中的默认代码替换为以下内容：",{"type":16,"tag":197,"props":8260,"children":8264},{"code":8261,"language":8262,"meta":6,"className":8263,"style":6},"export default {\n  async fetch(request) {\n    const url = new URL(request.url);\n    const target = `http://origin.yourdomain.com:端口${url.pathname}${url.search}`;\n\n    const newHeaders = new Headers(request.headers);\n    newHeaders.set('Host', 'origin.yourdomain.com:端口');\n\n    return fetch(target, {\n      method: request.method,\n      headers: newHeaders,\n      body: ['GET', 'HEAD'].includes(request.method) ? null : request.body,\n      redirect: 'follow',\n    });\n  }\n}\n","javascript","language-javascript shiki shiki-themes github-light github-dark",[8265],{"type":16,"tag":90,"props":8266,"children":8267},{"__ignoreMap":6},[8268,8286,8315,8348,8411,8418,8448,8484,8491,8508,8516,8524,8581,8599,8607,8615],{"type":16,"tag":228,"props":8269,"children":8270},{"class":230,"line":231},[8271,8276,8281],{"type":16,"tag":228,"props":8272,"children":8273},{"style":1339},[8274],{"type":44,"value":8275},"export",{"type":16,"tag":228,"props":8277,"children":8278},{"style":1339},[8279],{"type":44,"value":8280}," default",{"type":16,"tag":228,"props":8282,"children":8283},{"style":1345},[8284],{"type":44,"value":8285}," {\n",{"type":16,"tag":228,"props":8287,"children":8288},{"class":230,"line":22},[8289,8294,8299,8304,8310],{"type":16,"tag":228,"props":8290,"children":8291},{"style":1339},[8292],{"type":44,"value":8293},"  async",{"type":16,"tag":228,"props":8295,"children":8296},{"style":235},[8297],{"type":44,"value":8298}," fetch",{"type":16,"tag":228,"props":8300,"children":8301},{"style":1345},[8302],{"type":44,"value":8303},"(",{"type":16,"tag":228,"props":8305,"children":8307},{"style":8306},"--shiki-default:#E36209;--shiki-dark:#FFAB70",[8308],{"type":44,"value":8309},"request",{"type":16,"tag":228,"props":8311,"children":8312},{"style":1345},[8313],{"type":44,"value":8314},") {\n",{"type":16,"tag":228,"props":8316,"children":8317},{"class":230,"line":270},[8318,8323,8328,8333,8338,8343],{"type":16,"tag":228,"props":8319,"children":8320},{"style":1339},[8321],{"type":44,"value":8322},"    const",{"type":16,"tag":228,"props":8324,"children":8325},{"style":247},[8326],{"type":44,"value":8327}," url",{"type":16,"tag":228,"props":8329,"children":8330},{"style":1339},[8331],{"type":44,"value":8332}," =",{"type":16,"tag":228,"props":8334,"children":8335},{"style":1339},[8336],{"type":44,"value":8337}," new",{"type":16,"tag":228,"props":8339,"children":8340},{"style":235},[8341],{"type":44,"value":8342}," URL",{"type":16,"tag":228,"props":8344,"children":8345},{"style":1345},[8346],{"type":44,"value":8347},"(request.url);\n",{"type":16,"tag":228,"props":8349,"children":8350},{"class":230,"line":293},[8351,8355,8360,8364,8369,8374,8379,8384,8389,8393,8397,8402,8407],{"type":16,"tag":228,"props":8352,"children":8353},{"style":1339},[8354],{"type":44,"value":8322},{"type":16,"tag":228,"props":8356,"children":8357},{"style":247},[8358],{"type":44,"value":8359}," target",{"type":16,"tag":228,"props":8361,"children":8362},{"style":1339},[8363],{"type":44,"value":8332},{"type":16,"tag":228,"props":8365,"children":8366},{"style":241},[8367],{"type":44,"value":8368}," `http://origin.yourdomain.com:端口${",{"type":16,"tag":228,"props":8370,"children":8371},{"style":1345},[8372],{"type":44,"value":8373},"url",{"type":16,"tag":228,"props":8375,"children":8376},{"style":241},[8377],{"type":44,"value":8378},".",{"type":16,"tag":228,"props":8380,"children":8381},{"style":1345},[8382],{"type":44,"value":8383},"pathname",{"type":16,"tag":228,"props":8385,"children":8386},{"style":241},[8387],{"type":44,"value":8388},"}${",{"type":16,"tag":228,"props":8390,"children":8391},{"style":1345},[8392],{"type":44,"value":8373},{"type":16,"tag":228,"props":8394,"children":8395},{"style":241},[8396],{"type":44,"value":8378},{"type":16,"tag":228,"props":8398,"children":8399},{"style":1345},[8400],{"type":44,"value":8401},"search",{"type":16,"tag":228,"props":8403,"children":8404},{"style":241},[8405],{"type":44,"value":8406},"}`",{"type":16,"tag":228,"props":8408,"children":8409},{"style":1345},[8410],{"type":44,"value":5496},{"type":16,"tag":228,"props":8412,"children":8413},{"class":230,"line":311},[8414],{"type":16,"tag":228,"props":8415,"children":8416},{"emptyLinePlaceholder":4049},[8417],{"type":44,"value":4052},{"type":16,"tag":228,"props":8419,"children":8420},{"class":230,"line":324},[8421,8425,8430,8434,8438,8443],{"type":16,"tag":228,"props":8422,"children":8423},{"style":1339},[8424],{"type":44,"value":8322},{"type":16,"tag":228,"props":8426,"children":8427},{"style":247},[8428],{"type":44,"value":8429}," newHeaders",{"type":16,"tag":228,"props":8431,"children":8432},{"style":1339},[8433],{"type":44,"value":8332},{"type":16,"tag":228,"props":8435,"children":8436},{"style":1339},[8437],{"type":44,"value":8337},{"type":16,"tag":228,"props":8439,"children":8440},{"style":235},[8441],{"type":44,"value":8442}," Headers",{"type":16,"tag":228,"props":8444,"children":8445},{"style":1345},[8446],{"type":44,"value":8447},"(request.headers);\n",{"type":16,"tag":228,"props":8449,"children":8450},{"class":230,"line":342},[8451,8456,8461,8465,8470,8474,8479],{"type":16,"tag":228,"props":8452,"children":8453},{"style":1345},[8454],{"type":44,"value":8455},"    newHeaders.",{"type":16,"tag":228,"props":8457,"children":8458},{"style":235},[8459],{"type":44,"value":8460},"set",{"type":16,"tag":228,"props":8462,"children":8463},{"style":1345},[8464],{"type":44,"value":8303},{"type":16,"tag":228,"props":8466,"children":8467},{"style":241},[8468],{"type":44,"value":8469},"'Host'",{"type":16,"tag":228,"props":8471,"children":8472},{"style":1345},[8473],{"type":44,"value":4198},{"type":16,"tag":228,"props":8475,"children":8476},{"style":241},[8477],{"type":44,"value":8478},"'origin.yourdomain.com:端口'",{"type":16,"tag":228,"props":8480,"children":8481},{"style":1345},[8482],{"type":44,"value":8483},");\n",{"type":16,"tag":228,"props":8485,"children":8486},{"class":230,"line":1083},[8487],{"type":16,"tag":228,"props":8488,"children":8489},{"emptyLinePlaceholder":4049},[8490],{"type":44,"value":4052},{"type":16,"tag":228,"props":8492,"children":8493},{"class":230,"line":1105},[8494,8499,8503],{"type":16,"tag":228,"props":8495,"children":8496},{"style":1339},[8497],{"type":44,"value":8498},"    return",{"type":16,"tag":228,"props":8500,"children":8501},{"style":235},[8502],{"type":44,"value":8298},{"type":16,"tag":228,"props":8504,"children":8505},{"style":1345},[8506],{"type":44,"value":8507},"(target, {\n",{"type":16,"tag":228,"props":8509,"children":8510},{"class":230,"line":4109},[8511],{"type":16,"tag":228,"props":8512,"children":8513},{"style":1345},[8514],{"type":44,"value":8515},"      method: request.method,\n",{"type":16,"tag":228,"props":8517,"children":8518},{"class":230,"line":4118},[8519],{"type":16,"tag":228,"props":8520,"children":8521},{"style":1345},[8522],{"type":44,"value":8523},"      headers: newHeaders,\n",{"type":16,"tag":228,"props":8525,"children":8526},{"class":230,"line":4131},[8527,8532,8537,8541,8546,8551,8556,8561,8566,8571,8576],{"type":16,"tag":228,"props":8528,"children":8529},{"style":1345},[8530],{"type":44,"value":8531},"      body: [",{"type":16,"tag":228,"props":8533,"children":8534},{"style":241},[8535],{"type":44,"value":8536},"'GET'",{"type":16,"tag":228,"props":8538,"children":8539},{"style":1345},[8540],{"type":44,"value":4198},{"type":16,"tag":228,"props":8542,"children":8543},{"style":241},[8544],{"type":44,"value":8545},"'HEAD'",{"type":16,"tag":228,"props":8547,"children":8548},{"style":1345},[8549],{"type":44,"value":8550},"].",{"type":16,"tag":228,"props":8552,"children":8553},{"style":235},[8554],{"type":44,"value":8555},"includes",{"type":16,"tag":228,"props":8557,"children":8558},{"style":1345},[8559],{"type":44,"value":8560},"(request.method) ",{"type":16,"tag":228,"props":8562,"children":8563},{"style":1339},[8564],{"type":44,"value":8565},"?",{"type":16,"tag":228,"props":8567,"children":8568},{"style":247},[8569],{"type":44,"value":8570}," null",{"type":16,"tag":228,"props":8572,"children":8573},{"style":1339},[8574],{"type":44,"value":8575}," :",{"type":16,"tag":228,"props":8577,"children":8578},{"style":1345},[8579],{"type":44,"value":8580}," request.body,\n",{"type":16,"tag":228,"props":8582,"children":8583},{"class":230,"line":4139},[8584,8589,8594],{"type":16,"tag":228,"props":8585,"children":8586},{"style":1345},[8587],{"type":44,"value":8588},"      redirect: ",{"type":16,"tag":228,"props":8590,"children":8591},{"style":241},[8592],{"type":44,"value":8593},"'follow'",{"type":16,"tag":228,"props":8595,"children":8596},{"style":1345},[8597],{"type":44,"value":8598},",\n",{"type":16,"tag":228,"props":8600,"children":8601},{"class":230,"line":4148},[8602],{"type":16,"tag":228,"props":8603,"children":8604},{"style":1345},[8605],{"type":44,"value":8606},"    });\n",{"type":16,"tag":228,"props":8608,"children":8609},{"class":230,"line":4161},[8610],{"type":16,"tag":228,"props":8611,"children":8612},{"style":1345},[8613],{"type":44,"value":8614},"  }\n",{"type":16,"tag":228,"props":8616,"children":8617},{"class":230,"line":4169},[8618],{"type":16,"tag":228,"props":8619,"children":8620},{"style":1345},[8621],{"type":44,"value":5625},{"type":16,"tag":8623,"props":8624,"children":8625},"blockquote",{},[8626],{"type":16,"tag":144,"props":8627,"children":8628},{},[8629,8631,8637,8639,8645],{"type":44,"value":8630},"将 ",{"type":16,"tag":90,"props":8632,"children":8634},{"className":8633},[],[8635],{"type":44,"value":8636},"origin.yourdomain.com",{"type":44,"value":8638}," 和 ",{"type":16,"tag":90,"props":8640,"children":8642},{"className":8641},[],[8643],{"type":44,"value":8644},"端口",{"type":44,"value":8646}," 替换为你自己的值（见第二步）。",{"type":16,"tag":8212,"props":8648,"children":8649},{"start":311},[8650],{"type":16,"tag":50,"props":8651,"children":8652},{},[8653,8655,8660],{"type":44,"value":8654},"点击 ",{"type":16,"tag":1567,"props":8656,"children":8657},{},[8658],{"type":44,"value":8659},"Deploy",{"type":44,"value":8661}," 部署",{"type":16,"tag":6670,"props":8663,"children":8664},{},[],{"type":16,"tag":71,"props":8666,"children":8668},{"id":8667},"第二步添加源站-dns-记录绕过裸-ip-限制",[8669],{"type":44,"value":8670},"第二步：添加源站 DNS 记录（绕过裸 IP 限制）",{"type":16,"tag":144,"props":8672,"children":8673},{},[8674,8676,8682,8684,8689],{"type":44,"value":8675},"Cloudflare Worker 不允许直接请求裸 IP 地址（会报 ",{"type":16,"tag":90,"props":8677,"children":8679},{"className":8678},[],[8680],{"type":44,"value":8681},"Direct IP access not allowed",{"type":44,"value":8683},"），需要先给源站加一个 DNS 记录，",{"type":16,"tag":1567,"props":8685,"children":8686},{},[8687],{"type":44,"value":8688},"但关闭橙云代理（灰云）",{"type":44,"value":8690},"。",{"type":16,"tag":144,"props":8692,"children":8693},{},[8694,8696,8701],{"type":44,"value":8695},"在域名的 ",{"type":16,"tag":1567,"props":8697,"children":8698},{},[8699],{"type":44,"value":8700},"DNS → Records",{"type":44,"value":8702}," 里添加：",{"type":44,"value":8704},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":16,"tag":2484,"props":8706,"children":8707},{},[8708,8724],{"type":16,"tag":2488,"props":8709,"children":8710},{},[8711],{"type":16,"tag":2492,"props":8712,"children":8713},{},[8714,8719],{"type":16,"tag":2496,"props":8715,"children":8716},{},[8717],{"type":44,"value":8718},"字段",{"type":16,"tag":2496,"props":8720,"children":8721},{},[8722],{"type":44,"value":8723},"值",{"type":16,"tag":2512,"props":8725,"children":8726},{},[8727,8739,8752,8765],{"type":16,"tag":2492,"props":8728,"children":8729},{},[8730,8734],{"type":16,"tag":2519,"props":8731,"children":8732},{},[8733],{"type":44,"value":6486},{"type":16,"tag":2519,"props":8735,"children":8736},{},[8737],{"type":44,"value":8738},"A",{"type":16,"tag":2492,"props":8740,"children":8741},{},[8742,8747],{"type":16,"tag":2519,"props":8743,"children":8744},{},[8745],{"type":44,"value":8746},"名称",{"type":16,"tag":2519,"props":8748,"children":8749},{},[8750],{"type":44,"value":8751},"origin",{"type":16,"tag":2492,"props":8753,"children":8754},{},[8755,8760],{"type":16,"tag":2519,"props":8756,"children":8757},{},[8758],{"type":44,"value":8759},"内容",{"type":16,"tag":2519,"props":8761,"children":8762},{},[8763],{"type":44,"value":8764},"你的服务器公网 IP",{"type":16,"tag":2492,"props":8766,"children":8767},{},[8768,8773],{"type":16,"tag":2519,"props":8769,"children":8770},{},[8771],{"type":44,"value":8772},"代理状态",{"type":16,"tag":2519,"props":8774,"children":8775},{},[8776],{"type":44,"value":8777},"仅 DNS（灰云，关闭橙云）",{"type":16,"tag":144,"props":8779,"children":8780},{},[8781,8783,8788],{"type":44,"value":8782},"这样 ",{"type":16,"tag":90,"props":8784,"children":8786},{"className":8785},[],[8787],{"type":44,"value":8636},{"type":44,"value":8789}," 就直接解析到你的服务器 IP，Worker 请求它时不会触发 Cloudflare 的 IP 访问限制。",{"type":16,"tag":6670,"props":8791,"children":8792},{},[],{"type":16,"tag":71,"props":8794,"children":8796},{"id":8795},"第三步绑定自定义域名",[8797],{"type":44,"value":8798},"第三步：绑定自定义域名",{"type":16,"tag":8212,"props":8800,"children":8801},{},[8802,8807,8825,8834,8845],{"type":16,"tag":50,"props":8803,"children":8804},{},[8805],{"type":44,"value":8806},"进入刚才创建的 Worker 详情页",{"type":16,"tag":50,"props":8808,"children":8809},{},[8810,8811,8816,8818,8823],{"type":44,"value":8654},{"type":16,"tag":1567,"props":8812,"children":8813},{},[8814],{"type":44,"value":8815},"Settings → Triggers",{"type":44,"value":8817},"（或 ",{"type":16,"tag":1567,"props":8819,"children":8820},{},[8821],{"type":44,"value":8822},"Domains & Routes",{"type":44,"value":8824},"）",{"type":16,"tag":50,"props":8826,"children":8827},{},[8828,8829],{"type":44,"value":8654},{"type":16,"tag":1567,"props":8830,"children":8831},{},[8832],{"type":44,"value":8833},"Add Custom Domain",{"type":16,"tag":50,"props":8835,"children":8836},{},[8837,8839],{"type":44,"value":8838},"填入你想对外暴露的域名，例如 ",{"type":16,"tag":90,"props":8840,"children":8842},{"className":8841},[],[8843],{"type":44,"value":8844},"api.yourdomain.com",{"type":16,"tag":50,"props":8846,"children":8847},{},[8848],{"type":44,"value":8849},"保存",{"type":16,"tag":6670,"props":8851,"children":8852},{},[],{"type":16,"tag":71,"props":8854,"children":8856},{"id":8855},"验证",[8857],{"type":44,"value":8855},{"type":16,"tag":144,"props":8859,"children":8860},{},[8861,8863,8868,8870,8876],{"type":44,"value":8862},"部署完成后，访问 ",{"type":16,"tag":90,"props":8864,"children":8866},{"className":8865},[],[8867],{"type":44,"value":8173},{"type":44,"value":8869},"，请求会被 Worker 转发到 ",{"type":16,"tag":90,"props":8871,"children":8873},{"className":8872},[],[8874],{"type":44,"value":8875},"http://origin.yourdomain.com:端口",{"type":44,"value":8877},"，对外完全隐藏端口，自动走 HTTPS。",{"type":16,"tag":6670,"props":8879,"children":8880},{},[],{"type":16,"tag":71,"props":8882,"children":8884},{"id":8883},"流量走向示意",[8885],{"type":44,"value":8883},{"type":16,"tag":197,"props":8887,"children":8889},{"code":8888},"用户\n  ↓ https://api.yourdomain.com（443，HTTPS）\nCloudflare Worker\n  ↓ http://origin.yourdomain.com:8080（HTTP，灰云直连）\n你的服务器\n",[8890],{"type":16,"tag":90,"props":8891,"children":8892},{"__ignoreMap":6},[8893],{"type":44,"value":8888},{"type":16,"tag":6670,"props":8895,"children":8896},{},[],{"type":16,"tag":71,"props":8898,"children":8900},{"id":8899},"常见问题",[8901],{"type":44,"value":8899},{"type":16,"tag":144,"props":8903,"children":8904},{},[8905],{"type":16,"tag":1567,"props":8906,"children":8907},{},[8908],{"type":44,"value":8909},"Q：SSL 模式需要怎么设置？",{"type":16,"tag":144,"props":8911,"children":8912},{},[8913,8915,8920,8922,8927],{"type":44,"value":8914},"进入域名的 ",{"type":16,"tag":1567,"props":8916,"children":8917},{},[8918],{"type":44,"value":8919},"SSL/TLS → Overview",{"type":44,"value":8921},"，设置为 ",{"type":16,"tag":1567,"props":8923,"children":8924},{},[8925],{"type":44,"value":8926},"Flexible",{"type":44,"value":8928}," 即可。Cloudflare 到用户走 HTTPS，Cloudflare 到你的服务器走 HTTP，服务器不需要配置证书。",{"type":16,"tag":144,"props":8930,"children":8931},{},[8932],{"type":16,"tag":1567,"props":8933,"children":8934},{},[8935],{"type":44,"value":8936},"Q：为什么 origin 子域必须用灰云？",{"type":16,"tag":144,"props":8938,"children":8939},{},[8940,8942,8947],{"type":44,"value":8941},"橙云会让流量再次经过 Cloudflare 代理，形成循环。灰云让 ",{"type":16,"tag":90,"props":8943,"children":8945},{"className":8944},[],[8946],{"type":44,"value":8636},{"type":44,"value":8948}," 只做纯 DNS 解析，Worker 可以直接连到你的服务器。",{"type":16,"tag":144,"props":8950,"children":8951},{},[8952],{"type":16,"tag":1567,"props":8953,"children":8954},{},[8955],{"type":44,"value":8956},"Q：免费套餐有请求限制吗？",{"type":16,"tag":144,"props":8958,"children":8959},{},[8960],{"type":44,"value":8961},"Worker 免费套餐每天有 10 万次请求的额度，个人项目和小工具完全够用。",{"type":16,"tag":6670,"props":8963,"children":8964},{},[],{"type":16,"tag":71,"props":8966,"children":8968},{"id":8967},"如果不想折腾用-cloudflare-tunnel",[8969],{"type":44,"value":8970},"如果不想折腾：用 Cloudflare Tunnel",{"type":16,"tag":144,"props":8972,"children":8973},{},[8974],{"type":44,"value":8975},"如果服务器在内网、没有公网 IP，或者不想手动配 DNS，可以用 Tunnel 方案，一条命令搞定：",{"type":16,"tag":197,"props":8977,"children":8979},{"code":8978,"language":221,"meta":6,"className":222,"style":6},"cloudflared tunnel --url http://localhost:端口\n",[8980],{"type":16,"tag":90,"props":8981,"children":8982},{"__ignoreMap":6},[8983],{"type":16,"tag":228,"props":8984,"children":8985},{"class":230,"line":231},[8986,8991,8996,9001],{"type":16,"tag":228,"props":8987,"children":8988},{"style":235},[8989],{"type":44,"value":8990},"cloudflared",{"type":16,"tag":228,"props":8992,"children":8993},{"style":241},[8994],{"type":44,"value":8995}," tunnel",{"type":16,"tag":228,"props":8997,"children":8998},{"style":247},[8999],{"type":44,"value":9000}," --url",{"type":16,"tag":228,"props":9002,"children":9003},{"style":241},[9004],{"type":44,"value":9005}," http://localhost:端口\n",{"type":16,"tag":144,"props":9007,"children":9008},{},[9009,9011,9017],{"type":44,"value":9010},"会自动生成一个 ",{"type":16,"tag":90,"props":9012,"children":9014},{"className":9013},[],[9015],{"type":44,"value":9016},"https://xxx.trycloudflare.com",{"type":44,"value":9018}," 的公网地址，也支持绑定自定义域名。",{"type":16,"tag":1281,"props":9020,"children":9021},{},[9022],{"type":44,"value":1285},{"title":6,"searchDepth":22,"depth":22,"links":9024},[9025,9026,9027,9028,9029,9030,9031,9032],{"id":8181,"depth":22,"text":8181},{"id":8207,"depth":22,"text":8210},{"id":8667,"depth":22,"text":8670},{"id":8795,"depth":22,"text":8798},{"id":8855,"depth":22,"text":8855},{"id":8883,"depth":22,"text":8883},{"id":8899,"depth":22,"text":8899},{"id":8967,"depth":22,"text":8970},"content:articles:10-cloudflare-worker-https-forward.md","articles/10-cloudflare-worker-https-forward.md",{"_path":9036,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":9037,"description":9038,"cover":9039,"date":9040,"category":9041,"layout":35,"body":9042,"_type":24,"_id":9732,"_source":26,"_file":9733,"_extension":28},"/articles/11-ai-landscape-2026","2026 年 AI 近况：模型大战，正在变成 Agent 大战","从 GPT-5.6、Claude 5、DeepSeek V4 到端侧多模态，梳理 2026 年 AI 的五条主线，以及普通用户和开发者真正需要关心的事","https://witque.cn/articles/ai-landscape-2026.svg","2026-08-23T00:00:00.000Z","AI / TRENDS",{"type":13,"children":9043,"toc":9715},[9044,9055,9060,9072,9080,9086,9091,9163,9168,9174,9179,9194,9199,9204,9232,9237,9243,9248,9250,9349,9354,9359,9365,9370,9375,9380,9385,9391,9396,9401,9406,9412,9417,9422,9450,9464,9470,9475,9480,9485,9491,9496,9502,9507,9512,9517,9523,9528,9581,9586,9592,9597,9625,9635,9640,9645,9711],{"type":16,"tag":144,"props":9045,"children":9046},{},[9047,9049,9054],{"type":44,"value":9048},"如果过去两年的关键词是“大模型”，那么 2026 年更准确的关键词已经变成了 ",{"type":16,"tag":1567,"props":9050,"children":9051},{},[9052],{"type":44,"value":9053},"Agent（智能代理）",{"type":44,"value":8690},{"type":16,"tag":144,"props":9056,"children":9057},{},[9058],{"type":44,"value":9059},"模型仍然在变强，但行业竞争的重点正在发生变化：谁能稳定调用工具、理解复杂上下文、连续工作数小时，并且把结果安全地交付出来，谁才更接近下一代 AI 产品。",{"type":16,"tag":144,"props":9061,"children":9062},{},[9063,9065,9070],{"type":44,"value":9064},"这篇文章不做模型排行榜，而是以截至 ",{"type":16,"tag":1567,"props":9066,"children":9067},{},[9068],{"type":44,"value":9069},"2026 年 8 月 23 日",{"type":44,"value":9071}," 的公开信息为基准，梳理最近 AI 行业真正值得关注的变化。",{"type":16,"tag":8623,"props":9073,"children":9074},{},[9075],{"type":16,"tag":144,"props":9076,"children":9077},{},[9078],{"type":44,"value":9079},"文中涉及的性能数据大多来自厂商自己的测试与发布说明。它们适合用来观察产品方向，不应被当成完全可横向比较的统一排行榜。",{"type":16,"tag":71,"props":9081,"children":9083},{"id":9082},"一句话结论ai-正在从回答问题走向完成任务",[9084],{"type":44,"value":9085},"一句话结论：AI 正在从“回答问题”走向“完成任务”",{"type":16,"tag":144,"props":9087,"children":9088},{},[9089],{"type":44,"value":9090},"近期几家主要厂商的更新，看起来各有侧重，背后的方向却高度一致。",{"type":16,"tag":46,"props":9092,"children":9093},{},[9094,9117,9140],{"type":16,"tag":50,"props":9095,"children":9096},{},[9097,9099,9106,9108,9115],{"type":44,"value":9098},"OpenAI 在 7 月发布 ",{"type":16,"tag":1271,"props":9100,"children":9103},{"href":9101,"rel":9102},"https://openai.com/index/gpt-5-6/",[1275],[9104],{"type":44,"value":9105},"GPT-5.6 系列",{"type":44,"value":9107},"，把 Sol、Terra 和 Luna 分别放在旗舰能力、日常平衡与高性价比位置；8 月预览的 ",{"type":16,"tag":1271,"props":9109,"children":9112},{"href":9110,"rel":9111},"https://openai.com/index/previewing-ultrafast/",[1275],[9113],{"type":44,"value":9114},"Ultrafast 模式",{"type":44,"value":9116}," 又把低延迟带到旗舰模型上。",{"type":16,"tag":50,"props":9118,"children":9119},{},[9120,9122,9129,9131,9138],{"type":44,"value":9121},"Anthropic 先后推出 ",{"type":16,"tag":1271,"props":9123,"children":9126},{"href":9124,"rel":9125},"https://www.anthropic.com/news/claude-sonnet-5",[1275],[9127],{"type":44,"value":9128},"Claude Sonnet 5",{"type":44,"value":9130}," 与 ",{"type":16,"tag":1271,"props":9132,"children":9135},{"href":9133,"rel":9134},"https://www.anthropic.com/news/claude-opus-5",[1275],[9136],{"type":44,"value":9137},"Claude Opus 5",{"type":44,"value":9139},"，核心叙事同样从“更会回答”转向“更能独立完成复杂工作”。",{"type":16,"tag":50,"props":9141,"children":9142},{},[9143,9145,9152,9154,9161],{"type":44,"value":9144},"DeepSeek 在 8 月开放 ",{"type":16,"tag":1271,"props":9146,"children":9149},{"href":9147,"rel":9148},"https://api-docs.deepseek.com/news/news250813",[1275],[9150],{"type":44,"value":9151},"DeepSeek-V4-Pro",{"type":44,"value":9153},"，随后又发布 ",{"type":16,"tag":1271,"props":9155,"children":9158},{"href":9156,"rel":9157},"https://api-docs.deepseek.com/news/news250821",[1275],[9159],{"type":44,"value":9160},"DeepSeek-V4-Flash-Vision-Exp",{"type":44,"value":9162},"，继续补齐 Agent、效率和视觉理解能力。",{"type":16,"tag":144,"props":9164,"children":9165},{},[9166],{"type":44,"value":9167},"这些更新共同说明了一件事：模型分数依然重要，但“模型如何参与真实工作流”正在成为更重要的竞争维度。",{"type":16,"tag":71,"props":9169,"children":9171},{"id":9170},"变化一聊天框不再是-ai-的最终形态",[9172],{"type":44,"value":9173},"变化一：聊天框不再是 AI 的最终形态",{"type":16,"tag":144,"props":9175,"children":9176},{},[9177],{"type":44,"value":9178},"传统聊天机器人通常是一次提问、一次回答。Agent 则需要经历一条更长的链路：",{"type":16,"tag":197,"props":9180,"children":9183},{"className":9181,"code":9182,"language":44,"meta":6,"style":6},"language-text shiki shiki-themes github-light github-dark","理解目标 → 制定步骤 → 调用工具 → 检查结果 → 修正错误 → 交付成果\n",[9184],{"type":16,"tag":90,"props":9185,"children":9186},{"__ignoreMap":6},[9187],{"type":16,"tag":228,"props":9188,"children":9189},{"class":230,"line":231},[9190],{"type":16,"tag":228,"props":9191,"children":9192},{},[9193],{"type":44,"value":9182},{"type":16,"tag":144,"props":9195,"children":9196},{},[9197],{"type":44,"value":9198},"例如，让 AI “解释这段代码”只是聊天能力；让它读取仓库、定位问题、修改文件、运行测试并提交结果，才是代理能力。",{"type":16,"tag":144,"props":9200,"children":9201},{},[9202],{"type":44,"value":9203},"这也是为什么近期模型发布越来越频繁地强调：",{"type":16,"tag":46,"props":9205,"children":9206},{},[9207,9212,9217,9222,9227],{"type":16,"tag":50,"props":9208,"children":9209},{},[9210],{"type":44,"value":9211},"工具调用是否稳定；",{"type":16,"tag":50,"props":9213,"children":9214},{},[9215],{"type":44,"value":9216},"能否处理大型代码库和长文档；",{"type":16,"tag":50,"props":9218,"children":9219},{},[9220],{"type":44,"value":9221},"长任务中会不会逐渐偏离目标；",{"type":16,"tag":50,"props":9223,"children":9224},{},[9225],{"type":44,"value":9226},"遇到失败后能否自己恢复；",{"type":16,"tag":50,"props":9228,"children":9229},{},[9230],{"type":44,"value":9231},"是否知道哪些操作需要用户确认。",{"type":16,"tag":144,"props":9233,"children":9234},{},[9235],{"type":44,"value":9236},"真正困难的地方已经不是生成一段漂亮文字，而是让 AI 在复杂环境中持续做对事情。",{"type":16,"tag":71,"props":9238,"children":9240},{"id":9239},"变化二不会再有一个模型包打天下",[9241],{"type":44,"value":9242},"变化二：不会再有一个模型包打天下",{"type":16,"tag":144,"props":9244,"children":9245},{},[9246],{"type":44,"value":9247},"2026 年的模型产品越来越像一支分工明确的团队。",{"type":44,"value":9249},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":16,"tag":2484,"props":9251,"children":9252},{},[9253,9274],{"type":16,"tag":2488,"props":9254,"children":9255},{},[9256],{"type":16,"tag":2492,"props":9257,"children":9258},{},[9259,9264,9269],{"type":16,"tag":2496,"props":9260,"children":9261},{},[9262],{"type":44,"value":9263},"模型角色",{"type":16,"tag":2496,"props":9265,"children":9266},{},[9267],{"type":44,"value":9268},"适合任务",{"type":16,"tag":2496,"props":9270,"children":9271},{},[9272],{"type":44,"value":9273},"主要取舍",{"type":16,"tag":2512,"props":9275,"children":9276},{},[9277,9295,9313,9331],{"type":16,"tag":2492,"props":9278,"children":9279},{},[9280,9285,9290],{"type":16,"tag":2519,"props":9281,"children":9282},{},[9283],{"type":44,"value":9284},"快速模型",{"type":16,"tag":2519,"props":9286,"children":9287},{},[9288],{"type":44,"value":9289},"搜索整理、翻译、日常问答、简单代码",{"type":16,"tag":2519,"props":9291,"children":9292},{},[9293],{"type":44,"value":9294},"便宜、延迟低，但复杂推理上限较低",{"type":16,"tag":2492,"props":9296,"children":9297},{},[9298,9303,9308],{"type":16,"tag":2519,"props":9299,"children":9300},{},[9301],{"type":44,"value":9302},"深度模型",{"type":16,"tag":2519,"props":9304,"children":9305},{},[9306],{"type":44,"value":9307},"架构设计、研究分析、疑难调试",{"type":16,"tag":2519,"props":9309,"children":9310},{},[9311],{"type":44,"value":9312},"质量更高，但耗时和成本更高",{"type":16,"tag":2492,"props":9314,"children":9315},{},[9316,9321,9326],{"type":16,"tag":2519,"props":9317,"children":9318},{},[9319],{"type":44,"value":9320},"代理模型",{"type":16,"tag":2519,"props":9322,"children":9323},{},[9324],{"type":44,"value":9325},"操作浏览器、终端、文档和业务系统",{"type":16,"tag":2519,"props":9327,"children":9328},{},[9329],{"type":44,"value":9330},"能完成完整流程，但需要权限与审计",{"type":16,"tag":2492,"props":9332,"children":9333},{},[9334,9339,9344],{"type":16,"tag":2519,"props":9335,"children":9336},{},[9337],{"type":44,"value":9338},"端侧模型",{"type":16,"tag":2519,"props":9340,"children":9341},{},[9342],{"type":44,"value":9343},"手机、电脑、汽车和离线场景",{"type":16,"tag":2519,"props":9345,"children":9346},{},[9347],{"type":44,"value":9348},"隐私与响应更好，但受设备算力限制",{"type":16,"tag":144,"props":9350,"children":9351},{},[9352],{"type":44,"value":9353},"对用户来说，接下来的最佳体验不是手动追逐“最强模型”，而是由产品自动判断：什么时候秒回，什么时候深思，什么时候调用工具，什么时候停下来询问。",{"type":16,"tag":144,"props":9355,"children":9356},{},[9357],{"type":44,"value":9358},"模型路由能力，会逐渐和模型本身一样重要。",{"type":16,"tag":71,"props":9360,"children":9362},{"id":9361},"变化三多模态正在从能看图走向理解环境",[9363],{"type":44,"value":9364},"变化三：多模态正在从“能看图”走向“理解环境”",{"type":16,"tag":144,"props":9366,"children":9367},{},[9368],{"type":44,"value":9369},"多模态最初只是识别图片、生成图片。现在它正在变成 Agent 感知世界的入口。",{"type":16,"tag":144,"props":9371,"children":9372},{},[9373],{"type":44,"value":9374},"当一个模型可以同时处理文字、截图、摄像头画面、语音和界面状态，它就能做更多真实任务：看懂报错窗口、从图表里提取异常、根据屏幕内容操作软件，或者在移动设备上实时协助用户。",{"type":16,"tag":144,"props":9376,"children":9377},{},[9378],{"type":44,"value":9379},"DeepSeek 的视觉实验模型，以及 GPT-5.6、Claude Opus 5 对电脑操作与视觉工作的强调，都表明视觉不再是附属功能，而是下一代人机交互的基础能力。",{"type":16,"tag":144,"props":9381,"children":9382},{},[9383],{"type":44,"value":9384},"未来我们可能不会再刻意区分“语音助手”“看图模型”和“编程模型”。它们会被统一到一个持续理解环境、调用不同能力的系统里。",{"type":16,"tag":71,"props":9386,"children":9388},{"id":9387},"变化四价格和速度开始比榜单名次更影响体验",[9389],{"type":44,"value":9390},"变化四：价格和速度开始比榜单名次更影响体验",{"type":16,"tag":144,"props":9392,"children":9393},{},[9394],{"type":44,"value":9395},"对于大多数日常任务，模型达到“足够好”以后，再增加一点推理能力，带来的体验提升可能不如把响应时间从十几秒降低到一两秒。",{"type":16,"tag":144,"props":9397,"children":9398},{},[9399],{"type":44,"value":9400},"因此，快速模型、缓存、批处理、端侧推理和自动路由正变得越来越关键。未来 AI 产品的差异，很可能来自整套系统效率，而不只是单次回答的智力上限。",{"type":16,"tag":144,"props":9402,"children":9403},{},[9404],{"type":44,"value":9405},"这对开发者也是一个提醒：不要把所有请求都交给最昂贵的模型。先定义任务风险和质量要求，再决定模型等级，通常会得到更好的成本与体验平衡。",{"type":16,"tag":71,"props":9407,"children":9409},{"id":9408},"变化五安全正在从研究话题变成产品功能",[9410],{"type":44,"value":9411},"变化五：安全正在从研究话题变成产品功能",{"type":16,"tag":144,"props":9413,"children":9414},{},[9415],{"type":44,"value":9416},"Agent 获得的权限越多，错误的代价就越大。",{"type":16,"tag":144,"props":9418,"children":9419},{},[9420],{"type":44,"value":9421},"一个只会聊天的 AI 答错了，用户通常还能判断；一个能够发送邮件、修改代码、访问云服务的 AI 做错了，影响可能立即扩散。因此，现代 Agent 系统必须把以下能力当成基础设施：",{"type":16,"tag":46,"props":9423,"children":9424},{},[9425,9430,9435,9440,9445],{"type":16,"tag":50,"props":9426,"children":9427},{},[9428],{"type":44,"value":9429},"高风险操作前请求确认；",{"type":16,"tag":50,"props":9431,"children":9432},{},[9433],{"type":44,"value":9434},"对密钥、个人信息和内部数据设置边界；",{"type":16,"tag":50,"props":9436,"children":9437},{},[9438],{"type":44,"value":9439},"记录工具调用与修改历史；",{"type":16,"tag":50,"props":9441,"children":9442},{},[9443],{"type":44,"value":9444},"将生成结果与执行动作分离；",{"type":16,"tag":50,"props":9446,"children":9447},{},[9448],{"type":44,"value":9449},"为失败准备回滚和人工接管路径。",{"type":16,"tag":144,"props":9451,"children":9452},{},[9453,9455,9462],{"type":44,"value":9454},"OpenAI 在 7 月分享的",{"type":16,"tag":1271,"props":9456,"children":9459},{"href":9457,"rel":9458},"https://openai.com/index/safety-alignment-long-horizon-models/",[1275],[9460],{"type":44,"value":9461},"长周期模型安全经验",{"type":44,"value":9463}," 很能说明问题：当模型可以持续行动，安全评估就不能只观察某一次回答，还必须观察整条执行轨迹。当 AI 大量进入真实工作流，权限控制、来源识别、可追溯性和滥用防护会越来越像产品标配，而不是发布会末尾的一页说明。",{"type":16,"tag":71,"props":9465,"children":9467},{"id":9466},"普通用户现在应该怎么选-ai",[9468],{"type":44,"value":9469},"普通用户现在应该怎么选 AI",{"type":16,"tag":144,"props":9471,"children":9472},{},[9473],{"type":44,"value":9474},"我的建议很简单：不要按品牌选，按任务选。",{"type":16,"tag":113,"props":9476,"children":9478},{"id":9477},"日常问答与整理",[9479],{"type":44,"value":9477},{"type":16,"tag":144,"props":9481,"children":9482},{},[9483],{"type":44,"value":9484},"优先使用快模型。总结文字、修改表达、列清单、翻译和简单搜索，没有必要每次都开启最高推理档位。",{"type":16,"tag":113,"props":9486,"children":9488},{"id":9487},"代码合同财务和重要决策",[9489],{"type":44,"value":9490},"代码、合同、财务和重要决策",{"type":16,"tag":144,"props":9492,"children":9493},{},[9494],{"type":44,"value":9495},"使用深度模型，但仍要核对原始资料。模型越会表达，越容易让错误显得可信；“回答很完整”并不等于“事实已验证”。",{"type":16,"tag":113,"props":9497,"children":9499},{"id":9498},"让-ai-操作软件或账号",[9500],{"type":44,"value":9501},"让 AI 操作软件或账号",{"type":16,"tag":144,"props":9503,"children":9504},{},[9505],{"type":44,"value":9506},"从低权限开始，只开放完成任务真正需要的能力。涉及发送、删除、支付、授权和公开发布时，保留人工确认。",{"type":16,"tag":113,"props":9508,"children":9510},{"id":9509},"处理私密内容",[9511],{"type":44,"value":9509},{"type":16,"tag":144,"props":9513,"children":9514},{},[9515],{"type":44,"value":9516},"先确认数据是否会被上传、保存或用于训练。能够在本地或端侧完成的任务，优先考虑本地方案。",{"type":16,"tag":71,"props":9518,"children":9520},{"id":9519},"开发者真正需要补的不只是-prompt",[9521],{"type":44,"value":9522},"开发者真正需要补的，不只是 Prompt",{"type":16,"tag":144,"props":9524,"children":9525},{},[9526],{"type":44,"value":9527},"Prompt 仍然重要，但构建可靠 AI 产品需要更多传统工程能力。",{"type":16,"tag":8212,"props":9529,"children":9530},{},[9531,9541,9551,9561,9571],{"type":16,"tag":50,"props":9532,"children":9533},{},[9534,9539],{"type":16,"tag":1567,"props":9535,"children":9536},{},[9537],{"type":44,"value":9538},"把工具做成确定性接口。",{"type":44,"value":9540}," 参数、权限、错误信息越清晰，Agent 越不容易误操作。",{"type":16,"tag":50,"props":9542,"children":9543},{},[9544,9549],{"type":16,"tag":1567,"props":9545,"children":9546},{},[9547],{"type":44,"value":9548},"建立评测集。",{"type":44,"value":9550}," 用真实任务持续测试，而不是只看公开榜单。",{"type":16,"tag":50,"props":9552,"children":9553},{},[9554,9559],{"type":16,"tag":1567,"props":9555,"children":9556},{},[9557],{"type":44,"value":9558},"保留可观测性。",{"type":44,"value":9560}," 记录模型选择、工具调用、耗时、费用和失败原因。",{"type":16,"tag":50,"props":9562,"children":9563},{},[9564,9569],{"type":16,"tag":1567,"props":9565,"children":9566},{},[9567],{"type":44,"value":9568},"限制任务边界。",{"type":44,"value":9570}," 长上下文不等于可靠记忆，更不等于模型会自动理解业务规则。",{"type":16,"tag":50,"props":9572,"children":9573},{},[9574,9579],{"type":16,"tag":1567,"props":9575,"children":9576},{},[9577],{"type":44,"value":9578},"设计人工接管。",{"type":44,"value":9580}," 一个优秀 Agent 不仅要知道怎么继续，也要知道什么时候应该停下来。",{"type":16,"tag":144,"props":9582,"children":9583},{},[9584],{"type":44,"value":9585},"如果说上一阶段的核心技能是“会调用模型 API”，那么现在更稀缺的能力是：把模型、工具、数据、权限和用户确认组合成一个可靠系统。",{"type":16,"tag":71,"props":9587,"children":9589},{"id":9588},"接下来半年值得观察什么",[9590],{"type":44,"value":9591},"接下来半年，值得观察什么",{"type":16,"tag":144,"props":9593,"children":9594},{},[9595],{"type":44,"value":9596},"我会重点关注五件事：",{"type":16,"tag":46,"props":9598,"children":9599},{},[9600,9605,9610,9615,9620],{"type":16,"tag":50,"props":9601,"children":9602},{},[9603],{"type":44,"value":9604},"Agent 能否从几十分钟任务稳定迈向数小时甚至数天；",{"type":16,"tag":50,"props":9606,"children":9607},{},[9608],{"type":44,"value":9609},"浏览器、电脑和手机操作是否形成统一接口；",{"type":16,"tag":50,"props":9611,"children":9612},{},[9613],{"type":44,"value":9614},"小模型能否把更多视觉与语音能力带到本地设备；",{"type":16,"tag":50,"props":9616,"children":9617},{},[9618],{"type":44,"value":9619},"模型降价是否继续推动个人 AI 工具爆发；",{"type":16,"tag":50,"props":9621,"children":9622},{},[9623],{"type":44,"value":9624},"厂商能否给出更透明的权限、审计和来源识别机制。",{"type":16,"tag":144,"props":9626,"children":9627},{},[9628,9630],{"type":44,"value":9629},"AI 的变化仍然很快，但判断它有没有真正进步，可以用一个朴素标准：",{"type":16,"tag":1567,"props":9631,"children":9632},{},[9633],{"type":44,"value":9634},"它是不是只说得更像懂了，还是确实能更可靠地把事情做完。",{"type":16,"tag":144,"props":9636,"children":9637},{},[9638],{"type":44,"value":9639},"到 2026 年下半年，后者正在成为整个行业的新考题。",{"type":16,"tag":71,"props":9641,"children":9643},{"id":9642},"资料来源",[9644],{"type":44,"value":9642},{"type":16,"tag":46,"props":9646,"children":9647},{},[9648,9657,9666,9675,9684,9693,9702],{"type":16,"tag":50,"props":9649,"children":9650},{},[9651],{"type":16,"tag":1271,"props":9652,"children":9654},{"href":9101,"rel":9653},[1275],[9655],{"type":44,"value":9656},"OpenAI：GPT-5.6 系列发布说明，2026-07-09",{"type":16,"tag":50,"props":9658,"children":9659},{},[9660],{"type":16,"tag":1271,"props":9661,"children":9663},{"href":9110,"rel":9662},[1275],[9664],{"type":44,"value":9665},"OpenAI：Ultrafast 模式预览，2026-08-13",{"type":16,"tag":50,"props":9667,"children":9668},{},[9669],{"type":16,"tag":1271,"props":9670,"children":9672},{"href":9457,"rel":9671},[1275],[9673],{"type":44,"value":9674},"OpenAI：长周期模型的安全与对齐，2026-07-20",{"type":16,"tag":50,"props":9676,"children":9677},{},[9678],{"type":16,"tag":1271,"props":9679,"children":9681},{"href":9124,"rel":9680},[1275],[9682],{"type":44,"value":9683},"Anthropic：Claude Sonnet 5，2026-06-30",{"type":16,"tag":50,"props":9685,"children":9686},{},[9687],{"type":16,"tag":1271,"props":9688,"children":9690},{"href":9133,"rel":9689},[1275],[9691],{"type":44,"value":9692},"Anthropic：Claude Opus 5，2026-07-23",{"type":16,"tag":50,"props":9694,"children":9695},{},[9696],{"type":16,"tag":1271,"props":9697,"children":9699},{"href":9147,"rel":9698},[1275],[9700],{"type":44,"value":9701},"DeepSeek：DeepSeek-V4-Pro，2026-08-13",{"type":16,"tag":50,"props":9703,"children":9704},{},[9705],{"type":16,"tag":1271,"props":9706,"children":9708},{"href":9156,"rel":9707},[1275],[9709],{"type":44,"value":9710},"DeepSeek：DeepSeek-V4-Flash-Vision-Exp，2026-08-21",{"type":16,"tag":1281,"props":9712,"children":9713},{},[9714],{"type":44,"value":1285},{"title":6,"searchDepth":22,"depth":22,"links":9716},[9717,9718,9719,9720,9721,9722,9723,9729,9730,9731],{"id":9082,"depth":22,"text":9085},{"id":9170,"depth":22,"text":9173},{"id":9239,"depth":22,"text":9242},{"id":9361,"depth":22,"text":9364},{"id":9387,"depth":22,"text":9390},{"id":9408,"depth":22,"text":9411},{"id":9466,"depth":22,"text":9469,"children":9724},[9725,9726,9727,9728],{"id":9477,"depth":270,"text":9477},{"id":9487,"depth":270,"text":9490},{"id":9498,"depth":270,"text":9501},{"id":9509,"depth":270,"text":9509},{"id":9519,"depth":22,"text":9522},{"id":9588,"depth":22,"text":9591},{"id":9642,"depth":22,"text":9642},"content:articles:11-ai-landscape-2026.md","articles/11-ai-landscape-2026.md",{"_path":9735,"_dir":19,"_draft":7,"_partial":7,"_locale":6,"title":9736,"description":9737,"cover":9738,"date":9040,"category":9739,"layout":35,"body":9740,"_type":24,"_id":10428,"_source":26,"_file":10429,"_extension":28},"/articles/12-tibo-x-monthly-timeline","Tibo 的 X 最近一个月说了什么？Codex 从 1500 万冲到 2000 万的 31 天","按时间倒序梳理 @thsottiaux 近一个月关于 Codex 用量、安全修补、Agent 插件、Linux、长上下文与模型成本的主要言论和事件","https://witque.cn/articles/tibo-x-monthly-timeline.svg","AI / PEOPLE",{"type":13,"children":9741,"toc":10397},[9742,9756,9768,9773,9778,9783,9789,9794,9806,9812,9823,9829,9841,9852,9863,9869,9880,9886,9897,9908,9914,9932,9937,9965,9971,9982,9988,10013,10041,10047,10058,10078,10084,10095,10100,10106,10117,10123,10134,10140,10152,10163,10169,10180,10186,10204,10210,10221,10227,10238,10244,10249,10255,10260,10266,10271,10277,10282,10288,10293,10298,10351,10356,10361,10366,10370],{"type":16,"tag":144,"props":9743,"children":9744},{},[9745,9747,9754],{"type":44,"value":9746},"如果你最近关注 Codex，大概率见过一个叫 Tibo 的人频繁出来宣布“重置用量”。他的 X 账号是 ",{"type":16,"tag":1271,"props":9748,"children":9751},{"href":9749,"rel":9750},"https://x.com/thsottiaux",[1275],[9752],{"type":44,"value":9753},"@thsottiaux",{"type":44,"value":9755},"，也是观察 OpenAI Codex 产品节奏的一个高密度窗口。",{"type":16,"tag":144,"props":9757,"children":9758},{},[9759,9761,9766],{"type":44,"value":9760},"这篇文章整理了 ",{"type":16,"tag":1567,"props":9762,"children":9763},{},[9764],{"type":44,"value":9765},"2026 年 7 月 24 日至 8 月 23 日",{"type":44,"value":9767}," 这 31 天里，他公开发布的主要信息。时间线按最新在前排列；产品数字、性能判断和 token 效率等说法均按原帖归因，不把个人观点或厂商口径写成独立测评结论。",{"type":16,"tag":71,"props":9769,"children":9771},{"id":9770},"一句话总结",[9772],{"type":44,"value":9770},{"type":16,"tag":144,"props":9774,"children":9775},{},[9776],{"type":44,"value":9777},"这个月的 Codex 像是一辆高速扩建中的列车：活跃用户从 Tibo 宣布的 1500 万继续冲到 2000 万，Linux、Computer History、Agent Plugins 和长上下文接连出现；与此同时，用量消耗、缓存命中率和破坏性操作风险也迫使团队快速补课。",{"type":16,"tag":71,"props":9779,"children":9781},{"id":9780},"倒序时间线",[9782],{"type":44,"value":9780},{"type":16,"tag":113,"props":9784,"children":9786},{"id":9785},"_8-月-23-日解释-codex-用量消耗异常",[9787],{"type":44,"value":9788},"8 月 23 日：解释 Codex 用量消耗异常",{"type":16,"tag":144,"props":9790,"children":9791},{},[9792],{"type":44,"value":9793},"Tibo 发布了最新一轮用量限制调查进展。他说团队发现了三类问题：长会话经过多次上下文压缩后使用图片存在效率损失；Computer History 的极高分位用户消耗偏高；自动生成会话标题的功能也比预期多占了一些用量。",{"type":16,"tag":144,"props":9795,"children":9796},{},[9797,9799],{"type":44,"value":9798},"这条更新很重要，因为它把“额度掉得快”从模糊体感拆成了几个可定位的工程问题。它也说明 Agent 产品的成本并不只由模型标价决定，图片、历史记录、缓存和上下文管理都会影响最终消耗。",{"type":16,"tag":1271,"props":9800,"children":9803},{"href":9801,"rel":9802},"https://x.com/thsottiaux/status/2091407991736332689",[1275],[9804],{"type":44,"value":9805},"查看原帖",{"type":16,"tag":113,"props":9807,"children":9809},{"id":9808},"_8-月-22-日缓存命中率成为用量问题的线索",[9810],{"type":44,"value":9811},"8 月 22 日：缓存命中率成为用量问题的线索",{"type":16,"tag":144,"props":9813,"children":9814},{},[9815,9817],{"type":44,"value":9816},"前一天，他已经提到部分用户当周的缓存命中率低于此前数周的稳定状态，可能因此更快耗尽用量。缓存命中并不是用户界面里最显眼的功能，却是控制长会话成本的关键环节。",{"type":16,"tag":1271,"props":9818,"children":9821},{"href":9819,"rel":9820},"https://x.com/thsottiaux/status/2091033630147854385",[1275],[9822],{"type":44,"value":9805},{"type":16,"tag":113,"props":9824,"children":9826},{"id":9825},"_8-月-21-日codex-达到-2000-万活跃用户并发放可储存重置",[9827],{"type":44,"value":9828},"8 月 21 日：Codex 达到 2000 万活跃用户，并发放可储存重置",{"type":16,"tag":144,"props":9830,"children":9831},{},[9832,9834,9839],{"type":44,"value":9833},"Tibo 宣布 Codex 当周达到 ",{"type":16,"tag":1567,"props":9835,"children":9836},{},[9837],{"type":44,"value":9838},"2000 万活跃用户",{"type":44,"value":9840},"。为了庆祝，团队向 Codex 和 ChatGPT Work 用户发放了一次可以留到需要时再使用的 “BANKED reset”，不再要求用户立即消耗。",{"type":16,"tag":144,"props":9842,"children":9843},{},[9844,9846],{"type":44,"value":9845},"这里的 2000 万是 Tibo 公布的产品口径，原帖没有进一步解释活跃用户的统计周期与去重方式。",{"type":16,"tag":1271,"props":9847,"children":9850},{"href":9848,"rel":9849},"https://x.com/thsottiaux/status/2090766694897619318",[1275],[9851],{"type":44,"value":9805},{"type":16,"tag":144,"props":9853,"children":9854},{},[9855,9857],{"type":44,"value":9856},"同一天，他还展示了 GPT-Image-2 在 ChatGPT 与 API 中生成透明背景图片的能力，并拿一张仙人掌图演示准备打印成电脑贴纸。",{"type":16,"tag":1271,"props":9858,"children":9861},{"href":9859,"rel":9860},"https://x.com/thsottiaux/status/2090631723302469995",[1275],[9862],{"type":44,"value":9805},{"type":16,"tag":113,"props":9864,"children":9866},{"id":9865},"_8-月-20-日更多上下文更多帮助",[9867],{"type":44,"value":9868},"8 月 20 日：更多上下文，更多帮助",{"type":16,"tag":144,"props":9870,"children":9871},{},[9872,9874],{"type":44,"value":9873},"他用一句 “More context, better help” 转发了产品更新。虽然原帖本身非常简短，但延续了这个月一贯的产品方向：让 Agent 获得更多用户授权的上下文，而不只是等待一次性的提示词。",{"type":16,"tag":1271,"props":9875,"children":9878},{"href":9876,"rel":9877},"https://x.com/thsottiaux/status/2090517433199247741",[1275],[9879],{"type":44,"value":9805},{"type":16,"tag":113,"props":9881,"children":9883},{"id":9882},"_8-月-19-日隐私处理与破坏性操作安全同时被摆上台面",[9884],{"type":44,"value":9885},"8 月 19 日：隐私处理与破坏性操作安全同时被摆上台面",{"type":16,"tag":144,"props":9887,"children":9888},{},[9889,9891],{"type":44,"value":9890},"Tibo 介绍了 Private Safety Processing 预览：目标是在改进安全保障的同时，继续为相关部署提供 Zero Data Retention。他强调，即使使用前沿模型，客户也不应放弃对敏感数据的控制。",{"type":16,"tag":1271,"props":9892,"children":9895},{"href":9893,"rel":9894},"https://x.com/thsottiaux/status/2090173536010957128",[1275],[9896],{"type":44,"value":9805},{"type":16,"tag":144,"props":9898,"children":9899},{},[9900,9902],{"type":44,"value":9901},"当天另一条长帖则回顾了 Codex 为降低潜在破坏性操作风险而推出的改动。他提到，团队此前开始调查少量相关报告，并在随后数周持续降低执行危险动作的风险。由于 X 展示的长帖内容并不完整，这里不扩写未经完整原文确认的事故细节；可以确定的是，安全已经进入 Codex 的执行层，而不再只是提示用户“小心使用”。",{"type":16,"tag":1271,"props":9903,"children":9906},{"href":9904,"rel":9905},"https://x.com/thsottiaux/status/2089891927659585918",[1275],[9907],{"type":44,"value":9805},{"type":16,"tag":113,"props":9909,"children":9911},{"id":9910},"_8-月-16-日开放-100-万-token-上下文也引发-token-计价讨论",[9912],{"type":44,"value":9913},"8 月 16 日：开放 100 万 token 上下文，也引发 token 计价讨论",{"type":16,"tag":144,"props":9915,"children":9916},{},[9917,9919,9924,9926],{"type":44,"value":9918},"Tibo 给出了在 Codex 中为 GPT-5.6 Sol 开启 ",{"type":16,"tag":1567,"props":9920,"children":9921},{},[9922],{"type":44,"value":9923},"100 万 token 上下文窗口",{"type":44,"value":9925},"的方法。他同时说明，默认上限是性能与成本之间的折中，更大上下文虽然能保留更多信息，也意味着更高的资源消耗。",{"type":16,"tag":1271,"props":9927,"children":9930},{"href":9928,"rel":9929},"https://x.com/thsottiaux/status/2089082893804896524",[1275],[9931],{"type":44,"value":9805},{"type":16,"tag":144,"props":9933,"children":9934},{},[9935],{"type":44,"value":9936},"同一天，他连续讨论不同模型的 token 是否可以直接比较。他的核心观点是：token 并非克或千瓦时那样的标准单位，不同 tokenizer 会把相同文本切成不同数量，因此只比较“每百万 token 价格”可能误导。",{"type":16,"tag":144,"props":9938,"children":9939},{},[9940,9942,9947,9949,9956,9958],{"type":44,"value":9941},"他声称 OpenAI tokenizer 在其比较中大约少用 30% token。这个数字是 ",{"type":16,"tag":1567,"props":9943,"children":9944},{},[9945],{"type":44,"value":9946},"Tibo 本人的说法",{"type":44,"value":9948},"，不是本文进行的独立测评；真实差异也会随语言、代码和文本类型变化。",{"type":16,"tag":1271,"props":9950,"children":9953},{"href":9951,"rel":9952},"https://x.com/thsottiaux/status/2088856449959276836",[1275],[9954],{"type":44,"value":9955},"短帖",{"type":44,"value":9957}," / ",{"type":16,"tag":1271,"props":9959,"children":9962},{"href":9960,"rel":9961},"https://x.com/thsottiaux/status/2088866513008873560",[1275],[9963],{"type":44,"value":9964},"长帖",{"type":16,"tag":113,"props":9966,"children":9968},{"id":9967},"_8-月-15-日让-sol-调度一支-luna-agent-舰队",[9969],{"type":44,"value":9970},"8 月 15 日：让 Sol 调度一支 Luna Agent 舰队",{"type":16,"tag":144,"props":9972,"children":9973},{},[9974,9976],{"type":44,"value":9975},"Tibo 描述了一种多模型协作方式：让能力更强的 Sol 管理一组高效的 Luna agents。这里透露出的产品思路比单次跑分更值得关注——复杂模型负责编排和判断，轻量模型承担大量快速执行任务。",{"type":16,"tag":1271,"props":9977,"children":9980},{"href":9978,"rel":9979},"https://x.com/thsottiaux/status/2088725163923984638",[1275],[9981],{"type":44,"value":9805},{"type":16,"tag":113,"props":9983,"children":9985},{"id":9984},"_8-月-13-日1500-万computer-history-与-ultrafast-同日出现",[9986],{"type":44,"value":9987},"8 月 13 日：1500 万、Computer History 与 Ultrafast 同日出现",{"type":16,"tag":144,"props":9989,"children":9990},{},[9991,9993,9998,10000,10006,10007],{"type":44,"value":9992},"这一天的信息密度很高：Tibo 表示 Codex 已经越过 ",{"type":16,"tag":1567,"props":9994,"children":9995},{},[9996],{"type":44,"value":9997},"1500 万",{"type":44,"value":9999},"，并再次给所有人发放用量重置，同时建议用户尝试 ",{"type":16,"tag":90,"props":10001,"children":10003},{"className":10002},[],[10004],{"type":44,"value":10005},"/fast",{"type":44,"value":8690},{"type":16,"tag":1271,"props":10008,"children":10011},{"href":10009,"rel":10010},"https://x.com/thsottiaux/status/2087706104814023111",[1275],[10012],{"type":44,"value":9805},{"type":16,"tag":144,"props":10014,"children":10015},{},[10016,10018,10024,10026,10033,10034],{"type":44,"value":10017},"他随后分别宣布 “Computer history is here” 和 ",{"type":16,"tag":90,"props":10019,"children":10021},{"className":10020},[],[10022],{"type":44,"value":10023},"/ultrafast",{"type":44,"value":10025},"。前者让 Codex 能利用更多电脑使用历史，后者则继续压低 Agent 的等待时间。两项能力放在一起看，目标很明确：既增加上下文，又提高行动速度。",{"type":16,"tag":1271,"props":10027,"children":10030},{"href":10028,"rel":10029},"https://x.com/thsottiaux/status/2088017529587573025",[1275],[10031],{"type":44,"value":10032},"Computer History 原帖",{"type":44,"value":9957},{"type":16,"tag":1271,"props":10035,"children":10038},{"href":10036,"rel":10037},"https://x.com/thsottiaux/status/2088019704803897705",[1275],[10039],{"type":44,"value":10040},"Ultrafast 原帖",{"type":16,"tag":113,"props":10042,"children":10044},{"id":10043},"_8-月-11-日codex-与-chatgpt-desktop-登陆-linux",[10045],{"type":44,"value":10046},"8 月 11 日：Codex 与 ChatGPT desktop 登陆 Linux",{"type":16,"tag":144,"props":10048,"children":10049},{},[10050,10052],{"type":44,"value":10051},"Linux 用户终于被照顾到了。Tibo 宣布 Codex 与 ChatGPT desktop 来到 Linux，还开玩笑说，等不及而下单 MacBook 的用户可以取消订单了。",{"type":16,"tag":1271,"props":10053,"children":10056},{"href":10054,"rel":10055},"https://x.com/thsottiaux/status/2087254026232775052",[1275],[10057],{"type":44,"value":9805},{"type":16,"tag":144,"props":10059,"children":10060},{},[10061,10063,10070,10071],{"type":44,"value":10062},"当天他也用 “Import your world. Codex. Run.” 宣传导入能力，并再次为 ChatGPT Work 与 Codex 付费用户重置用量。",{"type":16,"tag":1271,"props":10064,"children":10067},{"href":10065,"rel":10066},"https://x.com/thsottiaux/status/2087252528513814773",[1275],[10068],{"type":44,"value":10069},"导入原帖",{"type":44,"value":9957},{"type":16,"tag":1271,"props":10072,"children":10075},{"href":10073,"rel":10074},"https://x.com/thsottiaux/status/2086972933566857393",[1275],[10076],{"type":44,"value":10077},"重置原帖",{"type":16,"tag":113,"props":10079,"children":10081},{"id":10080},"_8-月-8-日sol-可以进入其他-harness",[10082],{"type":44,"value":10083},"8 月 8 日：Sol 可以进入其他 harness",{"type":16,"tag":144,"props":10085,"children":10086},{},[10087,10089],{"type":44,"value":10088},"Tibo 表示 GPT-5.6 Sol 可以在包括 “CC harness” 在内的不同运行环境中使用。对开发者来说，这意味着模型和承载模型的 Agent 外壳正在逐渐解耦；同一模型可以进入不同工具链，而 Codex 也必须靠自己的编排、上下文与执行体验竞争。",{"type":16,"tag":1271,"props":10090,"children":10093},{"href":10091,"rel":10092},"https://x.com/thsottiaux/status/2086188036493344823",[1275],[10094],{"type":44,"value":9805},{"type":16,"tag":144,"props":10096,"children":10097},{},[10098],{"type":44,"value":10099},"这条帖子末尾照例又附带了一次面向 ChatGPT Work 与 Codex 付费用户的用量重置。",{"type":16,"tag":113,"props":10101,"children":10103},{"id":10102},"_8-月-7-日免费用户获得-luna-驱动的无限文本聊天",[10104],{"type":44,"value":10105},"8 月 7 日：免费用户获得 Luna 驱动的无限文本聊天",{"type":16,"tag":144,"props":10107,"children":10108},{},[10109,10111],{"type":44,"value":10110},"Tibo 宣布 ChatGPT 免费用户获得由 GPT-5.6 Luna 驱动的无限文本聊天。它反映了 Luna 的角色：用更低成本承接高频、日常的大规模请求。",{"type":16,"tag":1271,"props":10112,"children":10115},{"href":10113,"rel":10114},"https://x.com/thsottiaux/status/2085610231707623750",[1275],[10116],{"type":44,"value":9805},{"type":16,"tag":113,"props":10118,"children":10120},{"id":10119},"_8-月-6-日agent-plugins-成为共同标准",[10121],{"type":44,"value":10122},"8 月 6 日：Agent Plugins 成为共同标准",{"type":16,"tag":144,"props":10124,"children":10125},{},[10126,10128],{"type":44,"value":10127},"他把 Agent Plugins 描述为适用于多数 Agent、包括 Codex 和 ChatGPT 的一种标准。插件的意义不只在“多一个扩展商店”，而是让工具、指令和工作流可以被打包、迁移与复用。",{"type":16,"tag":1271,"props":10129,"children":10132},{"href":10130,"rel":10131},"https://x.com/thsottiaux/status/2085432978856083964",[1275],[10133],{"type":44,"value":9805},{"type":16,"tag":113,"props":10135,"children":10137},{"id":10136},"_8-月-4-日今天的-agent-harness两三个月后会显得原始",[10138],{"type":44,"value":10139},"8 月 4 日：今天的 Agent harness，两三个月后会显得原始",{"type":16,"tag":144,"props":10141,"children":10142},{},[10143,10145,10150],{"type":44,"value":10144},"这是本月最有判断色彩的一条帖子。Tibo 说 Codex 已经是一个不错的 harness，但照他最近看到的结果，",{"type":16,"tag":1567,"props":10146,"children":10147},{},[10148],{"type":44,"value":10149},"两三个月后它仍会显得原始",{"type":44,"value":10151},"；前沿 AI 的使用方式将经历又一次重大演进，下一代模型需要的不只是用户的一台笔记本电脑。",{"type":16,"tag":144,"props":10153,"children":10154},{},[10155,10157],{"type":44,"value":10156},"这是个人判断，不是产品发布日期预告。但它清楚表达了他的立场：模型能力只是底座，harness 会大幅改变模型最终能完成什么。",{"type":16,"tag":1271,"props":10158,"children":10161},{"href":10159,"rel":10160},"https://x.com/thsottiaux/status/2084483765158719542",[1275],[10162],{"type":44,"value":9805},{"type":16,"tag":113,"props":10164,"children":10166},{"id":10165},"_8-月-1-日用-10-万条-luna-线程庆祝效率周",[10167],{"type":44,"value":10168},"8 月 1 日：用 10 万条 Luna 线程庆祝效率周",{"type":16,"tag":144,"props":10170,"children":10171},{},[10172,10174],{"type":44,"value":10173},"Tibo 再次重置 Codex 与 ChatGPT Work 的用量限制，并用“周末跑 10 万条 Luna threads”来强调轻量模型的吞吐能力。这里的 10 万更像庆祝式表达，不应理解成普通套餐固定承诺的并发额度。",{"type":16,"tag":1271,"props":10175,"children":10178},{"href":10176,"rel":10177},"https://x.com/thsottiaux/status/2083395449814229287",[1275],[10179],{"type":44,"value":9805},{"type":16,"tag":113,"props":10181,"children":10183},{"id":10182},"_7-月-30-日luna-降价-80terra-降价-20",[10184],{"type":44,"value":10185},"7 月 30 日：Luna 降价 80%，Terra 降价 20%",{"type":16,"tag":144,"props":10187,"children":10188},{},[10189,10191,10196,10198],{"type":44,"value":10190},"这次更新直接打到成本层：Tibo 宣布 Luna 价格降低 80%、Terra 降低 20%，Sol 的 ",{"type":16,"tag":90,"props":10192,"children":10194},{"className":10193},[],[10195],{"type":44,"value":10005},{"type":44,"value":10197}," 模式提速；自动审批模式也改用 Luna 来显著降低成本。长帖后半段在 X 的公开嵌入结果中被截断，因此这里只记录能够完整确认的项目。",{"type":16,"tag":1271,"props":10199,"children":10202},{"href":10200,"rel":10201},"https://x.com/thsottiaux/status/2082883636177916306",[1275],[10203],{"type":44,"value":9805},{"type":16,"tag":113,"props":10205,"children":10207},{"id":10206},"_7-月-29-日回应-sol-消耗用量过快",[10208],{"type":44,"value":10209},"7 月 29 日：回应 Sol 消耗用量过快",{"type":16,"tag":144,"props":10211,"children":10212},{},[10213,10215],{"type":44,"value":10214},"在用户反映 Sol 比预期更快消耗 Codex 用量后，Tibo 发帖回应，并为 ChatGPT Work 与 Codex 用户重置限制。完整解释在公开嵌入内容中被截断，但这已经预告了随后一个月持续出现的主题：强模型的能力、速度和可持续用量必须一起优化。",{"type":16,"tag":1271,"props":10216,"children":10219},{"href":10217,"rel":10218},"https://x.com/thsottiaux/status/2082317452755751098",[1275],[10220],{"type":44,"value":9805},{"type":16,"tag":113,"props":10222,"children":10224},{"id":10223},"_7-月-25-日接近全球范围的故障后重置用量",[10225],{"type":44,"value":10226},"7 月 25 日：接近全球范围的故障后重置用量",{"type":16,"tag":144,"props":10228,"children":10229},{},[10230,10232],{"type":44,"value":10231},"Tibo 表示 Codex 在凌晨 2 点至 4 点左右经历了一次“几乎全球性”的故障，服务随后恢复。团队为所有 Codex 与 ChatGPT Work 用户重置用量，并用 “We learn. We reset.” 总结处理方式。",{"type":16,"tag":1271,"props":10233,"children":10236},{"href":10234,"rel":10235},"https://x.com/thsottiaux/status/2081096447718723984",[1275],[10237],{"type":44,"value":9805},{"type":16,"tag":71,"props":10239,"children":10241},{"id":10240},"这个月他反复在说什么",[10242],{"type":44,"value":10243},"这个月，他反复在说什么",{"type":16,"tag":144,"props":10245,"children":10246},{},[10247],{"type":44,"value":10248},"把这些帖子放在一起看，可以提炼出四条持续出现的主线。",{"type":16,"tag":113,"props":10250,"children":10252},{"id":10251},"_1-harness-正在成为模型能力的放大器",[10253],{"type":44,"value":10254},"1. Harness 正在成为模型能力的放大器",{"type":16,"tag":144,"props":10256,"children":10257},{},[10258],{"type":44,"value":10259},"Tibo 对未来两三个月的判断、跨 harness 使用 Sol、Agent Plugins 和多模型舰队，都在指向同一件事：真正的竞争单位不再只是一个模型，而是模型、工具、上下文、权限和执行环境组成的系统。",{"type":16,"tag":113,"props":10261,"children":10263},{"id":10262},"_2-用量限制本质上是系统效率问题",[10264],{"type":44,"value":10265},"2. 用量限制本质上是系统效率问题",{"type":16,"tag":144,"props":10267,"children":10268},{},[10269],{"type":44,"value":10270},"重置额度是最显眼的用户福利，却不是长期解法。缓存命中率、图片、上下文压缩、Computer History 和自动标题都会影响消耗。月底到月初的一连串帖子显示，团队正在边扩张用户量，边修补成本模型。",{"type":16,"tag":113,"props":10272,"children":10274},{"id":10273},"_3-多模型编排会代替一个模型包打天下",[10275],{"type":44,"value":10276},"3. 多模型编排会代替“一个模型包打天下”",{"type":16,"tag":144,"props":10278,"children":10279},{},[10280],{"type":44,"value":10281},"Sol 管理 Luna agents、自动审批改用 Luna、免费聊天交给 Luna，都是同一套分工：贵而强的模型处理复杂决策，便宜而快的模型承担规模化执行。",{"type":16,"tag":113,"props":10283,"children":10285},{"id":10284},"_4-安全必须进入执行层",[10286],{"type":44,"value":10287},"4. 安全必须进入执行层",{"type":16,"tag":144,"props":10289,"children":10290},{},[10291],{"type":44,"value":10292},"当 Codex 能读取历史、操作电脑和连续执行命令时，安全不能只依靠一句系统提示。破坏性动作防护、隐私处理、数据保留策略与权限确认，会和模型能力一样成为 Agent 产品的核心体验。",{"type":16,"tag":71,"props":10294,"children":10296},{"id":10295},"阅读这些数字时需要保留判断",[10297],{"type":44,"value":10295},{"type":16,"tag":46,"props":10299,"children":10300},{},[10301,10311,10321,10331,10341],{"type":16,"tag":50,"props":10302,"children":10303},{},[10304,10309],{"type":16,"tag":1567,"props":10305,"children":10306},{},[10307],{"type":44,"value":10308},"2000 万与 1500 万",{"type":44,"value":10310},"：均来自 Tibo 原帖，活跃口径和统计周期没有在帖子中展开。",{"type":16,"tag":50,"props":10312,"children":10313},{},[10314,10319],{"type":16,"tag":1567,"props":10315,"children":10316},{},[10317],{"type":44,"value":10318},"token 少约 30%",{"type":44,"value":10320},"：这是他的 tokenizer 对比结论，不是统一语料上的独立评测。",{"type":16,"tag":50,"props":10322,"children":10323},{},[10324,10329],{"type":16,"tag":1567,"props":10325,"children":10326},{},[10327],{"type":44,"value":10328},"频繁 reset",{"type":44,"value":10330},"：它是阶段性补偿或庆祝福利，不代表套餐永久扩容。",{"type":16,"tag":50,"props":10332,"children":10333},{},[10334,10339],{"type":16,"tag":1567,"props":10335,"children":10336},{},[10337],{"type":44,"value":10338},"“两三个月后显得原始”",{"type":44,"value":10340},"：这是方向判断，不等于已经承诺某个具体产品或发布日期。",{"type":16,"tag":50,"props":10342,"children":10343},{},[10344,10349],{"type":16,"tag":1567,"props":10345,"children":10346},{},[10347],{"type":44,"value":10348},"长帖被截断的部分",{"type":44,"value":10350},"：本文只转述可确认内容，没有根据搜索摘要补全原文。",{"type":16,"tag":71,"props":10352,"children":10354},{"id":10353},"结语",[10355],{"type":44,"value":10353},{"type":16,"tag":144,"props":10357,"children":10358},{},[10359],{"type":44,"value":10360},"如果只看发布数量，这 31 天像是一场密集的功能轰炸；如果看得更深一点，它其实记录了 Codex 从“更强的编码助手”向通用工作 Agent 扩张时遇到的真实摩擦。",{"type":16,"tag":144,"props":10362,"children":10363},{},[10364],{"type":44,"value":10365},"用户增长很快，新入口和新上下文不断加入，成本与安全问题也随之放大。Tibo 的帖子最有价值的地方，未必是又一次 reset，而是让外界看到：下一代 Agent 的竞争，已经从模型跑分进入系统工程。",{"type":16,"tag":71,"props":10367,"children":10368},{"id":9642},[10369],{"type":44,"value":9642},{"type":16,"tag":46,"props":10371,"children":10372},{},[10373,10382,10392],{"type":16,"tag":50,"props":10374,"children":10375},{},[10376],{"type":16,"tag":1271,"props":10377,"children":10379},{"href":9749,"rel":10378},[1275],[10380],{"type":44,"value":10381},"Tibo 的 X 主页",{"type":16,"tag":50,"props":10383,"children":10384},{},[10385],{"type":16,"tag":1271,"props":10386,"children":10389},{"href":10387,"rel":10388},"https://developers.openai.com/codex/changelog",[1275],[10390],{"type":44,"value":10391},"OpenAI Codex Changelog",{"type":16,"tag":50,"props":10393,"children":10394},{},[10395],{"type":44,"value":10396},"文中各日期均附对应 X 原帖链接，核对时间为 2026 年 8 月 23 日。",{"title":6,"searchDepth":22,"depth":22,"links":10398},[10399,10400,10419,10425,10426,10427],{"id":9770,"depth":22,"text":9770},{"id":9780,"depth":22,"text":9780,"children":10401},[10402,10403,10404,10405,10406,10407,10408,10409,10410,10411,10412,10413,10414,10415,10416,10417,10418],{"id":9785,"depth":270,"text":9788},{"id":9808,"depth":270,"text":9811},{"id":9825,"depth":270,"text":9828},{"id":9865,"depth":270,"text":9868},{"id":9882,"depth":270,"text":9885},{"id":9910,"depth":270,"text":9913},{"id":9967,"depth":270,"text":9970},{"id":9984,"depth":270,"text":9987},{"id":10043,"depth":270,"text":10046},{"id":10080,"depth":270,"text":10083},{"id":10102,"depth":270,"text":10105},{"id":10119,"depth":270,"text":10122},{"id":10136,"depth":270,"text":10139},{"id":10165,"depth":270,"text":10168},{"id":10182,"depth":270,"text":10185},{"id":10206,"depth":270,"text":10209},{"id":10223,"depth":270,"text":10226},{"id":10240,"depth":22,"text":10243,"children":10420},[10421,10422,10423,10424],{"id":10251,"depth":270,"text":10254},{"id":10262,"depth":270,"text":10265},{"id":10273,"depth":270,"text":10276},{"id":10284,"depth":270,"text":10287},{"id":10295,"depth":22,"text":10295},{"id":10353,"depth":22,"text":10353},{"id":9642,"depth":22,"text":9642},"content:articles:12-tibo-x-monthly-timeline.md","articles/12-tibo-x-monthly-timeline.md",1787508504991]