{"id":304,"date":"2026-10-31T23:06:48","date_gmt":"2026-10-31T15:06:48","guid":{"rendered":"https:\/\/dfwce.cn\/?p=304"},"modified":"2026-11-01T21:31:30","modified_gmt":"2026-11-01T13:31:30","slug":"whale-move-to-tencent-cloud","status":"publish","type":"post","link":"https:\/\/dfwce.cn\/?p=304","title":{"rendered":"\u628a\u5927\u80a5\u9c7c\u642c\u4e0a\u817e\u8baf\u4e91"},"content":{"rendered":"<div class=\"qqb\">\n<p>&#22823;&#32933;&#40060;&#26159;&#25105;&#37027;&#21488; QQ &#26426;&#22120;&#20154;&#12290;<\/p>\n<p>AstrBot &#25509;&#28040;&#24687;&#12289;&#35843;&#27169;&#22411;&#65292;NapCat &#25346;&#30528;&#37027;&#20010; QQ &#21495;&#65292;&#24213;&#19979;&#21387;&#30528;&#19968;&#20010;&#30446;&#24405;&#65292;&#37324;&#38754;&#26159;&#23427;&#30340;&#20154;&#35774;&#12289;&#23427;&#30340;&#35760;&#24518;&#12289;&#23427;&#36319;&#20154;&#35828;&#36807;&#30340;&#35805;&#12290;<\/p>\n<p>&#23427;&#21407;&#26469;&#20303;&#22312;&#21478;&#19968;&#21488;&#26426;&#22120;&#19978;&#12290;&#37027;&#21488;&#26426;&#22120;&#26159;&#20004;&#24180;&#21069;&#24320;&#30340;&#65292;&#37197;&#32622;&#25918;&#21040;&#29616;&#22312;&#19981;&#22826;&#22815;&#29992;&#65306;&#20004;&#20010;&#23481;&#22120;&#36718;&#27969;&#25226;&#20869;&#23384;&#39030;&#21040; 90%&#65292;&#21322;&#22812;&#25481;&#19968;&#27425;&#32447;&#65292;&#31532;&#20108;&#22825;&#26089;&#19978;&#25165;&#21457;&#29616;&#12290;<\/p>\n<p>&#25152;&#20197;&#25105;&#25226;&#23427;&#25644;&#21040;&#20102;&#33150;&#35759;&#20113;&#12290;<\/p>\n<p>&#24037;&#20855;&#24590;&#20040;&#35013;&#12289;&#27169;&#22411;&#24590;&#20040;&#25509;&#12289;&#20108;&#32500;&#30721;&#24590;&#20040;&#25195;&#65292;&#36825;&#20123;&#25105;&#21478;&#19968;&#31687;&#20889;&#36807;&#65306;<a href=\"https:\/\/dfwce.cn\/?p=278\">&#12298;&#29992; AstrBot + NapCat &#25226;&#22823;&#27169;&#22411;&#25509;&#20837; QQ&#12299;<\/a>&#12290;&#36825;&#31687;&#21482;&#35762;&#26381;&#21153;&#22120;&#36825;&#19968;&#20391;&#65306;&#26426;&#22120;&#24590;&#20040;&#36873;&#12289;&#31995;&#32479;&#35201;&#20934;&#22791;&#20160;&#20040;&#12289;&#26087;&#25968;&#25454;&#24590;&#20040;&#19968;&#20214;&#19981;&#23569;&#22320;&#24102;&#36807;&#21435;&#12289;&#31471;&#21475;&#35813;&#24320;&#21738;&#20960;&#20010;&#12290;<\/p>\n<p>&#36824;&#26377;&#26368;&#21518;&#19968;&#20214;&#20107;&mdash;&mdash;&#25442; IP &#20043;&#21518;&#20250;&#21457;&#29983;&#20160;&#20040;&#12290;&#36825;&#19968;&#20214;&#65292;&#27809;&#27861;&#29031;&#30528;&#21629;&#20196;&#25970;&#12290;<\/p>\n<div class=\"callout warn\"><strong>&#36825;&#31687;&#21482;&#31649;&#26381;&#21153;&#22120;&#65306;<\/strong>&#35013; Docker&#12289;&#25644;&#25968;&#25454;&#12289;&#24320;&#31471;&#21475;&#12289;&#25442; IP &#20043;&#21518;&#30340;&#20107;&#12290;AstrBot &#21644; NapCat &#26412;&#36523;&#30340;&#37197;&#32622;&#19981;&#22312;&#36825;&#37324;&#65292;&#37027;&#20123;&#22312;&#19978;&#38754;&#30340;&#38142;&#25509;&#37324;&#12290;<\/div>\n<hr class=\"sep\">\n<h2 id=\"s1\">&#38646;&#12289;&#20934;&#22791;&#24037;&#20316;<\/h2>\n<p><strong>1. &#19968;&#21488;&#33150;&#35759;&#20113;&#26381;&#21153;&#22120;<\/strong><\/p>\n<p>&#20808;&#35828;&#37197;&#32622;&#12290;&#36825;&#22871;&#19996;&#35199;&#21507;&#20869;&#23384;&#65306;AstrBot &#26159;&#19968;&#20010;&#24120;&#39547;&#30340; Python &#36827;&#31243;&#65292;NapCat &#26159; Node &#21152;&#19968;&#20010;&#26080;&#22836; QQ &#23458;&#25143;&#31471;&#12290;&#20004;&#20010;&#37117;&#36305;&#36215;&#26469;&#65292;&#20809;&#26159;&#31354;&#36716;&#23601;&#35201;&#21507;&#25481;&#19968; G &#19978;&#19979;&#65307;&#30495;&#27491;&#24320;&#22987;&#36305;&#32676;&#32842;&#21644;&#27169;&#22411;&#35843;&#29992;&#65292;2G &#20250;&#32463;&#24120;&#36148;&#30528;&#39030;&#65292;&#28982;&#21518; OOM killer &#25361;&#19968;&#20010;&#26432;&#25481;&mdash;&mdash;&#34920;&#29616;&#26159;&#12300;&#23427;&#31361;&#28982;&#19981;&#22238;&#35805;&#20102;&#12301;&#12290;<\/p>\n<p>&#25152;&#20197; 2 &#26680; 2G &#26159;&#24213;&#32447;&#65292;&#19981;&#26159;&#25512;&#33616;&#20540;&#12290;&#25105;&#29616;&#22312;&#29992;&#30340;&#26159; 2 &#26680; 4G&#12290;<\/p>\n<p>&#33150;&#35759;&#20113;&#26377;&#20004;&#26465;&#20135;&#21697;&#32447;&#65306;&#36731;&#37327;&#24212;&#29992;&#26381;&#21153;&#22120;&#65288;Lighthouse&#65289;&#21644;&#20113;&#26381;&#21153;&#22120; CVM&#12290;&#25105;&#36873;&#36731;&#37327;&#65292;Ubuntu 24.04 LTS&#65292;&#31995;&#32479;&#38236;&#20687;&#12290;<\/p>\n<p>&#29702;&#30001;&#65306;&#21333;&#26426;&#21333;&#26381;&#21153;&#65292;CVM &#37027;&#22871; VPC&#12289;&#23433;&#20840;&#32452;&#12289;&#24377;&#24615; IP &#25105;&#29992;&#19981;&#19978;&#12290;<\/p>\n<p>&#36731;&#37327;&#30340;&#30701;&#26495;&#24471;&#20808;&#35762;&#28165;&#26970;&#65306;<\/p>\n<ul>\n<li>&#37197;&#32622;&#21482;&#33021;&#25972;&#26723;&#21319;&#65292;&#19981;&#33021;&#21333;&#29420;&#21152;&#20869;&#23384;&#25110;&#24102;&#23485;<\/li>\n<li>&#20844;&#32593; IP &#36319;&#30528;&#23454;&#20363;&#36208;&#65292;&#19981;&#33021;&#35299;&#32465;&#25346;&#21040;&#21035;&#30340;&#26426;&#22120;<\/li>\n<li>&#38450;&#28779;&#22681;&#35268;&#21017;&#21482;&#21040;&#31471;&#21475;&#32423;&#65292;&#20570;&#19981;&#20102;&#25353;&#32593;&#27573;&#12289;&#25353;&#21327;&#35758;&#32452;&#21512;&#30340;&#31934;&#32454;&#25511;&#21046;<\/li>\n<li>&#22871;&#39184;&#24102;&#26376;&#27969;&#37327;&#21253;&#65292;&#36305;&#36229;&#20102;&#38480;&#36895;<\/li>\n<\/ul>\n<p><strong>2. &#26087;&#26426;&#22120;&#19978;&#30340;&#19996;&#35199;<\/strong><\/p>\n<p>&#36825;&#26159;&#25644;&#23478;&#30340;&#34892;&#26446;&#21333;&#12290;&#20808;&#23545;&#30528;&#30446;&#24405;&#32763;&#19968;&#36941;&#65292;&#30475;&#30475;&#26377;&#27809;&#26377;&#25918;&#22312;&#21035;&#22788;&#30340;&#65306;<\/p>\n<ul>\n<li><code>astrbot\/data<\/code> &mdash;&mdash; &#20154;&#35774;&#12289;&#27169;&#22411;&#37197;&#32622;&#12289;&#20250;&#35805;&#25968;&#25454;&#24211;&#12289;&#25554;&#20214;<\/li>\n<li><code>napcat\/config<\/code> &mdash;&mdash; OneBot &#30340;&#36830;&#25509;&#20449;&#24687;<\/li>\n<li><code>napcat\/qq<\/code> &mdash;&mdash; QQ &#30340;&#30331;&#24405;&#24577;&#12290;<strong>&#36825;&#20010;&#19981;&#24102;&#36208;&#65292;&#26032;&#26426;&#22120;&#24517;&#39035;&#37325;&#26032;&#25195;&#30721;<\/strong><\/li>\n<li>&#22914;&#26524;&#25913;&#36807;&#20154;&#26684;&#25991;&#20214;&#12289;&#20889;&#36807;&#33258;&#23450;&#20041;&#25554;&#20214;&#12289;&#23384;&#36807;&#35821;&#38899;&#27169;&#22411;&#65292;&#30830;&#35748;&#23427;&#20204;&#37117;&#22312; <code>data<\/code> &#37324;&#38754;&#65292;&#32780;&#19981;&#26159;&#25955;&#33853;&#22312; <code>~\/<\/code> &#24213;&#19979;<\/li>\n<\/ul>\n<p><strong>3. &#19968;&#20010;&#20572;&#26381;&#31383;&#21475;<\/strong><\/p>\n<p>&#36873;&#20940;&#26216;&#12290;&#25644;&#23478;&#26399;&#38388;&#23427;&#26159;&#19981;&#22312;&#32447;&#30340;&#65292;&#32676;&#37324;&#20250;&#20197;&#20026;&#23427;&#27515;&#20102;&mdash;&mdash;&#36825;&#20214;&#20107;&#27809;&#27861;&#36991;&#20813;&#65292;&#21482;&#33021;&#36873;&#19968;&#20010;&#20154;&#23569;&#30340;&#26102;&#20505;&#12290;<\/p>\n<p><strong>4. &#25163;&#26426;&#65292;&#33021;&#30331;&#37027;&#20010; QQ &#21495;<\/strong><\/p>\n<p>&#26368;&#21518;&#19968;&#27493;&#35201;&#29992;&#12290;<\/p>\n<hr class=\"sep\">\n<h2 id=\"s2\">&#19968;&#12289;&#20808;&#25226;&#26032;&#26426;&#22120;&#24324;&#25104;&#33021;&#35013;&#19996;&#35199;&#30340;&#26679;&#23376;<\/h2>\n<h3>1.1 &#20320;&#19981;&#26159; root<\/h3>\n<p>&#33150;&#35759;&#20113;&#30340; Ubuntu &#38236;&#20687;&#32473;&#30340;&#19981;&#26159; root &#36134;&#21495;&#65292;&#26159; <code>ubuntu<\/code>&#12290;&#30331;&#36827;&#21435; <code>whoami<\/code>&#65292;&#25171;&#20986;&#26469;&#26159; <code>ubuntu<\/code>&#12290;<\/p>\n<p>&#35013;&#19996;&#35199;&#35201; <code>sudo<\/code>&#12290;&#21487;&#20197;&#20808; <code>sudo -i<\/code> &#20999;&#36807;&#21435;&#65292;&#30465;&#24471;&#27599;&#26465;&#21629;&#20196;&#37117;&#21152;&#12290;<\/p>\n<h3>1.2 &#35013; Docker<\/h3>\n<p>&#21035;&#29992; <code>apt install docker.io<\/code>&#12290;Ubuntu &#28304;&#37324;&#37027;&#20010;&#29256;&#26412;&#26087;&#65292;&#36305;&#26032;&#38236;&#20687;&#26159;&#32473;&#33258;&#24049;&#25214;&#40635;&#28902;&#12290;&#29992;&#23448;&#26041;&#33050;&#26412;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">curl -fsSL https:\/\/get.docker.com | sudo sh\nsudo systemctl enable --now docker\ndocker -v<\/code><\/pre>\n<\/div>\n<p>&#25171;&#20986; <code>Docker version 2x.x<\/code> &#23601;&#25104;&#20102;&#12290;<\/p>\n<p>&#39034;&#24102;&#19968;&#21477;&#65306;&#22914;&#26524;&#20320;&#20064;&#24815;&#21152; <code>sudo<\/code>&#65292;&#21487;&#20197;&#25226;&#24403;&#21069;&#29992;&#25143;&#22622;&#36827; docker &#32452;&#65292;&#20043;&#21518;&#19981;&#29992;&#27599;&#26465;&#21629;&#20196;&#37117;&#25552;&#26435;&#12290;&#20294;&#37027;&#26679;&#31561;&#20110;&#32473;&#33258;&#24049;&#19968;&#20010;&#20813;&#23494; root&#65292;&#25105;&#19981;&#20570;&#12290;&#22810;&#25970;&#22235;&#20010;&#23383;&#27597;&#30340;&#20107;&#12290;<\/p>\n<h3>1.3 &#21152; swap<\/h3>\n<p>4G &#20869;&#23384;&#36305;&#36825;&#20004;&#20010;&#23481;&#22120;&#26159;&#22815;&#30340;&#65292;&#20294;&#12300;&#22815;&#12301;&#21644;&#12300;&#26377;&#20313;&#37327;&#12301;&#26159;&#20004;&#20214;&#20107;&#12290;&#27169;&#22411;&#35843;&#29992;&#12289;&#19978;&#19979;&#25991;&#25340;&#35013;&#12289;&#32676;&#28040;&#24687;&#21047;&#23631;&#30340;&#26102;&#20505;&#20869;&#23384;&#20250;&#36479;&#19968;&#19979;&#65292;&#36479;&#21040;&#39030;&#23601;&#26159; OOM&#12290;<\/p>\n<p>&#21152; 2G swap &#24403;&#32531;&#20914;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">sudo fallocate -l 2G \/swapfile\nsudo chmod 600 \/swapfile\nsudo mkswap \/swapfile\nsudo swapon \/swapfile\necho '\/swapfile none swap sw 0 0' | sudo tee -a \/etc\/fstab\nfree -h<\/code><\/pre>\n<\/div>\n<p>Swap &#37027;&#34892;&#20986;&#29616; <code>2.0Gi<\/code> &#23601;&#34892;&#12290;&#23427;&#26159;&#32531;&#20914;&#65292;&#19981;&#26159;&#20869;&#23384;&#65292;&#21035;&#25351;&#26395;&#38752;&#23427;&#25179;&#36127;&#36733;&#12290;<\/p>\n<h3>1.4 &#30446;&#24405;&#23545;&#40784;<\/h3>\n<p>&#26087;&#26426;&#22120;&#19978;&#30340;&#36335;&#24452;&#26159; <code>\/www\/wwwroot\/astrbot<\/code> &#21644; <code>\/www\/wwwroot\/napcat<\/code>&#12290;&#26032;&#26426;&#22120;&#19978;<strong>&#27839;&#29992;&#21516;&#19968;&#20010;&#36335;&#24452;<\/strong>&#12290;<\/p>\n<p>&#36825;&#19981;&#26159;&#24378;&#36843;&#30151;&#12290;&#36335;&#24452;&#19968;&#33268;&#65292;<code>docker run<\/code> &#30340;&#25346;&#36733;&#21442;&#25968;&#21487;&#20197;&#20174;&#26087;&#26426;&#22120;&#21407;&#26679;&#25220;&#36807;&#26469;&#65292;&#23481;&#22120;&#37324;&#37027;&#20123;&#20889;&#27515;&#20102;&#32477;&#23545;&#36335;&#24452;&#30340;&#37197;&#32622;&#20063;&#19981;&#29992;&#25913;&#12290;&#25644;&#23478;&#26102;&#23569;&#19968;&#20010;&#21464;&#37327;&#65292;&#23601;&#23569;&#19968;&#22788;&#26597;&#21322;&#22825;&#30340;&#38382;&#39064;&#12290;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">sudo mkdir -p \/www\/wwwroot<\/code><\/pre>\n<\/div>\n<h3>1.5 &#19981;&#35013;&#38754;&#26495;<\/h3>\n<p>&#26087;&#26426;&#22120;&#19978;&#26377;&#23453;&#22612;&#12290;&#26032;&#26426;&#22120;&#25105;&#27809;&#35013;&#12290;<\/p>\n<p>&#29702;&#30001;&#24456;&#23454;&#22312;&#65306;&#38754;&#26495;&#26412;&#36523;&#35201;&#21344;&#20004;&#30334;&#26469;&#20806;&#20869;&#23384;&#65292;&#32780;&#25105;&#29992;&#23427;&#22522;&#26412;&#21482;&#24178;&#19968;&#20214;&#20107;&mdash;&mdash;&#30475;&#26085;&#24535;&#12290;&#36825;&#20214;&#20107; <code>docker logs<\/code> &#23601;&#33021;&#24178;&#12290;<\/p>\n<p>&#23569;&#19968;&#23618;&#19996;&#35199;&#65292;&#23601;&#23569;&#19968;&#23618;&#21322;&#22812;&#20986;&#38382;&#39064;&#26102;&#20320;&#35201;&#24576;&#30097;&#30340;&#23545;&#35937;&#12290;<\/p>\n<hr class=\"sep\">\n<h2 id=\"s3\">&#20108;&#12289;&#25171;&#21253;&#65292;&#20256;&#65292;&#25286;&#21253;<\/h2>\n<h3>2.1 &#20808;&#20572;&#23481;&#22120;&#65292;&#20877;&#25171;&#21253;<\/h3>\n<p>&#39034;&#24207;&#19981;&#33021;&#21453;&#12290;<\/p>\n<p>AstrBot &#30340;&#20250;&#35805;&#35760;&#24405;&#26159; SQLite&#12290;SQLite &#22312;&#20889;&#20837;&#26102;&#20250;&#29983;&#25104; <code>-wal<\/code> &#21644; <code>-shm<\/code> &#20004;&#20010;&#20276;&#29983;&#25991;&#20214;&#65292;&#20027;&#24211;&#21644;&#36825;&#20457;&#19981;&#21516;&#27493;&#30340;&#26102;&#20505;&#20320;&#30452;&#25509; <code>cp<\/code>&#65292;&#25335;&#20986;&#26469;&#30340;&#26159;&#19968;&#20221;&#12300;&#21322;&#21477;&#35805;&#12301;&#30340;&#25968;&#25454;&#24211;&mdash;&mdash;&#21551;&#21160;&#33021;&#36215;&#26469;&#65292;&#20294;&#21382;&#21490;&#28040;&#24687;&#21487;&#33021;&#32570;&#19968;&#25130;&#65292;&#25110;&#32773;&#24178;&#33030;&#25253; <code>database is locked<\/code>&#12290;<\/p>\n<p>&#25152;&#20197;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">docker stop astrbot napcat<\/code><\/pre>\n<\/div>\n<p>&#31561;&#21040; <code>docker ps<\/code> &#37324;&#20004;&#20010;&#37117;&#19981;&#22312;&#20102;&#65292;&#20877;&#21160;&#25991;&#20214;&#12290;<\/p>\n<p>&#34917;&#19968;&#21477;&#35753;&#20154;&#23433;&#24515;&#30340;&#65306;<code>docker stop<\/code> &#20043;&#21518; SQLite &#20250;&#33258;&#24049;&#25226; wal &#21512;&#24182;&#36827;&#20027;&#24211;&#65292;&#36825;&#26102;&#20505; <code>-wal<\/code> &#25991;&#20214;&#26159;&#31354;&#30340;&#65292;&#25110;&#32773;&#21482;&#21097;&#20960;&#20010;&#23383;&#33410;&#65292;tar &#25171;&#36208;&#30340;&#26159;&#19968;&#20221;&#23436;&#25972;&#30340;&#24211;&#12290;&#21069;&#25552;&#26159;&#20320;&#30495;&#30340;&#20572;&#20102;&mdash;&mdash;&#27809;&#20572;&#23601;&#25171;&#21253;&#65292;&#31561;&#20110;&#36172;&#36816;&#27668;&#12290;<\/p>\n<h3>2.2 &#25171;&#21253;&#65292;&#30041;&#20010;&#26657;&#39564;&#20540;<\/h3>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">cd \/www\/wwwroot\nsudo tar czf \/tmp\/whale-$(date +%m%d).tar.gz astrbot\/data napcat\/config napcat\/qq\nsha256sum \/tmp\/whale-*.tar.gz<\/code><\/pre>\n<\/div>\n<p>&#25226; sha256 &#37027;&#20018;&#35760;&#19979;&#26469;&#12290;&#20256;&#23436;&#22312;&#26032;&#26426;&#22120;&#19978;&#20877;&#31639;&#19968;&#27425;&#65292;&#20004;&#20010;&#19968;&#26679;&#25165;&#35828;&#26126;&#36335;&#19978;&#27809;&#22351;&#12290;&#36825;&#19968;&#27493;&#19977;&#21313;&#31186;&#65292;&#33021;&#30465;&#25481;&#12300;&#20026;&#20160;&#20040;&#37197;&#32622;&#32570;&#20102;&#19968;&#21322;&#12301;&#36825;&#31181;&#26597;&#19968;&#26202;&#19978;&#30340;&#38382;&#39064;&#12290;<\/p>\n<h3>2.3 &#20256;<\/h3>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">scp \/tmp\/whale-1031.tar.gz ubuntu@&#26032;&#26381;&#21153;&#22120;IP:\/tmp\/<\/code><\/pre>\n<\/div>\n<p>&#21253;&#22823;&#25110;&#32773;&#32593;&#32476;&#25238;&#65292;&#29992; rsync&#65292;&#26029;&#20102;&#33021;&#32493;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">rsync -avP \/tmp\/whale-1031.tar.gz ubuntu@&#26032;&#26381;&#21153;&#22120;IP:\/tmp\/<\/code><\/pre>\n<\/div>\n<h3>2.4 &#25286;&#21253;&#65292;&#25226;&#23646;&#20027;&#25913;&#22238;&#26469;<\/h3>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">cd \/www\/wwwroot\nsudo tar xzf \/tmp\/whale-1031.tar.gz\nsudo chown -R root:root \/www\/wwwroot\/astrbot \/www\/wwwroot\/napcat\nsha256sum \/tmp\/whale-1031.tar.gz   # &#21644;&#26087;&#26426;&#22120;&#19978;&#37027;&#20010;&#25968;&#23545;&#19968;&#19979;<\/code><\/pre>\n<\/div>\n<p>&#23646;&#20027;&#36825;&#26465;&#21035;&#30465;&#12290;&#23481;&#22120;&#30340; <code>NAPCAT_GID=0<\/code> &#26159;&#25353; root &#36305;&#30340;&#65292;&#25991;&#20214;&#23646;&#20027;&#19981;&#23545;&#65292;NapCat &#20250;&#35835;&#19981;&#21040;&#30331;&#24405;&#24577;&#65292;&#28982;&#21518;&#34920;&#29616;&#25104;&#12300;&#27599;&#27425;&#37117;&#35753;&#25105;&#37325;&#26032;&#25195;&#30721;&#12301;&mdash;&mdash;&#20320;&#20250;&#20197;&#20026;&#26159;&#39118;&#25511;&#65292;&#20854;&#23454;&#26159;&#26435;&#38480;&#12290;<\/p>\n<hr class=\"sep\">\n<h2 id=\"s4\">&#19977;&#12289;&#25289;&#36215;&#26469;<\/h2>\n<h3>3.1 &#31471;&#21475;&#28165;&#21333;<\/h3>\n<p>&#20808;&#25226;&#36825;&#20960;&#20010;&#25968;&#23383;&#23545;&#40784;&#65292;&#21518;&#38754;&#20840;&#29992;&#24471;&#19978;&#65306;<\/p>\n<table style=\"width:100%;border-collapse:collapse;font-size:.92em;line-height:1.7\">\n<thead>\n<tr>\n<th style=\"text-align:left;padding:.6em .9em .6em 0;border-bottom:1px solid #dfe5ea;font-weight:600;color:#111;white-space:nowrap\">&#31471;&#21475;<\/th>\n<th style=\"text-align:left;padding:.6em .9em .6em 0;border-bottom:1px solid #dfe5ea;font-weight:600;color:#111;white-space:nowrap\">&#35841;&#22312;&#29992;<\/th>\n<th style=\"text-align:left;padding:.6em 0;border-bottom:1px solid #dfe5ea;font-weight:600;color:#111\">&#32473;&#35841;&#30475;<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top;white-space:nowrap\"><code>6185<\/code><\/td>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top\">AstrBot WebUI<\/td>\n<td style=\"padding:.7em 0;border-bottom:1px solid #eef1f4;vertical-align:top\">&#20320;&#65292;&#25913;&#20154;&#35774;&#30475;&#26085;&#24535;<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top;white-space:nowrap\"><code>6199<\/code><\/td>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top\">AstrBot &#30340; OneBot &#21453;&#21521; WS<\/td>\n<td style=\"padding:.7em 0;border-bottom:1px solid #eef1f4;vertical-align:top\">&#21482;&#26377; NapCat &#36830;<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top;white-space:nowrap\"><code>6099<\/code><\/td>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top\">NapCat WebUI<\/td>\n<td style=\"padding:.7em 0;border-bottom:1px solid #eef1f4;vertical-align:top\">&#20320;&#65292;&#37197;&#36830;&#25509;&#21644;&#25195;&#30721;<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top;white-space:nowrap\"><code>22<\/code><\/td>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top\">SSH<\/td>\n<td style=\"padding:.7em 0;border-bottom:1px solid #eef1f4;vertical-align:top\">&#21482;&#26377;&#20320;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>6199 &#26159;&#23481;&#22120;&#20043;&#38388;&#23545;&#35805;&#29992;&#30340;&#65292;&#27704;&#36828;&#19981;&#35813;&#20986;&#29616;&#22312;&#20844;&#32593;&#19978;&#12290;6185 &#21644; 6099 &#26159;&#32473;&#20320;&#33258;&#24049;&#30475;&#30340;&#65292;&#20063;&#19981;&#35813;&#12290;<\/p>\n<h3>3.2 &#36215;&#23481;&#22120;<\/h3>\n<p>&#21629;&#20196;&#22522;&#26412;&#29031;&#25220;&#26087;&#26426;&#22120;&#65292;&#21152;&#19977;&#20010;&#21442;&#25968;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">docker run -d --name astrbot \\\n  --network host \\\n  --restart unless-stopped \\\n  -e TZ=Asia\/Shanghai \\\n  --log-opt max-size=10m --log-opt max-file=3 \\\n  -v \/www\/wwwroot\/astrbot\/data:\/AstrBot\/data \\\n  soulter\/astrbot:latest<\/code><\/pre>\n<\/div>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">docker run -d --name napcat \\\n  --network host \\\n  --restart unless-stopped \\\n  -e TZ=Asia\/Shanghai \\\n  -e NAPCAT_GID=0 \\\n  --log-opt max-size=10m --log-opt max-file=3 \\\n  -v \/www\/wwwroot\/napcat\/config:\/app\/napcat\/config \\\n  -v \/www\/wwwroot\/napcat\/qq:\/app\/.config\/QQ \\\n  mlikiowa\/napcat-docker:latest<\/code><\/pre>\n<\/div>\n<p>&#26032;&#22686;&#30340;&#19977;&#26679;&#65292;&#27599;&#26679;&#37117;&#23545;&#24212;&#19968;&#20010;&#20250;&#21676;&#20154;&#30340;&#22330;&#26223;&#65306;<\/p>\n<p><code>--restart unless-stopped<\/code> &mdash;&mdash; <strong>&#36825;&#26465;&#26368;&#35201;&#32039;<\/strong>&#12290;&#27809;&#26377;&#23427;&#65292;&#26381;&#21153;&#22120;&#37325;&#21551;&#65288;&#33150;&#35759;&#20113;&#20598;&#23572;&#32500;&#25252;&#12289;&#20320;&#25163;&#28369; <code>reboot<\/code>&#65289;&#20043;&#21518;&#23481;&#22120;&#19981;&#20250;&#33258;&#24049;&#36215;&#26469;&#65292;&#20320;&#22312;&#32676;&#37324;&#30475;&#21040;&#30340;&#26159;&#19968;&#26465;&#27704;&#36828;&#19981;&#22238;&#30340;&#26426;&#22120;&#20154;&#12290;<\/p>\n<p><code>-e TZ=Asia\/Shanghai<\/code> &mdash;&mdash; &#23481;&#22120;&#40664;&#35748; UTC&#12290;&#19981;&#21152;&#36825;&#20010;&#65292;&#26085;&#24535;&#26102;&#38388;&#21644;&#32842;&#22825;&#35760;&#24405;&#26102;&#38388;&#20840;&#37096;&#24046;&#20843;&#23567;&#26102;&#65292;&#20986;&#20102;&#38382;&#39064;&#23545;&#19981;&#19978;&#26102;&#38388;&#32447;&#12290;<\/p>\n<p><code>--log-opt max-size=10m --log-opt max-file=3<\/code> &mdash;&mdash; Docker &#30340; json &#26085;&#24535;&#40664;&#35748;&#19981;&#38480;&#22823;&#23567;&#12290;&#19968;&#20010;&#21047;&#23631;&#30340;&#32676;&#65292;&#19968;&#20010;&#26376;&#33021;&#25226;&#30913;&#30424;&#20889;&#28385;&#12290;&#20889;&#28385;&#20043;&#21518;&#20808;&#26159;&#20889;&#19981;&#36827;&#26085;&#24535;&#65292;&#28982;&#21518;&#26159;&#25968;&#25454;&#24211;&#20889;&#19981;&#36827;&#21435;&#65292;&#28982;&#21518;&#26159;&#20320;&#20940;&#26216;&#19977;&#28857;&#34987;&#21483;&#36215;&#26469;&#12290;<\/p>\n<p>&#25644;&#21040;&#26032;&#26426;&#22120;&#20043;&#21518;&#20320;&#22810;&#21322;&#35201;&#25913;&#37197;&#32622;&#12290;&#35760;&#20303;&#19968;&#20214;&#20107;&#65306;<strong>&#25913; <code>cmd_config.json<\/code> &#35201;&#20808; <code>docker stop<\/code>&#65292;&#19981;&#33021;&#25913;&#23436;&#30452;&#25509; <code>docker restart<\/code>&#12290;<\/strong>AstrBot &#21551;&#21160;&#26102;&#20250;&#25226;&#20869;&#23384;&#37324;&#30340;&#26087;&#37197;&#32622;&#20889;&#22238;&#25991;&#20214;&#65292;&#20320;&#30340;&#25913;&#21160;&#20250;&#34987;&#35206;&#30422;&#65292;&#32780;&#19988;&#19981;&#25253;&#38169;&#12290;&#36825;&#26465;&#22312;&#21478;&#19968;&#31687;&#30340; 5.6 &#37324;&#20889;&#32454;&#20102;&#12290;<\/p>\n<h3>3.3 &#33150;&#35759;&#20113;&#30340;&#31471;&#21475;&#20837;&#21475;<\/h3>\n<p>&#36825;&#37324;&#26377;&#20010;&#21035;&#25197;&#65306;<strong>&#20004;&#26465;&#20135;&#21697;&#32447;&#30340;&#20837;&#21475;&#19981;&#22312;&#19968;&#22359;&#20799;&#12290;<\/strong><\/p>\n<table style=\"width:100%;border-collapse:collapse;font-size:.92em;line-height:1.7\">\n<thead>\n<tr>\n<th style=\"text-align:left;padding:.6em .9em .6em 0;border-bottom:1px solid #dfe5ea;font-weight:600;color:#111;white-space:nowrap\">&#20320;&#20080;&#30340;<\/th>\n<th style=\"text-align:left;padding:.6em .9em .6em 0;border-bottom:1px solid #dfe5ea;font-weight:600;color:#111;white-space:nowrap\">&#20837;&#21475;<\/th>\n<th style=\"text-align:left;padding:.6em 0;border-bottom:1px solid #dfe5ea;font-weight:600;color:#111\">&#36335;&#24452;<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top;white-space:nowrap\">&#36731;&#37327;&#24212;&#29992;&#26381;&#21153;&#22120;<\/td>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top;white-space:nowrap\">&#38450;&#28779;&#22681;<\/td>\n<td style=\"padding:.7em 0;border-bottom:1px solid #eef1f4;vertical-align:top\">&#23454;&#20363;&#35814;&#24773; &rarr; &#38450;&#28779;&#22681; &rarr; &#28155;&#21152;&#35268;&#21017;<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top;white-space:nowrap\">&#20113;&#26381;&#21153;&#22120; CVM<\/td>\n<td style=\"padding:.7em .9em .7em 0;border-bottom:1px solid #eef1f4;vertical-align:top;white-space:nowrap\">&#23433;&#20840;&#32452;<\/td>\n<td style=\"padding:.7em 0;border-bottom:1px solid #eef1f4;vertical-align:top\">&#23454;&#20363; &rarr; &#23433;&#20840;&#32452; &rarr; &#32534;&#36753;&#35268;&#21017; &rarr; &#20837;&#31449;&#35268;&#21017;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#36731;&#37327;&#27809;&#26377;&#12300;&#23433;&#20840;&#32452;&#12301;&#36825;&#20010;&#39029;&#38754;&#65292;CVM &#27809;&#26377;&#12300;&#38450;&#28779;&#22681;&#12301;&#36825;&#20010;&#39029;&#38754;&#12290;&#32593;&#19978;&#25945;&#31243;&#28151;&#30528;&#20889;&#65292;&#36825;&#26159;&#26368;&#23481;&#26131;&#21345;&#20303;&#30340;&#19968;&#22788;&#12290;<\/p>\n<p><a href=\"https:\/\/dfwce.cn\/?p=278\">&#37027;&#31687;<\/a>&#37324;&#25105;&#20889;&#30340;&#26159;&#12300;&#36215;&#26469;&#20043;&#21518;&#27983;&#35272;&#22120;&#25171;&#24320; <code>http:\/\/&#26381;&#21153;&#22120;IP:6185<\/code>&#12301;&mdash;&mdash;&#33021;&#36305;&#12290;&#20294;&#37027;&#26159;&#12300;&#20808;&#35753;&#23427;&#27963;&#36807;&#26469;&#12301;&#30340;&#20889;&#27861;&#12290;<\/p>\n<p>&#25644;&#21040;&#26032;&#26426;&#22120;&#19978;&#65292;&#36825;&#19968;&#26465;&#25105;&#25913;&#20102;&#20027;&#24847;&#65306;<strong>&#19968;&#20010;&#37117;&#21035;&#24320;&#12290;<\/strong><\/p>\n<p>&#38500;&#20102; 22&#65288;SSH&#65289;&#65292;6185 &#21644; 6099 &#37117;&#19981;&#29992;&#23545;&#20844;&#32593;&#25918;&#34892;&#12290;&#35201;&#30475;&#24471;&#36208;&#38567;&#36947;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">ssh -N -L 16185:127.0.0.1:6185 -L 16099:127.0.0.1:6099 ubuntu@&#26381;&#21153;&#22120;IP<\/code><\/pre>\n<\/div>\n<p>&#28982;&#21518;&#27983;&#35272;&#22120;&#24320; <code>127.0.0.1:16185<\/code> &#30475; AstrBot&#65292;<code>127.0.0.1:16099<\/code> &#30475; NapCat&#12290;<\/p>\n<p>&#29702;&#30001;&#24456;&#30452;&#30333;&#65306;AstrBot &#30340; WebUI &#33021;&#25913;&#20154;&#35774;&#12289;&#33021;&#30475;&#20840;&#37096;&#32842;&#22825;&#35760;&#24405;&#12289;&#33021;&#37197; API Key&#12290;6099 &#33021;&#37197; OneBot &#36830;&#25509;&#12290;&#36825;&#20004;&#20010;&#19996;&#35199;&#25346;&#22312;&#20844;&#32593;&#19978;&#12289;&#36824;&#26159;&#40664;&#35748;&#24369;&#21475;&#20196;&#65292;&#31561;&#20110;&#25226;&#23478;&#38376;&#38053;&#21273;&#25554;&#22312;&#38376;&#19978;&#12290;&#25195;&#25551;&#22120;&#26159;&#20840;&#22825;&#20505;&#30340;&#65292;6185 &#36825;&#31181;&#31471;&#21475;&#19981;&#20986;&#19968;&#22825;&#23601;&#20250;&#34987;&#25720;&#21040;&#12290;<\/p>\n<h3>3.4 &#39564;&#35777;&#65306;&#23481;&#22120;&#36215;&#26469;&#20102; &ne; &#26381;&#21153;&#36890;&#20102;<\/h3>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">docker ps --format 'table {{.Names}}\\t{{.Status}}'<\/code><\/pre>\n<\/div>\n<p>&#20004;&#20010;&#37117;&#26159; <code>Up<\/code>&#65292;&#21482;&#35828;&#26126;&#36827;&#31243;&#27963;&#30528;&#12290;<\/p>\n<p>&#20877;&#30830;&#35748;&#23427;&#20204;&#30495;&#30340;&#22312;&#30417;&#21548;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">ss -lntp | grep -E '6185|6199|6099'<\/code><\/pre>\n<\/div>\n<p>&#19977;&#20010;&#31471;&#21475;&#37117;&#22312;&#65292;&#19988;&#32465;&#30340;&#26159; <code>0.0.0.0<\/code>&#65288;<code>--network host<\/code> &#23601;&#26159;&#36825;&#26679;&#65289;&#12290;<\/p>\n<p>&#21040;&#36825;&#37324;&#20026;&#27490;&#65292;&#21482;&#26377;&#12300;&#36827;&#31243;&#22312;&#36305;&#12301;&#36825;&#19968;&#26465;&#34987;&#35777;&#26126;&#20102;&#12290;&#28040;&#24687;&#33021;&#19981;&#33021;&#25910;&#21457;&#65292;&#24471;&#31561;&#19979;&#19968;&#33410;&#12290;<\/p>\n<h3>3.5 &#24819;&#26356;&#31283;&#23601;&#25442; SnowLuma<\/h3>\n<p>NapCat &#26377;&#20010;&#27611;&#30149;&#65306;&#36305;&#20037;&#20102;&#20250;&#34987;&#36386;&#19979;&#32447;&#12290;&#20294;&#19981;&#26159;&#23849;&mdash;&mdash;&#23481;&#22120;&#36824;&#22312;&#65292;&#26085;&#24535;&#26174;&#31034;&#22312;&#32447;&#65292;&#28040;&#24687;&#23601;&#26159;&#21457;&#19981;&#20986;&#21435;&#12290;<\/p>\n<p>&#36825;&#20010;&#27611;&#30149;&#22914;&#26524;&#22312;&#20320;&#36523;&#19978;&#21453;&#22797;&#20986;&#29616;&#65292;&#25442; SnowLuma&#12290;&#23427;&#20063;&#26159; OneBot v11 &#21327;&#35758;&#31471;&#65292;AstrBot &#37027;&#22836;&#19968;&#34892;&#19981;&#29992;&#25913;&#12290;&#31038;&#21306;&#37324;&#21807;&#19968;&#19968;&#26465;&#12300;&#27604; NapCat &#26356;&#31283;&#12301;&#30340;&#19968;&#25163;&#21453;&#39304;&#35828;&#30340;&#23601;&#26159;&#36825;&#20010;&#65306;&#25442;&#36807;&#21435;&#20043;&#21518;&#20877;&#27809;&#25481;&#36807;&#12290;<\/p>\n<p>&#26367;&#25442;&#19977;&#27493;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">docker stop napcat\ndocker rm napcat\ndocker run -d --name snowluma \\\n  --network host \\\n  --restart unless-stopped \\\n  -e TZ=Asia\/Shanghai \\\n  -v \/www\/wwwroot\/snowluma\/data:\/app\/data \\\n  &lt;&#38236;&#20687;&#21517;&gt;<\/code><\/pre>\n<\/div>\n<p>&#28982;&#21518;&#22312;&#23427;&#30340; WebUI&#65288;<code>5099<\/code>&#65292;&#21021;&#22987;&#36134;&#21495; <code>admin<\/code>&#65292;&#23494;&#30721;&#22312; <code>docker logs snowluma<\/code> &#37324;&#65289;&#37197;&#19968;&#26465;&#21453;&#21521; WS&#65306;<code>ws:\/\/127.0.0.1:6199\/ws<\/code>&#12290;&#25195;&#30721;&#19981;&#22312; WebUI &#37324;&#65292;&#22312; noVNC&#65288;<code>6081<\/code>&#65289;&mdash;&mdash;&#37027;&#26159;&#20010;&#32593;&#39029;&#29256;&#36828;&#31243;&#26700;&#38754;&#65292;&#30475;&#21040;&#30340;&#26159;&#30495; QQ &#30340;&#30331;&#24405;&#31383;&#21475;&#12290;<\/p>\n<p>&#23427;&#20973;&#20160;&#20040;&#26356;&#31283;&#65292;&#19968;&#21477;&#35805;&#65306;<strong>&#20004;&#20010;&#37117;&#22312;&#36305;&#30495; QQ&#65292;&#20294; NapCat &#36305;&#30340;&#26159;&#25286;&#25481;&#26174;&#31034;&#23618;&#30340; QQ&#65292;SnowLuma &#36305;&#30340;&#26159;&#21407;&#26679;&#30340; QQ&#12290;<\/strong>NapCat &#30465;&#25481;&#28210;&#26579;&#21644;&#26174;&#31034;&#65292;&#21482;&#30041;&#24341;&#25806;&#21644;&#28040;&#24687;&#36890;&#36947;&#65292;&#25442;&#26469; 50~100MB &#30340;&#20869;&#23384;&#65307;SnowLuma &#25226;&#25972;&#20010;&#23458;&#25143;&#31471;&#36830; Xvfb &#26174;&#31034;&#19968;&#36215;&#36305;&#36215;&#26469;&#65292;&#30331;&#24405;&#26159;&#22312;&#30495; QQ &#30340;&#30028;&#38754;&#37324;&#25195;&#30340;&#12290;<\/p>\n<p>&#39118;&#25511;&#30475;&#30340;&#19981;&#26159;&#12300;&#20320;&#21457;&#20102;&#20160;&#20040;&#12301;&#65292;&#26159;&#12300;&#36825;&#20010;&#35774;&#22791;&#20687;&#19981;&#20687;&#27491;&#24120;&#20154;&#22312;&#29992;&#12301;&#12290;&#36825;&#26159;&#25512;&#26029;&#65292;&#19981;&#26159;&#23448;&#26041;&#32467;&#35770;&mdash;&mdash;&#20294;&#22312;&#25105;&#36825;&#21488;&#26426;&#22120;&#19978;&#65292;&#25442;&#36807;&#21435;&#20043;&#21518;&#30830;&#23454;&#27809;&#20877;&#20986;&#29616;&#36807;&#12300;&#26085;&#24535;&#22312;&#32447;&#12289;&#28040;&#24687;&#19981;&#21457;&#12301;&#12290;<\/p>\n<p>&#20195;&#20215;&#20063;&#22312;&#21516;&#19968;&#21477;&#35805;&#37324;&#65306;&#23427;&#30495;&#30340;&#22312;&#36305;&#19968;&#20010;&#23436;&#25972;&#30340; QQ&#12290;&#28210;&#26579;&#36827;&#31243;&#12289;Xvfb&#12289;VNC &#19968;&#20010;&#19981;&#23569;&#65292;&#36825;&#23601;&#26159;&#19979;&#38754;&#31532;&#20108;&#26465;&#35828;&#30340;&#20869;&#23384;&#12290;<\/p>\n<p>&#19977;&#20214;&#20107;&#24471;&#20808;&#30693;&#36947;&#65306;<\/p>\n<ul>\n<li><strong>&#30331;&#24405;&#24577;&#19981;&#36890;&#29992;&#12290;<\/strong>&#19978;&#38754;&#37027;&#20221; <code>napcat\/qq<\/code> &#25335;&#36807;&#21435;&#27809;&#29992;&#65292;&#24471;&#37325;&#26032;&#25195;&#12290;&#25442;&#30340;&#37027;&#22825;&#25163;&#26426;&#35201;&#22312;&#25163;&#36793;&#12290;<\/li>\n<li><strong>&#31471;&#21475;&#32534;&#21495;&#21464;&#20102;&#12290;<\/strong>3.1 &#37027;&#24352;&#34920;&#26159; NapCat &#30340;&#65306;WebUI &#20174; 6099 &#21464; 5099&#65292;&#23427;&#33258;&#24049;&#36824;&#24320;&#19968;&#20010;&#27491;&#21521; WS &#22312; 3001&#65307;6199 &#19981;&#21464;&#65292;&#37027;&#26159; AstrBot &#24320;&#30340;&#12290;SSH &#38567;&#36947;&#37027;&#26465;&#21629;&#20196;&#37324;&#30340; 16099 &#36319;&#30528;&#25442;&#25104; 15099&#12290;<\/li>\n<li><strong>&#23427;&#26356;&#21507;&#20869;&#23384;&#12290;<\/strong>&#21333;&#36134;&#21495; 300MB &#21040; 1.2G&#12290;&#36825;&#23601;&#26159;&#38646;&#33410;&#37324;&#25105;&#35828; 2G &#21482;&#26159;&#24213;&#32447;&#12289;&#33258;&#24049;&#19978; 4G &#30340;&#21407;&#22240;&#20043;&#19968;&#12290;<\/li>\n<\/ul>\n<hr class=\"sep\">\n<h2 id=\"s5\">&#22235;&#12289;&#25442; IP &#20043;&#21518;<\/h2>\n<p>&#21069;&#38754;&#19977;&#33410;&#37117;&#26159;&#29031;&#30528;&#25970;&#12290;&#36825;&#19968;&#33410;&#19981;&#26159;&#12290;<\/p>\n<p>QQ &#37027;&#22871;&#39118;&#25511;&#30475;&#30340;&#19981;&#26159;&#20320;&#30340;&#23494;&#30721;&#65292;&#26159;<strong>&#29615;&#22659;&#30340;&#19968;&#33268;&#24615;<\/strong>&#65306;&#30331;&#24405;&#30340;&#35774;&#22791;&#12289;IP&#12289;&#24120;&#29992;&#22320;&#12289;&#34892;&#20026;&#33410;&#22863;&#12290;&#25644;&#23478;&#19968;&#27425;&#24615;&#25913;&#25481;&#20102; IP &#21644;&#26426;&#22120;&#65292;&#22312;&#23427;&#30524;&#37324;&#32422;&#31561;&#20110;&#12300;&#36825;&#20010;&#21495;&#20170;&#22825;&#20986;&#29616;&#22312;&#21478;&#19968;&#20010;&#22478;&#24066;&#30340;&#21478;&#19968;&#21488;&#35774;&#22791;&#19978;&#12301;&#12290;<\/p>\n<h3>4.1 &#30331;&#24405;&#24577;&#24102;&#36807;&#21435;&#20102;&#65292;&#20063;&#21487;&#33021;&#35201;&#37325;&#25195;<\/h3>\n<p><code>napcat\/qq<\/code> &#37324;&#30340;&#30331;&#24405;&#24577;&#26159;&#26377;&#25928;&#30340;&#65292;&#20294; IP &#21464;&#20102;&#20043;&#21518;&#65292;&#26381;&#21153;&#31471;&#21487;&#33021;&#30452;&#25509;&#21028;&#23427;&#22833;&#25928;&#65292;&#35753;&#20320;&#37325;&#26032;&#39564;&#35777;&#12290;<\/p>\n<p>&#25152;&#20197;&#20808;&#21035;&#24613;&#30528;&#24198;&#31069;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">docker logs napcat 2&gt;&amp;1 | tail -40<\/code><\/pre>\n<\/div>\n<p>&#35201;&#20040;&#30475;&#21040;&#27491;&#24120;&#30340;&#36830;&#25509;&#26085;&#24535;&#65292;&#35201;&#20040;&#30475;&#21040;&#20108;&#32500;&#30721;&#12290;&#30475;&#21040;&#20108;&#32500;&#30721;&#23601;&#25195;&mdash;&mdash;&#36825;&#19968;&#27493;&#21644;&#31532;&#19968;&#27425;&#35013;&#30340;&#26102;&#20505;&#19968;&#26679;&#65292;<a href=\"https:\/\/dfwce.cn\/?p=278\">&#21478;&#19968;&#31687;<\/a>&#31532;&#19977;&#33410;&#20889;&#36807;&#27969;&#31243;&#12290;<\/p>\n<h3>4.2 &#35302;&#21457;&#20102;&#39564;&#35777;&#24590;&#20040;&#21150;<\/h3>\n<p>&#25163;&#26426; QQ &#19978;&#20250;&#24377;&#12300;&#24322;&#22320;&#30331;&#24405;&#12301;&#25110;&#32773;&#12300;&#35774;&#22791;&#24322;&#24120;&#12301;&#65292;&#35201;&#30701;&#20449;&#12289;&#35201;&#22909;&#21451;&#36741;&#21161;&#12290;<\/p>\n<p>&#25353;&#25552;&#31034;&#36208;&#12290;<strong>&#21035;&#22312;&#36825;&#20010;&#29615;&#33410;&#21453;&#22797;&#35797;<\/strong>&mdash;&mdash;&#36830;&#32493;&#22810;&#27425;&#22833;&#36133;&#20250;&#34987;&#21028;&#25104;&#30423;&#21495;&#65292;&#30452;&#25509;&#20923;&#32467;&#65292;&#37027;&#23601;&#19981;&#26159;&#25195;&#30721;&#33021;&#35299;&#20915;&#30340;&#20102;&#12290;<\/p>\n<p>&#22914;&#26524;&#26087;&#26426;&#22120;&#36824;&#22312;&#65292;&#36824;&#26377;&#19968;&#20010;&#26356;&#31283;&#30340;&#36208;&#27861;&#65306;<strong>&#20808;&#35753;&#26087;&#26426;&#22120;&#19979;&#32447;&#65292;&#38548;&#19968;&#27573;&#26102;&#38388;&#20877;&#30331;&#26032;&#26426;&#22120;<\/strong>&#65292;&#32780;&#19981;&#26159;&#20004;&#20010;&#21516;&#26102;&#22312;&#32447;&#12290;&#21516;&#19968;&#20010;&#21495;&#22312;&#20004;&#20010; IP &#19978;&#21516;&#26102;&#27963;&#36291;&#65292;&#26159;&#26368;&#23481;&#26131;&#34987;&#30447;&#19978;&#30340;&#24418;&#24577;&#12290;<\/p>\n<h3>4.3 &#25644;&#23478;&#26399;&#38388;&#21035;&#20570;&#30340;&#20960;&#20214;&#20107;<\/h3>\n<ul>\n<li><strong>&#21035;&#21453;&#22797;&#37325;&#21551;&#23481;&#22120;&#12290;<\/strong>&#27599;&#37325;&#21551;&#19968;&#27425;&#23601;&#26159;&#19968;&#27425;&#37325;&#26032;&#30331;&#24405;&#65292;&#19968;&#27425;&#26032;&#30340;&#35774;&#22791;&#25569;&#25163;&#12290;&#39057;&#32321;&#25569;&#25163;&#26412;&#36523;&#23601;&#26159;&#39118;&#25511;&#30340;&#20449;&#21495;&#12290;<\/li>\n<li><strong>&#21035;&#22312;&#21516;&#19968;&#21488;&#25163;&#26426;&#19978;&#21453;&#22797;&#20999;&#21495;&#12290;<\/strong>&#25163;&#26426;&#26159;&#35774;&#22791;&#25351;&#32441;&#30340;&#19968;&#37096;&#20998;&#65292;&#20999;&#26469;&#20999;&#21435;&#31561;&#20110;&#33258;&#24049;&#21046;&#36896;&#24322;&#24120;&#12290;<\/li>\n<li><strong>&#21035;&#19968;&#19978;&#32447;&#23601;&#29378;&#21457;&#28040;&#24687;&#27979;&#35797;&#12290;<\/strong>&#21018;&#25442; IP &#30340;&#21495;&#65292;&#20808;&#35753;&#23427;&#23433;&#38745;&#25910;&#20960;&#26465;&#28040;&#24687;&#65292;&#20877;&#24320;&#21475;&#12290;<\/li>\n<\/ul>\n<h3>4.4 &#36807;&#28193;&#65306;&#35753;&#26087;&#30340;&#20808;&#27963;&#30528;<\/h3>\n<p>&#26368;&#31283;&#30340;&#39034;&#24207;&#26159;&#65306;<\/p>\n<ul>\n<li>&#26032;&#26426;&#22120;&#36215;&#23481;&#22120;&#65292;&#25195;&#19978;&#30721;&#65292;&#30830;&#35748;&#33021;&#25910;&#28040;&#24687;<\/li>\n<li>&#35753;&#23427;&#22312;&#32676;&#37324;&#24453;&#21322;&#22825;&#65292;&#21482;&#30475;&#19981;&#35828;<\/li>\n<li>&#30830;&#35748;&#31283;&#23450;&#20102;&#65292;&#20877;&#20572;&#26087;&#26426;&#22120;<\/li>\n<li>&#26087;&#26426;&#22120;&#20877;&#30041; 48 &#23567;&#26102;<\/li>\n<\/ul>\n<p>&#21453;&#36807;&#26469;&#12300;&#20808;&#20572;&#26087;&#20877;&#36215;&#26032;&#12301;&#30475;&#30528;&#24178;&#20928;&#65292;&#23454;&#38469;&#26159;&#25226;&#36864;&#36335;&#20808;&#30733;&#20102;&mdash;&mdash;&#26032;&#26426;&#22120;&#19975;&#19968;&#30331;&#19981;&#19978;&#65292;&#20320;&#36830;&#20010;&#33021;&#29992;&#30340;&#37117;&#27809;&#26377;&#12290;<\/p>\n<hr class=\"sep\">\n<h2 id=\"s6\">&#20116;&#12289;&#36864;&#20043;&#21069;<\/h2>\n<p>&#26087;&#26426;&#22120;&#19981;&#35201;&#24403;&#22825;&#36864;&#12290;4.4 &#35828;&#36807;&#20026;&#20160;&#20040;&mdash;&mdash;&#26032;&#26426;&#22120;&#19975;&#19968;&#30331;&#19981;&#19978;&#65292;&#20320;&#24471;&#26377;&#22320;&#26041;&#36864;&#22238;&#21435;&#12290;&#36825;&#37324;&#35828;&#24590;&#20040;&#36864;&#12290;<\/p>\n<p><strong>1. &#22791;&#20221;&#33853;&#22312;&#26412;&#22320;&#65292;&#19981;&#26159;&#21478;&#19968;&#21488;&#26381;&#21153;&#22120;&#19978;<\/strong><\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">scp \/tmp\/whale-1031.tar.gz ~\/backup\/<\/code><\/pre>\n<\/div>\n<p>&#12300;&#21478;&#19968;&#21488;&#26381;&#21153;&#22120;&#12301;&#21644;&#12300;&#36825;&#21488;&#26381;&#21153;&#22120;&#12301;&#26159;&#21516;&#19968;&#20010;&#20113;&#12289;&#21516;&#19968;&#20010;&#36134;&#21495;&#12289;&#22823;&#27010;&#29575;&#21516;&#19968;&#20010;&#21487;&#29992;&#21306;&#12290;&#23427;&#35201;&#26159;&#20986;&#20107;&#65292;&#22791;&#20221;&#36319;&#30528;&#19968;&#36215;&#20986;&#20107;&#12290;&#30828;&#30424;&#27604;&#26381;&#21153;&#22120;&#20415;&#23452;&#65292;&#23384;&#26412;&#22320;&#12290;<\/p>\n<p><strong>2. &#30830;&#35748;&#19977;&#26679;&#19996;&#35199;&#26159;&#27963;&#30340;<\/strong><\/p>\n<p>&#32676;&#37324;&#21457;&#19968;&#26465;&#65292;&#23427;&#22238;&#12290;&#21435; AstrBot &#30340; WebUI&#65292;&#33021;&#30475;&#21040;&#21018;&#25165;&#37027;&#36718;&#20250;&#35805;&#12290;<\/p>\n<p>&#31532;&#19977;&#20010;&#26159;&#37325;&#21551;&#31574;&#30053;&#65292;&#21333;&#29420;&#39564;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' astrbot\ndocker inspect --format '{{.HostConfig.RestartPolicy.Name}}' napcat<\/code><\/pre>\n<\/div>\n<p>&#20004;&#26465;&#37117;&#25171;&#20986; <code>unless-stopped<\/code> &#25165;&#31639;&#25968;&#12290;&#23481;&#22120;&#29616;&#22312;&#36305;&#30528;&#65292;&#19981;&#20195;&#34920;&#26381;&#21153;&#22120;&#37325;&#21551;&#20043;&#21518;&#23427;&#36824;&#36305;&mdash;&mdash;&#36825;&#20004;&#20214;&#20107;&#22312; <code>docker ps<\/code> &#37324;&#38271;&#24471;&#19968;&#27169;&#19968;&#26679;&#12290;<\/p>\n<p><strong>3. &#26368;&#21518;&#25165;&#26159;&#36864;&#31199;<\/strong><\/p>\n<p>&#36731;&#37327;&#26159;&#25972;&#21488;&#36864;&#65292;&#27809;&#26377;&#12300;&#21333;&#29420;&#36864;&#24102;&#23485;&#12301;&#36825;&#22238;&#20107;&#12290;&#28857;&#36864;&#35746;&#20043;&#21069;&#65292;&#20808;&#30830;&#35748;&#26412;&#22320;&#37027;&#20221;&#21253;&#33021;&#35299;&#24320;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-bash\">tar tzf ~\/backup\/whale-1031.tar.gz | head<\/code><\/pre>\n<\/div>\n<p>&#33021;&#21015;&#20986;&#19968;&#20018;&#36335;&#24452;&#65292;&#20877;&#28857;&#12290;<\/p>\n<p>&#36864;&#23436;&#25226; IP &#35760;&#22312;&#31508;&#35760;&#37324;&#12290;&#20197;&#21518;&#32763;&#26087;&#26085;&#24535;&#65292;&#24471;&#38752;&#23427;&#35748;&#24471;&#20986;&#21738;&#26465;&#26159;&#21738;&#26465;&#12290;<\/p>\n<hr class=\"sep\">\n<h2 id=\"s7\">&#30862;&#30862;&#24565;<\/h2>\n<p>&#25644;&#23478;&#36825;&#20214;&#20107;&#65292;&#35013;&#30340;&#37096;&#20998;&#21482;&#33457;&#20102;&#22235;&#21313;&#20998;&#38047;&#12290;<\/p>\n<p>&#21097;&#19979;&#20004;&#22825;&#20840;&#32791;&#22312;&#21518;&#38754;&#65306;&#30331;&#24405;&#39564;&#35777;&#24377;&#20102;&#20004;&#27425;&#65292;&#28040;&#24687;&#21457;&#19981;&#20986;&#21435;&#19968;&#27425;&#65292;&#32676;&#37324;&#26377;&#20154;&#38382;&#12300;&#23427;&#26159;&#19981;&#26159;&#22351;&#20102;&#12301;&#12290;<\/p>\n<p>&#25152;&#20197;&#22914;&#26524;&#26377;&#20154;&#38382;&#25105;&#36825;&#22871;&#19996;&#35199;&#38590;&#22312;&#21738;&#65292;&#25105;&#19981;&#20250;&#35828;&#37197;&#32622;&#12290;&#37197;&#32622;&#26159;&#27515;&#30340;&#65292;&#29031;&#30528;&#25220;&#23601;&#34892;&#12290;<\/p>\n<p>&#38590;&#30340;&#26159;&mdash;&mdash;<strong>&#23427;&#30340;&#36523;&#20221;&#19981;&#22312;&#37197;&#32622;&#25991;&#20214;&#37324;&#65292;&#22312;&#37027;&#20010; QQ &#21495;&#19978;&#12290;<\/strong>&#26426;&#22120;&#21487;&#20197;&#25442;&#65292;&#21495;&#21482;&#26377;&#19968;&#20010;&#65307;&#23481;&#22120;&#21487;&#20197;&#37325;&#24314;&#65292;&#30331;&#24405;&#24577;&#37325;&#24314;&#19981;&#20102;&#12290;<\/p>\n<p>&#25105;&#29616;&#22312;&#36825;&#21488;&#26426;&#22120;&#19978;&#36305;&#30528;&#20004;&#20010;&#23481;&#22120;&#65292;&#24120;&#39547;&#20869;&#23384;&#19968; G &#22810;&#65292;swap &#22522;&#26412;&#27809;&#21160;&#36807;&#12290;&#23427;&#19981;&#25481;&#32447;&#20102;&#65292;&#32676;&#37324;&#20063;&#27809;&#20154;&#20877;&#38382;&#12290;<\/p>\n<p>&#25644;&#23436;&#37027;&#22825;&#25105;&#22312; <code>~\/.ssh\/config<\/code> &#37324;&#21152;&#20102;&#19968;&#34892;&#65306;<\/p>\n<div class=\"codeblock\">\n<pre><code class=\"language-ini\">Host whale\n    HostName &#26032;&#26381;&#21153;&#22120;IP\n    User ubuntu\n    LocalForward 16185 127.0.0.1:6185\n    LocalForward 16099 127.0.0.1:6099<\/code><\/pre>\n<\/div>\n<p>&#20197;&#21518;&#35201;&#25913;&#20154;&#35774;&#65292;<code>ssh -N whale<\/code>&#65292;&#24320; <code>127.0.0.1:16185<\/code>&#12290;<\/p>\n<p>&#27604;&#20197;&#21069;&#24320;&#38754;&#26495;&#23569;&#28857;&#20004;&#19979;&#12290;<\/p>\n<p class=\"sign\">&#20889;&#20110; 2026 &#24180; 10 &#26376;<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u5de5\u5177\u600e\u4e48\u88c5\u89c1\u53e6\u4e00\u7bc7\uff0c\u8fd9\u7bc7\u53ea\u8bb2\u670d\u52a1\u5668\u8fd9\u4e00\u4fa7\uff1a\u642c\u6570\u636e\u3001\u5f00\u7aef\u53e3\u3001\u5bb9\u5668\u81ea\u542f\uff0c\u4ee5\u53ca\u6362 IP \u4e4b\u540e\u90a3\u4ef6\u6ca1\u6cd5\u7167\u7740\u547d\u4ee4\u6572\u7684\u4e8b\u3002<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[],"class_list":["post-304","post","type-post","status-publish","format-standard","hentry","category-baowu"],"_links":{"self":[{"href":"https:\/\/dfwce.cn\/index.php?rest_route=\/wp\/v2\/posts\/304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dfwce.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dfwce.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dfwce.cn\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dfwce.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=304"}],"version-history":[{"count":5,"href":"https:\/\/dfwce.cn\/index.php?rest_route=\/wp\/v2\/posts\/304\/revisions"}],"predecessor-version":[{"id":313,"href":"https:\/\/dfwce.cn\/index.php?rest_route=\/wp\/v2\/posts\/304\/revisions\/313"}],"wp:attachment":[{"href":"https:\/\/dfwce.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dfwce.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dfwce.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}