{"@attributes":{"version":"2.0"},"channel":{"title":"\u5fd8\u5ddd\u6cb3\u7554","link":"https:\/\/been.ee\/","description":"Recent content on \u5fd8\u5ddd\u6cb3\u7554","generator":"Hugo -- gohugo.io","language":"zh-cn","lastBuildDate":"Sun, 05 Apr 2026 00:00:00 +0000","item":[{"title":"\u4f7f\u7528 StatiCrypt \u4e3a\u535a\u6587\uff08\u9759\u6001\u7f51\u9875\uff09\u52a0\u5bc6","link":"https:\/\/been.ee\/p\/0-0-0-70\/","pubDate":"Sun, 05 Apr 2026 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-70\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u5728\u672c\u7bc7\u535a\u5ba2\u4e4b\u524d\uff0c\u7ad9\u5185\u6240\u6709\u535a\u5ba2\u5747\u672a\u8fdb\u884c\u8fc7\u52a0\u5bc6\uff0c\u4f46\u7531\u4e8e\u540e\u7eed\u90e8\u5206\u535a\u5ba2\u5185\u5bb9\u53ef\u80fd\u4f1a\u6d89\u53ca\u5230\u654f\u611f\u5185\u5bb9\uff08\u975e\u653f\u6cbb\uff09\u4ee5\u53ca\u4e0e\u535a\u4e3b\u5728\u73b0\u5b9e\u4e2d\u6709\u8054\u7cfb\u7684\u4eba\u7fa4\uff0c\u4e3a\u4fdd\u62a4\u81ea\u5df1\u4e0e\u6240\u6d89\u53ca\u4e4b\u4eba\u7684\u9690\u79c1\uff0c\u4f1a\u5bf9\u90e8\u5206\u535a\u5ba2\u9875\u9762\u8fdb\u884c\u52a0\u5bc6<\/p>\n<p>\u5173\u4e8e\u535a\u6587\u52a0\u5bc6\u7684\u65b9\u6848\uff0c\u535a\u4e3b\u4e5f\u662f\u5728\u7f51\u4e0a\u67e5\u627e\u4e86\u8bb8\u4e45\uff0c\u6700\u7ec8\u91c7\u7528\u4e86<a class=\"link\" href=\"https:\/\/github.com\/robinmoisson\/staticrypt\"  target=\"_blank\" rel=\"noopener\"\n    >StatiCrypt<\/a>\u5f00\u6e90\u9879\u76ee\uff0c\u8fd9\u4e2a\u9879\u76ee\u53ef\u4ee5\u7528\u4e8e\u5b89\u5168\u7684\u52a0\u5bc6\u548c\u4fdd\u62a4\u9759\u6001HTML\u754c\u9762\u7684\u5185\u5bb9<\/p>\n<h2 id=\"staticrypt-\u52a0\u5bc6\u539f\u7406\">StatiCrypt \u52a0\u5bc6\u539f\u7406\n<\/h2><hr>\n<p>\u4e0b\u9762\u662f\u4f5c\u8005\u5bf9\u52a0\u5bc6\u539f\u7406\u7ed9\u51fa\u7684\u56de\u7b54\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">So<\/span><span class=\"p\">,<\/span> <span class=\"n\">how<\/span> <span class=\"n\">can<\/span> <span class=\"n\">you<\/span> <span class=\"n\">password<\/span> <span class=\"n\">protect<\/span> <span class=\"n\">html<\/span> <span class=\"n\">without<\/span> <span class=\"n\">a<\/span> <span class=\"n\">back<\/span><span class=\"o\">-<\/span><span class=\"n\">end<\/span><span class=\"err\">?<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">StatiCrypt<\/span> <span class=\"n\">uses<\/span> <span class=\"n\">WebCrypto<\/span> <span class=\"n\">to<\/span> <span class=\"n\">generate<\/span> <span class=\"n\">a<\/span> <span class=\"k\">static<\/span><span class=\"p\">,<\/span> <span class=\"n\">password<\/span> <span class=\"n\">protected<\/span> <span class=\"n\">page<\/span> <span class=\"n\">that<\/span> <span class=\"n\">can<\/span> <span class=\"n\">be<\/span> <span class=\"n\">decrypted<\/span> <span class=\"ow\">in<\/span><span class=\"o\">-<\/span><span class=\"n\">browser<\/span><span class=\"o\">.<\/span> <span class=\"n\">You<\/span> <span class=\"n\">can<\/span> <span class=\"n\">then<\/span> <span class=\"n\">just<\/span> <span class=\"n\">send<\/span> <span class=\"ow\">or<\/span> <span class=\"n\">upload<\/span> <span class=\"n\">the<\/span> <span class=\"n\">generated<\/span> <span class=\"n\">page<\/span> <span class=\"n\">to<\/span> <span class=\"n\">a<\/span> <span class=\"n\">place<\/span> <span class=\"n\">serving<\/span> <span class=\"k\">static<\/span> <span class=\"n\">content<\/span> <span class=\"p\">(<\/span><span class=\"n\">github<\/span> <span class=\"n\">pages<\/span><span class=\"p\">,<\/span> <span class=\"k\">for<\/span> <span class=\"n\">example<\/span><span class=\"p\">)<\/span> <span class=\"ow\">and<\/span> <span class=\"n\">you<\/span><span class=\"s1\">&#39;re done: the page will prompt users for a password, and the javascript will decrypt and load your HTML, all done in the browser.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">So<\/span> <span class=\"n\">it<\/span> <span class=\"n\">basically<\/span> <span class=\"n\">encrypts<\/span> <span class=\"n\">your<\/span> <span class=\"n\">page<\/span> <span class=\"ow\">and<\/span> <span class=\"n\">puts<\/span> <span class=\"n\">everything<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">a<\/span> <span class=\"n\">user<\/span><span class=\"o\">-<\/span><span class=\"n\">friendly<\/span> <span class=\"n\">way<\/span> <span class=\"n\">to<\/span> <span class=\"n\">enter<\/span> <span class=\"n\">the<\/span> <span class=\"n\">password<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">the<\/span> <span class=\"n\">new<\/span> <span class=\"n\">file<\/span><span class=\"o\">.<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5927\u6982\u5c31\u662f\u8bf4StatiCrypt\u4f7f\u7528WebCrypto\u751f\u6210\u4e00\u4e2a\u9759\u6001\u7684\u3001\u53d7\u5bc6\u7801\u4fdd\u62a4\u7684\u9875\u9762\uff0c\u8bbf\u5ba2\u8f93\u5165\u5bc6\u7801\u540e\uff0c\u7531\u8bbf\u5ba2\u81ea\u5df1\u7684\u6d4f\u89c8\u5668\u53bb\u8fd0\u884cJavaScript\u4ee3\u7801\uff0c\u5728\u672c\u5730\u5c06\u52a0\u5bc6\u4ee3\u7801\u8fd8\u539f\u6210\u771f\u5b9e\u7684\u7f51\u9875\u5185\u5bb9\u5e76\u5c55\u793a\u51fa\u6765<\/p>\n<h2 id=\"\u51c6\u5907\u5de5\u4f5c\">\u51c6\u5907\u5de5\u4f5c\n<\/h2><hr>\n<h3 id=\"\u5b89\u88c5nodejs\">\u5b89\u88c5Node.js\n<\/h3><hr>\n<p>\u5b89\u88c5StatiCrypt\u4e4b\u524d\uff0c\u9700\u8981\u5728\u670d\u52a1\u5668\u5b89\u88c5\u597dNode.js\uff0c\u53ef\u4ee5\u5728\u7ec8\u7aef\u8fd0\u884c<code>node -v<\/code>\u548c<code>npm -v<\/code>\u6765\u786e\u8ba4\u662f\u5426\u5df2\u5b89\u88c5<\/p>\n<p>\u5982\u679c\u6ca1\u6709\u5b89\u88c5\u7684\u8bdd\uff0c\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/nodejs.org\/zh-cn\/download\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/nodejs.org\/zh-cn\/download<\/a>\u6765\u8fdb\u884c\u5b89\u88c5<\/p>\n<h3 id=\"\u5b89\u88c5staticrypt\">\u5b89\u88c5StatiCrypt\n<\/h3><hr>\n<p>\u5b89\u88c5\u597dNode.js\u540e\u76f4\u63a5\u7ec8\u7aef\u6267\u884c<code>npm install -g staticrypt<\/code>\u5373\u53ef\u5728\u5168\u5c40\u5b89\u88c5<code>staticrypt<\/code>\u547d\u4ee4<\/p>\n<p><code>staticrypt<\/code>\u547d\u4ee4\u7684\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">Usage: staticrypt &lt;filename&gt; <span class=\"o\">[<\/span>&lt;filename&gt; ...<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>options<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Options:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --help                      Show <span class=\"nb\">help<\/span>                            <span class=\"o\">[<\/span>boolean<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --version                   Show version number                  <span class=\"o\">[<\/span>boolean<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  -c, --config                    Path to the config file. Set to <span class=\"s2\">&#34;false&#34;<\/span> to\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  disable.<span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;.staticrypt.json&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  -d, --directory                 Name of the directory where the generated\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  files will be saved. If the <span class=\"s1\">&#39;--decrypt&#39;<\/span> flag\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  is set, default will be <span class=\"s1\">&#39;decrypted&#39;<\/span>.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                                 <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;encrypted&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --decrypt                   Include this flag to decrypt files instead of\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  encrypt.            <span class=\"o\">[<\/span>boolean<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: false<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  -p, --password                  The password to encrypt your file with. Leave\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  empty to be prompted <span class=\"k\">for<\/span> it. If\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  STATICRYPT_PASSWORD is <span class=\"nb\">set<\/span> in the env, we<span class=\"s1\">&#39;ll\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                                  use that instead.     [string] [default: null]\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">  -r, --recursive                 Whether to recursively encrypt the input\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                                  directory.          [boolean] [default: false]\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">      --remember                  Integer: expiration in days of the &#34;Remember \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                                  me&#34; checkbox that will save the (salted + \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                                  hashed) password in localStorage when entered \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                                  by the user. Set to &#34;false&#34; to hide the box. \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                                  Default: &#34;0&#34;, no expiration.      [default: 0]\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">  -s, --salt                      Generate a config file or set the salt\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                                  manually. Pass a 32-character-long hexadecimal\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                                  string to use as salt, or leave empty to\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                                  generate, display and save to config a random\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                                  salt. This won&#39;<\/span>t overwrite an existing config\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  file.                                 <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --share                     Get a link containing your hashed password\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  that will auto-decrypt the page. Pass your URL\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  as a value to append\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  <span class=\"s2\">&#34;#staticrypt_pwd=&lt;hashed_pwd&gt;&#34;<\/span>, or leave empty\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  to display the <span class=\"nb\">hash<\/span> to append.        <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --share-remember            Whether the share link should auto-enable\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  <span class=\"s1\">&#39;Remember-me&#39;<\/span>.      <span class=\"o\">[<\/span>boolean<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: false<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --short                     Hide the <span class=\"s2\">&#34;short password&#34;<\/span> warning.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                                      <span class=\"o\">[<\/span>boolean<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: false<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  -t, --template                  Path to custom HTML template with password\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  prompt.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">               <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;\/code\/staticrypt\/lib\/password_template.html&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --template-button           Label to use <span class=\"k\">for<\/span> the decrypt button. Default:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  <span class=\"s2\">&#34;DECRYPT&#34;<\/span>.       <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;DECRYPT&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --template-color-primary    Primary color <span class=\"o\">(<\/span>button...<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                                   <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;#4CAF50&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --template-color-secondary  Secondary color <span class=\"o\">(<\/span>page background...<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                                   <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;#76B852&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --template-instructions     Special instructions to display to the user.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                                          <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --template-error            Error message to display on entering wrong\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  password.  <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;Bad password!&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --template-placeholder      Placeholder to use <span class=\"k\">for<\/span> the password input.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                                  <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;Password&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --template-remember         Label to use <span class=\"k\">for<\/span> the <span class=\"s2\">&#34;Remember me&#34;<\/span> checkbox.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                               <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;Remember me&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --template-title            Title <span class=\"k\">for<\/span> the output HTML page.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                            <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;Protected Page&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --template-toggle-hide      Alt text <span class=\"k\">for<\/span> toggling password visibility -\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  <span class=\"s2\">&#34;hide&#34;<\/span> action.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                             <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;Hide password&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      --template-toggle-show      Alt text <span class=\"k\">for<\/span> toggling password visibility -\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                  <span class=\"s2\">&#34;show&#34;<\/span> action.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                                             <span class=\"o\">[<\/span>string<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>default: <span class=\"s2\">&#34;Show password&#34;<\/span><span class=\"o\">]<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5bf9\u9759\u6001\u9875\u9762\u52a0\u5bc6\">\u5bf9\u9759\u6001\u9875\u9762\u52a0\u5bc6\n<\/h2><hr>\n<p>\u5047\u8bbe<code>\/path\/to\/your\/original\/index.html<\/code>\u8868\u793a\u52a0\u5bc6\u524d\u7684<code>.html<\/code>\u6587\u4ef6\u8def\u5f84\uff0c\u90a3\u4e48\u53ef\u4ee5\u76f4\u63a5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5373\u53ef\u5b8c\u6210\u52a0\u5bc6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">staticrypt \/path\/to\/your\/original\/index.html -p &lt;your_password&gt; -d \/path\/after\/encrypted --short\n<\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d\uff0c<code>-p<\/code>\u53c2\u6570\u6307\u5b9a\u89e3\u5bc6\u7684\u5bc6\u7801\uff0c<code>-d<\/code>\u53c2\u6570\u540e\u9762\u6307\u5b9a\u52a0\u5bc6\u540e\u7684\u6587\u4ef6\u4fdd\u5b58\u7684\u8def\u5f84\uff0c\u53ef\u4ee5\u76f4\u63a5\u6307\u5b9a\u4e3a\u6e90\u6587\u4ef6\u8def\u5f84\u8fdb\u884c\u8986\u76d6\uff08<strong>\u6ce8\u610f\uff1a\u8fd9\u91cc\u6307\u5b9a\u7684\u662f\u76ee\u5f55\uff0c\u6240\u4ee5\u4e0d\u8981\u5728\u8def\u5f84\u540e\u9762\u52a0\u6587\u4ef6\u540d<\/strong>\uff09\uff0c<code>--short<\/code>\u53c2\u6570\u53ef\u4ee5\u5ffd\u7565\u56e0\u5bc6\u7801\u592a\u77ed\u4f1a\u5f39\u51fa\u7684\u8b66\u544a<\/p>\n<p>\u5982\u679c\u4e0d\u4f7f\u7528<code>-d<\/code>\u6307\u5b9a\u4fdd\u5b58\u540e\u7684\u8def\u5f84\uff0c\u5219\u4f1a\u81ea\u52a8\u5728\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u4e0b\u751f\u6210\u4e00\u4e2a<code>encrypted<\/code>\u6587\u4ef6\u5939\uff0c\u5e76\u5c06\u52a0\u5bc6\u540e\u7684\u6587\u4ef6\u4fdd\u5b58\u5728\u91cc\u9762<\/p>\n<h2 id=\"\u5bf9\u52a0\u5bc6\u9875\u9762\u89e3\u5bc6\">\u5bf9\u52a0\u5bc6\u9875\u9762\u89e3\u5bc6\n<\/h2><hr>\n<p>\u8981\u60f3\u5c06\u52a0\u5bc6\u540e\u7684<code>.html<\/code>\u6587\u4ef6\u8fd8\u539f\u4e3a\u539f\u59cb\u6587\u4ef6\uff0c\u5047\u8bbe<code>\/path\/to\/your\/encrypted\/index.html<\/code>\u4ee3\u8868\u52a0\u5bc6\u540e\u7684<code>.html<\/code>\u6587\u4ef6\u8def\u5f84\uff0c\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u89e3\u5bc6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">staticrypt \/path\/to\/your\/encrypted\/index.html --decrypt -p &lt;password&gt; -d \/path\/after\/decrypted\n<\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d\uff0c<code>--decrypt<\/code>\u4ee3\u8868\u89e3\u5bc6\u6a21\u5f0f\uff0c\u8fd9\u65f6<code>-d<\/code>\u53c2\u6570\u540e\u9762\u6307\u5b9a\u7684\u662f\u89e3\u5bc6\u540e\u6587\u4ef6\u4fdd\u5b58\u7684\u8def\u5f84\uff0c\u540c\u6837\u53ef\u4ee5\u76f4\u63a5\u6307\u5b9a\u4e3a\u6e90\u6587\u4ef6\u8def\u5f84\u8fdb\u884c\u8986\u76d6<\/p>\n<p>\u5982\u679c\u4e0d\u4f7f\u7528<code>-d<\/code>\u53c2\u6570\uff0c\u5219\u4f1a\u81ea\u52a8\u5728\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u4e0b\u751f\u6210<code>decrypted<\/code>\u6587\u4ef6\u5939\uff0c\u5e76\u5c06\u89e3\u5bc6\u540e\u7684\u6587\u4ef6\u4fdd\u5b58\u5728\u91cc\u9762<\/p>\n<h2 id=\"\u5173\u4e8estaticrypt\u914d\u7f6e\u6587\u4ef6\u7684\u8bf4\u660e\">\u5173\u4e8eStatiCrypt\u914d\u7f6e\u6587\u4ef6\u7684\u8bf4\u660e\n<\/h2><hr>\n<p>StatiCrypt\u9ed8\u8ba4\u52a0\u5bc6\u540e\u4f1a\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u751f\u6210\u4e00\u4e2a<code>.staticrypt.json<\/code>\u6587\u4ef6\uff0c\u8fd9\u4e2a\u6587\u4ef6\u4fdd\u5b58\u4e86\u52a0\u5bc6\u4f7f\u7528\u7684\u76d0\u503c\uff0c\u53ea\u8981\u8fd9\u4e2a\u6587\u4ef6\u5b58\u5728\uff0c\u540e\u7eed\u66f4\u65b0\u7f51\u9875\u91cd\u65b0\u52a0\u5bc6\u65f6\uff0cStatiCrypt\u5c31\u4f1a\u518d\u6b21\u4f7f\u7528\u7528\u8be5\u76d0\u503c\uff0c\u8fd9\u6837\u7528\u6237\u8bbf\u95ee\u65f6\u5982\u679c\u52fe\u9009\u4e86\u8bb0\u4f4f\u5bc6\u7801\uff0c\u90a3\u4e48\u72b6\u6001\u5c31\u4e0d\u4f1a\u5931\u6548<\/p>\n<p>\u5982\u679c\u4e0d\u5e0c\u671bStatiCrypt\u521b\u5efa\u6216\u4f7f\u7528\u914d\u7f6e\u6587\u4ef6\uff0c\u53ef\u4ee5\u5728\u52a0\u5bc6\u65f6\u6dfb\u52a0<code>--config false<\/code>\u9009\u9879\u6765\u7981\u7528<\/p>\n<h2 id=\"\u5bc6\u7801\u9a8c\u8bc1\u9875\u9762ui\u7f8e\u5316\">\u5bc6\u7801\u9a8c\u8bc1\u9875\u9762UI\u7f8e\u5316\n<\/h2><hr>\n<p>\u7f51\u9875\u52a0\u5bc6\u540e\uff0c\u9ed8\u8ba4\u7684\u5bc6\u7801\u9a8c\u8bc1\u9875\u9762UI\u4f7f\u7528\u7684\u662f\u9ed8\u8ba4\u7684<code>password_template.html<\/code>\u6a21\u7248\u6587\u4ef6\uff0c\u9ed8\u8ba4\u7684\u9875\u9762\u6bd4\u8f83\u7b80\u964b\uff0c\u53ef\u4ee5\u901a\u8fc7<code>find \/ -name password_template.html<\/code>\u5b9a\u4f4d\u5230\u8be5\u6587\u4ef6\u7684\u4f4d\u7f6e\uff0c\u7136\u540e\u53ef\u4ee5\u5728\u8be5\u6a21\u7248\u7684\u57fa\u7840\u4e0a\u4fee\u6539\u548c\u7f8e\u5316\uff0c\u4f8b\u5982\uff0c\u6211\u7f8e\u5316\u540e\u7684\u6a21\u7248\u4fdd\u5b58\u4e3a<code>staticrypt_template.html<\/code>\uff0c\u5c31\u53ef\u4ee5\u901a\u8fc7<code>-t \/path\/to\/staticrypt_template.html<\/code>\u6307\u5b9a\u52a0\u5bc6\u5e76\u4f7f\u7528\u65b0\u7684\u6a21\u7248\u6587\u4ef6\uff0c\u4f8b\u5982<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">staticrypt \/path\/to\/your\/original\/index.html -p &lt;your_password&gt; -d \/path\/after\/encrypted -t \/path\/to\/staticrypt_template.html --short\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Cloudflare Tunnels \u914d\u7f6e\u6559\u7a0b & \u5f3a\u5236 SSL","link":"https:\/\/been.ee\/p\/0-0-0-69\/","pubDate":"Mon, 26 Jan 2026 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-69\/","description":"<h2 id=\"\u4ecb\u7ecd\">\u4ecb\u7ecd\n<\/h2><hr>\n<p><strong>Cloudflare Tunnels<\/strong>\u662f\u4e00\u79cd\u80fd\u8ba9\u6211\u4eec\u5728\u4e0d\u66b4\u9732\u516c\u7f51IP\u3001\u4e0d\u914d\u7f6e\u8def\u7531\u5668\u7aef\u53e3\u8f6c\u53d1\u7684\u60c5\u51b5\u4e0b\uff0c\u5b89\u5168\u5730\u5c06\u672c\u5730\u670d\u52a1\uff08\u4f8b\u5982HTTP\u3001SSH\u3001\u8fdc\u7a0b\u684c\u9762\u548c\u5176\u4ed6\u534f\u8bae\u7b49\uff09\u53d1\u5e03\u5230\u4e92\u8054\u7f51\u7684\u6280\u672f<\/p>\n<p>Tunnel\uff0c\u7ffb\u8bd1\u4e3a\u4e2d\u6587\u662f\u96a7\u9053\u7684\u610f\u601d\uff0c\u5176\u539f\u7406\u662f\u901a\u8fc7\u5728\u672c\u5730\u670d\u52a1\u5668\u8fd0\u884c\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u5b88\u62a4\u8fdb\u7a0bCloudflared\uff0c\u8be5\u5b88\u62a4\u8fdb\u7a0b\u4f1a\u5728\u672c\u5730\u670d\u52a1\u5668\u548cCloudflare\u5168\u7403\u8fb9\u7f18\u8282\u70b9\u7f51\u7edc\u4e4b\u95f4\u5efa\u7acb\u8fde\u63a5\uff08\u96a7\u9053\uff09\u3002\u96a7\u9053\u5165\u53e3\u662f\u8ddd\u79bb\u672c\u5730\u670d\u52a1\u5668\u6700\u8fd1\u7684Cloudflare\u8fb9\u7f18\u8282\u70b9\uff0c\u96a7\u9053\u51fa\u53e3\u53ef\u4ee5\u76f4\u63a5\u6620\u5c04\u672c\u5730\u670d\u52a1\u5668\u8fd0\u884c\u7684\u591a\u4e2a\u670d\u52a1<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/iaqq9u-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>Tunnels\u975e\u5e38\u9002\u5408\u9700\u8981\u8dd1Docker\u670d\u52a1\u5e76\u53d1\u5e03\u5230\u4e92\u8054\u7f51\u7684\u573a\u666f\uff0c\u53ea\u9700\u8981\u542f\u52a8\u5bb9\u5668\uff0c\u7136\u540e\u5c06\u5730\u5740\u548c\u7aef\u53e3\u6620\u5c04\u5230Cloudflare\u5c31\u53ef\u4ee5\u4e86\uff0c<strong>\u4e0d\u9700\u8981\u81ea\u5df1\u5b89\u88c5\u914d\u7f6eNginx\u3001SSL\u8bc1\u4e66\u7b49<\/strong>\uff0c\u975e\u5e38\u975e\u5e38\u65b9\u4fbf\ud83d\udc4d<\/p>\n<h2 id=\"\u914d\u7f6e\">\u914d\u7f6e\n<\/h2><hr>\n<h3 id=\"\u521b\u5efatunnel\">\u521b\u5efaTunnel\n<\/h3><hr>\n<p>\u9996\u5148\u767b\u5f55Cloudflare\uff0c\u5728\u5de6\u4fa7\u83dc\u5355\u70b9\u51fb<code>Zero Trust<\/code>\u8fdb\u5165<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/ioc7c7-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u6253\u5f00\u540e\uff0c\u5728\u5de6\u4fa7\u83dc\u5355\u627e\u5230<code>Networks<\/code> - <code>Connectors<\/code>\u70b9\u51fb\u8fdb\u5165<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/iq285x-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u5728<code>Connectors<\/code>\u9762\u677f\u4e2d\u70b9\u51fb<code>Create a tunnel<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/itsi2s-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p><code>Tunnel type<\/code>\u9009\u62e9<code>Cloudflared<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/itvlsi-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7ed9Tunnel\u8d77\u4e00\u4e2a\u540d\u5b57\uff0c\u8f93\u5165\u5e76\u4fdd\u5b58<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/itk1jo-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u9009\u62e9Docker\u73af\u5883\uff0c\u4e0b\u9762\u4f1a\u63d0\u4f9b\u4e00\u884cCloudflared\u5bb9\u5668\u542f\u52a8\u7684\u547d\u4ee4<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/ivhhm0-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u53ef\u4ee5\u76f4\u63a5\u590d\u5236\u8fd9\u884c\u547d\u4ee4\u5230\u672c\u5730\u670d\u52a1\u5668\u4e2d\u8fd0\u884c\u8be5\u547d\u4ee4\u5373\u53ef\u542f\u52a8\uff0c\u4f46\u5982\u679c\u4f60\u8ddf\u6211\u4e00\u6837\u4e60\u60ef\u4f7f\u7528Docker Compose\uff0c\u90a3\u4e48\u53ef\u4ee5\u5148\u521b\u5efa\u4e00\u4e2a\u5bb9\u5668\u76ee\u5f55<code>\/docker\/cloudflared<\/code>\uff0c\u5728\u8be5\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a<code>docker-compose.yml<\/code>\u6587\u4ef6\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9\uff08\u6ce8\u610f\u9700\u8981\u66ff\u6362Token\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">cloudflared<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">cloudflare\/cloudflared<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">cloudflared<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">always<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">.\/cloudflared:\/root\/.cloudflared\/<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">network_mode<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">host<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">command<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">tunnel --no-autoupdate run --token Replace-To-Your-Tunnel-Token <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u66ff\u6362\u4e3a\u81ea\u5df1\u7684Token<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u6267\u884c<code>docker compose up -d<\/code>\u542f\u52a8\u5bb9\u5668<\/p>\n<p>\u542f\u52a8\u540e\uff0c\u56de\u5230Cloudflare\u53ef\u4ee5\u53d1\u73b0Connectors\u663e\u793a\u72b6\u6001\u5df2\u8fde\u63a5<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/j5n3u2-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/k0g6nm-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u5982\u679c\u73b0\u5728\u5c31\u60f3\u8fde\u63a5\u672c\u5730\u670d\u52a1\u7684\u8bdd\u53ef\u4ee5\u70b9\u51fbNext\u4e0b\u4e00\u6b65\uff0c\u4f46\u5982\u679c\u4e0d\u7740\u6025\u7684\u8bdd\u53ef\u4ee5\u70b9\u51fb\u5de6\u4e0a\u89d2\u7684<code>Back to Tunnels<\/code>\u8fd4\u56de\uff0c\u7531\u4e8e\u6211\u4eec\u73b0\u5728\u867d\u7136Tunnel\u5df2\u7ecf\u521b\u5efa\u597d\u4e86\uff0c\u4f46\u662f\u8fd8\u6ca1\u6709\u914d\u7f6e\uff0c\u6240\u4ee5\u5f39\u51fa\u7684\u7a97\u53e3\u76f4\u63a5\u70b9Confirm\u786e\u8ba4\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/k34fx6-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u8fd4\u56de\u540e\u53ef\u4ee5\u770b\u5230\u5df2\u7ecf\u5217\u51fa\u4e86\u521a\u521a\u521b\u5efa\u7684Tunnel\uff0c\u5230\u8fd9\u91cc\u5c31\u521b\u5efa\u5b8c\u6210\u5566<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/k3j2rd-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<h3 id=\"\u6620\u5c04\u672c\u5730\u670d\u52a1\">\u6620\u5c04\u672c\u5730\u670d\u52a1\n<\/h3><hr>\n<p>\u4e0b\u9762\u4ecb\u7ecd\u4e00\u4e0b\u5982\u4f55\u914d\u7f6e\u672c\u5730\u670d\u52a1\u6620\u5c04\uff0c\u9996\u5148\u70b9\u51fbTunnel\u53f3\u4fa7\u7684\u4e09\u4e2a\u70b9\uff0c\u518d\u70b9\u51fb<code>Configure<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/k5rhdb-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u5728\u6253\u5f00\u7684Tunnel\u754c\u9762\u9009\u62e9<code>Published application routes<\/code>\uff0c\u518d\u70b9\u51fb<code>Add a published application route<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/k6g3jg-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u6839\u636e\u672c\u5730\u670d\u52a1\u7684\u7c7b\u578b\u586b\u5165\u534f\u8bae\u3001\u5730\u5740\u3001\u7aef\u53e3\u4ee5\u53ca\u8981\u6620\u5c04\u5230\u7684\u57df\u540d\u7b49\u4fe1\u606f\uff0c\u7136\u540e\u70b9Save\u4fdd\u5b58<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/k7qe0v-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u6700\u540e\u53ef\u4ee5\u7528\u6620\u5c04\u7684\u57df\u540d\u8bbf\u95ee\u6d4b\u8bd5\u4e00\u4e0b\uff0c\u901a\u5e38\u6ca1\u95ee\u9898\u7684\u8bdd\u5c31\u5927\u529f\u544a\u6210\u5566\ud83c\udf89<\/p>\n<h2 id=\"\u8865\u5145\u5f3a\u5236ssl\u52a0\u5bc6\">\u8865\u5145\uff1a\u5f3a\u5236SSL\u52a0\u5bc6\n<\/h2><hr>\n<p>Tunnel\u914d\u7f6e\u6210\u529f\u540e\uff0c\u5728\u5927\u591a\u4e3b\u6d41\u6d4f\u89c8\u5668\uff08\u4f8b\u5982Chrome\u3001Edge\u548cSafari\u7b49\uff09\u4e2d\u76f4\u63a5\u8f93\u5165\u57df\u540d\u8bbf\u95ee\uff0c\u6d4f\u89c8\u5668\u901a\u5e38\u4f1a\u9ed8\u8ba4\u4f7f\u7528HTTPS\u8bbf\u95ee\uff0c\u4f46\u5982\u679c\u6d4f\u89c8\u5668\u8bbe\u7f6e\u4e86\u5141\u8bb8\u8bbf\u95ee\u4e0d\u5b89\u5168\u5185\u5bb9\uff0c\u5c31\u4f1a\u53d1\u73b0\u5982\u679c\u6211\u4eec\u76f4\u63a5\u4f7f\u7528HTTP\uff08<code>http:\/\/xxx.xxx.xxx<\/code>\uff09\u8bbf\u95ee\uff0c\u5982\u679c\u53ef\u8fbe\uff0c\u90a3\u4e48Cloudflare\u5e76\u4e0d\u4f1a\u4e3a\u6211\u4eec\u81ea\u52a8\u91cd\u5b9a\u5411\u81f3HTTPS<\/p>\n<p>\u6216\u8005\u5982\u679c\u67d0\u4e9b\u6d4f\u89c8\u5668\u672c\u8eab\u4e0d\u9ed8\u8ba4\u5f3a\u5236\u4f7f\u7528HTTPS\u7684\u8bdd\uff08\u4f8b\u5982Via\uff09\uff0c\u90a3\u4e48\u57df\u540d\u9ed8\u8ba4\u4f1a\u76f4\u63a5\u4f7f\u7528HTTP\u8bbf\u95ee<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/frkopd-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p><strong>\u89e3\u51b3\u65b9\u6cd5<\/strong>\u5c31\u662f\u9700\u8981\u4e3aTunnel\u4f7f\u7528\u7684\u90a3\u4e2a\u57df\u540d\u542f\u7528<strong>Always use HTTPS<\/strong>\uff0c\u4e5f\u5c31\u662f\u5f3a\u5236\u91cd\u5b9a\u5411\u81f3HTTPS<\/p>\n<p>\u9996\u5148\u8fdb\u5165<code>Cloudflare<\/code> - <code>Domains<\/code>\uff0c\u70b9\u51fb\u4f7f\u7528\u7684\u57df\u540d\u8fdb\u5165\uff0c\u7136\u540e\u70b9\u51fb\u8fdb\u5165<code>SSL\/TLS<\/code> - <code>Edge Certificates<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/gnl3g3-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u4e0b\u6ed1\u627e\u5230<strong>Always use HTTPS<\/strong>\u9009\u9879\uff0c\u70b9\u51fb\u53f3\u4fa7\u6309\u94ae\u542f\u7528\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/26\/gochxn-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\u53ef\u4ee5\u518d\u6d4b\u8bd5\u4e00\u4e0b\uff0c\u4f1a\u53d1\u73b0\u4e0d\u7ba1\u4f7f\u7528\u4efb\u4f55\u6d4f\u89c8\u5668\uff0c\u90fd\u4f1a\u9ed8\u8ba4\u91cd\u5b9a\u5411\u81f3HTTPS\uff0c\u5c31\u4e0d\u7528\u62c5\u5fc3\u52a0\u5bc6\u95ee\u9898\u5566<\/p>\n"},{"title":"\u521b\u5efa\u5c5e\u4e8e\u81ea\u5df1\u7684 Telegram \u79c1\u4fe1\u673a\u5668\u4eba","link":"https:\/\/been.ee\/p\/0-0-0-68\/","pubDate":"Sat, 24 Jan 2026 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-68\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u672c\u6587\u4e3b\u8981\u5199\u4e00\u4e0b\u5982\u4f55\u7528\u4e00\u53f0\u670d\u52a1\u5668\u6258\u7ba1\u4e00\u4e2aTelegram\u79c1\u4fe1\u673a\u5668\u4eba\uff0c\u6765\u5b9e\u73b0\u53cc\u5411\u79c1\u4fe1\u8f6c\u53d1\u3002\u5982\u679c\u6ca1\u6709\u670d\u52a1\u5668\uff0c\u4e5f\u53ef\u4ee5\u5229\u7528Telegram\u4e2d\u7684<a class=\"link\" href=\"https:\/\/t.me\/LivegramBot\"  target=\"_blank\" rel=\"noopener\"\n    >@LivegramBot<\/a>\u6216<a class=\"link\" href=\"https:\/\/t.me\/NodeForwardBot\"  target=\"_blank\" rel=\"noopener\"\n    >@NodeForwardBot<\/a>\u53bb\u521b\u5efa\uff0c\u4e5f\u76f8\u5bf9\u5bb9\u6613\u4e00\u4e9b\uff0c\u4f46\u7f3a\u70b9\u5c31\u662f\u6570\u636e\u6bd5\u7adf\u8fd8\u662f\u8981\u8d70\u522b\u4eba\u7684\u670d\u52a1\uff0c\u5f53\u7136\u4f5c\u4e3a\u6bd4\u8f83\u77e5\u540d\u7684\u516c\u5171\u670d\u52a1\uff0c\u4e00\u822c\u4e0d\u4f1a\u6709\u4ec0\u4e48\u5b89\u5168\u9690\u60a3\uff0c\u4f46\u5982\u679c\u7279\u522b\u91cd\u89c6\u9690\u79c1\u548c\u5b89\u5168\uff08PS\uff1a\u5f53\u7136\u6ca1\u6709\u7edd\u5bf9\u7684\u5b89\u5168\uff09\uff0c\u4e0d\u60f3\u66b4\u9732\u4e2a\u4eba\u7684\u771f\u5b9e\u8d26\u53f7\uff0c\u6216\u8005\u81ea\u5df1\u5c31\u662f\u60f3\u6298\u817e\ud83d\udc4d\uff0c\u90a3\u4e48\u5c31\u53ef\u4ee5\u53c2\u8003\u672c\u6587\u5229\u7528\u81ea\u5df1\u7684\u670d\u52a1\u5668\u53bb\u521b\u5efa<\/p>\n<p>\u901a\u8fc7\u521b\u5efa\u79c1\u4fe1\u673a\u5668\u4eba\u4e5f\u80fd\u66f4\u65b9\u4fbf\u66f4\u597d\u7684\u7ba1\u7406\u5404\u79cd\u5404\u6837\u7684\u79c1\u4fe1\uff0c\u4e0d\u7ba1\u662f\u8c01\u7684\u3001\u591a\u4e45\u524d\u7684\u79c1\u4fe1\u90fd\u53ef\u4ee5\u5728\u673a\u5668\u4eba\u91cc\u627e\u5230\uff0c\u5c31\u4e0d\u7528\u6bcf\u6b21\u60f3\u627e\u4ee5\u524d\u7684\u79c1\u4fe1\u603b\u662f\u53cd\u590d\u5237\u6765\u5237\u53bb<\/p>\n<p>\u6b64\u5916\uff0c\u6709\u4e9b+86\u7684Telegram\u8d26\u53f7\u5728\u8fdb\u884c\u79c1\u804a\u7684\u65f6\u5019\u4f1a\u88ab\u9650\u5236\uff08\u53ef\u4ee5\u5c1d\u8bd5\u79c1\u804a<a class=\"link\" href=\"https:\/\/t.me\/SpamBot\"  target=\"_blank\" rel=\"noopener\"\n    >@SpamBot<\/a>\u89e3\u9664\uff09\uff0c\u4f7f\u7528\u79c1\u4fe1\u673a\u5668\u4eba\u4e5f\u662f\u4e2a\u4e0d\u9519\u7684\u9009\u62e9<\/p>\n<p>\u603b\u4e4b\uff0c\u5982\u679c\u60f3\u6298\u817e\u6216\u8005\u6709\u5404\u79cd\u539f\u56e0\u9700\u8981\u5229\u7528\u81ea\u5df1\u7684\u670d\u52a1\u5668\u90e8\u7f72\u4e00\u4e2aTelegram\u79c1\u4fe1\u673a\u5668\u4eba\uff0c\u53ef\u4ee5\u53c2\u8003\u672c\u6587<\/p>\n<h2 id=\"\u51c6\u5907\">\u51c6\u5907\n<\/h2><hr>\n<p>\u6b63\u5f0f\u5f00\u59cb\u4e4b\u524d\uff0c\u9700\u8981\u51c6\u5907\uff1a<\/p>\n<blockquote>\n<ul>\n<li>\n<p>\u4e00\u4e2aTelegram\u8d26\u53f7<\/p>\n<\/li>\n<li>\n<p>\u4e00\u53f0\u5df2\u7ecf\u5b89\u88c5Docker\u7684\u5883\u5916\u670d\u52a1\u5668\uff08VPS\uff09<\/p>\n<\/li>\n<li>\n<p>\u4e00\u53cc\u52e4\u52b3\u7684\u53cc\u624b\ud83d\udc4b<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u672c\u6587\u4f7f\u7528Docker\u5728\u670d\u52a1\u5668\u7aef\u90e8\u7f72\u5bb9\u5668\u6765\u63a7\u5236\u673a\u5668\u4eba\u8fdb\u884c\u6d88\u606f\u7684\u53cc\u5411\u8f6c\u53d1\uff0c\u5b89\u88c5Docker\u7684\u6b65\u9aa4\u53ef\u4ee5\u53c2\u8003\u5b98\u7f51\uff0c\u8fd9\u91cc\u5c31\u4e0d\u518d\u8d58\u8ff0<\/p>\n<h2 id=\"\u521b\u5efa\u673a\u5668\u4eba\">\u521b\u5efa\u673a\u5668\u4eba\n<\/h2><hr>\n<p>\u9996\u5148\u5728Telegram\u4e2d\u641c\u7d22<a class=\"link\" href=\"https:\/\/t.me\/BotFather\"  target=\"_blank\" rel=\"noopener\"\n    >@BotFather<\/a><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/24\/sqbtg0-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u8f93\u5165<code>\/newbot<\/code>\u6307\u4ee4\uff0c\u6309\u7167\u63d0\u793a\u8f93\u5165\u673a\u5668\u4eba\u7684\u540d\u79f0\u548c\u7528\u6237\u540d<\/p>\n<p>\u521b\u5efa\u6210\u529f\u540e\u4f1a\u7ed9\u4f60\u4e00\u4e32<strong>HTTP API Token<\/strong>\uff0c\u7c7b\u4f3c<code>1234567890:ABCDEFGwNMjkxABCDEFGwfHmEqSnxSWGAq2d<\/code>\uff0c\u540e\u9762\u4f1a\u7528\u5230<\/p>\n<h2 id=\"\u83b7\u53d6telegram\u7528\u6237id\">\u83b7\u53d6Telegram\u7528\u6237ID\n<\/h2><hr>\n<p>\u7136\u540e\u518d\u641c\u7d22<a class=\"link\" href=\"https:\/\/t.me\/userinfobot\"  target=\"_blank\" rel=\"noopener\"\n    >@userinfobot<\/a>\uff0c\u70b9\u51fbStart\uff0c\u6216\u8005\u8f93\u5165<code>\/start<\/code>\uff0c\u4f1a\u8fd4\u56de\u4e00\u4e32<strong>\u6570\u5b57ID<\/strong>\uff0c\u8fd9\u4e2a\u4e5f\u662f\u540e\u9762\u8981\u7528<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/24\/swqvf8-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<h2 id=\"\u914d\u7f6e\u5e76\u521b\u5efadocker\u5bb9\u5668\">\u914d\u7f6e\u5e76\u521b\u5efaDocker\u5bb9\u5668\n<\/h2><hr>\n<p>\u9996\u5148\u767b\u9646\u8fdb\u670d\u52a1\u5668\uff0c\u521b\u5efa\u4e00\u4e2a\u5b58\u653e\u5bb9\u5668\u914d\u7f6e\u7684\u76ee\u5f55\uff0c\u4f8b\u5982<code>\/docker\/tg-pmbot<\/code>\uff0c\u63a5\u4e0b\u6765\u8981\u5728\u8be5\u76ee\u5f55\u4e0b\u521b\u5efa\u51e0\u4e2a\u6587\u4ef6<\/p>\n<p>\u9996\u5148\u521b\u5efa\u4e00\u4e2a<code>requirements.txt<\/code>\u6587\u4ef6\uff0c\u5199\u5165\u4ee5\u4e0b\u4ee3\u7801<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">python-telegram-bot<span class=\"o\">==<\/span>20.*\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u521b\u5efa\u63a7\u5236\u811a\u672c<code>bot.py<\/code>\u6587\u4ef6\uff0c\u5199\u5165\u4ee5\u4e0b\u4ee3\u7801<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-python\" data-lang=\"python\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span> <span class=\"nn\">logging<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span> <span class=\"nn\">os<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span> <span class=\"nn\">sys<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span> <span class=\"nn\">sqlite3<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">from<\/span> <span class=\"nn\">telegram<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Update<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">from<\/span> <span class=\"nn\">telegram.ext<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">ApplicationBuilder<\/span><span class=\"p\">,<\/span> <span class=\"n\">ContextTypes<\/span><span class=\"p\">,<\/span> <span class=\"n\">MessageHandler<\/span><span class=\"p\">,<\/span> <span class=\"n\">CommandHandler<\/span><span class=\"p\">,<\/span> <span class=\"n\">filters<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># === \u914d\u7f6e\u8bfb\u53d6 ===<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">BOT_TOKEN<\/span> <span class=\"o\">=<\/span> <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">getenv<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;BOT_TOKEN&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">try<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">ADMIN_ID<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">int<\/span><span class=\"p\">(<\/span><span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">getenv<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;ADMIN_ID&#34;<\/span><span class=\"p\">))<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">except<\/span> <span class=\"p\">(<\/span><span class=\"ne\">TypeError<\/span><span class=\"p\">,<\/span> <span class=\"ne\">ValueError<\/span><span class=\"p\">):<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;\u274c \u9519\u8bef: ADMIN_ID \u672a\u8bbe\u7f6e\u6216\u683c\u5f0f\u9519\u8bef&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">sys<\/span><span class=\"o\">.<\/span><span class=\"n\">exit<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># === \u6570\u636e\u5e93\u8def\u5f84 ===<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6570\u636e\u5b58\u50a8\u5728 \/app\/data \u76ee\u5f55\u4e0b\uff0c\u65b9\u4fbf Docker \u6302\u8f7d<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">DB_PATH<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;\/app\/data\/bot_data.db&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># === \u65e5\u5fd7\u914d\u7f6e ===<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">logging<\/span><span class=\"o\">.<\/span><span class=\"n\">basicConfig<\/span><span class=\"p\">(<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">format<\/span><span class=\"o\">=<\/span><span class=\"s1\">&#39;<\/span><span class=\"si\">%(asctime)s<\/span><span class=\"s1\"> - <\/span><span class=\"si\">%(name)s<\/span><span class=\"s1\"> - <\/span><span class=\"si\">%(levelname)s<\/span><span class=\"s1\"> - <\/span><span class=\"si\">%(message)s<\/span><span class=\"s1\">&#39;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">level<\/span><span class=\"o\">=<\/span><span class=\"n\">logging<\/span><span class=\"o\">.<\/span><span class=\"n\">INFO<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">logger<\/span> <span class=\"o\">=<\/span> <span class=\"n\">logging<\/span><span class=\"o\">.<\/span><span class=\"n\">getLogger<\/span><span class=\"p\">(<\/span><span class=\"vm\">__name__<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># === \u6570\u636e\u5e93\u51fd\u6570 ===<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">def<\/span> <span class=\"nf\">init_db<\/span><span class=\"p\">():<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;&#34;&#34;\u521d\u59cb\u5316\u6570\u636e\u5e93\u8868&#34;&#34;&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">makedirs<\/span><span class=\"p\">(<\/span><span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">path<\/span><span class=\"o\">.<\/span><span class=\"n\">dirname<\/span><span class=\"p\">(<\/span><span class=\"n\">DB_PATH<\/span><span class=\"p\">),<\/span> <span class=\"n\">exist_ok<\/span><span class=\"o\">=<\/span><span class=\"kc\">True<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">conn<\/span> <span class=\"o\">=<\/span> <span class=\"n\">sqlite3<\/span><span class=\"o\">.<\/span><span class=\"n\">connect<\/span><span class=\"p\">(<\/span><span class=\"n\">DB_PATH<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">c<\/span> <span class=\"o\">=<\/span> <span class=\"n\">conn<\/span><span class=\"o\">.<\/span><span class=\"n\">cursor<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># \u521b\u5efa\u6620\u5c04\u8868\uff1a\u8bb0\u5f55 \u8f6c\u53d1\u7ed9\u7ba1\u7406\u5458\u7684\u6d88\u606fID (forward_id) -&gt; \u539f\u59cb\u53d1\u9001\u8005ID (origin_user_id)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">execute<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;&#39;&#39;CREATE TABLE IF NOT EXISTS msg_map\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                 (forward_id INTEGER PRIMARY KEY, origin_user_id INTEGER)&#39;&#39;&#39;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">conn<\/span><span class=\"o\">.<\/span><span class=\"n\">commit<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">conn<\/span><span class=\"o\">.<\/span><span class=\"n\">close<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">def<\/span> <span class=\"nf\">save_mapping<\/span><span class=\"p\">(<\/span><span class=\"n\">forward_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">origin_user_id<\/span><span class=\"p\">):<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;&#34;&#34;\u4fdd\u5b58\u6d88\u606f\u6620\u5c04\u5173\u7cfb&#34;&#34;&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">conn<\/span> <span class=\"o\">=<\/span> <span class=\"n\">sqlite3<\/span><span class=\"o\">.<\/span><span class=\"n\">connect<\/span><span class=\"p\">(<\/span><span class=\"n\">DB_PATH<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">c<\/span> <span class=\"o\">=<\/span> <span class=\"n\">conn<\/span><span class=\"o\">.<\/span><span class=\"n\">cursor<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">execute<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;INSERT OR REPLACE INTO msg_map (forward_id, origin_user_id) VALUES (?, ?)&#34;<\/span><span class=\"p\">,<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\">              <span class=\"p\">(<\/span><span class=\"n\">forward_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">origin_user_id<\/span><span class=\"p\">))<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">conn<\/span><span class=\"o\">.<\/span><span class=\"n\">commit<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">conn<\/span><span class=\"o\">.<\/span><span class=\"n\">close<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">def<\/span> <span class=\"nf\">get_origin_user<\/span><span class=\"p\">(<\/span><span class=\"n\">forward_id<\/span><span class=\"p\">):<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;&#34;&#34;\u6839\u636e\u8f6c\u53d1\u6d88\u606fID\u67e5\u627e\u539f\u59cb\u53d1\u9001\u8005&#34;&#34;&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">conn<\/span> <span class=\"o\">=<\/span> <span class=\"n\">sqlite3<\/span><span class=\"o\">.<\/span><span class=\"n\">connect<\/span><span class=\"p\">(<\/span><span class=\"n\">DB_PATH<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">c<\/span> <span class=\"o\">=<\/span> <span class=\"n\">conn<\/span><span class=\"o\">.<\/span><span class=\"n\">cursor<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">execute<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;SELECT origin_user_id FROM msg_map WHERE forward_id=?&#34;<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"n\">forward_id<\/span><span class=\"p\">,))<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">result<\/span> <span class=\"o\">=<\/span> <span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">fetchone<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">conn<\/span><span class=\"o\">.<\/span><span class=\"n\">close<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">return<\/span> <span class=\"n\">result<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"k\">if<\/span> <span class=\"n\">result<\/span> <span class=\"k\">else<\/span> <span class=\"kc\">None<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># === \u4e8b\u4ef6\u5904\u7406 ===<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">async<\/span> <span class=\"k\">def<\/span> <span class=\"nf\">start_command<\/span><span class=\"p\">(<\/span><span class=\"n\">update<\/span><span class=\"p\">:<\/span> <span class=\"n\">Update<\/span><span class=\"p\">,<\/span> <span class=\"n\">context<\/span><span class=\"p\">:<\/span> <span class=\"n\">ContextTypes<\/span><span class=\"o\">.<\/span><span class=\"n\">DEFAULT_TYPE<\/span><span class=\"p\">):<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;&#34;&#34;\u54cd\u5e94 \/start \u547d\u4ee4&#34;&#34;&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">user_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">effective_user<\/span><span class=\"o\">.<\/span><span class=\"n\">id<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">if<\/span> <span class=\"n\">user_id<\/span> <span class=\"o\">==<\/span> <span class=\"n\">ADMIN_ID<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">await<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"o\">.<\/span><span class=\"n\">reply_text<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;\ud83d\udc6e\u200d\u2642\ufe0f \u673a\u5668\u4eba\u8fd0\u884c\u6b63\u5e38\u3002&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"c1\"># \u7ed9\u964c\u751f\u4eba\u7684\u6b22\u8fce\u8bed<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">await<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"o\">.<\/span><span class=\"n\">reply_text<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;\ud83d\udc4b \u60a8\u597d\uff01\u8fd9\u91cc\u662f\u79c1\u4fe1\u673a\u5668\u4eba\uff0c\u76f4\u63a5\u53d1\u9001\u6d88\u606f\u5373\u53ef\uff0c\u6536\u5230\u540e\u4f1a\u53ca\u65f6\u56de\u590d\u3002&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">async<\/span> <span class=\"k\">def<\/span> <span class=\"nf\">handle_message<\/span><span class=\"p\">(<\/span><span class=\"n\">update<\/span><span class=\"p\">:<\/span> <span class=\"n\">Update<\/span><span class=\"p\">,<\/span> <span class=\"n\">context<\/span><span class=\"p\">:<\/span> <span class=\"n\">ContextTypes<\/span><span class=\"o\">.<\/span><span class=\"n\">DEFAULT_TYPE<\/span><span class=\"p\">):<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">if<\/span> <span class=\"ow\">not<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">return<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">user_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">effective_user<\/span><span class=\"o\">.<\/span><span class=\"n\">id<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">msg_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"o\">.<\/span><span class=\"n\">message_id<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># --- \u573a\u666f A: \u7ba1\u7406\u5458\u53d1\u9001\u6d88\u606f (\u56de\u590d\u6a21\u5f0f) ---<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">if<\/span> <span class=\"n\">user_id<\/span> <span class=\"o\">==<\/span> <span class=\"n\">ADMIN_ID<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"c1\"># \u5fc5\u987b\u662f\u201c\u56de\u590d\u201d\u67d0\u6761\u6d88\u606f\uff0c\u4e14\u90a3\u6761\u6d88\u606f\u5fc5\u987b\u662f\u673a\u5668\u4eba\u53d1\u8fc7\u6765\u7684<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">if<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"o\">.<\/span><span class=\"n\">reply_to_message<\/span> <span class=\"ow\">and<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"o\">.<\/span><span class=\"n\">reply_to_message<\/span><span class=\"o\">.<\/span><span class=\"n\">from_user<\/span><span class=\"o\">.<\/span><span class=\"n\">id<\/span> <span class=\"o\">==<\/span> <span class=\"n\">context<\/span><span class=\"o\">.<\/span><span class=\"n\">bot<\/span><span class=\"o\">.<\/span><span class=\"n\">id<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            \n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"c1\"># \u83b7\u53d6\u7ba1\u7406\u5458\u6b63\u5728\u56de\u590d\u7684\u90a3\u6761\u6d88\u606f\u7684 ID<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"n\">original_forward_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"o\">.<\/span><span class=\"n\">reply_to_message<\/span><span class=\"o\">.<\/span><span class=\"n\">message_id<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            \n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"c1\"># \u4ece\u6570\u636e\u5e93\u67e5\u8fd9\u4e2a ID \u5bf9\u5e94\u54ea\u4e2a\u964c\u751f\u4eba<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"n\">target_user_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">get_origin_user<\/span><span class=\"p\">(<\/span><span class=\"n\">original_forward_id<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            \n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"k\">if<\/span> <span class=\"n\">target_user_id<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                <span class=\"k\">try<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                    <span class=\"c1\"># \u4f7f\u7528 copy_message \u652f\u6301\u6240\u6709\u5a92\u4f53\u7c7b\u578b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                    <span class=\"k\">await<\/span> <span class=\"n\">context<\/span><span class=\"o\">.<\/span><span class=\"n\">bot<\/span><span class=\"o\">.<\/span><span class=\"n\">copy_message<\/span><span class=\"p\">(<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                        <span class=\"n\">chat_id<\/span><span class=\"o\">=<\/span><span class=\"n\">target_user_id<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                        <span class=\"n\">from_chat_id<\/span><span class=\"o\">=<\/span><span class=\"n\">ADMIN_ID<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                        <span class=\"n\">message_id<\/span><span class=\"o\">=<\/span><span class=\"n\">msg_id<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                    <span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                    <span class=\"c1\"># \u2705 \u7ed9\u7ba1\u7406\u5458\u4e00\u4e2a\u89c6\u89c9\u53cd\u9988\uff1a\u53d1\u9001\u6210\u529f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                    <span class=\"k\">await<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"o\">.<\/span><span class=\"n\">set_reaction<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;\ud83d\udc4d&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                <span class=\"k\">except<\/span> <span class=\"ne\">Exception<\/span> <span class=\"k\">as<\/span> <span class=\"n\">e<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                    <span class=\"n\">logger<\/span><span class=\"o\">.<\/span><span class=\"n\">error<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"s2\">&#34;\u56de\u590d\u5931\u8d25: <\/span><span class=\"si\">{<\/span><span class=\"n\">e<\/span><span class=\"si\">}<\/span><span class=\"s2\">&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                    <span class=\"c1\"># \u274c \u7ed9\u7ba1\u7406\u5458\u53cd\u9988\uff1a\u53d1\u9001\u5931\u8d25<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                    <span class=\"k\">await<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"o\">.<\/span><span class=\"n\">set_reaction<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;\ud83d\udc4e&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                    <span class=\"k\">await<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"o\">.<\/span><span class=\"n\">reply_text<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"s2\">&#34;\u26a0\ufe0f \u53d1\u9001\u5931\u8d25: <\/span><span class=\"si\">{<\/span><span class=\"n\">e<\/span><span class=\"si\">}<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">(\u7528\u6237\u53ef\u80fd\u5c4f\u853d\u4e86\u673a\u5668\u4eba)&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                <span class=\"k\">await<\/span> <span class=\"n\">update<\/span><span class=\"o\">.<\/span><span class=\"n\">message<\/span><span class=\"o\">.<\/span><span class=\"n\">reply_text<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;\u2753 \u65e0\u6cd5\u627e\u5230\u539f\u59cb\u53d1\u9001\u8005\uff08\u6570\u636e\u5e93\u4e2d\u65e0\u8bb0\u5f55\uff09\u3002&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"c1\"># \u5982\u679c\u7ba1\u7406\u5458\u4e0d\u662f\u5728\u56de\u590d\u6d88\u606f\uff0c\u5219\u5ffd\u7565\uff08\u907f\u514d\u5728 Saved Messages \u91cc\u81ea\u8a00\u81ea\u8bed\u88ab\u5904\u7406\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"k\">pass<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># --- \u573a\u666f B: \u964c\u751f\u4eba\u53d1\u9001\u6d88\u606f -&gt; \u8f6c\u53d1\u7ed9\u7ba1\u7406\u5458 ---<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">try<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"n\">forwarded_msg<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"n\">context<\/span><span class=\"o\">.<\/span><span class=\"n\">bot<\/span><span class=\"o\">.<\/span><span class=\"n\">forward_message<\/span><span class=\"p\">(<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                <span class=\"n\">chat_id<\/span><span class=\"o\">=<\/span><span class=\"n\">ADMIN_ID<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                <span class=\"n\">from_chat_id<\/span><span class=\"o\">=<\/span><span class=\"n\">user_id<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                <span class=\"n\">message_id<\/span><span class=\"o\">=<\/span><span class=\"n\">msg_id<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            \n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"c1\"># \u6301\u4e45\u5316\uff1a\u4fdd\u5b58 \u8f6c\u53d1\u540e\u7684ID \u548c \u964c\u751f\u4ebaID \u7684\u5173\u7cfb<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"n\">save_mapping<\/span><span class=\"p\">(<\/span><span class=\"n\">forwarded_msg<\/span><span class=\"o\">.<\/span><span class=\"n\">message_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">user_id<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">except<\/span> <span class=\"ne\">Exception<\/span> <span class=\"k\">as<\/span> <span class=\"n\">e<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"n\">logger<\/span><span class=\"o\">.<\/span><span class=\"n\">error<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"s2\">&#34;\u8f6c\u53d1\u5f02\u5e38: <\/span><span class=\"si\">{<\/span><span class=\"n\">e<\/span><span class=\"si\">}<\/span><span class=\"s2\">&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">if<\/span> <span class=\"vm\">__name__<\/span> <span class=\"o\">==<\/span> <span class=\"s1\">&#39;__main__&#39;<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">if<\/span> <span class=\"ow\">not<\/span> <span class=\"n\">BOT_TOKEN<\/span><span class=\"p\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;\u274c \u9519\u8bef: \u73af\u5883\u53d8\u91cf BOT_TOKEN \u7f3a\u5931&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">sys<\/span><span class=\"o\">.<\/span><span class=\"n\">exit<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># \u521d\u59cb\u5316\u6570\u636e\u5e93<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">init_db<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"s2\">&#34;\u2705 \u6570\u636e\u5e93\u5df2\u5c31\u7eea: <\/span><span class=\"si\">{<\/span><span class=\"n\">DB_PATH<\/span><span class=\"si\">}<\/span><span class=\"s2\">&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">app<\/span> <span class=\"o\">=<\/span> <span class=\"n\">ApplicationBuilder<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"n\">token<\/span><span class=\"p\">(<\/span><span class=\"n\">BOT_TOKEN<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">build<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># \u6ce8\u518c\u5904\u7406\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">app<\/span><span class=\"o\">.<\/span><span class=\"n\">add_handler<\/span><span class=\"p\">(<\/span><span class=\"n\">CommandHandler<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;start&#34;<\/span><span class=\"p\">,<\/span> <span class=\"n\">start_command<\/span><span class=\"p\">))<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">app<\/span><span class=\"o\">.<\/span><span class=\"n\">add_handler<\/span><span class=\"p\">(<\/span><span class=\"n\">MessageHandler<\/span><span class=\"p\">(<\/span><span class=\"n\">filters<\/span><span class=\"o\">.<\/span><span class=\"n\">ALL<\/span> <span class=\"o\">&amp;<\/span> <span class=\"p\">(<\/span><span class=\"o\">~<\/span><span class=\"n\">filters<\/span><span class=\"o\">.<\/span><span class=\"n\">COMMAND<\/span><span class=\"p\">),<\/span> <span class=\"n\">handle_message<\/span><span class=\"p\">))<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"s2\">&#34;\ud83d\ude80 \u673a\u5668\u4eba\u5df2\u542f\u52a8 (Admin ID: <\/span><span class=\"si\">{<\/span><span class=\"n\">ADMIN_ID<\/span><span class=\"si\">}<\/span><span class=\"s2\">)&#34;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">app<\/span><span class=\"o\">.<\/span><span class=\"n\">run_polling<\/span><span class=\"p\">()<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u521b\u5efa<code>Dockerfile<\/code>\u6587\u4ef6\u6765\u914d\u7f6e\u6211\u4eec\u7684\u5bb9\u5668\u955c\u50cf<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-Dockerfile\" data-lang=\"Dockerfile\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">FROM<\/span><span class=\"w\"> <\/span><span class=\"s\">python:3.10-slim<\/span><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\"><\/span><span class=\"k\">WORKDIR<\/span><span class=\"w\"> <\/span><span class=\"s\">\/app<\/span><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\"><\/span><span class=\"k\">ENV<\/span> <span class=\"nv\">TZ<\/span><span class=\"o\">=<\/span>Asia\/Shanghai<span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\"><\/span><span class=\"k\">COPY<\/span> requirements.txt .<span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\"><\/span><span class=\"k\">RUN<\/span> pip install --no-cache-dir -r requirements.txt<span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\"><\/span><span class=\"k\">COPY<\/span> . .<span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\"><\/span><span class=\"k\">VOLUME<\/span> <span class=\"p\">[<\/span><span class=\"s2\">&#34;\/app\/data&#34;<\/span><span class=\"p\">]<\/span><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\"><\/span><span class=\"k\">CMD<\/span> <span class=\"p\">[<\/span><span class=\"s2\">&#34;python&#34;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;bot.py&#34;<\/span><span class=\"p\">]<\/span><span class=\"err\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u6700\u540e\u662f\u521b\u5efa<code>docker-compose.yml<\/code>\u6587\u4ef6\u7528\u6765\u914d\u7f6e\u5e76\u542f\u52a8\u5bb9\u5668\uff0c\u9700\u8981\u5c06\u4e0b\u9762\u7684<a class=\"link\" href=\"#%e5%88%9b%e5%bb%ba%e6%9c%ba%e5%99%a8%e4%ba%ba\" ><code>BOT_TOKEN<\/code><\/a>\u548c<a class=\"link\" href=\"#%e8%8e%b7%e5%8f%96Telegram%e7%94%a8%e6%88%b7ID\" ><code>ADMIN_ID<\/code><\/a>\u5206\u522b\u66ff\u6362\u4e3a\u81ea\u5df1\u7684<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">tg-bot<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">build<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">tg_forward_bot<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">always<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">BOT_TOKEN=1234567890:ABCDEFGwNMjkxABCDEFGwfHmEqSnxSWGAq2d <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u66ff\u6362\u4e3a\u81ea\u5df1\u7684Token<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">ADMIN_ID=0987654321 <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u66ff\u6362\u4e3a\u81ea\u5df1\u7684\u7528\u6237ID<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">TZ=Asia\/Shanghai<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">.\/data:\/app\/data<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u4e00\u5207\u51c6\u5907\u5c31\u7eea\uff0c\u76f4\u63a5\u6267\u884c<code>docker compose up -d<\/code>\u542f\u52a8\u5bb9\u5668\u5c31\u5927\u529f\u544a\u6210\u5566<\/p>\n<blockquote>\n<p>PS: \u542f\u52a8\u540e\u4f1a\u521b\u5efa\u4e00\u4e2a<code>data<\/code>\u76ee\u5f55\uff0c\u6240\u6709\u804a\u5929\u5173\u7cfb\u4f1a\u4fdd\u5b58\u5728<code>data\/bot_data.db<\/code>\u6587\u4ef6\u4e2d\uff0c\u53ea\u8981\u4fdd\u7ba1\u597d\u8fd9\u4e2a\u6587\u4ef6\uff0c\u673a\u5668\u4eba\u6570\u636e\u5c31\u662f\u5b89\u5168\u7684<\/p><\/blockquote>\n<h2 id=\"\u6d4b\u8bd5\">\u6d4b\u8bd5\n<\/h2><hr>\n<p>\u6211\u4eec\u53ef\u4ee5\u7528\u5c0f\u53f7\u76f4\u63a5\u79c1\u804a\u521a\u521b\u5efa\u7684\u673a\u5668\u4eba\u8bd5\u4e00\u4e0b<\/p>\n<p>\u5c0f\u53f7\u6d4b\u8bd5\uff1a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/24\/u1fq95-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u6536\u4fe1\u56de\u590d\uff1a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/24\/u0t5fr-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u6d4b\u8bd5\u6210\u529f\uff0c\u56de\u590d\u548c\u6536\u4fe1\u57fa\u672c\u90fd\u80fd\u79d2\u5230\ud83d\udc4d<\/p>\n"},{"title":"Orbstack \u8be6\u89e3 & \u4f7f\u7528\u603b\u7ed3","link":"https:\/\/been.ee\/p\/0-0-0-67\/","pubDate":"Sun, 18 Jan 2026 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-67\/","description":"<h2 id=\"\u4ecb\u7ecd\">\u4ecb\u7ecd\n<\/h2><hr>\n<p>OrbStack\u662f\u4e00\u6b3e\u8fd0\u884c\u5728MacOS\u4e0a\u7684\u9ad8\u6027\u80fd\u8f7b\u91cf\u865a\u62df\u5316\u8f6f\u4ef6\uff0c\u53ef\u4ee5\u7528\u4e8e\u5728MacOS\u4e0a\u521b\u5efaDocker\u5bb9\u5668\u548cLinux\u865a\u62df\u673a<\/p>\n<p>\u6839\u636e\u5b98\u65b9\u7684\u8bf4\u660e\uff0cOrbStack\u7684\u8d44\u6e90\u5360\u7528\u975e\u5e38\u5c0f\uff0c\u5176\u5b89\u88c5\u540e\u4ec5\u5360\u7528\u4e0d\u523010 MB\u7684\u78c1\u76d8\u7a7a\u95f4\uff0c\u5b83\u5728\u7a7a\u95f2\u65f6\u7684CPU\u4f7f\u7528\u7387\u57fa\u672c\u63a5\u8fd10\uff0c\u5c24\u5176\u662f\u521b\u5efa\u7684Linux\u865a\u62df\u673a\u51e0\u4e4e\u4e0d\u5360\u7528\u989d\u5916\u7684CPU\u8d44\u6e90\uff0c\u5e76\u4e14\u53ef\u4ee5\u6309\u9700\u5206\u914d\u5185\u5b58\u3002\u5b9e\u9645\u4f53\u9a8c\u4e0b\u6765\uff0cOrbstack\u53ca\u5176\u5bb9\u5668\u548c\u865a\u62df\u673a\u7684\u521b\u5efa\u548c\u542f\u52a8\u90fd\u975e\u5e38\u5feb\uff0c\u771f\u7684\u53ef\u4ee5\u8bf4\u662f\u5b8c\u7206Docker Desktop<\/p>\n<h2 id=\"\u5b89\u88c5\">\u5b89\u88c5\n<\/h2><hr>\n<p>Orbstack\u5bf9\u4e2a\u4eba\u4f7f\u7528\u662f\u5b8c\u5168\u514d\u8d39\u7684\uff0c\u53ef\u4ee5\u76f4\u63a5\u5230<a class=\"link\" href=\"https:\/\/orbstack.dev\/download\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u7f51<\/a>\u4e0b\u8f7d\u5b89\u88c5\u6216\u8005\u7528Homebrew\u5b89\u88c5\u90fd\u53ef\u4ee5\uff0c\u8fd9\u91cc\u5c31\u4e0d\u518d\u8d58\u8ff0\u4e86<\/p>\n<h2 id=\"\u5bb9\u5668\">\u5bb9\u5668\n<\/h2><hr>\n<p>\u5982\u679c\u4e4b\u524d\u6ca1\u6709\u5b89\u88c5\u8fc7Docker\uff0c\u90a3\u4e48\u76f4\u63a5\u5b89\u88c5Orbstack\u5373\u5305\u542b\u4e86Docker\u5f15\u64ce\u3001Docker Compose\u7b49\u6240\u6709Docker\u5de5\u5177<\/p>\n<h3 id=\"\u5207\u6362\u4e0a\u4e0b\u6587\u5207\u6362\u540e\u7aef\u5f15\u64ce\">\u5207\u6362\u4e0a\u4e0b\u6587\uff08\u5207\u6362\u540e\u7aef\u5f15\u64ce\uff09\n<\/h3><hr>\n<p>Orbstack\u5b89\u88c5\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u547d\u4ee4\u67e5\u770b\u5f53\u524d\u4f7f\u7528\u7684\u540e\u7aef\u5f15\u64ce\u662f\u4e0d\u662fOrbstack\uff0c\u901a\u5e38\u4f1a\u5728\u540e\u9762\u6709\u4e00\u4e2a<code>*<\/code>\u53f7<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"> ~ docker context ls\n<\/span><\/span><span class=\"line\"><span class=\"cl\">NAME         DESCRIPTION                               DOCKER ENDPOINT                                     ERROR\n<\/span><\/span><span class=\"line\"><span class=\"cl\">default      Current DOCKER_HOST based configuration   unix:\/\/\/var\/run\/docker.sock                         \n<\/span><\/span><span class=\"line\"><span class=\"cl\">orbstack *   OrbStack                                  unix:\/\/\/Users\/cheerroad\/.orbstack\/run\/docker.sock   \n<\/span><\/span><\/code><\/pre><\/div><p>\u5982\u679c\u663e\u793a\u4f7f\u7528\u7684\u4e0d\u662fOrbstack\u6216\u8005\u60f3\u5207\u6362\u540e\u7aef\u5f15\u64ce\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u547d\u4ee4\u5207\u6362\u5230Orbstack\u6216\u5207\u6362\u56deDocker Desktop<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">docker context use orbstack  <span class=\"c1\"># \u5207\u6362\u5230OrbStack<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker context use default  <span class=\"c1\"># \u5207\u6362\u5230Docker Desktop\uff08\u65e7\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker context use desktop-linux  <span class=\"c1\"># \u5207\u6362\u5230Docker Desktop\uff08\u65b0\uff09<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u6570\u636e\u8fc1\u79fb\">\u6570\u636e\u8fc1\u79fb\n<\/h3><hr>\n<p>\u5982\u679c\u4e4b\u524d\u7528\u8fc7Docker Desktop\uff0cOrbstack\u63d0\u4f9b\u4e86\u5305\u62ec\u5bb9\u5668\u3001\u6570\u636e\u5377\u3001\u955c\u50cf\u7b49\u5728\u5185\u7684\u6240\u6709\u6570\u636e\u8fc1\u79fb\u529f\u80fd\uff0c\u53ea\u9700\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5373\u53ef<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb docker migrate\n<\/span><\/span><\/code><\/pre><\/div><p>\u56e0\u4e3aOrbstack\u53ef\u4ee5\u65e0\u7f1d\u66ff\u4ee3Docker\uff0c\u7edd\u5927\u591a\u6570\u529f\u80fd\u548c\u64cd\u4f5c\u90fd\u4e0eDocker\u64cd\u4f5c\u4e00\u81f4\uff0c\u53ea\u8981\u786e\u4fdd\u4e86<code>docker context use orbstack<\/code>\uff0c\u540e\u7eed\u5bb9\u5668\u521b\u5efa\u3001\u64cd\u4f5c\u3001\u5220\u9664\u7b49\u4e00\u5207\u64cd\u4f5c\u90fd\u6309\u7167Docker\u547d\u4ee4\u6267\u884c\u5373\u53ef\uff0c\u56e0\u6b64\u4e0b\u9762\u5c06\u53ea\u4ecb\u7ecdOrbstack\u72ec\u6709\u7684\u4e00\u4e9b\u529f\u80fd\u7279\u6027<\/p>\n<h3 id=\"\u72ec\u6709\u7684\u529f\u80fd\u7279\u6027\">\u72ec\u6709\u7684\u529f\u80fd\u7279\u6027\n<\/h3><hr>\n<h4 id=\"\u6570\u636e\u5b58\u653e\">\u6570\u636e\u5b58\u653e\n<\/h4><hr>\n<p>Orbstack Docker\u4e0b\u8f7d\u6216\u521b\u5efa\u7684\u5bb9\u5668\uff08Container\uff09\u3001\u955c\u50cf\uff08Image\uff09\u3001\u6570\u636e\u5377\uff08Volume\uff09\u548c\u865a\u62df\u673a\uff08Machine\uff09\u5206\u522b\u6302\u8f7d\u5728\u4e0b\u9762\u6240\u8ff0MacOS\u76ee\u5f55\u4e0b\uff0c\u66f4\u65b9\u4fbf\u6211\u4eec\u8bbf\u95ee\u548c\u64cd\u4f5c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">~\/OrbStack\/docker\/containers\/&lt;name&gt;  <span class=\"c1\"># \u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">~\/OrbStack\/docker\/images\/&lt;tag&gt;  <span class=\"c1\"># \u955c\u50cf<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">~\/OrbStack\/docker\/volumes\/&lt;name&gt;  <span class=\"c1\"># \u6570\u636e\u5377<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">~\/OrbStack\/&lt;name&gt;  <span class=\"c1\"># \u865a\u62df\u673a<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u7f51\u7edc\">\u7f51\u7edc\n<\/h4><hr>\n<p>\u5229\u7528Orbstack Docker\u521b\u5efa\u7684\u6bcf\u4e00\u4e2a\u5bb9\u5668\u90fd\u4f1a\u88ab\u81ea\u52a8\u5206\u914d\u4e00\u4e2a<code>container-name.orb.local<\/code>\u57df\u540d\uff1b\u5bf9\u4e8e\u7528Docker Compose\u521b\u5efa\u7684\u5bb9\u5668\u9879\u76ee\uff0c\u9879\u76ee\u4e2d\u6bcf\u4e2a\u670d\u52a1\u90fd\u4f1a\u88ab\u5206\u914d\u4e00\u4e2a<code>service.project.orb.local<\/code>\u57df\u540d\uff0c\u5176\u4e2d\u9879\u76ee\u540d\uff08project\uff09\u901a\u5e38\u662f\u5305\u542b<code>docker-compose.yml<\/code>\u6587\u4ef6\u7684\u6587\u4ef6\u5939\u7684\u540d\u5b57\uff0c\u670d\u52a1\u540dservice\u5c31\u662f<code>docker-compose.yml<\/code>\u4e2d\u5404\u4e2a\u670d\u52a1\u7684\u540d\u5b57<\/p>\n<p>\u5982\u679c\u8981\u4ece\u5bb9\u5668\u4e2d\u8bbf\u95eeMacOS\u4e2d\u7684\u670d\u52a1\uff0c\u53ef\u4ee5\u7528<code>host.docker.internal<\/code>\u57df\u540d\u6765\u8fde\u63a5\u6216\u8bbf\u95eeMac<\/p>\n<p>OrbStack\u9ed8\u8ba4\u53ef\u4ee5\u81ea\u52a8\u4e3a\u6240\u6709\u5bb9\u5668\u7684\u57df\u540d\u63d0\u4f9bHTTPS\uff0c\u5305\u62ec\u52a8\u6001\u8bc1\u4e66\u751f\u6210\u3001\u5b89\u88c5\u548c\u53cd\u5411\u4ee3\u7406\u529f\u80fd\uff0c\u53ef\u4ee5\u901a\u8fc7\u8bbf\u95ee\u4e00\u6b21<code>https:\/\/orb.local<\/code>\uff0c\u6d4f\u89c8\u5668\u4f1a\u5f39\u7a97\u63d0\u793a\u8f93\u5165\u5bc6\u7801\uff0c\u6309\u8981\u6c42\u8f93\u5165\u5373\u53ef\uff0c\u5982\u679c\u6ca1\u6709\u5f39\u7a97\u6216\u8005\u4e0d\u5c0f\u5fc3\u5173\u95ed\u4e86\uff0c\u4e5f\u53ef\u4ee5\u6253\u5f00Orbstack\u7a97\u53e3\uff0c\u5728<code>Settings<\/code> - <code>Network<\/code>\u4e2d\u627e\u5230<code>Enable HTTPS for container domains<\/code>\u52fe\u9009\uff0c\u7136\u540e<code>Apply and Restart<\/code>\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2026\/01\/19\/pe7v5e-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<h2 id=\"\u865a\u62df\u673a\">\u865a\u62df\u673a\n<\/h2><hr>\n<p>\u9700\u8981\u6ce8\u610f\uff0cOrbstack\u521b\u5efa\u7684Linux\u865a\u62df\u673a\u5e76\u4e0d\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u865a\u62df\u673a\uff0c\u662f\u4e00\u79cd\u7c7b\u4f3cWindows\u7cfb\u7edf\u7684WSL 2\u67b6\u6784\u7684\u8f7b\u91cf\u7ea7\u865a\u62df\u673a\uff0c\u4f46\u4ecd\u7136\u53ef\u4ee5\u6ee1\u8db3\u6211\u4eec\u7edd\u5927\u591a\u6570\u7684\u9700\u6c42<\/p>\n<h3 id=\"\u521b\u5efa\u865a\u62df\u673a\">\u521b\u5efa\u865a\u62df\u673a\n<\/h3><hr>\n<p>Orbstack\u76ee\u524d\u652f\u6301\u4e0b\u9762\u768415\u79cdLinux\u53d1\u884c\u7248\uff0c\u5df2\u7ecf\u57fa\u672c\u5305\u542b\u4e86\u7edd\u5927\u591a\u6570\u4eba\u65e5\u5e38\u4f1a\u7528\u5230\u7684\uff0c<a class=\"link\" href=\"https:\/\/docs.orbstack.dev\/machines\/distros#custom-distros\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9<\/a>\u4e5f\u5df2\u7ecf\u8ba1\u5212\u5728\u672a\u6765\u4f1a\u652f\u6301\u81ea\u5b9a\u4e49\u955c\u50cf\uff0c\u53ef\u4ee5\u671f\u5f85\u4e00\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">Alma\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Alpine\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Arch\n<\/span><\/span><span class=\"line\"><span class=\"cl\">CentOS\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Debian\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Devuan\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Fedora\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Gentoo\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Kali\n<\/span><\/span><span class=\"line\"><span class=\"cl\">NixOS\n<\/span><\/span><span class=\"line\"><span class=\"cl\">openSUSE\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Oracle\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Rocky\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Ubuntu\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Void\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u91cc\u6211\u4eec\u4ee5\u521b\u5efaopenSUSE\uff08<code>Tumbleweed<\/code>\uff0c\u6eda\u52a8\u66f4\u65b0\u7248\uff09\u865a\u62df\u673a\u4e3a\u4f8b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u521b\u5efa\u865a\u62df\u673a\u547d\u4ee4 orb create &lt;distro:tag&gt; &lt;name&gt;  # \u53ef\u4ee5\u7528Tag\u5236\u5b9aLinux\u53d1\u884c\u7248\u7248\u672c\uff0c\u4f8b\u5982ubuntu:22.04<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb create opensuse:tumbleweed opensuse\n<\/span><\/span><\/code><\/pre><\/div><p>\u7b49\u5f85\u521b\u5efa\u597d\u540e\uff0c\u4f7f\u7528<code>orb -m opensuse<\/code>\u547d\u4ee4\u8fdb\u5165\u865a\u62df\u673a\uff0c\u4f46\u7531\u4e8e\u6211\u7528\u7684\u662fkitty\u7ec8\u7aef\uff0c\u4f46\u65b0\u5f00\u7684openSUSE\u865a\u62df\u673a\u91cc<strong>\u8fd8\u6ca1\u6709\u5b89\u88c5kitty\u7684\u7ec8\u7aef\u914d\u7f6e\u6587\u4ef6<\/strong>\uff0c\u56e0\u6b64\u865a\u62df\u673a\u76ee\u524d\u4e0d\u8ba4\u8bc6\u6240\u4ee5\u5361\u4f4f\u4e86<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"> ~ orb -m opensuse\n<\/span><\/span><span class=\"line\"><span class=\"cl\">tset: unknown terminal <span class=\"nb\">type<\/span> xterm-kitty\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Terminal type?\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u65f6\u5019\uff0c\u53ef\u4ee5\u5728<code>Terminal type?<\/code>\u63d0\u793a\u7b26\u540e\u9762\uff0c\u8f93\u5165<code>xterm<\/code>\u6216<code>xterm-256color<\/code>\u4e34\u65f6\u767b\u9646\u8fdb\u865a\u62df\u673a\u7cfb\u7edf\uff0c\u7136\u540e\u5728\u865a\u62df\u673a\u5b89\u88c5kitty\u7684\u914d\u7f6e\u6587\u4ef6\uff08<code>kitty-terminfo<\/code>\u5305\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo zypper refresh\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo zypper install kitty-terminfo\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u5b8c\u540e\uff0c\u6267\u884c<code>exit<\/code>\u9000\u51fa\u865a\u62df\u673a\uff0c\u518d\u91cd\u65b0<code>orb -m opensuse<\/code>\u8fdb\u5165\uff0c\u5c31\u4e0d\u4f1a\u6709\u95ee\u9898\u4e86<\/p>\n<p>\u8fdb\u5165\u540e\u53ef\u4ee5\u6267\u884c<code>echo $TERM<\/code>\uff0c\u53ef\u4ee5\u770b\u5230\u5df2\u7ecf\u66ff\u6362\u4e3akitty\u4e86\uff0c\u8fd9\u6837\u865a\u62df\u673a\u5c31\u53ef\u4ee5\u7406\u89e3kitty\u7684\u7279\u6027\u5566<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">cheerroad@opensuse:~&gt; <span class=\"nb\">echo<\/span> <span class=\"nv\">$TERM<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">xterm-kitty\n<\/span><\/span><\/code><\/pre><\/div><blockquote>\n<p>PS: <strong>\u5bf9\u4e8eApple Silicon\uff0c\u4e5f\u5c31\u662fM\u7cfb\u5217\u82af\u7247\uff0c\u9ed8\u8ba4\u521b\u5efa\u7684\u90fd\u662fArm\u67b6\u6784\u7684\u865a\u62df\u673a<\/strong>\uff0c\u5982\u679c\u9700\u8981\u521b\u5efa<strong>x86_64\/amd64<\/strong>\u67b6\u6784\u865a\u62df\u673a\u53ef\u4ee5\u901a\u8fc7<code>--arch<\/code>\u6765\u5236\u5b9a\uff0c\u4f8b\u5982<code>orb create --arch amd64 opensuse:tumbleweed opensuse<\/code><\/p><\/blockquote>\n<p>\u4e0b\u9762\u4ecb\u7ecd\u4e00\u4e0b\u5176\u4ed6\u865a\u62df\u673a\u5e38\u7528\u547d\u4ee4<\/p>\n<h3 id=\"\u5e38\u7528\u865a\u62df\u673a\u7ba1\u7406\u64cd\u4f5c\">\u5e38\u7528\u865a\u62df\u673a\u7ba1\u7406\u64cd\u4f5c\n<\/h3><hr>\n<p>\u4e0b\u9762\u8fd9\u4e9b\u5305\u542b\u4e86<code>orb<\/code>\u7684\u6240\u6709\u5b50\u547d\u4ee4\uff0c\u53ef\u4ee5\u901a\u8fc7<code>orb &lt;subcommand&gt; --help<\/code>\u6765\u67e5\u770b\u8bf4\u660e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">**completion  Generate completion script\n<\/span><\/span><span class=\"line\"><span class=\"cl\">config      Change OrbStack settings\n<\/span><\/span><span class=\"line\"><span class=\"cl\">create      Create a new machine\n<\/span><\/span><span class=\"line\"><span class=\"cl\">debug       Debug a Docker container with extra commands\n<\/span><\/span><span class=\"line\"><span class=\"cl\">default     Get or <span class=\"nb\">set<\/span> the default machine\n<\/span><\/span><span class=\"line\"><span class=\"cl\">delete      Delete a machine\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker      Show commands <span class=\"k\">for<\/span> using Docker\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">help<\/span>        Help about any <span class=\"nb\">command<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">info        Get info about a machine\n<\/span><\/span><span class=\"line\"><span class=\"cl\">k8s         Show commands <span class=\"k\">for<\/span> using Kubernetes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">list        List machines\n<\/span><\/span><span class=\"line\"><span class=\"cl\">login       Log in and activate your OrbStack license\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">logout<\/span>      Log out of your OrbStack account\n<\/span><\/span><span class=\"line\"><span class=\"cl\">logs        Show logs <span class=\"k\">for<\/span> a machine\n<\/span><\/span><span class=\"line\"><span class=\"cl\">migrate     Migrate data from Docker Desktop to OrbStack\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pull        Copy files from Linux\n<\/span><\/span><span class=\"line\"><span class=\"cl\">push        Copy files to Linux\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rename      Rename a machine\n<\/span><\/span><span class=\"line\"><span class=\"cl\">report      Gather info <span class=\"k\">for<\/span> a bug report\n<\/span><\/span><span class=\"line\"><span class=\"cl\">reset       Delete all Linux and Docker data\n<\/span><\/span><span class=\"line\"><span class=\"cl\">restart     Restart a machine\n<\/span><\/span><span class=\"line\"><span class=\"cl\">run         Run <span class=\"nb\">command<\/span> on Linux\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ssh         Show SSH details\n<\/span><\/span><span class=\"line\"><span class=\"cl\">start       Start OrbStack or a machine\n<\/span><\/span><span class=\"line\"><span class=\"cl\">status      Check whether OrbStack is running\n<\/span><\/span><span class=\"line\"><span class=\"cl\">stop        Stop OrbStack or a machine\n<\/span><\/span><span class=\"line\"><span class=\"cl\">update      Update OrbStack\n<\/span><\/span><span class=\"line\"><span class=\"cl\">version     Show OrbStack version**\n<\/span><\/span><\/code><\/pre><\/div><p>\u4e0b\u9762\u5bf9\u4e00\u4e9b\u5e38\u7528\u7684\u64cd\u4f5c\u547d\u4ee4\u8fdb\u884c\u8bf4\u660e<\/p>\n<h4 id=\"\u5217\u51fa\u865a\u62df\u673a\u72b6\u6001\">\u5217\u51fa\u865a\u62df\u673a\u72b6\u6001\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb list\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u505c\u6b62\u542f\u52a8\u91cd\u542f\">\u505c\u6b62\/\u542f\u52a8\/\u91cd\u542f\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb stop &lt;name&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb start &lt;name&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb restart &lt;name&gt;\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u5220\u9664\u865a\u62df\u673a\">\u5220\u9664\u865a\u62df\u673a\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb delete &lt;name&gt;  <span class=\"c1\"># \u5f7b\u5e95\u5220\u9664\u865a\u62df\u673a\u53ca\u5176\u6570\u636e(\u4e0d\u53ef\u9006) <\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u91cd\u547d\u540d\u865a\u62df\u673a\">\u91cd\u547d\u540d\u865a\u62df\u673a\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">orb rename &lt;old-name&gt; &lt;new-name&gt;\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u865a\u62df\u673a\u8fde\u63a5\u4ea4\u4e92\u64cd\u4f5c\">\u865a\u62df\u673a\u8fde\u63a5\/\u4ea4\u4e92\u64cd\u4f5c\n<\/h3><hr>\n<h4 id=\"\u8fdb\u5165\u865a\u62df\u673a\">\u8fdb\u5165\u865a\u62df\u673a\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb  <span class=\"c1\"># \u8fdb\u5165\u9ed8\u8ba4\u865a\u62df\u673a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb -m &lt;name&gt;  <span class=\"c1\"># \u8fdb\u5165\u6307\u5b9a\u865a\u62df\u673a<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u67e5\u770b\u8bbe\u7f6e\u9ed8\u8ba4\u865a\u62df\u673a\">\u67e5\u770b\/\u8bbe\u7f6e\u9ed8\u8ba4\u865a\u62df\u673a\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb default  <span class=\"c1\"># \u67e5\u770b\u5f53\u524d\u7684\u9ed8\u8ba4\u865a\u62df\u673a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb default opensuse  <span class=\"c1\"># \u8bbe\u7f6e\u9ed8\u8ba4\u865a\u62df\u673a<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u4ee5\u7279\u5b9a\u7528\u6237\u8eab\u4efd\u767b\u5f55\">\u4ee5\u7279\u5b9a\u7528\u6237\u8eab\u4efd\u767b\u5f55\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb -m &lt;name&gt; -u root\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u6267\u884c\u865a\u62df\u673a\u547d\u4ee4\u4e0d\u9700\u8981\u8fdb\u5165\u4ea4\u4e92\u5f0f\u754c\u9762\">\u6267\u884c\u865a\u62df\u673a\u547d\u4ee4\uff08\u4e0d\u9700\u8981\u8fdb\u5165\u4ea4\u4e92\u5f0f\u754c\u9762\uff09\n<\/h4><hr>\n<p>\u53ef\u4ee5\u5728Mac\u76f4\u63a5\u6267\u884c<code>orb &lt;command&gt;<\/code>\uff0c\u8fd9\u65f6\u4f1a\u5728\u9ed8\u8ba4\u865a\u62df\u673a\u6267\u884c\u547d\u4ee4\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7<code>orb -m &lt;name&gt; &lt;command&gt;<\/code>\u6307\u5b9a\u5728\u67d0\u4e2a\u865a\u62df\u673a\u4e2d\u6267\u884c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb -m opensuse uname -a  <span class=\"c1\"># \u67e5\u770bopensuse\u7684\u5185\u6838\u7248\u672c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb -m opensuse sudo zypper refresh  <span class=\"c1\"># \u5237\u65b0opensuse\u8f6f\u4ef6\u6e90\u6570\u636e\u5e93<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u6267\u884cmac\u547d\u4ee4\u4e0d\u9700\u8981\u8fdb\u5165\u4ea4\u4e92\u5f0f\u754c\u9762\">\u6267\u884cMac\u547d\u4ee4\uff08\u4e0d\u9700\u8981\u8fdb\u5165\u4ea4\u4e92\u5f0f\u754c\u9762\uff09\n<\/h4><hr>\n<p>\u540c\u6837\u53ef\u4ee5\u5728\u865a\u62df\u673a\u4e2d\u901a\u8fc7<code>mac &lt;command&gt;<\/code>\u6765\u6267\u884cMac\u4e2d\u7684\u547d\u4ee4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mac uname -a\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u6587\u4ef6\u64cd\u4f5c\u5171\u4eab\">\u6587\u4ef6\u64cd\u4f5c\/\u5171\u4eab\n<\/h4><hr>\n<p>\u53ef\u4ee5\u4f7f\u7528<code>orb pull<\/code>\u548c<code>orb push<\/code>\u547d\u4ee4\u5728Mac\u548c\u865a\u62df\u673a\u4e4b\u95f4\u62f7\u8d1d\u6587\u4ef6<\/p>\n<blockquote>\n<p>PS\uff1aMac\u7684\u6587\u4ef6\u7cfb\u7edf\u9ed8\u8ba4\u4f1a\u6302\u8f7d\u5728\u865a\u62df\u673a\u4e2d\u7684<code>\/mnt\/mac<\/code>\u76ee\u5f55\u4e0b\uff0c\u865a\u62df\u673a\u7684\u6587\u4ef6\u7cfb\u7edf\u9ed8\u8ba4\u4f4d\u4e8eMac\u7684<code>~\/OrbStack<\/code>\u76ee\u5f55\u4e0b\uff0c\u56e0\u6b64\u53ef\u4ee5\u76f4\u63a5\u53bb\u8fd9\u4e24\u4e2a\u76ee\u5f55\u64cd\u4f5cMac\u6216\u865a\u62df\u673a\u4e2d\u7684\u6587\u4ef6<\/p><\/blockquote>\n<ul>\n<li>orb push<\/li>\n<\/ul>\n<p><strong>\u4eceMac\u62f7\u8d1d\u6587\u4ef6\u81f3\u865a\u62df\u673a\uff0c\u9ed8\u8ba4\u62f7\u8d1d\u81f3\u865a\u62df\u673a\u7684\u5bb6\u76ee\u5f55\u4e0b<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb push &lt;file&gt;  <span class=\"c1\"># \u5c06\u6587\u4ef6\u62f7\u8d1d\u81f3\u9ed8\u8ba4\u865a\u62df\u673a\u7684\u5bb6\u76ee\u5f55\u6587\u4ef6\u4e0b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4e0e\u4e0b\u9762\u547d\u4ee4\u7684\u6548\u679c\u76f8\u540c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">cp &lt;file&gt; ~\/OrbStack\/opensuse\/home\/<span class=\"nv\">$USER<\/span>\/\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd8\u53ef\u4ee5\u6307\u5b9a\u8def\u5f84\uff0c\u53ef\u4ee5\u6307\u5b9a\u7edd\u5bf9\u8def\u5f84\uff0c\u4f46\u8981\u6ce8\u610f\u6743\u9650\uff1b\u5982\u679c\u6307\u5b9a\u76f8\u5bf9\u8def\u5f84\uff0c\u5219\u662f\u76f8\u5bf9\u4e8e\u865a\u62df\u673a\u5bb6\u76ee\u5f55\u7684\u8def\u5f84\uff0c\u4f8b\u5982<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb push &lt;file&gt; Code\/  <span class=\"c1\"># \u5c06\u6587\u4ef6\u62f7\u8d1d\u81f3\u9ed8\u8ba4\u865a\u62df\u673a\u5bb6\u76ee\u5f55\u4e0b\u7684Code\u6587\u4ef6\u5939\u4e0b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4e0e\u4e0b\u9762\u547d\u4ee4\u6548\u679c\u76f8\u540c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">cp &lt;file&gt; ~\/OrbStack\/opensuse\/home\/<span class=\"nv\">$USER<\/span>\/Code\n<\/span><\/span><\/code><\/pre><\/div><p>\u4e5f\u53ef\u4ee5\u901a\u8fc7<code>-m<\/code>\u53c2\u6570\u6307\u5b9a\u865a\u62df\u673a\uff0c\u4f8b\u5982<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb push -m &lt;name&gt; &lt;file&gt; &lt;dest_path&gt;\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li>orb pull<\/li>\n<\/ul>\n<p><strong>\u4ece\u865a\u62df\u673a\u62f7\u8d1d\u6587\u4ef6\u81f3Mac\uff0c\u9ed8\u8ba4\u62f7\u8d1d\u81f3Mac\u7684\u5f53\u524d\u76ee\u5f55\u4e0b<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb pull &lt;file&gt;  <span class=\"c1\"># \u5c06\u865a\u62df\u673a\u5bb6\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u62f7\u8d1d\u81f3Mac\u7684\u5f53\u524d\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4e0e\u4e0b\u9762\u547d\u4ee4\u6548\u679c\u76f8\u540c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">cp ~\/OrbStack\/ubuntu\/home\/<span class=\"nv\">$USER<\/span>\/&lt;file&gt; .\n<\/span><\/span><\/code><\/pre><\/div><p>\u4e0e<code>orb push<\/code>\u7c7b\u4f3c\uff0c\u4e5f\u53ef\u4ee5\u6307\u5b9a\u8def\u5f84\u6216\u8005\u865a\u62df\u673a\uff0c\u4f8b\u5982<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb pull &lt;file_path&gt; &lt;dest_path&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb pull -m &lt;name&gt; &lt;file_path&gt; &lt;dest_path&gt;\n<\/span><\/span><\/code><\/pre><\/div><blockquote>\n<p>PS: \u4e5f\u53ef\u4ee5\u5728\u865a\u62df\u673a\u4e2d\u7528<code>mac pull<\/code>\u548c<code>mac push<\/code>\u547d\u4ee4\uff0c\u7528\u6cd5\u76f8\u4f3c<\/p><\/blockquote>\n<h3 id=\"\u5176\u4ed6\u529f\u80fd\u7279\u6027\">\u5176\u4ed6\u529f\u80fd\u7279\u6027\n<\/h3><hr>\n<h4 id=\"\u73af\u5883\u53d8\u91cf\">\u73af\u5883\u53d8\u91cf\n<\/h4><hr>\n<p>\u5728Mac\u4e2d\uff0c\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6e<code>ORBENV<\/code>\u8fd9\u4e2a\u73af\u5883\u53d8\u91cf\u6765\u5c06Mac\u4e2d\u7684\u73af\u5883\u53d8\u91cf\u4f20\u9012\u5230\u865a\u62df\u673a\u4e2d\uff0c\u53ea\u9700\u8981\u5c06<code>ORBENV<\/code>\u7684\u503c\u8bbe\u7f6e\u4e3a\u60f3\u8981\u4f20\u9012\u7684\u53d8\u91cf\u5373\u53ef\uff0c\u4f8b\u5982<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nb\">export<\/span> <span class=\"nv\">ORBENV<\/span><span class=\"o\">=<\/span>ENV1:ENV2:ENV3\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u7f51\u7edc-1\">\u7f51\u7edc\n<\/h4><hr>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cOrbstack\u4e3a\u6bcf\u4e2aLinux\u865a\u62df\u673a\u7ed1\u5b9a\u4e86<code>machine-name.orb.local<\/code>\u8fd9\u4e2a\u57df\u540d\uff0c\u8fd9\u610f\u5473\u7740\u6211\u4eec\u53ef\u4ee5\u5728Mac\u4e0a\u7528\u8be5\u57df\u540d\u8fde\u63a5\u6216\u8bbf\u95ee\u865a\u62df\u673a\u4e2d\u7684\u670d\u52a1\uff1b\u800c\u5728\u865a\u62df\u673a\u4e2d\uff0c\u53ef\u4ee5\u7528<code>host.orb.internal<\/code>\u8fd9\u4e2a\u57df\u540d\u6765\u8fde\u63a5\u6216\u8bbf\u95eeMac\u4e2d\u7684\u670d\u52a1<\/p>\n<blockquote>\n<p>\u4e0e\u5bb9\u5668\u7c7b\u4f3c\uff0c\u4f7f\u7528\u57df\u540d\u865a\u62df\u673a\u4e2d\u7684\u670d\u52a1\u9ed8\u8ba4\u4e5f\u4f1a\u81ea\u52a8\u914d\u7f6eHTTPS\uff0c\u975e\u5e38\u8d34\u5fc3\uff01<\/p><\/blockquote>\n<p>\u5982\u679c\u60f3\u8981\u5728\u865a\u62df\u673a\u4e4b\u95f4\u4e92\u76f8\u8bbf\u95ee\uff0c\u53ef\u4ee5\u901a\u8fc7IP\u5730\u5740\u7684\u65b9\u5f0f\uff0c\u901a\u8fc7<code>ip addr<\/code>\u547d\u4ee4\u6765\u67e5\u770b\u865a\u62df\u673a\u5404\u81ea\u7684v4\u6216v6\u5730\u5740\uff0c\u518d\u901a\u8fc7\u5730\u5740\u8fde\u63a5\u6216\u8bbf\u95ee<\/p>\n<p>\u53e6\u5916\uff0cOrbStack\u8fd8\u4f1a\u81ea\u52a8\u5c06\u865a\u62df\u673a\u5185\u76d1\u542c\u5728<code>0.0.0.0<\/code>\u6216<code>::<\/code>\u7684\u7aef\u53e3\u8f6c\u53d1\u5230Mac\u7684<code>localhost<\/code>\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u4e5f\u53ef\u4ee5\u5728Mac\u76f4\u63a5\u7528<code>localhost<\/code>\u8bbf\u95ee\u865a\u62df\u673a\u4e2d\u7684\u670d\u52a1<\/p>\n<h4 id=\"ssh\">SSH\n<\/h4><hr>\n<p>Orbstack\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5185\u7f6e\u7684SSH\u670d\u52a1\u5668\uff0c\u53ef\u4ee5\u7528\u4e8e\u767b\u9646\u6240\u6709\u7684Linux\u865a\u62df\u673a<\/p>\n<p>\u8981\u767b\u9646\u9ed8\u8ba4\u7684\u865a\u62df\u673a\uff0c\u53ea\u9700\u8981\u5728Mac\u4e0a\u6267\u884c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">ssh orb\n<\/span><\/span><\/code><\/pre><\/div><p>\u5982\u679c\u8981\u6307\u5b9a\u7528\u6237\u6216\u5176\u4ed6\u865a\u62df\u673a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">ssh user@orb\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ssh user@machine@orb\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u4ee3\u7406\">\u4ee3\u7406\n<\/h4><hr>\n<p>\u6240\u6709\u7684Linux\u865a\u62df\u673a\u4f1a\u81ea\u52a8\u8ddf\u968fMac\u4e2d\u7684\u4ee3\u7406\u914d\u7f6e\uff0c\u4f8b\u5982\u6211\u5728Kitty\u4e2d\u914d\u7f6e\u4e86<code>http_proxy<\/code>\u548c<code>https_proxy<\/code>\uff0c\u90a3\u4e48\u6211\u542f\u52a8\u7684\u865a\u62df\u673a\u4e5f\u5c06\u81ea\u52a8\u5e94\u7528\u8fd9\u4e00\u4ee3\u7406<\/p>\n<p>\u4e5f\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u65b9\u5f0f\u624b\u52a8\u8bbe\u7f6e\u4e0d\u540c\u7684\u4ee3\u7406\u914d\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">orb config <span class=\"nb\">set<\/span> network_proxy http:\/\/example.com  <span class=\"c1\"># \u8bbe\u7f6ehttp\u4ee3\u7406<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb config <span class=\"nb\">set<\/span> network_proxy https:\/\/user:password@example.com:8443  <span class=\"c1\"># \u8bbe\u7f6ehttps\u4ee3\u7406<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb config <span class=\"nb\">set<\/span> network_proxy socks5:\/\/user:password@example.com:1081  <span class=\"c1\"># \u8bbe\u7f6esocks\u4ee3\u7406<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb config <span class=\"nb\">set<\/span> network_proxy auto  <span class=\"c1\"># \u91cd\u7f6e\u4e3a\u7cfb\u7edf\u4ee3\u7406<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb config <span class=\"nb\">set<\/span> network_proxy none  <span class=\"c1\"># \u7981\u7528\u4ee3\u7406<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">orb config show <span class=\"p\">|<\/span> grep network_proxy  <span class=\"c1\"># \u67e5\u770b\u5f53\u524d\u4ee3\u7406\u914d\u7f6e<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u4ee5\u4e0a\u5185\u5bb9\u57fa\u672c\u6db5\u76d6\u4e86\u6211\u5728\u4f7f\u7528Orbstack\u7684\u65f6\u5019\u80fd\u7528\u5230\u7684\u6240\u6709\u529f\u80fd\u548c\u64cd\u4f5c\uff0c\u5e94\u8be5\u5305\u542b\u7edd\u5927\u591a\u6570\u4eba\u7684\u9700\u6c42\u4e86\uff0c\u56e0\u4e3a\u6211\u7684Docker\u57fa\u672c\u90fd\u662f\u8fd0\u884c\u5728\u670d\u52a1\u5668\u548cNAS\u4e0a\uff0c\u6240\u4ee5\u4e3b\u8981\u7528\u7684\u662f\u865a\u62df\u673a\u529f\u80fd\uff0c\u4e2a\u4eba\u4f53\u9a8c\u771f\u7684\u975e\u5e38\u4e0d\u9519\uff0c\u975e\u5e38\u63a8\u8350\u5927\u5bb6\u4f7f\u7528<\/p>\n"},{"title":"Xray \u94fe\u5f0f\u4ee3\u7406\u7684\u65f6\u95f4\u540c\u6b65\u95ee\u9898","link":"https:\/\/been.ee\/p\/0-0-0-66\/","pubDate":"Wed, 24 Dec 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-66\/","description":"<h2 id=\"\u8282\u70b9\u5931\u8054\u95ee\u9898\">\u8282\u70b9\u5931\u8054\u95ee\u9898\n<\/h2><hr>\n<p>\u56e0\u4e3a\u6211\u81ea\u5df1\u670d\u52a1\u5668\u533a\u57df\u6bd4\u8f83\u591a\uff0c\u4e00\u76f4\u4ee5\u6765\u90fd\u662f\u914d\u7f6e\u4e86\u4eceHK\u4e2d\u8f6c\u5230\u5404\u4e2a\u533a\u57df\u7684\u673a\u5668\u4f5c\u4e3a\u51fa\u53e3\uff08\u843d\u5730\uff09\u7684\u4ee3\u7406\u8282\u70b9\uff0c\u867d\u7136\u4e0d\u90fd\u4f1a\u7528\u5f97\u5230\uff0c\u4f46\u95f2\u7f6e\u4e5f\u662f\u95f2\u7f6e\u561b\uff0c\u4e07\u4e00\u54ea\u4e00\u5929\u7528\u4e0a\u4e86\u5462<\/p>\n<p>\u540e\u6765\u53d1\u73b0\u603b\u6709\u51e0\u53f0\u56fa\u5b9a\u7684\u843d\u5730\u8282\u70b9\u9694\u4e00\u6bb5\u65f6\u95f4\u5c31\u4f1a\u5931\u8054\uff08\u670d\u52a1\u5668\u6b63\u5e38\u8bbf\u95ee\uff09\uff0c\u91cd\u542f\u540e\u5c31\u6062\u590d\u6b63\u5e38\uff0c\u4e00\u76f4\u6ca1\u627e\u5230\u539f\u56e0\uff0c\u53ea\u80fd\u6bcf\u9694\u4e00\u6bb5\u65f6\u95f4\u91cd\u542f\u4e00\u4e0b\u90a3\u51e0\u53f0\u673a\u5668<\/p>\n<p>\u76f4\u5230\u6628\u5929\u624d\u53d1\u73b0\u662f\u65f6\u95f4\u540c\u6b65\u51fa\u4e86\u95ee\u9898\uff0c\u90a3\u51e0\u53f0\u843d\u5730\u670d\u52a1\u5668\u6ca1\u6709\u914d\u7f6e\u65f6\u95f4\u540c\u6b65\uff0c\u5bfc\u81f4\u4e48\u8fc7\u4e00\u6bb5\u65f6\u95f4\uff0c\u670d\u52a1\u5668\u65f6\u95f4\u5c31\u4f1a\u53d8\u6162\u6216\u53d8\u5feb\uff0c\u91cd\u542f\u540e\u7cfb\u7edf\u4f1a\u81ea\u52a8\u6821\u5bf9\u65f6\u95f4\uff0c\u6240\u4ee5\u8fde\u63a5\u6062\u590d<\/p>\n<p>\u800cXray\u5bf9\u65f6\u95f4\u6bd4\u8f83\u654f\u611f\uff0c\u6211\u4e4b\u524d\u662f\u77e5\u9053Vless\/Vmess\u534f\u8bae\u9700\u8981\u5bf9\u9f50\u65f6\u95f4\u624d\u80fd\u8fde\u63a5\u4f7f\u7528\uff0c\u800c\u6211\u843d\u5730\u7684\u670d\u52a1\u5668\u7528\u7684Shadowsocks\uff0c\u6240\u4ee5\u4e00\u5f00\u59cb\u6ca1\u60f3\u5230\u65f6\u95f4\u5bf9\u9f50\u7684\u95ee\u9898\uff0c\u4f46\u540e\u6765\u89c9\u5f97\u53ef\u80fd\u7528Xray Core\u8fde\u63a5\u53ef\u80fd\u4f1a\u68c0\u67e5\u65f6\u95f4\u6233\u4e4b\u7c7b\u7684\uff0c\u6700\u540e\u53d1\u73b0\u771f\u7684\u662f\u65f6\u95f4\u7684\u95ee\u9898<\/p>\n<h2 id=\"\u89e3\u51b3\u65b9\u6848\">\u89e3\u51b3\u65b9\u6848\n<\/h2><hr>\n<p>\u901a\u5e38\u5728\u670d\u52a1\u5668\u5b89\u88c5\u81ea\u52a8\u5bf9\u65f6\u7684\u670d\u52a1\u5c31\u53ef\u4ee5\u4e86\uff0c\u9996\u5148\u6267\u884c<code>timedatectl<\/code>\u68c0\u67e5\u4e00\u4e0b\u670d\u52a1\u5668\u662f\u5426\u5f00\u542f\u4e86NTP\u65f6\u95f4\u540c\u6b65\uff0c\u5982\u679c\u5df2\u7ecf\u542f\u7528\u4e86\u4f1a\u60f3\u4e0b\u9762\u4e00\u6837\u663e\u793a<code>NTP service: active<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">root@server:~# timedatectl\n<\/span><\/span><span class=\"line\"><span class=\"cl\">               Local time: Wed 2025-12-24 03:13:14 UTC\n<\/span><\/span><span class=\"line\"><span class=\"cl\">           Universal time: Wed 2025-12-24 03:13:14 UTC\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                 RTC time: Wed 2025-12-24 03:13:14\n<\/span><\/span><span class=\"line\"><span class=\"cl\">                Time zone: Etc\/UTC <span class=\"o\">(<\/span>UTC, +0000<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">System clock synchronized: yes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">              NTP service: active\n<\/span><\/span><span class=\"line\"><span class=\"cl\">          RTC in <span class=\"nb\">local<\/span> TZ: no\n<\/span><\/span><\/code><\/pre><\/div><p>\u5927\u90e8\u5206\u60c5\u51b5\u4e0b\uff0cDebian\u4f1a\u81ea\u5e26\u4e00\u4e2a\u53eb<code>systemd-timesyncd<\/code>\u7684\u8f7b\u91cf\u670d\u52a1\uff0c\u53ef\u4ee5\u7528\u4e8e\u5b9e\u73b0NTP\uff0c\u53ef\u4ee5\u6267\u884c<code>systemctl status systemd-timesyncd<\/code>\u67e5\u770b\u670d\u52a1\u8fd0\u884c\u72b6\u6001\uff0c\u4f46\u6709\u65f6\u5019\u670d\u52a1\u5668\u5b89\u88c5\u4e86\u6700\u5c0f\u5316\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u53ef\u80fd\u6ca1\u6709\u8be5\u670d\u52a1\uff0c\u5c31\u53ef\u4ee5\u8003\u8651\u5b89\u88c5<code>Chrony<\/code>\u6765\u5b9e\u73b0<\/p>\n<p>\u53ef\u4ee5\u6309\u7167\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5\u542f\u7528<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">apt install chrony\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl <span class=\"nb\">enable<\/span> --now chrony\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">timedatectl set-ntp <span class=\"nb\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u518d\u6b21\u6267\u884c<code>timedatectl<\/code>\uff0c\u786e\u8ba4\u4e00\u4e0b\u5e94\u8be5\u5c31\u6b63\u5e38\u542f\u7528\u81ea\u52a8\u5bf9\u65f6\u4e86<\/p>\n<p>\u65f6\u95f4\u90fd\u540c\u6b65\u597d\u540e\uff0c\u5c31\u4f1a\u53d1\u73b0\u4e4b\u524d\u5931\u8054\u7684\u8282\u70b9\u9a6c\u4e0a\u5c31\u6062\u590d\u4e86\uff0c\u4e0d\u9700\u8981\u91cd\u542f\uff0c\u4e5f\u7b97\u662f\u89e3\u51b3\u4e86\u4e00\u4e2a\u957f\u4e45\u4ee5\u6765\u78b0\u5230\u7684\u95ee\u9898<\/p>\n"},{"title":"\u542f\u7528 Mattermost Calls \u901a\u8bdd\u63d2\u4ef6","link":"https:\/\/been.ee\/p\/0-0-0-65\/","pubDate":"Mon, 22 Dec 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-65\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u4e4b\u524d\u6709\u5199\u8fc7\u4e00\u7bc7\u6587\u7ae0\u4ecb\u7ecd<a class=\"link\" href=\"..\/0-0-0-41\/\" >\u642d\u5efaMattermost\u5728\u7ebf\u804a\u5929\u670d\u52a1<\/a>\uff0c\u4f46\u662f\u9ed8\u8ba4\u914d\u7f6e\u7684\u60c5\u51b5\u4e0b\u662f\u65e0\u6cd5\u8fdb\u884c\u8bed\u97f3\u901a\u8bdd\u7684<\/p>\n<p>\u800c\u5b9e\u9645\u4e0aMattermost\u5728\u642d\u5efa\u4e4b\u540e\u9ed8\u8ba4\u5b89\u88c5\u4e86\u4e00\u4e2a\u540d\u4e3aCalls\u7684\u63d2\u4ef6\u6765\u5b9e\u73b0\u8bed\u97f3\u901a\u8bdd\u529f\u80fd\uff0c\u4f46\u662f\u6211\u4eec\u9700\u8981\u914d\u7f6e\u4e00\u4e0b\u624d\u80fd\u4f7f\u7528<\/p>\n<h2 id=\"\u5b89\u88c5\u914d\u7f6ecoturn\u670d\u52a1\">\u5b89\u88c5\u914d\u7f6eCoturn\u670d\u52a1\n<\/h2><hr>\n<p>\u9996\u5148\u9700\u8981\u5b89\u88c5turn\u4e2d\u7ee7\u670d\u52a1\uff0c\u8fd9\u4e2a\u670d\u52a1\u53ef\u4ee5\u4e0eMattermost\u670d\u52a1\u5b89\u88c5\u5728\u4e0d\u540c\u7684\u670d\u52a1\u5668\uff0c\u4f46\u662f\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5b89\u88c5\u7684\u670d\u52a1\u5668<strong>\u6ca1\u6709\u9650\u5236udp\u901a\u4fe1\u624d\u884c<\/strong><\/p>\n<p>\u63a8\u8350\u76f4\u63a5\u6267\u884c<code>apt install coturn<\/code>\u5b89\u88c5\u5f00\u6e90\u514d\u8d39\u7684Coturn\u670d\u52a1<\/p>\n<p>\u5b89\u88c5\u540e\uff0c\u5b83\u7684\u914d\u7f6e\u6587\u4ef6\u4f4d\u4e8e<code>\/etc\/turnserver.conf<\/code>\uff0c\u9ed8\u8ba4\u7ed9\u7684\u6587\u4ef6\u91cc\u914d\u7f6e\u5185\u5bb9\u7e41\u591a\uff0c\u6211\u4eec\u53ef\u4ee5\u5148\u5907\u4efd\u4e00\u4e0b\uff0c\u7136\u540e\u521b\u5efa\u65b0\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u5199\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">listening-port<span class=\"o\">=<\/span><span class=\"m\">3478<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">tls-listening-port<span class=\"o\">=<\/span><span class=\"m\">5349<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">listening-ip<span class=\"o\">=<\/span>0.0.0.0\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u8bbe\u7f6e\u516c\u7f51IP (\u4e91\u670d\u52a1\u5668\u5fc5\u987b\u914d\u7f6e external-ip)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">external-ip<span class=\"o\">=<\/span>1.1.1.1\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u8ba4\u8bc1\u65b9\u5f0f\uff1a\u4f7f\u7528\u957f\u671f\u51ed\u8bc1\u673a\u5236<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">use-auth-secret\n<\/span><\/span><span class=\"line\"><span class=\"cl\">static-auth-secret<span class=\"o\">=<\/span>4983f473ba470db36e3ed8afa7b0612e9c8bd5a22e373704ff530f6496a0248f\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u586b\u5165\u57df\u540d<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">realm<\/span><span class=\"o\">=<\/span>your.coturn.domain\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u7aef\u53e3\u8303\u56f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">min-port<span class=\"o\">=<\/span><span class=\"m\">49152<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">max-port<span class=\"o\">=<\/span><span class=\"m\">65535<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">log-file<span class=\"o\">=<\/span>\/var\/log\/turnserver.log\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u542f\u7528\u6307\u7eb9\u673a\u5236<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">fingerprint\n<\/span><\/span><span class=\"line\"><span class=\"cl\">lt-cred-mech\n<\/span><\/span><\/code><\/pre><\/div><p>\u9700\u8981\u6ce8\u610f\u5c06\u6587\u4ef6\u4e2d\u7684<code>external-ip<\/code>\u66ff\u6362\u4e3a\u81ea\u5df1\u7684\u516c\u7f51ip\uff0c<code>static-auth-secret<\/code>\u53ef\u4ee5\u7528<code>openssl rand -hex 32<\/code>\u751f\u6210\uff0c<code>realm<\/code>\u586b\u5165\u4e00\u4e2a\u81ea\u5df1\u7684\u57df\u540d\uff0c\u5e76\u5c06\u8be5\u57df\u540d\u89e3\u6790\u5230\u516c\u7f51ip<\/p>\n<p>\u914d\u7f6e\u597d\u540e\u6267\u884c<code>systemctl restart coturn<\/code>\u91cd\u542f\u670d\u52a1\uff0c\u52a0\u8f7d\u914d\u7f6e\u5373\u53ef<\/p>\n<blockquote>\n<p>PS: WebRTC\u534f\u8bae\u97f3\u89c6\u9891\u6570\u636e\u5728\u4f20\u8f93\u8fc7\u7a0b\u4e2d\u901a\u5e38\u662f\u901a\u8fc7<strong>DTLS-SRTP<\/strong>\u534f\u8bae\u8fdb\u884c\u7aef\u5230\u7aef\u52a0\u5bc6\u7684\uff0c\u56e0\u6b64\u901a\u5e38\u4e0d\u9700\u8981\u518d\u4e3aturn\u914d\u7f6e\u52a0\u5bc6\uff08turns\uff09\uff0c\u6240\u4ee5\u8fd9\u91cc\u6ca1\u6709\u914d\u7f6eSSL\u8bc1\u4e66<\/p><\/blockquote>\n<h2 id=\"calls\u63d2\u4ef6\u914d\u7f6e\">Calls\u63d2\u4ef6\u914d\u7f6e\n<\/h2><hr>\n<p>\u4f7f\u7528\u7ba1\u7406\u5458\u8d26\u53f7\u767b\u9646Mattermost\uff0c\u7136\u540e\u8fdb\u5165\u7cfb\u7edf\u63a7\u5236\u53f0\uff0c\u5728\u63d2\u4ef6\u4e00\u680f\u627e\u5230Calls\u6253\u5f00\uff0c\u9009\u62e9\u542f\u7528\u63d2\u4ef6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/23\/fv1kbh-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5728\u4e0b\u9762\u7684<strong>RTC \u670d\u52a1\u5668\u914d\u7f6e<\/strong>\u90e8\u5206\u5c06<code>RTC \u670d\u52a1\u5668<\/code>\u5730\u5740\u6539\u4e3a<code>0.0.0.0<\/code>\uff0c\u786e\u4fdd\u76d1\u542c\u6240\u6709\u7f51\u5361<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/23\/gk7t89-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u518d\u5f80\u4e0b\u627e\u5230<strong>ICE \u548c TURN\u914d\u7f6e<\/strong>\u90e8\u5206\uff0c\u5728<code>ICE \u4e3b\u673a\u8986\u76d6<\/code>\u586b\u5199Mattermost\u7684\u516c\u7f51ip\uff0c<code>ICE \u670d\u52a1\u5668\u914d\u7f6e<\/code>\u586b\u5165\u7528\u4e8e\u8fde\u63a5\u6211\u4eec\u521a\u914d\u7f6e\u597d\u7684Coturn\u670d\u52a1\uff0c\u6309\u7167\u4e0b\u9762\u683c\u5f0f\u586b\u5199\uff0c\u9700\u8981\u5c06\u57df\u540d\u66ff\u6362\u4e3a\u81ea\u5df1\u521a\u8bbe\u7f6e\u7684\u57df\u540d<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-json\" data-lang=\"json\"><span class=\"line\"><span class=\"cl\"><span class=\"p\">[<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nt\">&#34;urls&#34;<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"s2\">&#34;turn:your.turn.domain:3478?transport=udp&#34;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;turn:your.turn.domain:3478?transport=tcp&#34;<\/span><span class=\"p\">],<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nt\">&#34;username&#34;<\/span><span class=\"p\">:<\/span> <span class=\"s2\">&#34;&#34;<\/span><span class=\"p\">,<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nt\">&#34;credential&#34;<\/span><span class=\"p\">:<\/span> <span class=\"s2\">&#34;&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">]<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e<code>TURN \u9759\u6001\u8ba4\u8bc1\u5bc6\u94a5<\/code>\u586b\u5199Coturn\u914d\u7f6e\u4e2d\u7684<code>static-auth-secret<\/code>\u7684\u503c<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/23\/gordsf-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u4e0a\u9762\u5185\u5bb9\u914d\u7f6e\u597d\u540e\u70b9\u51fb\u4fdd\u5b58\u5373\u53ef\u5b8c\u6210\u914d\u7f6e\uff0c\u6d4b\u8bd5\u4e00\u4e0b\u6ca1\u6709\u95ee\u9898\u5c31\u5927\u529f\u544a\u6210\u5566<\/p>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u5982\u679c\u6700\u540e\u53d1\u73b0\u8fd8\u662f\u65e0\u6cd5\u8fdb\u884c\u901a\u8bdd\uff0c\u53ef\u80fd\u4f1a\u62a5\u9519<code>Error: unable to connect to the voice call: time out waiting for peer connection.<\/code>\uff0c\u6216\u8005\u50cf\u662f\u4e0b\u56fe\u62a5\u9519\u8bf4\u660e<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/23\/guylzt-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5982\u679c\u914d\u7f6e\u90fd\u6ca1\u95ee\u9898\uff0c\u90a3\u4e48\u5f88\u6709\u53ef\u80fd\u662fCoturn\u670d\u52a1\u6240\u5728\u7684\u670d\u52a1\u5668\u65e0\u6cd5\u4f7f\u7528UDP\u901a\u4fe1\uff0c\u53ef\u4ee5\u6362\u4e00\u53f0\u670d\u52a1\u5668\u8bd5\u4e00\u4e0b<\/p>\n"},{"title":"\u7532\u9aa8\u6587 (Oracle) \u4e91\u670d\u52a1\u5668\u6ce8\u518c\u7533\u8bf7\u4e0e\u6ce8\u610f\u4e8b\u9879","link":"https:\/\/been.ee\/p\/0-0-0-64\/","pubDate":"Mon, 08 Dec 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-64\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>Oracle\u4e91\u670d\u52a1\u5668\uff0c\u6709\u65f6\u5019\u6211\u4eec\u4e5f\u79f0\u4e4b\u4e3a&quot;<strong>\u7532\u9aa8\u6587<\/strong>&ldquo;\u6216\u8005&rdquo;<strong>\u9f9f\u58f3<\/strong>&quot;\uff0c\u5b83\u7684\u6ce8\u518c\u4e00\u76f4\u4ee5\u6765\u90fd\u662f\u4e00\u95e8\u7384\u5b66\uff0c\u7ecf\u5e38\u5728\u8bba\u575b\u7b49\u5404\u79cd\u5730\u65b9\u80fd\u770b\u5230\u6709\u4eba\u7b2c\u4e00\u6b21\u6ce8\u518c\u5c31\u80fd\u6210\u529f\uff0c\u6709\u4e9b\u4eba\u6ce8\u518c\u51e0\u5e74\u90fd\u5931\u8d25\uff0c\u5f53\u7136\u6839\u672c\u4e0a\u6765\u8bf4\u8fd8\u662f\u56e0\u4e3aOracle\u5bf9\u6ce8\u518c\u7684\u98ce\u63a7\u975e\u5e38\u4e25\u683c\uff0c\u6bd5\u7adf\u4eba\u5bb6\u63d0\u4f9b\u514d\u8d39\u7684\u670d\u52a1\uff0c\u81ea\u7136\u5c31\u4f1a\u6709\u5f88\u591a\u4eba\u6765\u8585\uff0c\u6240\u4ee5\u4e5f\u53ef\u4ee5\u7406\u89e3\uff0c\u4f46\u8fd9\u4e5f\u5c31\u5bfc\u81f4\u4e86\u73b0\u5728\u60f3\u6ce8\u518c\u4e00\u4e2a\u8d26\u53f7\u975e\u5e38\u96be<\/p>\n<p>\u6211\u81ea\u5df1\u7684\u8bdd\u5927\u6982\u65ad\u65ad\u7eed\u7eed\u6ce8\u518c\u4e86\u4e24\u4e09\u5e74\u4e86\uff0c\u4f46\u4e00\u76f4\u90fd\u662f&quot;<strong>abc<\/strong>&quot;\uff08\u6ce8\u518c\u5931\u8d25\u4f1a\u63d0\u793a\u4e0b\u56fe\u6240\u793a\u7684&quot;<strong>abc<\/strong>&ldquo;\u754c\u9762\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/08\/imiplm-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6211\u81ea\u5df1\u4e5f\u672c\u7740\u968f\u7f18\u6ce8\u518c\u7684\u5fc3\u6001\uff0c\u4e00\u76f4\u662f\u54ea\u5929\u60f3\u8d77\u6765\u4f1a\u53bb\u6ce8\u518c\u4e00\u4e0b\uff0c\u4f46\u4e00\u76f4\u4ee5\u6765\u4e5f\u6ca1\u6210\u529f\u8fc7<\/p>\n<p>\u76f4\u5230\u6628\u5929\u665a\u4e0a\uff0c\u6211\u5728\u901b\u8bba\u575b\u7684\u65f6\u5019\u770b\u5230\u6709\u4eba\u8bf4\u6ce8\u518c\u6210\u529f\u4e86\uff0c\u6211\u81ea\u5df1\u4e5f\u597d\u4e45\u6ca1\u6ce8\u518c\u4e86\u5c31\u60f3\u7740\u8bd5\u4e00\u8bd5\uff0c\u7ed3\u679c\u51fa\u4e4e\u610f\u6599\u7684\u6210\u529f\u4e86\uff01\u4e5f\u7b97\u662f\u8fd1\u6bb5\u65f6\u95f4\u6bd4\u8f83\u503c\u5f97\u9ad8\u5174\u7684\u4e8b\u4e86\uff0c\u7d22\u6027\u5c31\u5199\u4e00\u7bc7\u535a\u5ba2\u8bb0\u5f55\u4e00\u4e0b<\/p>\n<p><strong>\u4f46\u8bf7\u8c28\u8bb0\uff1a\u7532\u9aa8\u6587\u8d26\u53f7\u7684\u6ce8\u518c\u6ca1\u6709\u767e\u5206\u767e\u7684\u6559\u7a0b\uff0c\u6709\u7684\u53ea\u662f\u7384\u5b66\u4e0e\u731c\u6d4b\uff0c\u5927\u5bb6\u6ce8\u518c\u8fd8\u662f\u5c3d\u91cf\u4fdd\u6301\u597d\u5fc3\u6001\uff0c\u968f\u7f18\u5c31\u597d<\/strong><\/p>\n<h2 id=\"\u51c6\u5907\">\u51c6\u5907\n<\/h2><hr>\n<p>\u6ce8\u518c\u7532\u9aa8\u6587\u6700\u91cd\u8981\u7684\u662f\u8981\u6709\u4e00\u5f20\u5916\u5e01\u4fe1\u7528\u5361\uff0c\u901a\u5e38\u4f7f\u7528<strong>Mastercard (\u4e07\u4e8b\u8fbe)\u3001VISA (\u7ef4\u8428)\u6216\u8005American Express (Amex, \u8fd0\u901a)<\/strong><\/p>\n<p>\u4fe1\u7528\u5361\u662f\u6700\u57fa\u672c\u4e5f\u662f\u6700\u91cd\u8981\u7684\uff0c\u6240\u4ee5\u6ce8\u518c\u524d\u4e00\u5b9a\u8981\u6709\u51c6\u5907\u4e00\u5f20<\/p>\n<blockquote>\n<p><strong>PS\uff1a\u4f3c\u4e4e\u662f\u4e5f\u770b\u5230\u6709\u4eba\u7528\u501f\u8bb0\u5361\u6210\u529f\u7684\u6848\u4f8b\uff0c\u4f46\u6bd4\u8f83\u5c11\uff0c\u6700\u597d\u8fd8\u662f\u7528\u4fe1\u7528\u5361\uff0c\u4e5f\u65b9\u4fbf\u540e\u7eed\u6263\u8d39\u9a8c\u5361<\/strong><\/p><\/blockquote>\n<h2 id=\"\u6ce8\u518c\u6d41\u7a0b\">\u6ce8\u518c\u6d41\u7a0b\n<\/h2><hr>\n<p>\u6211\u4ee5\u524d\u4e5f\u770b\u591a\u5f88\u591a\u6ce8\u518c\u6559\u7a0b\uff0c\u5176\u5b9e\u90fd\u4e0d\u5b8c\u5168\u4e00\u6837\uff0c\u8fd9\u6b21\u6ce8\u518c\u6211\u6ca1\u6709\u53c2\u8003\u4efb\u4f55\u6559\u7a0b\uff0c\u8fd9\u91cc\u6211\u5c31\u4ecb\u7ecd\u6211\u81ea\u5df1\u7684\u6ce8\u518c\u8fc7\u7a0b<\/p>\n<p>\u9996\u5148\u6211\u662f\u7528\u624b\u673a\u6ce8\u518c\u7684\uff0c\u4f46\u4e5f\u6709\u5f88\u591a\u4eba\u662f\u7528\u7535\u8111\u6ce8\u518c\u7684\uff0c\u90fd\u662f\u53ef\u4ee5\u7684<\/p>\n<p>\u786e\u4fdd\u6ce8\u518c\u73af\u5883<strong>\u4e0d\u4f7f\u7528\u4efb\u4f55\u4ee3\u7406(\u68af\u5b50)<\/strong>\uff0c\u6211\u81ea\u5df1\u662f\u7528<strong>\u8054\u901a\u624b\u673a\u5361\u8702\u7a9d\u7f51\u7edc\u6d41\u91cf<\/strong>\u6ce8\u518c\uff0c\u7136\u540e\u6253\u5f00\u624b\u673aChrome\u6d4f\u89c8\u5668\uff0c\u8fdb\u5165<strong>\u65e0\u75d5\u6a21\u5f0f<\/strong>\uff0c\u8fdb\u5165Oracle\u7684\u4e2d\u6587\u6ce8\u518c\u7f51\u7ad9<a class=\"link\" href=\"https:\/\/www.oracle.com\/cn\/cloud\/free\/\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/www.oracle.com\/cn\/cloud\/free\/<\/a>\uff0c\u70b9\u51fb\u7acb\u5373\u514d\u8d39\u8bd5\u7528<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/05\/126wpr7-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8fdb\u5165\u4e0b\u9762\u6240\u793a\u754c\u9762<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/05\/127ehi2-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p><strong>\u56fd\u5bb6\/\u5730\u533a\u9009\u62e9\u4e2d\u56fd<\/strong>\uff0c<strong>\u540d\u5b57\u548c\u59d3\u6c0f\u5168\u90e8\u7528\u5927\u5199\u5b57\u6bcd\u5206\u522b\u586b\u5165\u81ea\u5df1\u771f\u5b9e\u59d3\u540d<\/strong>\uff0c<strong>\u7535\u5b50\u90ae\u4ef6\u586b\u7684\u662fQQ\u90ae\u7bb1<\/strong>\uff0c\u7136\u540e\u9a8c\u8bc1\u7535\u5b50\u90ae\u4ef6<\/p>\n<p>\u91cd\u65b0\u5f00\u4e00\u4e2a\u65e0\u75d5\u9875\u9762\uff0c\u767b\u9646QQ\u90ae\u7bb1\uff0c\u4f1a\u6536\u5230\u7532\u9aa8\u6587\u53d1\u6765\u7684\u4e00\u5c01\u90ae\u4ef6\uff0c\u5305\u542b\u9a8c\u8bc1\u94fe\u63a5\u5982\u4e0b\u56fe\uff0c\u7136\u540e\u70b9\u51fbVerify Email\uff0c\u6253\u5f00\u8fd9\u4e2a\u94fe\u63a5<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/05\/12ahgdy-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6253\u5f00\u94fe\u63a5\u540e\uff0c\u9700\u8981\u586b\u5199\u7684\u5185\u5bb9\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u9996\u5148<strong>\u5907\u7528\u59d3\u540d\u7684\u5730\u65b9\u5168\u90e8\u7528\u82f1\u6587\u5b57\u6bcd\u5927\u5199\u586b\u5199\u521a\u521a\u586b\u7684\u59d3\u540d\uff0c\u59d3\u5728\u524d\u540d\u5728\u540e\uff0c\u65e0\u7a7a\u683c<\/strong><\/p>\n<p>\u7136\u540e\u9700\u8981\u6309\u8981\u6c42\u586b\u5165\u5bc6\u7801\uff0c<strong>Customer type\u9009\u62e9Individual<\/strong>\uff0c\u4e5f\u5c31\u662f\u4e2a\u4eba\u7528\u6237\uff0c\u8d26\u6237\u540d\u79f0\u53ef\u4ee5\u4fee\u6539\u4e5f\u53ef\u4ee5\u9ed8\u8ba4\uff0c\u540e\u9762\u6ce8\u518c\u6210\u529f\u4f1a\u53d1\u7ed9\u4f60<\/p>\n<p>\u6700\u540e\u5c31\u662f<strong>\u9009\u62e9\u4e3b\u533a\u57df<\/strong>\uff0c\u9009\u62e9\u4e00\u4e2a\u60f3\u8981\u6ce8\u518c\u7684\u533a\u57df\uff0c\u6211\u9009\u62e9\u7684\u662f\u6fb3\u6d32\u6089\u5c3c\uff0c\u4e00\u822c\u9009\u4e9a\u592a\u548c\u7f8e\u56fd\u7684\u6bd4\u8f83\u591a\uff0c\u4f46\u4e5f\u5bfc\u81f4\u8d44\u6e90\u6bd4\u8f83\u7d27\u5f20\uff0c\u5c31\u7b97\u6ce8\u518c\u6210\u529f\u5982\u679c\u4e0d\u5347\u7ea7\u8d26\u53f7\u4e00\u822c\u90fd\u6ca1\u6709\u8d44\u6e90\u8ba9\u4f60\u5f00\u673a\u5668<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/05\/12h2bg1-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u586b\u597d\u540e\u70b9\u51fb\u6700\u4e0b\u65b9\u7ee7\u7eed\uff0c\u5c31\u6765\u5230\u4e0b\u4e00\u4e2a\u754c\u9762\uff0c\u5982\u4e0b\u56fe\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/05\/12ivyc1-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8fd9\u91cc\u6709\u4e09\u884c\u5730\u5740\uff0c\u6bcf\u4e00\u884c\u90fd\u7528<strong>\u82f1\u6587\u5927\u5199\u586b\u5199\uff0c\u65e0\u7a7a\u683c<\/strong>\u3002<strong>\u7b2c\u4e00\u884c\u586b\u5199\u4f4f\u7684\u5c0f\u533a\uff0c\u7b2c\u4e8c\u884c\u586b\u5199\u8def\u540d\uff0c\u7b2c\u4e09\u884c\u586b\u5199\u533a\u540d<\/strong><\/p>\n<p>\u7136\u540e<strong>\u57ce\u5e02\u3001\u7701\u4efd\u548c\u90ae\u7f16\u4f9d\u65e7\u5168\u90e8\u7528\u82f1\u6587\u5b57\u6bcd\u5927\u5199\u586b\u5199\u771f\u5b9e\u4fe1\u606f<\/strong><\/p>\n<p>\u6700\u540e<strong>\u7535\u8bdd\u53f7\u7801\u5982\u5b9e\u586b\u5199<\/strong>\u540e\u70b9\u51fb\u7ee7\u7eed\uff0c\u8fdb\u5165\u4e0b\u4e00\u4e2a\u754c\u9762\u5982\u56fe\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/05\/12lof4d-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\u5c31\u662f\u6700\u540e\u4e00\u6b65\u4e86\uff0c\u4e5f\u5c31\u662f\u9a8c\u5361\uff0c\u70b9\u51fb\u6dfb\u52a0\u4ed8\u6b3e\u9a8c\u8bc1\u65b9\u5f0f\uff0c\u5c31\u4f1a\u5f39\u51fa\u4e0b\u9762\u7a97\u53e3\uff0c\u62c9\u5230\u6700\u4e0b\u65b9\u586b\u5165\u4fe1\u7528\u5361\u4fe1\u606f\uff0c\u6211\u7528\u7684\u662f<strong>\u5de5\u884c\u4e07\u4e8b\u8fbe\u4fe1\u7528\u5361<\/strong><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/08\/iluufw-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u586b\u597d\u540e\u70b9\u51fbFinish\uff0c\u5982\u679c\u4f60\u7684\u4fe1\u7528\u5361\u6ca1\u95ee\u9898\uff0c\u90a3\u4e48\u5c31\u5e94\u8be5\u80fd\u770b\u5230\u4e0b\u9762\u8fd9\u4e2a\u9a8c\u5361\u6210\u529f\u7684\u754c\u9762\uff0c\u7136\u800c\u9a8c\u5361\u6210\u529f\u5e76\u4e0d\u4e00\u5b9a\u80fd\u6210\u529f\u6ce8\u518c<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/08\/im56by-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u9a8c\u5361\u6210\u529f\u540e\uff0c\u52fe\u9009\u4e0b\u65b9\u540c\u610f\u534f\u8bae\uff0c\u70b9\u51fb\u5f00\u59cb\u6211\u7684\u514d\u8d39\u8bd5\u7528\uff0c\u7136\u540e\u7b49\u5f85\u5c31\u77e5\u9053\u6210\u529f\u4e0e\u5426\u4e86<\/p>\n<p>\u5982\u679c\u5931\u8d25\u4e86\uff0c\u5c31\u4f1a\u7167\u65e7\u663e\u793a**&ldquo;abc&rdquo;<strong>\u754c\u9762\uff0c\u5982\u679c\u6210\u529f\u4e86\uff0c\u5c31\u8ddf\u6211\u4e00\u6837\u663e\u793a\u4e0b\u9762\u7684<\/strong>&ldquo;\u8dd1\u9053&rdquo;**\u754c\u9762<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/08\/ir85sl-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"b0528a80a803747fde47af80aa1eb9e5.png\"\n\t\n\t\n><\/p>\n<p>\u8fd9\u65f6\u5019\u4ec0\u4e48\u4e5f\u4e0d\u8981\u70b9\uff0c\u8981\u7b49\u5f85\u4e00\u4f1a\uff0c\u4f1a\u51fa\u73b0\u4e0b\u9762\u754c\u9762<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/12\/08\/irv67h-1.webp\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"52cbf804c45e5ad0a7cef0330d29e261.png\"\n\t\n\t\n><\/p>\n<p>\u8fd9\u65f6\u5019\u5c31\u53ef\u4ee5\u5173\u95ed\u4e86\uff0c\u7b49\u5f85\u7532\u9aa8\u6587\u7ed9\u4f60\u53d1\u90ae\u4ef6\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u767b\u5f55\uff08\u5c3d\u91cf\u4fdd\u8bc1\u8ddf\u6ce8\u518c\u73af\u5883\u76f8\u540c\uff09\u521b\u5efa\u5b9e\u4f8b\u5566<\/p>\n<h2 id=\"\u8d26\u53f7\u5347\u7ea7\">\u8d26\u53f7\u5347\u7ea7\n<\/h2><hr>\n<p>\u6709\u4e9b\u70ed\u95e8\u533a\u57df\uff08\u4e3b\u8981\u662f\u4e9a\u592a\u533a\u57df\uff09\u5373\u4f7f\u6ce8\u518c\u6210\u529f\u4e5f\u65e0\u6cd5\u521b\u5efa\u5b9e\u4f8b\uff0c\u4f1a\u63d0\u793a\u5bb9\u91cf\u4e0d\u8db3<\/p>\n<p>\u8fd9\u79cd\u60c5\u51b5\u4e0b\u5c31\u53ea\u6709\u5347\u7ea7\u4ed8\u8d39\u8d26\u6237\u624d\u80fd\u5f00\u673a\u5668\uff0c\u4f46\u662f\u4e5f\u4e0d\u7528\u62c5\u5fc3\uff0c\u5347\u7ea7\u8d26\u53f7\u540e\u53ea\u8981\u4e0d\u8d85\u8fc7\u514d\u8d39\u914d\u989d\u7684\u8bdd\uff08\u4e0b\u9762\u4f1a\u8bb2\uff09\uff0c\u4e5f\u662f\u4e0d\u4f1a\u6536\u8d39\u7684<\/p>\n<p>\u6211\u81ea\u5df1\u6ce8\u518c\u7684\u6fb3\u6d32\u6089\u5c3c\u533a\u57df\u4e0d\u5347\u7ea7\u8d26\u53f7\u53ea\u80fd\u5f00AMD\uff0c\u5f00\u4e0d\u4e86ARM\uff0c\u6240\u4ee5\u5f53\u665a\u6ca1\u591a\u4e45\u6211\u5c31\u76f4\u63a5\u7533\u8bf7\u5347\u7ea7\u4e86\uff0c\u5e76\u6210\u529f\u5f00\u4e86ARM<\/p>\n<blockquote>\n<p>\u8d26\u53f7\u5347\u7ea7\u6ce8\u610f\u4e8b\u9879:<\/p>\n<ul>\n<li>\n<p>\u5347\u7ea7\u8d26\u53f7\u8981<strong>\u786e\u4fdd\u8ddf\u6ce8\u518c\u73af\u5883\u4e00\u81f4<\/strong>\uff0c\u5426\u5219\u6709\u5c01\u53f7\u98ce\u9669<\/p>\n<\/li>\n<li>\n<p>\u5347\u7ea7\u8d26\u53f7\u7684\u65f6\u5019\u8fd8\u4f1a\u9a8c\u4e00\u6b21\u5361\uff0c\u56e0\u4e3a\u6ce8\u518c\u7684\u65f6\u5019\u5df2\u7ecf\u7ed1\u5361\u4e86\uff0c\u6240\u4ee5\u4f1a\u76f4\u63a5\u9a8c\u8fd9\u5f20\u5361\uff0c\u4f46\u6211\u81ea\u5df1\u7b2c\u4e00\u6b21\u5347\u7ea7\u9a8c\u5361\u7684\u65f6\u5019\u5931\u8d25\u4e86\uff0c\u7136\u540e\u53c8\u91cd\u65b0\u6dfb\u52a0\u5361\uff08\u540c\u4e00\u5f20\u5361\uff09\uff0c\u7b2c\u4e8c\u6b21\u9a8c\u5361\u5c31\u6210\u529f\u4e86<\/p>\n<\/li>\n<li>\n<p>\u5347\u7ea7\u9a8c\u5361\u6263\u8d39\u6bd4\u8f83\u591a\uff0c\u6211\u662f\u6263\u4e86138.19\u65b0\u5e01\uff0c\u4f46\u57fa\u672c\u4e0a\u662f\u79d2\u89e3\u51bb\u5e76\u8fd4\u8fd8\u4e86<\/p>\n<\/li>\n<li>\n<p>\u63d0\u4ea4\u5347\u7ea7\u7533\u8bf7\u540e\u9700\u8981\u7b49\u5f85\uff0c\u6210\u529f\u540e\u4f1a\u53d1\u9001\u90ae\u4ef6\u7ed9\u4f60\uff0c\u6211\u5927\u6982\u662f\u4e09\u4e2a\u5c0f\u65f6\u5de6\u53f3\u540e\u6536\u5230\u5347\u7ea7\u6210\u529f\u7684\u90ae\u4ef6<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<h2 id=\"\u514d\u8d39\u989d\u5ea6\u8bf4\u660e\">\u514d\u8d39\u989d\u5ea6\u8bf4\u660e\n<\/h2><hr>\n<h3 id=\"\u8d26\u6237\u786c\u76d8\u603b\u5bb9\u91cf\u9650\u5236\">\u8d26\u6237\u786c\u76d8\u603b\u5bb9\u91cf\u9650\u5236\n<\/h3><hr>\n<p><strong>\u4e00\u5171\u6709200G\u514d\u8d39\u786c\u76d8\u989d\u5ea6<\/strong>\uff0c\u4f46\u662f\u6bcf\u53f0\u673a\u5668\u9650\u5236\u6700\u5c1150G\uff0c\u6240\u4ee5\u786c\u76d8\u5bb9\u91cf\u9650\u5236\u4e86<strong>\u6700\u591a\u53ea\u80fd\u514d\u8d39\u5f00\u56db\u53f0\u673a\u5668<\/strong><\/p>\n<h3 id=\"amd\u673a\u5668\u6570\u91cf\u9650\u5236\">AMD\u673a\u5668\u6570\u91cf\u9650\u5236\n<\/h3><hr>\n<p>AMD\u673a\u5668\u662f\u9650\u5236<strong>\u53ea\u80fd\u514d\u8d39\u5f00\u4e24\u53f01C 1G\u7684\u673a\u5668<\/strong>\uff08<code>VM.Standard.E2.1.Micro<\/code>\uff09<\/p>\n<h3 id=\"arm\u673a\u5668\u914d\u7f6e\u9650\u5236\">ARM\u673a\u5668\u914d\u7f6e\u9650\u5236\n<\/h3><hr>\n<p>ARM\u673a\u5668\u662f\u9650\u5236<strong>\u6700\u5927\u80fd\u514d\u8d39\u5f004C 24G\u7684\u673a\u5668\uff0c\u53ef\u4ee5\u968f\u610f\u7ec4\u5408\u914d\u7f6e<\/strong>\uff08<code>VM.Standard.A1.Flex<\/code>\uff09\uff0c\u6bd4\u5982\u53ef\u4ee5\u5f00\u4e00\u53f04C 24G\uff0c\u6216\u80054\u53f01C 6G\u7b49<\/p>\n<p>\u6bd4\u8f83\u63a8\u8350\u7684\u65b9\u6848\u662f\u53ef\u4ee5\u50cf\u6211\u4e00\u6837\u5f00\u4e00\u53f01C 1G 50G\u7684AMD\u548c\u4e00\u53f04C 24G 150G\u7684ARM\uff0c\u6216\u8005\u53ea\u5f00\u4e00\u53f04C 24G 200G\u7684ARM\uff0c\u56e0\u4e3a\u514d\u8d39\u7684AMD\u673a\u5668\u6bd4\u8f83\u9e21\u808b\uff0c\u6027\u80fd\u6bd4\u8f83\u5f31\uff0c\u5e26\u5bbd\u4e5f\u6bd4\u8f83\u5c0f<\/p>\n<h3 id=\"\u8d26\u6237\u6d41\u91cf\u9650\u5236\">\u8d26\u6237\u6d41\u91cf\u9650\u5236\n<\/h3><hr>\n<p><strong>\u5982\u679c\u4e0d\u5347\u7ea7\u8d26\u53f7\uff0c\u7531\u4e8e\u4e0d\u4f1a\u6263\u8d39\uff0c\u6240\u4ee5\u6d41\u91cf\u662f\u6ca1\u6709\u9650\u5236\u7684<\/strong><\/p>\n<p><strong>\u5982\u679c\u5347\u7ea7\u4e86\u8d26\u53f7\uff0c\u5165\u7ad9\u6d41\u91cf\u662f\u4e0d\u6536\u8d39\u7684\uff0c\u51fa\u7ad9\u6d41\u91cf\u6bcf\u6708\u53ea\u670910T\u7684\u514d\u8d39\u989d\u5ea6\uff0c\u8d26\u53f7\u5171\u4eab\uff0c\u8981\u6ce8\u610f\u4e0d\u8981\u8d85\u989d<\/strong><\/p>\n<h2 id=\"\u8de8\u533a\u95ee\u9898\">\u8de8\u533a\u95ee\u9898\n<\/h2><hr>\n<h3 id=\"\u8de8\u533a\u98ce\u9669\">\u8de8\u533a\u98ce\u9669\n<\/h3><hr>\n<p>\u7532\u9aa8\u6587\u5347\u7ea7\u8d26\u53f7\u540e\u5c31\u53ef\u4ee5\u8de8\u533a\u521b\u5efa\u5b9e\u4f8b\u4e86\uff0c\u4f46\u8981\u6ce8\u610f\u8de8\u533a\u6709\u98ce\u9669\uff0c\u6839\u636e\u5927\u5bb6\u53d1\u7684\u5e16\u5b50\u6765\u770b\uff0c<strong>\u8de8\u533a\u53ef\u80fd\u4f1a\u589e\u52a0\u5c01\u53f7\u7684\u6982\u7387<\/strong><\/p>\n<h3 id=\"\u8de8\u533a\u8d44\u6e90\u914d\u7f6e\u95ee\u9898\">\u8de8\u533a\u8d44\u6e90\u914d\u7f6e\u95ee\u9898\n<\/h3><hr>\n<p>\u9996\u5148\u8981\u6ce8\u610f\u7684\u662f\uff0c\u4e0a\u9762\u8bf4\u5230\u7684<strong>200G\u514d\u8d39\u78c1\u76d8\u5bb9\u91cf\u548c2\u53f0\u514d\u8d39AMD\u914d\u989d\u53ea\u80fd\u7528\u4e8e\u4e3b\u533a\u57df\uff0c\u5982\u679c\u8981\u8de8\u533a\u521b\u5efa\u670d\u52a1\u5668\u7684\u8bdd\uff0c\u78c1\u76d8\u662f\u4e00\u5b9a\u8981\u6536\u8d39\u7684\uff0c\u5e76\u4e14\u4e0d\u80fd\u514d\u8d39\u5f00AMD\u673a\u5668<\/strong><\/p>\n<p>\u4f46\u662f<strong>ARM\u673a\u5668\u7ed9\u76844C 24G\u514d\u8d39\u914d\u989d\u662f\u53ef\u4ee5\u548c\u4e3b\u533a\u57df\u5171\u4eab\u7684<\/strong>\uff0c\u4e5f\u5c31\u662f\u8bf4\u53ef\u4ee5\u8de8\u533a\u514d\u8d39\u5f00ARM\uff0c\u53ea\u8981\u548c\u4e3b\u533a\u57dfARM\u673a\u5668\u914d\u7f6e\u52a0\u8d77\u6765\u4e0d\u8d85\u8fc74C 24G\u5c31\u4e0d\u4f1a\u6536\u8d39\uff0c\u4f46\u5982\u679c\u4e3b\u533a\u57df\u628aARM\u76844C 24G\u914d\u989d\u7528\u5149\u4e86\uff0c\u90a3\u8de8\u533a\u518d\u5f00ARM\u914d\u7f6e\u5c31\u8981\u6536\u8d39\u4e86<\/p>\n<blockquote>\n<p><strong>\u603b\u7ed3\uff1a\u7b80\u5355\u7684\u8bf4\u5c31\u662f\uff0c\u5982\u679c\u8de8\u533a\u7684\u8bdd\uff0c\u53ea\u6709ARM\u7684\u6838\u5fc3\u548c\u5185\u5b58\u80fd\u8ddf\u4e3b\u533a\u5171\u4eab\u514d\u8d39\u914d\u989d\uff0c\u5176\u4ed6\u914d\u7f6e\u90fd\u8981\u6536\u8d39\uff0c\u6240\u4ee5\u8981\u8c28\u614e\uff0c\u5c0f\u5fc3\u88ab\u53cd\u8585<\/strong><\/p><\/blockquote>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u4ee5\u4e0a\u5c31\u662f\u6211\u81ea\u5df1\u5f00\u7532\u9aa8\u6587\u7684\u6d41\u7a0b\u8bb0\u5f55\u4ee5\u53ca\u4f7f\u7528\u65f6\u7684\u6ce8\u610f\u4e8b\u9879\uff0c\u622a\u6b62\u5230\u672c\u6587\u53d1\u51fa\uff0c\u5df2\u7ecf\u5b58\u6d3b3\u5929\uff0c\u5e0c\u671b\u80fd\u6d3b\u5f97\u4e45\u4e00\u70b9\u5427<\/p>\n"},{"title":"\u725b\u6d25\u4eea\u5668MFP3D\u578b\u539f\u5b50\u529b\u663e\u5fae\u955c\u64cd\u4f5c\u7b14\u8bb0","link":"https:\/\/been.ee\/p\/0-0-0-63\/","pubDate":"Tue, 25 Nov 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-63\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u672c\u7bc7\u7bc7\u5e45\u8f83\u957f\uff0c\u4e14\u6240\u6709\u5185\u5bb9\u5747\u4e3a\u9488\u5bf9\u725b\u6d25\u539f\u5b50\u529b\u663e\u5fae\u955c\uff08AFM\uff09\uff08\u578b\u53f7\u4e3a<strong>MFP3D Origin+ AFM - Oxford Instruments<\/strong>\uff09\u7684\u4f7f\u7528\u548c\u64cd\u4f5c\u8fdb\u884c\u7684\u8bb0\u5f55\u548c\u8bf4\u660e<\/p>\n<blockquote>\n<ul>\n<li>\n<p>PS1\uff1a\u9700\u8981\u8bf4\u660e\u4e00\u4e0b\uff0cAFM\u7684\u64cd\u4f5c\u7ec6\u8282\u5176\u5b9e\u6bd4\u8f83\u591a\uff0c\u4f5c\u8005\u76ee\u524d\u4e5f\u662f\u521d\u5b66\u9636\u6bb5\uff0c\u4e0d\u80fd\u4fdd\u8bc1\u672c\u6587\u5185\u5bb9\u9762\u9762\u4ff1\u5230\uff0c\u672c\u6587\u5c06\u5c3d\u4f5c\u8005\u6240\u80fd\u53bb\u8868\u8ff0\uff0c\u5982\u6709\u504f\u5dee\uff0c\u6b22\u8fce\u4e13\u4e1a\u4eba\u58eb\u6307\u6b63<\/p>\n<\/li>\n<li>\n<p>PS2\uff1a\u672c\u7bc7\u5185\u5bb9\u539f\u5199\u4e8e2024\u5e7411\u6708\u5e76\u76f4\u52302025\u5e74\u4e0a\u534a\u5e74\u4e00\u76f4\u6709\u5728\u8865\u5145\uff0c\u4f46\u540e\u9762\u7531\u4e8e\u79cd\u79cd\u539f\u56e0\u4e0d\u518d\u7ecf\u5e38\u63a5\u89e6\u548c\u4f7f\u7528\u8be5\u4eea\u5668\uff0c\u539f\u672c\u60f3\u518d\u5b8c\u5584\u4e00\u4e0b\u7bc7\u5e45\u518d\u53d1\u8868\uff0c\u4f46\u53d7\u9650\u4e8e\u5b66\u4e60\u548c\u4f7f\u7528\u9891\u7387\uff0c\u53ef\u80fd\u77ed\u65f6\u95f4\u96be\u4ee5\u8fdb\u4e00\u6b65\u6269\u5145\u5185\u5bb9\uff0c\u6240\u4ee5\u6211\u5728\u5bf9\u5185\u5bb9\u8fdb\u884c\u4e86\u4e00\u4e9b\u7b80\u8981\u8865\u5145\u548c\u6574\u7406\u540e\u5c31\u5148\u53d1\u4e86\u51fa\u6765\uff0c\u5c06\u5728\u540e\u7eed\u6839\u636e\u8fdb\u4e00\u6b65\u4f7f\u7528\u548c\u5b66\u4e60\u60c5\u51b5\u8fdb\u884c\u8865\u5145<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<h2 id=\"\u539f\u5b50\u529b\u663e\u5fae\u955cafm\u4ecb\u7ecd\">\u539f\u5b50\u529b\u663e\u5fae\u955c\uff08AFM\uff09\u4ecb\u7ecd\n<\/h2><hr>\n<p>\u539f\u5b50\u529b\u663e\u5fae\u955c\uff08Atomic Force Microscope\uff0cAFM\uff09\u662f\u4e00\u79cd<strong>\u7eb3\u7c73\u7ea7<\/strong>\u9ad8\u5206\u8fa8\u7684\u626b\u63cf\u63a2\u9488\u663e\u5fae\u955c\uff08Scanning Probe Microscopy\uff0cSPM\uff09\uff0c\u901a\u8fc7\u7528\u63a2\u9488\u7684&quot;\u611f\u89c9&quot;\u6216&quot;\u89e6\u6478&quot;\u6837\u54c1\u8868\u9762\u6765\u6536\u96c6\u5176\u8868\u9762\u7ed3\u6784\u3001\u5f62\u8c8c\u4ee5\u53ca\u8868\u9762\u529b\u4fe1\u606f\uff0c\u662f\u4e00\u79cd\u975e\u5149\u5b66<strong>\u8868\u9762\u6210\u50cf\u548c\u529b\u6d4b\u91cf<\/strong>\u6280\u672f<\/p>\n<p>\u7528\u4e8eAFM\u6d4b\u8bd5\u7684\u6837\u54c1\u8868\u9762\u6700\u597d\u76f8\u5bf9\u5e73\u6574\uff0c\u8d77\u7801\u4e0d\u8981\u592a\u7c97\u7cd9\uff0c\u8868\u9762\u8d77\u4f0f\u4e0d\u8981\u592a\u5927\uff0c\u5426\u5219\u4e0d\u4ec5\u5bf9\u63a2\u9488\u635f\u4f24\u592a\u5927\uff0c\u800c\u4e14\u53ef\u80fd\u8fd8\u6d4b\u4e0d\u51c6<\/p>\n<h3 id=\"\u7ed3\u6784\u793a\u610f\">\u7ed3\u6784\u793a\u610f\n<\/h3><hr>\n<p>\u5185\u90e8\u7ed3\u6784\u56fe\u793a\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/06\/105010-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h3 id=\"\u63a2\u9488tipprobe\">\u63a2\u9488\uff08Tip\/Probe\uff09\n<\/h3><hr>\n<h4 id=\"\u63a2\u9488\u4ecb\u7ecd\">\u63a2\u9488\u4ecb\u7ecd\n<\/h4><hr>\n<p>\u63a2\u9488\u4e5f\u5c31\u662f\u7528\u6765\u5728\u6837\u54c1\u8868\u9762&quot;\u611f\u89c9&quot;\u548c&quot;\u89e6\u6478&quot;\u7684\u4e1c\u897f\uff0c\u5b83\u7684\u7ed3\u6784\u957f\u4e0b\u9762\u8fd9\u4e2a\u6837\u5b50<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/11\/152308-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u4e00\u822c\u63a2\u9488\u6750\u8d28\u591a\u4e3a<strong>\u7845\u6216\u6c2e\u5316\u7845<\/strong>\uff0c\u5176\u4e2d<strong>\u7845\u9488\u5c16\u8f83\u5c16\u9510\uff0c\u60ac\u81c2\u8f83\u786c\uff0c\u5171\u632f\u9891\u7387\u8f83\u9ad8\uff1b\u6c2e\u5316\u7845\u9488\u5c16\u8f83\u8010\u78e8\uff0c\u60ac\u81c2\u8f83\u8f6f<\/strong>\u3002\u4f46\u76ee\u524d\u5546\u4e1a\u5316\u63a2\u9488\u9488\u5bf9\u4e0d\u540c\u9700\u6c42\u79cd\u7c7b\u4e5f\u7279\u522b\u591a\uff0c\u53ef\u4ee5\u5230<a class=\"link\" href=\"https:\/\/www.51haocai.cn\/virtualhome\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u91cc<\/a>\u67e5\u770b\u4e0d\u540c\u7c7b\u578b\u7684\u63a2\u9488<\/p>\n<h4 id=\"\u63a2\u9488\u53c2\u6570\">\u63a2\u9488\u53c2\u6570\n<\/h4><hr>\n<p>\u4e3b\u8981\u53c2\u6570\u5305\u62ec\u5f39\u6027\u5e38\u6570\uff0c\u5171\u632f\u9891\u7387\u548c\u66f2\u7387\u534a\u5f84\uff0c\u53e6\u5916\u53ef\u80fd\u4e5f\u5305\u542b\u5173\u4e8e\u957f\u3001\u5bbd\u3001\u539a\u5ea6\u3001\u6d82\u5c42\u53ca\u5176\u6750\u8d28\u3001\u63a2\u9488\u6750\u8d28\u7b49\u8bf4\u660e<\/p>\n<ul>\n<li>\u5f39\u6027\u5e38\u6570\uff08k\u503c\uff09\n\u53cd\u6620\u4e86\u63a2\u9488\u7684<strong>\u8f6f\u786c\u5ea6<\/strong><\/li>\n<\/ul>\n<p>\u901a\u5e38\uff0c\u63a5\u89e6\u6a21\u5f0f\u91c7\u7528\u7684\u63a2\u9488k\u503c\u8f83\u5c0f\uff0c\u8f7b\u6572\u6a21\u5f0f\u4e0bk\u503c\u8f83\u5927\uff1b\u6837\u54c1\u8d8a\u786c\uff0c\u9009\u7528k\u503c\u8d8a\u5927\u7684\u63a2\u9488\uff0c\u6837\u54c1\u8d8a\u8f6f\uff0c\u9009\u7528k\u503c\u8d8a\u5c0f\u7684\u63a2\u9488<\/p>\n<ul>\n<li>\u5171\u632f\u9891\u7387\n\u5171\u632f\u9891\u7387\u662f\u6307\u63a2\u9488\u60ac\u81c2\u6881\uff08Cantilever\uff09\u81ea\u7136\u632f\u52a8\u7684\u9891\u7387\uff0c\u53cd\u6620\u4e86\u60ac\u81c2\u6881\u7684<strong>\u8f6f\u786c\u7a0b\u5ea6<\/strong>\uff0c\u53ef\u4ee5\u4fa7\u9762\u53cd\u6620\u63a2\u9488\u4f1a\u4e0d\u4f1a\u592a\u786c\u800c\u5212\u4f24\u8f6f\u6837\u54c1\uff0c\u6216\u8005\u592a\u8f6f\u800c\u65e0\u6cd5\u5728\u8f7b\u6572\u6a21\u5f0f\u4e0b\u8d77\u632f\uff0c\u4e00\u822c\u5f39\u6027\u5e38\u6570\u9ad8\u7684\u63a2\u9488\u5171\u632f\u9891\u7387\u4e5f\u9ad8<\/li>\n<\/ul>\n<p>\u901a\u5e38\uff0c\u63a5\u89e6\u6a21\u5f0f\u6216\u6db2\u76f8\u73af\u5883\u4e0b\u6210\u50cf\u65f6\uff0c\u91c7\u7528\u4f4e\u9891\u63a2\u9488\uff0810 - 70 kHz\uff09\uff1b\u8f7b\u6572\u6a21\u5f0f\u6216\u626b\u63cf\u8f83\u786c\u6837\u54c1\u65f6\uff0c\u91c7\u7528\u9ad8\u9891\u63a2\u9488\uff08200 - 400 kHz\uff09<\/p>\n<ul>\n<li>\u66f2\u7387\u534a\u5f84\n\u66f2\u7387\u534a\u5f84\u662f\u6307\u63a2\u9488\u9488\u5c16\uff08Tip\uff09\u6700\u5c16\u7aef\u90e8\u5206\u7684\u534a\u5f84\u5927\u5c0f\uff0c\u5b83\u63cf\u8ff0\u4e86\u9488\u5c16\u7684\u9510\u5229\u7a0b\u5ea6\uff0c\u51b3\u5b9a\u4e86\u6210\u50cf\u5206\u8fa8\u7387\uff0c\u66f2\u7387\u534a\u5f84\u8d8a\u5c0f\uff0c\u80fd\u5206\u8fa8\u7684\u8868\u9762\u7ec6\u8282\u8d8a\u7cbe\u7ec6\uff0c\u4f46\u5728\u540c\u6837\u7684\u529b\u4e0b\u65bd\u52a0\u5728\u6837\u54c1\u8868\u9762\u7684\u529b\u4f1a\u8d8a\u5927\uff0c\u5bb9\u6613\u7834\u574f\u6837\u54c1\uff08\u5c24\u5176\u662f\u8d28\u5730\u8f83\u8f6f\u7684\u6837\u54c1\uff09<\/li>\n<\/ul>\n<p>\u666e\u901a\u63a2\u9488\u7684\u66f2\u7387\u534a\u5f84\u901a\u5e38\u572810 nm\u5de6\u53f3\uff0c\u4e00\u4e9b\u9ad8\u5206\u8fa8\u7387\u63a2\u9488\u4f1a\u57282 - 5 nm\u5de6\u53f3<\/p>\n<blockquote>\n<p><strong>\u6ce8\uff1a\u5982\u679c\u5728\u5b9e\u9a8c\u4e2d\u53d1\u73b0\u56fe\u50cf\u5206\u8fa8\u7387\u7a81\u7136\u4e0b\u964d\uff0c\u901a\u5e38\u610f\u5473\u7740\u9488\u5c16\u78e8\u635f\u6216\u88ab\u6c61\u67d3\uff08\u7c98\u4e0a\u6216\u9644\u7740\u4e86\u8868\u9762\u7684\u6742\u8d28\uff09\uff0c\u5bfc\u81f4\u5b9e\u9645\u66f2\u7387\u534a\u5f84\u53d8\u5927<\/strong><\/p><\/blockquote>\n<h2 id=\"afm-\u7684\u4e3b\u8981\u5de5\u4f5c\u6a21\u5f0f\">AFM \u7684\u4e3b\u8981\u5de5\u4f5c\u6a21\u5f0f\n<\/h2><hr>\n<p>AFM\u7684\u4e3b\u8981\u5de5\u4f5c\u6a21\u5f0f\u5206\u4e3a\u63a5\u89e6\u6a21\u5f0f\u3001\u975e\u63a5\u89e6\u6a21\u5f0f\u548c\u8f7b\u6572\u6a21\u5f0f\uff0c\u4e0b\u9762\u5c06\u5206\u522b\u8bf4\u660e<\/p>\n<p>\u5e73\u65f6\u4e3b\u8981\u4f7f\u7528<strong>\u8f7b\u6572\u6a21\u5f0f\u8fdb\u884c\u6210\u50cf\uff0c\u6a2a\u5411\u529b\u6a21\u5f0f\u6d4b\u91cf\u6469\u64e6<\/strong><\/p>\n<h3 id=\"\u63a5\u89e6\u6a21\u5f0fcontact-mode\">\u63a5\u89e6\u6a21\u5f0f\uff08Contact Mode\uff09\n<\/h3><hr>\n<p>\u53ef\u4ee5\u7406\u89e3\u4e3a\u63a2\u9488\u548c\u6837\u54c1\u8868\u9762&quot;\u8db3\u591f\u63a5\u89e6&quot;\uff0c\u60ac\u81c2\u7684\u504f\u79fb\u662f\u901a\u8fc7\u9488\u5c16\u548c\u6837\u54c1\u95f4\u7684\u77ed\u7a0b\u6392\u65a5\u529b\u5f15\u8d77\u7684<\/p>\n<p>\u63a5\u89e6\u6a21\u5f0f\u4e0b\uff0c\u7531\u4e8e\u63a2\u9488\u5728\u6837\u54c1\u8868\u9762\u4e00\u76f4\u6765\u56de\u5212\u52a8\uff0c\u53ef\u80fd\u5bf9\u6837\u54c1\u8868\u9762\u4ea7\u751f&quot;\u5212\u75d5&quot;\uff0c\u4ece\u800c\u635f\u574f\u6837\u54c1\uff0c\u5e76\u4e14\u9488\u5c16\u78e8\u635f\u4e5f\u8f83\u5feb<\/p>\n<p>\u5177\u4f53\u7684\uff0c\u53c8\u53ef\u4ee5\u5206\u4e3a\u9759\u6001\u6a21\u5f0f\u548c\u6a2a\u5411\u529b\u6a21\u5f0f<\/p>\n<h4 id=\"\u9759\u6001\u6a21\u5f0fstatic-mode\">\u9759\u6001\u6a21\u5f0f\uff08Static Mode\uff09\n<\/h4><hr>\n<p>\u4e5f\u5c31\u662f\u5e38\u89c4\u63a5\u89e6\u6a21\u5f0f\uff0c\u4e5f\u662fAFM\u6700\u539f\u59cb\u7684\u6d4b\u91cf\u65b9\u5f0f\u3002\u8be5\u6a21\u5f0f\u4e0b\uff0c\u63a2\u9488\u5728\u6837\u54c1\u8868\u9762\u4fdd\u6301\u6052\u5b9a\u9ad8\u5ea6\u6cbf\u7740<strong>\u60ac\u81c2\u65b9\u5411<\/strong>\u8fdb\u884c\u626b\u63cf\u6210\u50cf<\/p>\n<h4 id=\"\u6a2a\u5411\u529b\u6a21\u5f0flateral-force-mode\">\u6a2a\u5411\u529b\u6a21\u5f0f\uff08Lateral Force Mode\uff09\n<\/h4><hr>\n<p>\u662f\u4e00\u79cd\u5728\u63a5\u89e6\u6a21\u5f0f\u4e0b\u7528\u4e8e\u63a2\u6d4b\u6469\u64e6\u529b\u4fe1\u606f\u7684\u7279\u6b8a\u6a21\u5f0f\uff0c\u63a2\u9488\u6cbf\u7740\u4e0e<strong>\u60ac\u81c2\u5782\u76f4\u65b9\u5411<\/strong>\u8fdb\u884c\u626b\u63cf\uff0c\u4f7f\u60ac\u81c2\u5728\u6c34\u5e73\u65b9\u5411\u53d1\u751f\u626d\u8f6c\uff0c\u8fd9\u79cd\u626d\u8f6c\u53ef\u4ee5\u88ab\u5149\u7535\u63a2\u6d4b\u5668\u8bb0\u5f55\uff0c\u4ece\u800c\u901a\u8fc7\u626d\u8f6c\u91cf\u83b7\u53d6\u6469\u64e6\u529b\u7684\u4fe1\u606f<\/p>\n<h3 id=\"\u975e\u63a5\u89e6\u6a21\u5f0fnon-contact-mode\">\u975e\u63a5\u89e6\u6a21\u5f0f\uff08Non-contact mode\uff09\n<\/h3><hr>\n<p>\u975e\u63a5\u89e6\u6a21\u5f0f\u662f\u4e3a\u4e86\u89e3\u51b3\u63a5\u89e6\u6a21\u5f0f\u4e0b\u5bf9\u6837\u54c1\u548c\u63a2\u9488\u7684\u635f\u574f\u800c\u53d1\u5c55\u6765\u7684\uff0c\u5229\u7528\u7684\u662f\u9488\u5c16\u548c\u6837\u54c1\u8868\u9762\u4e4b\u95f4\u7684\u957f\u7a0b\u5438\u5f15\u529b\u6765\u5de5\u4f5c<\/p>\n<p>\u5c3d\u7ba1\u8be5\u6a21\u5f0f\u4e0d\u4f1a\u635f\u574f\u63a2\u9488\u548c\u6837\u54c1\uff0c\u4f46\u5176\u6210\u50cf\u5206\u8fa8\u7387\u901a\u5e38\u8f83\u4f4e\uff0c\u5bb9\u6613\u53d7\u5230\u6837\u54c1\u8868\u9762\u5438\u9644\u6c34\u5206\u5b50\u7b49\u7269\u8d28\u7684\u5f71\u54cd\uff0c\u4e14\u9700\u8981\u4e25\u683c\u63a7\u5236\u63a2\u9488\u548c\u6837\u54c1\u4e4b\u95f4\u8303\u5fb7\u534e\u5438\u5f15\u529b\u7684\u5de5\u4f5c\u8303\u56f4\uff0c\u5e76\u4e14\u5176\u626b\u63cf\u901f\u5ea6\u8981\u8db3\u591f\u6162\u624d\u884c\uff0c\u56e0\u6b64\u5728\u5927\u591a\u573a\u666f\u4e0b\u5f80\u5f80\u4e0d\u4f1a\u7528\u5230<\/p>\n<h3 id=\"\u8f7b\u6572\u6a21\u5f0ftaping-mode-or-ac-mode\">\u8f7b\u6572\u6a21\u5f0f\uff08Taping Mode or AC Mode\uff09\n<\/h3><hr>\n<p>\u8f7b\u6572\u6a21\u5f0f\u662f\u5728\u975e\u63a5\u89e6\u6a21\u5f0f\u4e0b\u7684\u8fdb\u4e00\u6b65\u6539\u826f\uff0c\u76ee\u524d\u626b\u63cf\u5f62\u8c8c\u65f6\uff0c\u66f4\u591a\u7684\u91c7\u7528\u8f7b\u6572\u6a21\u5f0f\u3002\u8be5\u6a21\u5f0f\u4e0b\uff0c\u63a2\u9488\u5728\u6837\u54c1\u4e0a\u65b9\u4ee5\u4e00\u5b9a\u9891\u7387\u8fdb\u884c\u632f\u8361\uff0c\u65e8\u5728\u6700\u5927\u9650\u5ea6\u5730\u51cf\u5c11\u4e0e\u6837\u54c1\u7684\u7269\u7406\u63a5\u89e6\uff0c\u5bf9\u6837\u54c1\u548c\u63a2\u9488\u7684\u635f\u574f\u8f83\u5c0f<\/p>\n<h2 id=\"afm\u8f6f\u4ef6\u4e3b\u8981\u9762\u677f\u53c2\u6570\">AFM\u8f6f\u4ef6\u4e3b\u8981\u9762\u677f\u53c2\u6570\n<\/h2><hr>\n<h3 id=\"sum-and-deflection-meter-sd\">Sum and Deflection Meter (S&amp;D)\n<\/h3><hr>\n<ul>\n<li>Sum: \u4ee3\u8868\u5149\u7535\u63a2\u6d4b\u5668\u6536\u96c6\u5230\u4ece\u60ac\u81c2\uff08Cantilever\uff09\u53cd\u5c04\u7684\u7684\u6fc0\u5149\u603b\u91cf\uff0c\u5982\u679cSum\u503c\u8fc7\u4f4e\uff0c\u53ef\u80fd\u662f\u6fc0\u5149\u5bf9\u51c6\u4e0d\u4f73\uff0c\u5bfc\u81f4\u4fe1\u53f7\u5f3a\u5ea6\u4e0d\u8db3\uff0c\u56e0\u6b64\u9700\u8981\u8c03\u6574\u6fc0\u5149\u7167\u5c04\u5728\u60ac\u81c2\u4e0a\u7684\u4f4d\u7f6e\uff0c<strong>\u8ba9Sum\u503c\u663e\u793a\u6700\u5927<\/strong>\uff0c\u4e00\u822c\u9700\u8981\u7167\u5c04\u5230\u60ac\u81c2\u672b\u7aef\u7684\u4f4d\u7f6e\uff0c\u5982\u4e0b\uff1a<\/li>\n<\/ul>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/02\/233659-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<ul>\n<li>\n<p>Deflection: \u5bf9\u4e8e\u8f7b\u6572\u6a21\u5f0f\u5e94\u5f53\u8c03\u4e3a0\uff08\u4e0d\u5e26\u989c\u8272\uff09\uff1b\u4f46\u5bf9\u4e8e\u63a5\u89e6\u6a21\u5f0f\uff0c\u5e94\u5f53\u8c03\u81f3\u63a5\u8fd10\u7684\u5fae\u5c0f\u8d1f\u503c\uff08\u5e26\u4e00\u70b9\u84dd\u8272\uff09\uff0c\u8fd9\u4e00\u6b65\u662f\u8ba9\u53cd\u5c04\u5149\u675f\u4f4d\u4e8e\u5149\u7535\u63a2\u6d4b\u5668\u4e2d\u5fc3<\/p>\n<\/li>\n<li>\n<p>Amplitude (mV): \u8f7b\u6572\u6a21\u5f0f\u4e0b\u8868\u793a\u63a2\u9488\u4e0a\u4e0b\u632f\u52a8\u7684\u5e45\u5ea6<\/p>\n<\/li>\n<li>\n<p>Phase: \u8868\u793a\u63a2\u9488\u632f\u52a8\u7684\u76f8\u4f4d\uff0c\u76f8\u4f4d\u503c\u5c0f\u4e8e90\u5ea6\u5de5\u4f5c\u5728\u65a5\u529b\u6a21\u5f0f\uff0c\u5927\u4e8e90\u5ea6\u4e3a\u5f15\u529b\u6a21\u5f0f\uff0c\u901a\u5e38\u91c7\u7528\u65a5\u529b\u6a21\u5f0f\uff0c\u76f8\u4f4d\u503c\u572870\u5ea6\u5de6\u53f3<\/p>\n<\/li>\n<li>\n<p>Z Voltage: \u6307\u63a2\u9488\u5728Z\u65b9\u5411\u4e0a\u7684\u63a7\u5236\u7535\u538b\uff0c\u8868\u793a\u63a2\u9488\u5728Z\u8f74\uff08\u5782\u76f4\u65b9\u5411\uff09\u4e0a\u7684\u4f4d\u7f6e\u8c03\u6574\uff0c\u4ee5\u4fdd\u6301\u63a2\u9488\u548c\u6837\u54c1\u4e4b\u95f4\u7684\u8bbe\u5b9a\u8ddd\u79bb\uff0cZ Voltage\u7684\u53d8\u5316\u53cd\u6620\u4e86\u63a2\u9488\u8ddd\u79bb\u6837\u54c1\u8868\u9762\u9ad8\u5ea6\u7684\u53d8\u5316\uff0c\u7528\u4e8e\u5728<a class=\"link\" href=\"#%e4%b8%8b%e9%92%88%e9%99%8d%e9%92%88landing-the-tip\" >\u4e0b\u9488<\/a>\u7684\u65f6\u5019\u63a7\u5236\u63a2\u9488\u5230\u6837\u54c1\u8868\u9762\u7684\u8ddd\u79bb<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"master-panel\">Master Panel\n<\/h3><hr>\n<p>\u4e3b\u63a7\u9762\u677f\u56fe\u793a\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/02\/180443-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u53c2\u6570\u89e3\u91ca\uff08\u52a0\u7c97\u663e\u793a\u7684\u4e3a\u53ef\u4fee\u6539\u53c2\u6570\uff09\uff1a<\/p>\n<ul>\n<li>\n<p><strong>Scan Size<\/strong>: \u626b\u63cf\u533a\u57df\u7684\u65b9\u5f62\u5c3a\u5bf8\uff0c\u9ed8\u8ba4\u56fe\u793a\u4e3a20\u03bcm \u00d7 20\u03bcm\u5fae\u7c73\u7684\u533a\u57df\u5927\u5c0f<\/p>\n<\/li>\n<li>\n<p><strong>Points &amp; Lines<\/strong>: \u4e00\u5e45\u56fe\u4e2d\u626b\u63cf\u7684\u7ebf\u6761\u6570\u548c\u6bcf\u6761\u7ebf\u4e2d\u7684\u70b9\u7684\u4e2a\u6570\uff0c\u9ed8\u8ba4\u56fe\u793a\u8868\u793a\u4e3a\u6bcf\u5e45\u56fe256\u6761\u7ebf\uff0c\u6bcf\u6761\u7ebf\u6709256\u4e2a\u70b9<\/p>\n<\/li>\n<li>\n<p><strong>Scan Rates<\/strong>: \u8bbe\u7f6e\u626b\u63cf\u9891\u7387\uff0c\u4e00\u822c\u4e3a1Hz\uff0c\u63a7\u5236\u63a2\u9488\u626b\u63cf\u901f\u5ea6\u5feb\u6162<\/p>\n<\/li>\n<li>\n<p>Pixel Size: \u626b\u63cf\u7ed3\u679c\u7684\u50cf\u7d20\u70b9\u5c3a\u5bf8\uff0c\u53ef\u4ee5\u901a\u8fc7\u4fee\u6539<code>Scan Size<\/code>\u548c<code>Points &amp; Lines<\/code>\u8c03\u6574<\/p>\n<\/li>\n<li>\n<p>Scan Time: \u626b\u63cf\u4e00\u5e45\u56fe\u6240\u9700\u8981\u7684\u65f6\u95f4<\/p>\n<\/li>\n<li>\n<p><strong>Set Point<\/strong>: \u53ef\u4ee5\u7406\u89e3\u4e3a\u9488\u5c16\u5bf9\u6837\u54c1\u65bd\u52a0\u7684\u529b\u7684\u91cf\u5ea6\u3002\u5728\u63a5\u89e6\u6a21\u5f0f\u4e0b\uff0c\u5b83\u8868\u793a\u60ac\u81c2\u7684\u7279\u5b9a\u504f\u8f6c\u89d2\u5ea6\uff0c\u53cd\u9988\u7535\u8def\u4f1a\u7ef4\u6301\u8fd9\u4e2a\u504f\u8f6c\uff0c\u4ece\u800c\u4fdd\u6301\u63a2\u9488\u4e0e\u6837\u54c1\u4e4b\u95f4\u7684\u4f5c\u7528\u529b\u6052\u5b9a\uff1b\u8f7b\u6572\u6a21\u5f0f\u4e0b\uff0c\u5b83\u8868\u793a\u60ac\u81c2\u632f\u52a8\u7684\u632f\u5e45\uff0c\u7528\u4e8e\u63a7\u5236\u63a2\u9488\u6572\u51fb\u6837\u54c1\u7684\u529b<\/p>\n<\/li>\n<\/ul>\n<p>\u4e0d\u540c\u8bbe\u5907\u4e2d<code>Set Point<\/code>\u7684\u8868\u793a\u65b9\u5f0f\u53ef\u80fd\u4e0d\u540c\uff0c\u5bf9\u4e8e\u6211\u4eec\u4f7f\u7528\u7684<code>MFP3D<\/code>\u578b\u53f7\u7684\u4eea\u5668\uff0c\u9700\u8981\u6ce8\u610f\uff1a<strong>\u5728\u8f7b\u6572\u6a21\u5f0f\u4e0b\uff0cSet Point\u8d8a\u5c0f\uff0c\u529b\u8d8a\u5927\uff1b\u5728\u63a5\u89e6\u6a21\u5f0f\u4e0b\uff0cSet Point\u8d8a\u5c0f\uff0c\u529b\u8d8a\u5c0f<\/strong><\/p>\n<ul>\n<li>\n<p><strong>Integral Gain<\/strong>: \u79ef\u5206\u589e\u76ca\uff0c\u503c\u8d8a\u9ad8\uff0c\u63a2\u9488\u5bf9\u6837\u54c1\u8868\u9762\u5f62\u8c8c\u53d8\u5316\u7684\u53cd\u5e94\u8d8a\u5feb\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3a\u63a2\u9488\u5bf9\u6837\u54c1\u5f62\u8c8c\u53d8\u5316\u7684\u54cd\u5e94\u901f\u5ea6\u3002<del>\u9ed8\u8ba4\u4e3a10\uff0c\u901a\u5e38\u5728\u626b\u63cf\u8fc7\u7a0b\u4e2d\u4e0d\u65ad\u589e\u52a0\uff0c\u76f4\u5230\u632f\u5e45\u4e2d\u7684\u566a\u58f0\u53ef\u89c1\uff0c\u7136\u540e\u964d\u4f4e\u8be5\u503c\uff0c\u76f4\u5230\u566a\u58f0\u6d88\u5931<\/del>\u53ef\u4ee5\u8c03\u6574\u8be5\u503c\uff0c\u8ba9\u5f62\u8c8c\u56fe\u4e2d\u7684trace\u548cretrace\u66f2\u7ebf\u91cd\u5408\u7684\u8f83\u597d\u5373\u53ef<\/p>\n<\/li>\n<li>\n<p><strong>Drive Amplitude<\/strong>: \u9a71\u52a8\u5e45\u5ea6\uff0c\u901a\u5e38\u7528\u4e8e\u8c03\u8282\u63a2\u9488\u5728\u6837\u54c1\u8868\u9762\u632f\u52a8\u7684\u5e45\u5ea6\uff0c<a class=\"link\" href=\"#%e6%82%ac%e8%87%82%e6%a0%a1%e5%87%86tuning-the-cantilever\" >Tune<\/a>\u540e\u81ea\u52a8\u586b\u5145<\/p>\n<\/li>\n<li>\n<p><strong>Drive Frequency<\/strong>: \u9a71\u52a8\u9891\u7387\uff0c\u901a\u5e38\u8bbe\u7f6e\u4e3a\u4e0e\u63a2\u9488\u7684\u8c10\u632f\u9891\u7387\u76f8\u5339\u914d\uff0c\u4ee5\u83b7\u5f97\u6700\u5927\u7684\u632f\u52a8\u54cd\u5e94\uff0c<a class=\"link\" href=\"#%e6%82%ac%e8%87%82%e6%a0%a1%e5%87%86tuning-the-cantilever\" >Tune<\/a>\u540e\u81ea\u52a8\u586b\u5145<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"afm\u8f6f\u4ef6\u90e8\u5206\u64cd\u4f5c\u8981\u70b9\">AFM\u8f6f\u4ef6\u90e8\u5206\u64cd\u4f5c\u8981\u70b9\n<\/h2><hr>\n<h3 id=\"\u60ac\u81c2\u6821\u51c6tuning-the-cantilever\">\u60ac\u81c2\u6821\u51c6\uff08Tuning the Cantilever\uff09\n<\/h3><hr>\n<p>Click <code>Master Panel<\/code> - <code>Tune<\/code> \u6253\u5f00<code>Cantilever Tune<\/code>\u9762\u677f\uff0cClick <code>Params<\/code>\u6253\u5f00<code>Tune Params<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/02\/235236-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n> <img src=\"http:\/\/img.been.ee\/i\/2024\/11\/02\/235253-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n> <img src=\"http:\/\/img.been.ee\/i\/2024\/11\/02\/235304-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5bf9\u4e8e\u5927\u591a\u6570\u63a2\u9488\u53ef\u4ee5\u5c06\u53c2\u6570\u6309\u5982\u4e0b\u8bbe\u7f6e\uff1a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/03\/000148-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u53c2\u6570\u89e3\u91ca\uff1a<\/p>\n<ul>\n<li>\n<p><strong>Target Percent<\/strong>\uff1a\u8bbe\u7f6e<code>-5%<\/code>\u7684\u76ee\u7684\u662f\u8ba9\u9a71\u52a8\u9891\u7387\u5c0f\u4e8e\u6700\u5927\u503c\uff0c\u4ee5\u6b64\u786e\u4fdd\u63a2\u9488\u548c\u6837\u54c1\u8868\u9762\u59cb\u7ec8\u5728\u65a5\u529b\u6a21\u5f0f\u4e0b<\/p>\n<\/li>\n<li>\n<p><strong>Auto Tune Low &amp; Auto Tune High<\/strong>\uff1a\u9ed8\u8ba4\u7684<code>Auto Tune Low (50 kHz)<\/code>\u548c<code>Auto Tune High (400 kHz)<\/code>\u57fa\u672c\u4e0a\u80fd\u591f\u6db5\u76d6\u5e02\u9762\u4e0a\u5e38\u7528\/\u5e38\u89c1\u63a2\u9488\u7684\u5171\u632f\u9891\u7387\uff0c\u53ef\u4ee5\u770b\u4e00\u4e0b\u81ea\u5df1\u6240\u7528\u63a2\u9488\u7684\u53c2\u6570\u4e2d\u7684\u9891\u7387\u662f\u5426\u5728\u8fd9\u4e2a\u8303\u56f4\u5185\uff0c\u5982\u679c\u8d85\u8fc7\u8fd9\u4e2a\u8303\u56f4\uff0c\u5219\u9700\u8981\u6269\u5927\u8303\u56f4<\/p>\n<\/li>\n<li>\n<p><strong>Target Amplitude<\/strong>\uff1a\u9ed8\u8ba4\u4e3a1V\uff0c\u4e5f\u5c31\u662f\u5728<code>Anto Tune<\/code>\u540e\u7684\u632f\u5e45\u503c<\/p>\n<\/li>\n<\/ul>\n<p>\u8bbe\u7f6e\u597d\u540e\uff0cClick <code>Auto Tune<\/code>\uff0c\u5c06\u5f39\u51fa\u4e00\u4e2a\u56fe\u8868\u663e\u793a\u6821\u51c6\u66f2\u7ebf\uff0c\u7c7b\u4f3c\u4e0b\u56fe<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/03\/001516-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5e94\u5f53\u80fd\u591f\u89c2\u5bdf\u5230\u5171\u632f\u66f2\u7ebf\u7684\u5cf0\u503c\u9891\u7387\u548c\u6211\u4eec\u4f7f\u7528\u7684\u63a2\u9488\u7684\u5171\u632f\u9891\u7387\u5dee\u4e0d\u591a\u5373\u53ef\u5173\u95ed\uff0c\u7136\u540e\u7a0b\u5e8f\u4f1a\u4e3a\u6211\u4eec\u81ea\u52a8\u8bbe\u5b9a\u597d<code>Drive Frequency<\/code>, <code>Drive Amplitude<\/code>\u548c<code>Phase offset<\/code>\u8fd9\u51e0\u4e2a\u53c2\u6570<\/p>\n<h3 id=\"\u4e0b\u9488\u964d\u9488landing-the-tip\">&ldquo;\u4e0b\u9488\/\u964d\u9488&rdquo;\uff08Landing the Tip\uff09\n<\/h3><hr>\n<blockquote>\n<p>\u8bbe\u7f6e<code>Set Point<\/code>\u503c\u4e3a<code>free air amplitude<\/code>\u7684<code>60% - 80%<\/code>\uff0c\u5982\u679c\u6211\u4eec\u6821\u51c6\u65f6\u8bbe\u7f6e\u7684<code>Target Amplitude<\/code>\u4e3a1V\uff0c\u90a3\u4e48<code>Set Point<\/code>\u53ef\u4ee5\u8bbe\u7f6e\u4e3a<strong>600 - 800 mV\uff0c\u9ed8\u8ba4\u4e00\u822c\u4e3a800mV<\/strong><\/p>\n<p>\u6ce8\uff1a<code>free air amplitude<\/code>\u6307\u7684\u662f\u9488\u5c16\u8ddd\u79bb\u8868\u9762\u8f83\u8fdc\u65f6\u7684\u632f\u5e45\uff0c\u4e5f\u53ef\u4ee5\u7406\u89e3\u4e3a\u73b0\u5728\u8fd8\u6ca1\u6709\u4e0b\u9488\u65f6\u7684\u632f\u5e45\uff0c\u4e5f\u5c31\u662f\u6b64\u65f6<code>Sum and Deflection Meter<\/code>\u9762\u677f\u4e2d<code>Amplitude<\/code>\u663e\u793a\u7684\u503c\uff0c\u800c\u8fd9\u4e2a\u503c\u4e5f\u5c31\u662f\u5728\u4e0a\u4e00\u6b65\u7684<a class=\"link\" href=\"#%e6%82%ac%e8%87%82%e6%a0%a1%e5%87%86tuning-the-cantilever\" >Tune<\/a>\u65f6\u8bbe\u7f6e\u7684<code>Target Amplitude<\/code>\u503c<\/p>\n<p><strong>\u8be5\u90e8\u5206\u8bbe\u7f6e\u5e76\u975e\u5fc5\u8981\uff0c\u53ef\u5728\u4e0b\u9488\u540e\u8c03\u6574<\/strong><\/p><\/blockquote>\n<p>\u7136\u540eClick <code>Sum and Deflection Meter<\/code>\u9762\u677f\u4e2d\u7684<code>Engage<\/code>\u6309\u94ae\uff0c\u5e76\u51c6\u5907\u4e0b\u9488\uff08\u6ce8\uff1a\u4e0b\u56fe\u663e\u793a<code>nan<\/code>\u662f\u7531\u4e8e\u6ca1\u6709\u8fde\u63a5\u8bbe\u5907\uff0c<strong>\u975e\u5b9e\u6d4b\u8fc7\u7a0b<\/strong>\uff0c\u4e0d\u8981\u7ea0\u7ed3\u4e8e\u6b64\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/153152.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p><code>Engage<\/code>\u540e\u5e94\u5f53\u53ef\u4ee5\u770b\u5230<code>Sum and Deflection Meter<\/code>\u9762\u677f\u4e2d\u7684<code>Z Voltage<\/code>\u53c2\u6570\u53d8\u4e3a<strong>150V<\/strong>\uff0c\u8fd9\u65f6\u5019\u53ef\u4ee5\u5f00\u59cb\u4e0b\u9488<\/p>\n<p>\u4e0b\u9488\u65f6\u8981<strong>\u975e\u5e38\u7f13\u6162<\/strong>\u5730\u9006\u65f6\u9488\u8f6c\u52a8\u524d\u62c7\u6307\u8f6e\uff0c\u5e76\u7528\u773c\u775b<strong>\u6ce8\u89c6\u9488\u5c16\u548c\u6837\u54c1\u8868\u9762\u4e4b\u95f4\u7684\u8ddd\u79bb<\/strong>\uff0c\u4e0b\u9488\u8fc7\u7a0b\u4e2d\u53ef\u4ee5\u89c2\u5bdf\u5230\u7535\u8111\u663e\u793a\u7684\u6837\u54c1\u8868\u9762\u9010\u6e10\u6e05\u6670\uff0c\u8fd9\u65f6\u5019\u53ef\u4ee5\u627e\u4e00\u4e0b\u8981\u6d4b\u7684\u6837\u54c1\u4f4d\u7f6e\u5e76\u79fb\u52a8\u5230\u9488\u5c16\u4e0b\u65b9\uff0c\u7136\u540e\u7ee7\u7eed\u7f13\u6162\u4e0b\u9488\u76f4\u5230\u7535\u8111\u53d1\u51fa**&ldquo;\u54d4&quot;\u58f0**\uff0c\u5e76\u540c\u65f6\u53ef\u4ee5\u89c2\u5bdf\u5230<code>Z Voltage<\/code>\u8fc5\u901f\u4e0b\u964d\uff0c\u8bf4\u660e\u63a2\u9488\u5df2\u7ecf\u63a5\u8fd1\u6837\u54c1\u8868\u9762\uff08\u8fd9\u65f6\u5019\u53ef\u4ee5\u70b9\u4e00\u4e0b<code>withdraw<\/code>\uff0c\u7136\u540e\u518d\u91cd\u65b0\u70b9\u4e00\u4e0b<code>engage<\/code>\uff09\uff0c\u7136\u540e\u7ee7\u7eed\u4e0b\u964d\u8ba9<code>Z Voltage<\/code>\u503c\u63a7\u5236\u5728<strong>70 - 75V<\/strong>\uff0c\u4e00\u822c\u8c03\u4e3a<strong>72\u621673<\/strong><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/154448.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p><del>\u7136\u540eClick <code>Sum and Deflection Meter<\/code>\u9762\u677f\u4e2d\u7684<code>Withdraw<\/code>\u6309\u94ae\uff0c\u8fd9\u4e00\u6b65\u662f\u4e3a\u4e86\u9632\u6b62\u9488\u5c16\u5728\u540e\u9762\u53d1\u751f\u6643\u52a8<\/del><\/p>\n<p>\u6700\u540e\uff0c<strong>\u7f13\u6162<\/strong>\u5173\u95ed\u9694\u97f3\u7f69\uff0c\u9632\u6b62\u6c14\u6d41\u5f71\u54cd<\/p>\n<h3 id=\"\u6cd5\u5411\u529b\u6821\u51c6\">\u6cd5\u5411\u529b\u6821\u51c6\n<\/h3><hr>\n<p><strong>\u6ce8\u610f\uff1a\u8be5\u90e8\u5206\u4ec5\u7528\u4e8e\u6a2a\u5411\u529b\u6a21\u5f0f\u6d4b\u6469\u64e6\u65f6\u624d\u9700\u8981\u505a\uff0c\u7528\u4e8e\u5c06\u63a7\u5236\u63a2\u9488\u6cd5\u5411\u529b\u7684<code>Set Point<\/code>\u7684\u7535\u5b66\u5355\u4f4d\uff08V\uff09\u8f6c\u6362\u4e3a\u529b\u5b66\u5355\u4f4d\uff08N\uff09<\/strong>\uff1b\u53e6\u5916\u5c31\u662f<strong>\u8981\u627e\u4e00\u4e2a\u786c\u7684\u975e\u6837\u54c1\u8868\u9762\u8fdb\u884c\u6821\u51c6<\/strong><\/p>\n<p>\u8be5\u6b65\u9aa4\u5728<del>Tune\u5b8c\u6210\u4e4b\u540e\uff0c<\/del><a class=\"link\" href=\"#%e4%b8%8b%e9%92%88%e9%99%8d%e9%92%88landing-the-tip\" >\u4e0b\u9488<\/a>\u64cd\u4f5c\u4e4b\u524d\u8fdb\u884c\uff0c\u5177\u4f53\u64cd\u4f5c\u5982\u4e0b\uff1a<\/p>\n<p>\u8fdb\u5165<code>Master Panel<\/code> - <code>Force<\/code>\u9762\u677f\uff0c\u7136\u540e\u5c06<code>Start Dist<\/code>\u8bbe\u4e3a<code>-inf<\/code>\uff0c<code>Force Dist<\/code>\u8bbe\u4e3a<code>inf<\/code>\uff0c<code>Imaging Mode<\/code>\u9009\u62e9<code>Contact<\/code>\uff0c<code>Trigger Channel<\/code>\u9009\u62e9<code>None<\/code>\uff0c\u5982\u4e0b\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/10\/232413-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u5168\u90e8\u8bbe\u7f6e\u5b8c\u6210\u540e\uff0cClick <code>Single Force<\/code>\uff0c\u6b63\u5e38\u6765\u8bf4\u5c31\u4f1a\u5f97\u5230\u4e24\u6761\u91cd\u5408\u6027\u8f83\u597d\u7684\u659c\u7ebf<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/10\/232545-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\uff0c\u53f3\u952e\u56fe\u50cf\uff0c\u9009\u62e9<code>Calculate Virtual Defl Line<\/code>\u8fdb\u884c\u62df\u5408\uff0c\u4f1a\u5f97\u5230\u4e00\u6761\u62df\u5408\u540e\u7684\u659c\u7ebf\uff0c\u7136\u540e\u51c6\u5907\u4e0b\u9488<\/p>\n<p>Click <code>Sum and Deflection Meter<\/code>\u9762\u677f\u4e2d\u7684<code>Engage<\/code>\u6309\u94ae\uff0c\u4e0b\u9488\u5230<code>Z Voltage<\/code>\u503c\u5728<strong>70 - 75V<\/strong>\u4e4b\u95f4<\/p>\n<p>\u7136\u540e\u56de\u5230<code>Master Panel<\/code> - <code>Force<\/code>\u9762\u677f\uff0c\u628a<code>Force Dist<\/code>\u6539\u4e3a<code>1\u03bcm<\/code>\uff0c\u628a<code>Trigger Channel<\/code>\u6539\u4e3a<code>DeflVolts<\/code>\uff0c\u8bbe\u7f6e\u597d\u540eClick <code>Single Force<\/code>\uff0c\u5c31\u4f1a\u5f97\u5230\u7c7b\u4f3c\u4e0b\u56fe\u7684\u7ed3\u679c\uff0c\u7136\u540e\u5728\u5de6\u4fa7\u7684\u659c\u7ebf\u4e0a\u53f3\u952e\uff0cClick <code>Calculate Invols<\/code>\u8fdb\u884c\u62df\u5408<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/10\/234908-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n> <img src=\"http:\/\/img.been.ee\/i\/2024\/11\/10\/234935-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u4e0a\u8ff0\u6b65\u9aa4\u5b8c\u6210\u540e\uff0c\u8fdb\u5165<code>Master Panel<\/code> - <code>Force<\/code> - <code>Cal.<\/code>\u9762\u677f\uff0c\u5e94\u5f53\u89c2\u5bdf\u5230<code>Defl InvOLS<\/code>\u548c<code>Amp InvOLS<\/code>\u5df2\u7ecf\u6821\u51c6\u597d\u4e86\uff08<strong>\u5de6\u4fa7\u7684\u7ea2\u70b9\u53d8\u4e3a\u7eff\u70b9<\/strong>\uff09\uff0c\u8fd8\u5269<code>Spring Constant<\/code>\u672a\u6821\u51c6\uff08<strong>\u5de6\u4fa7\u663e\u793a\u7ea2\u70b9<\/strong>\uff09\uff0c\u4e0b\u9762\u5c06\u5bf9\u8fd9\u4e2a\u503c\u6821\u51c6<\/p>\n<p>\u8fdb\u5165 <code>Master Panel<\/code> - <code>Image<\/code> - <code>Thermal<\/code>\u9762\u677f\uff0cClick\u5de6\u4e0a\u89d2\u7684<code>Capture<\/code>\uff0c\u7b49\u5f85\u81ea\u52a8\u8dd140 - 50\u4e2a<code>Samples<\/code>\u540eClick <code>Stop<\/code>\uff0c\u627e\u5230\u6700\u9ad8\u7684\u5cf0\uff0c\u53f3\u952e\u9009\u62e9<code>Zoom &amp; Fit<\/code>\u8fdb\u884c\u62df\u5408\uff08\u53ef\u4ee5\u5728\u5de6\u4e0a\u89d2\u518d\u591a\u70b9\u51e0\u4e0b<code>Fit<\/code>\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/11\/000706-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u62df\u5408\u597d\u540e\u7c7b\u4f3c\u4e0b\u56fe\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/11\/000717-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8fd9\u65f6\uff0c\u6211\u4eec\u518d\u6b21\u8fd4\u56de\u5230<code>Master Panel<\/code> - <code>Force<\/code> - <code>Cal.<\/code>\u9762\u677f\uff0c\u53ef\u4ee5\u89c2\u5bdf\u5230<code>Defl InvOLS<\/code>\u3001<code>Amp InvOLS<\/code>\u548c<code>Spring Constant<\/code>\u5747\u4ee5\u6821\u51c6\u5b8c\u6210\uff08<strong>\u5de6\u4fa7\u5747\u4e3a\u7eff\u70b9<\/strong>\uff09<\/p>\n<p>\u540e\u9762\u6211\u4eec\u5c31\u53ef\u4ee5\u901a\u8fc7<code>Defl InvOLS<\/code> \u00d7 <code>Spring Constant<\/code> \u00d7 <code>Set Point<\/code>\u5f97\u5230\u6cd5\u5411\u529b\u7684\u503c<\/p>\n<h3 id=\"\u626b\u63cf\u6210\u50cf\">\u626b\u63cf\u6210\u50cf\n<\/h3><hr>\n<p>\u5728<code>Master Panel<\/code>\u4e2d\uff0c\u70b9\u51fb<code>Frame Up<\/code>\uff08\u4ece\u4e0b\u5f80\u4e0a\uff09\u6216<code>Frame Down<\/code>\uff08\u4ece\u4e0a\u5f80\u4e0b\uff09\u5f00\u59cb\u626b\u63cf<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/173349-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u6211\u4eec\u9700\u8981\u89c2\u5bdf\u9ad8\u5ea6\u56fe\uff08Height Retrace\uff09\u4e0b\u65b9\u7684trace\u548cretrace\u66f2\u7ebf\uff0c\u5982\u679c\u6210\u50cf\u7ed3\u679c\u8f83\u597d\uff0c\u4e24\u6761\u7ebf\u5e94\u5f53\u91cd\u5408\u4e5f\u8f83\u597d\uff0c\u5982\u679c\u91cd\u5408\u4e0d\u597d\uff0c\u5219\u901a\u5e38\u9700\u8981\u8c03\u6574<code>Set Point<\/code>\u3001<code>Integral Gain<\/code>\u3001<code>Drive Amplitude<\/code>\u3001<code>Scan Rate<\/code>\u548c<code>Scan Angel<\/code>\uff08\u4e00\u822c\u4e3b\u8981\u8c03\u6574<code>Set Point<\/code>\u548c<code>Integral Gain<\/code>\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/174134-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n> <img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/174148-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u7279\u5b9a\u6d4b\u8bd5\u7684\u5177\u4f53\u6d41\u7a0b\">\u7279\u5b9a\u6d4b\u8bd5\u7684\u5177\u4f53\u6d41\u7a0b\n<\/h2><hr>\n<h3 id=\"\u5f62\u8c8c\u6d4b\u8bd5\">\u5f62\u8c8c\u6d4b\u8bd5\n<\/h3><hr>\n<p>\u5927\u591a\u573a\u666f\u5728<strong>\u8f7b\u6572\u6a21\u5f0f<\/strong>\u4e0b\u6d4b\u8bd5\uff0c\u88c5\u597d\u63a2\u9488\u5e76\u653e\u7f6e\u597d\u540e\uff0c\u8fdb\u5165\u8f6f\u4ef6\u9009\u62e9<code>AC Air Topography<\/code>\u6a21\u5f0f\uff0c\u8c03\u51fa\u6444\u50cf\u5934\uff0c\u7136\u540e\u8c03\u7126\u627e\u63a2\u9488\uff0c\u627e\u6fc0\u5149\uff0c\u79fb\u52a8\u6fc0\u5149\u4f4d\u7f6e\u8c03\u81f3<code>Sum<\/code>\u503c\u6700\u5927\uff0c<code>Deflection<\/code>\u8c03\u96f6<\/p>\n<p>\u7136\u540e\u8fdb\u884c<a class=\"link\" href=\"#%e6%82%ac%e8%87%82%e6%a0%a1%e5%87%86tuning-the-cantilever\" >Tune<\/a><\/p>\n<p>Tune\u5b8c\u6210\u540e\uff0c\u5f00\u59cb<a class=\"link\" href=\"#%e4%b8%8b%e9%92%88%e9%99%8d%e9%92%88landing-the-tip\" >\u4e0b\u9488<\/a>\uff0c\u6700\u540e\u8fdb\u884c<a class=\"link\" href=\"#%e6%89%ab%e6%8f%8f%e6%88%90%e5%83%8f\" >\u626b\u63cf\u6210\u50cf<\/a>\u5373\u53ef<\/p>\n<h3 id=\"\u6469\u64e6\u529b\u6d4b\u8bd5\">\u6469\u64e6\u529b\u6d4b\u8bd5\n<\/h3><hr>\n<p>\u9700\u8981\u5728<strong>\u63a5\u89e6\u6a21\u5f0f\u4e2d\u7684\u6a2a\u5411\u529b\u6a21\u5f0f<\/strong>\u4e0b\u6d4b\u8bd5\uff0c\u540c\u6837\u88c5\u597d\u63a2\u9488\u5e76\u653e\u7f6e\u597d\u540e\uff0c\u8fdb\u5165\u8f6f\u4ef6\u9009\u62e9<code>Lateral<\/code>\u6a21\u5f0f\uff0c\u8c03\u51fa\u6444\u50cf\u5934\uff0c\u7136\u540e\u8c03\u7126\u627e\u63a2\u9488\uff0c\u627e\u6fc0\u5149\uff0c\u79fb\u52a8\u6fc0\u5149\u4f4d\u7f6e\u8c03\u81f3<code>Sum<\/code>\u503c\u6700\u5927\uff0c<code>Deflection<\/code>\u8c03\u96f6<\/p>\n<p>\u7136\u540e\u9700\u8981\u8fdb\u884c<del>Tune\u548c<\/del>\uff08\u63a5\u89e6\u6a21\u5f0f\u4e0d\u9700\u8981Tune\uff09<a class=\"link\" href=\"#%e6%b3%95%e5%90%91%e5%8a%9b%e6%a0%a1%e5%87%86\" >\u6cd5\u5411\u529b\u6821\u51c6<\/a>\uff0c\u5177\u4f53\u7ec6\u8282\u53ef\u4ee5\u53c2\u8003\u5728<a class=\"link\" href=\"#%e8%bd%bd%e6%b5%81%e6%91%a9%e6%93%a6%e6%b5%8b%e8%af%95\" >\u8f7d\u6d41\u6469\u64e6\u6d4b\u8bd5<\/a>\u90e8\u5206\u7684\u4ecb\u7ecd\uff0c\u5176\u4e2d\u66f4\u4e3a\u8be6\u7ec6<\/p>\n<p>\u7136\u540e<a class=\"link\" href=\"#%e4%b8%8b%e9%92%88%e9%99%8d%e9%92%88landing-the-tip\" >\u4e0b\u9488<\/a>\u540e\uff0c\u8fdb\u884c<a class=\"link\" href=\"#%e6%89%ab%e6%8f%8f%e6%88%90%e5%83%8f\" >\u626b\u63cf\u6210\u50cf<\/a>\uff0c\u53ef\u4ee5\u901a\u8fc7\u6539\u53d8<code>Set Point<\/code>\u503c\u63a7\u5236\u6cd5\u5411\u529b\u5927\u5c0f\uff0c\u8fdb\u800c\u8c03\u6574\u6469\u64e6\u529b<\/p>\n<h3 id=\"\u7c98\u9644\u529b\u6d4b\u8bd5\">\u7c98\u9644\u529b\u6d4b\u8bd5\n<\/h3><hr>\n<p>\u7c98\u9644\u529b\u7684\u503c\u53ef\u4ee5\u4ece<a class=\"link\" href=\"#%e6%b3%95%e5%90%91%e5%8a%9b%e6%a0%a1%e5%87%86\" >\u6cd5\u5411\u529b\u6821\u51c6<\/a>\u4e2d\u7684\u4e0b\u56fe\u4e2d\u5f97\u5230<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/11\/010020-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6ce8\u610f\uff1a\u6821\u51c6\u65f6\u662f\u5728\u975e\u6837\u54c1\u8868\u9762\u4e0a\u7684\u67d0\u70b9\u8fdb\u884c\u7684\uff0c\u56e0\u6b64\u5982\u679c\u60f3\u5f97\u5230\u6837\u54c1\u8868\u9762\u7684\u7c98\u9644\u529b\uff0c\u5219\u8981\u79fb\u52a8\u63a2\u9488\u81f3\u6837\u54c1\u8868\u9762\u5f85\u6d4b\u70b9<\/p>\n<p>\u53e6\u5916\uff0c\u53ef\u4ee5\u5728<code>Master Panel<\/code> - <code>Fmap<\/code>\u9762\u677f\u4e2d\u8fdb\u884c\u4e00\u4e2a\u9762\u5185\u591a\u70b9\u7684\u7c98\u9644\u529b\u6d4b\u8bd5\uff0c\u901a\u8fc7\u8bbe\u7f6e<code>Force Lines<\/code>\u548c<code>Force Points<\/code>\u6765\u6307\u5b9a\u6d4b\u591a\u5c11\u6761\u7ebf\u548c\u6bcf\u6761\u7ebf\u591a\u5c11\u70b9\uff0c\u7136\u540eClick <code>Do Scan<\/code>\u5c31\u53ef\u4ee5\u4e86<\/p>\n<h3 id=\"\u8f7d\u6d41\u6469\u64e6\u6d4b\u8bd5\">\u8f7d\u6d41\u6469\u64e6\u6d4b\u8bd5\n<\/h3><hr>\n<p><strong>\u8be5\u90e8\u5206\u5c06\u8fdb\u884c\u8f83\u4e3a\u8be6\u7ec6\u8bf4\u660e<\/strong><\/p>\n<p>\u8981\u5728\u9488\u5c16\u548c\u6837\u54c1\u8868\u9762\u65bd\u52a0\u7535\u538b\uff0c\u9700\u8981\u4f7f\u7528<code>ORCA Holder<\/code>\u548c\u5bfc\u7535\u63a2\u9488\uff0c\u5728<strong>\u6a2a\u5411\u529b\u6a21\u5f0f<\/strong>\u4e0b\u901a\u8fc7IV\u9762\u677f\u8bbe\u7f6e\u5728\u9488\u5c16\u548c\u6837\u54c1\u95f4\u65bd\u52a0\u7535\u538b<\/p>\n<p>\u901a\u8fc7<code>ORCA Holder<\/code>\u7684<code>ID<\/code>\u53ef\u4ee5\u6765\u786e\u8ba4\u5b83\u7684<strong>\u7075\u654f\u5ea6<\/strong>\u548c<strong>\u7535\u6d41\u91cf\u7a0b<\/strong>\u7b49\u53c2\u6570\uff0c\u6211\u76ee\u524d\u4f7f\u7528\u7684\u662f\u7535\u6d41\u91cf\u7a0b\u4e3a\u00b120nA\u7684\u914d\u7f6e\uff0c\u9700\u6839\u636e\u60c5\u51b5\u8003\u8651\u662f\u5426\u4e32\u8054\u7535\u963b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/06\/111041-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\u5bf9\u64cd\u4f5c\u6d41\u7a0b\u8fdb\u884c\u8bf4\u660e<\/p>\n<h4 id=\"orca-holder\u63a5\u7ebf\">ORCA Holder\u63a5\u7ebf\n<\/h4><hr>\n<p>\u9996\u5148\u662f\u88c5\u9488\u548c\u63a5\u7ebf\uff0c\u88c5\u9488\u5c31\u4e0d\u4ecb\u7ecd\u4e86\uff0c\u628a\u5bfc\u7535\u63a2\u9488\u88c5\u5230<code>ORCA Holder<\/code>\u4e0a\u5373\u53ef<\/p>\n<p>\u4f7f\u7528\u7684\u6837\u54c1\u652f\u67b6\u5982\u4e0b\u56fe\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/05\/215340-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u63a5\u7ebf\u65b9\u5f0f\u5982\u4e0b\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/05\/215448-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u90fd\u88c5\u597d\u540e\u62ff\u5230\u6d4b\u8bd5\u4eea\u5668\u4e2d\u653e\u7f6e\u597d<\/p>\n<h4 id=\"\u8f6f\u4ef6\u64cd\u4f5c\">\u8f6f\u4ef6\u64cd\u4f5c\n<\/h4><hr>\n<p>\u6253\u5f00\u8f6f\u4ef6\u9009\u62e9<strong>\u6a2a\u5411\u529b\u6a21\u5f0f\uff08Lateral\uff09<\/strong>\uff0c\u5728\u8f6f\u4ef6\u4e0a\u9762\u83dc\u5355\u680f\u627e\u5230<code>AFM Controls<\/code> - <code>Do IV Panel<\/code>\u8c03\u51fa<code>AR Do IV Panel<\/code>\uff0c\u901a\u8fc7\u8bbe\u7f6e<code>Sample Voltage<\/code>\u503c\u6765\u8bbe\u7f6e\u7535\u538b\uff08\u7535\u538b\u4e0a\u4e0b\u9650\u4e3a**\u00b110V**\uff09<\/p>\n<p>\u7136\u540e\u5728<code>Master Channel Panel<\/code>\u4e2d\u6dfb\u52a0\u7528\u4e8e\u663e\u793a\u7535\u6d41\u66f2\u7ebf\u7684\u56fe\u8868\uff0c\u627e\u4e00\u4e2a\u672a\u7528\u7684\u901a\u9053\uff08\u4e0b\u56fe\u4e3a<code>Channel 4<\/code>\uff09\uff0c\u70b9\u5f00\u540e\u5c06<code>Input<\/code>\u8bbe\u7f6e\u4e3a<code>Current<\/code>\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u8c03\u51fa<code>Current Retrace<\/code>\u9762\u677f\uff0c\u8be5\u9762\u677f\u5c06\u8bb0\u5f55\u626b\u63cf\u8fc7\u7a0b\u4e2d\u7684\u7535\u6d41\u4fe1\u606f<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/05\/002929.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n> <img src=\"http:\/\/img.been.ee\/i\/2024\/11\/05\/003039.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\uff0c\u52fe\u9009<code>AR Do IV Panel<\/code>\u4e2d\u7684<code>use<\/code>\u9009\u9879\uff0c\u4ee5\u4fbf\u540e\u9762\u6211\u4eec\u5728\u626b\u63cf\u8fc7\u7a0b\u4e2d\u8c03\u6574\u7535\u538b\u7684\u65f6\u5019\u80fd\u7acb\u5373\u751f\u6548<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/06\/225605-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u9700\u8981\u6ce8\u610f\uff0c\u8fd9\u662f\u7531\u4e8eAFM\u7535\u5b50\u8bbe\u5907\u7ecf\u5e38\u4f1a\u5b58\u5728<strong>\u5c0f\u7684\u3001\u6301\u7eed\u7684\u7535\u6d41\u504f\u79fb<\/strong>\uff0c\u5fc5\u987b\u5c06\u5176\u51cf\u53bb\u3002\u9700\u8981\u6309\u4e0b<code>AR Do IV Panel<\/code>\u9762\u677f\u4e2d\u7684<code>Zero<\/code>\u6309\u94ae<strong>\u5c06\u7535\u6d41\u504f\u79fb\u5f52\u96f6<\/strong><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/06\/095505-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u53e6\u5916\uff0cAFM\u548c\u6837\u54c1\u4e4b\u95f4\u4e5f\u7ecf\u5e38\u5b58\u5728<strong>\u5c0f\u7684\u3001\u6301\u7eed\u7684\u7535\u538b\u504f\u79fb<\/strong>\uff0c\u4e5f\u9700\u8981<strong>\u8c03\u96f6<\/strong>\uff0c\u9700\u8981\u6211\u4eec\u5728<code>AR Do IV Panel<\/code>\u9762\u677f\u4e2d\u7684<code>S. Voltage Offset<\/code>\u53c2\u6570\u5904\u8bbe\u7f6e\u4e00\u4e2a\u504f\u538b\u6765\u62b5\u6d88\u6389\u9ed8\u8ba4\u7684\u504f\u7f6e\u7535\u538b\uff0c\u901a\u5e38\u504f\u79fb\u91cf\u572810 - 100mV\u4e4b\u95f4\uff0c\u53c2\u6570\u7684\u503c\u53ef\u4ee5\u7528\u4e07\u7528\u8868\u6d4b\u91cf\u6765\u81ea\u60ac\u81c2\u652f\u67b6\u6837\u54c1\u76d8\u548c\u60ac\u81c2\u652f\u67b6\u5939\u7684&quot;PogoOut&quot;\u504f\u7f6e\u7ebf\u4e4b\u95f4\u7684\u7535\u538b\uff0c\u4e5f\u53ef\u4ee5\u591a\u6b21\u5c1d\u8bd5\u8bbe\u7f6e\u4e0d\u540c\u7684\u504f\u538b\u503c\u76f4\u81f3\u7535\u6d41\u8c03\u4e3a0<\/p>\n<p>\u63a5\u4e0b\u6765\u6b63\u5f0f\u5f00\u59cb\u64cd\u4f5c\uff0c\u6d41\u7a0b\u5982\u4e0b\uff1a<\/p>\n<p>\u9996\u5148\u8c03\u51fa\u6444\u50cf\u5934\uff0c\u7136\u540e\u8fdb\u884c\u57fa\u672c\u7684\u5bf9\u7126\u3001\u8c03\u6574\u6fc0\u5149\u3001<code>Deflection<\/code>\u8c03\u96f6\u7b49\u64cd\u4f5c<\/p>\n<p><code>Deflection<\/code>\u8c03\u96f6\u540e\uff0c\u627e\u4e00\u4e2a\u786c\u8868\u9762\u7684\u5e72\u51c0\u533a\u57df\uff08\u975e\u6d4b\u8bd5\u6837\u54c1\u533a\uff09\u8fdb\u884c~~<strong>Tune\u548c~~<a class=\"link\" href=\"#%e6%b3%95%e5%90%91%e5%8a%9b%e6%a0%a1%e5%87%86\" >\u6cd5\u5411\u529b\u6821\u51c6<\/a><\/strong><\/p>\n<p>\u5b8c\u6210\u6821\u51c6\u540e\uff0c\u9700\u8981\u6ce8\u610f\u6b64\u65f6\u63a2\u9488\u4e0d\u5728\u6837\u54c1\u4e0a\u9762\uff0c\u9700\u8981\u91cd\u65b0\u5c06\u63a2\u9488\u62ac\u8d77\u6765\uff0c\u7136\u540e\u79fb\u52a8\u4f4d\u7f6e\u91cd\u65b0<a class=\"link\" href=\"#%e4%b8%8b%e9%92%88%e9%99%8d%e9%92%88landing-the-tip\" >\u4e0b\u9488<\/a>\uff0c\u5b8c\u6210\u540e\u53ef\u4ee5\u5f00\u59cb\u8fdb\u884c<a class=\"link\" href=\"#%e6%89%ab%e6%8f%8f%e6%88%90%e5%83%8f\" >\u626b\u63cf<\/a>\uff0c\u901a\u8fc7\u8c03\u6574<code>Sample Voltage<\/code>\u53c2\u6570\u63a7\u5236\u65bd\u52a0\u5728\u6837\u54c1\u4e0a\u7684\u7535\u538b\uff0c\u521a\u5f00\u59cb\u6d4b\u8bd5\u7684\u65f6\u5019\u53ef\u4ee5\u5c06\u529b\u8bbe\u7f6e\u7684\u5c0f\u4e00\u4e9b\uff08<code>Set Point<\/code>\u8bbe\u5c0f\uff0c\u4f8b\u59820.2 - 0.5V\uff09\uff0c\u518d\u89c6\u60c5\u51b5\u589e\u5927\u6216\u51cf\u5c0f<\/p>\n<h2 id=\"afm\u4f7f\u7528\u6280\u5de7tips\">AFM\u4f7f\u7528\u6280\u5de7\uff08Tips\uff09\n<\/h2><hr>\n<h3 id=\"\u8c03\u6574\u626b\u63cf\u53c2\u6570\">\u8c03\u6574\u626b\u63cf\u53c2\u6570\n<\/h3><hr>\n<p>\u5728<code>Master Panel<\/code> - <code>Advanced Scan Options (Adv.)<\/code>\u4e2d\uff0c\u52fe\u9009<code>Slow Scan Disabled<\/code>\u9009\u9879\u540e\uff0c\u63a2\u9488\u5c06\u4f1a\u91cd\u590d\u626b\u63cf\u540c\u4e00\u6761\u7ebf\uff0c\u8fd9\u6837\u5728\u4f18\u5316\u626b\u63cf\u53c2\u6570\u7684\u65f6\u5019\u4f1a\u66f4\u5bb9\u6613\u6bd4\u8f83\uff0c\u7b49\u53c2\u6570\u4f18\u5316\u597d\u540e\u53d6\u6d88\u52fe\u9009\u8be5\u9009\u9879\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/235148.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n> <img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/235302.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h3 id=\"\u5ef6\u8fdf\u66f4\u65b0\u53c2\u6570\">\u5ef6\u8fdf\u66f4\u65b0\u53c2\u6570\n<\/h3><hr>\n<p>\u5728<code>Master Panel<\/code> - <code>Advanced Scan Params (Param.)<\/code>\u4e2d\uff0c\u52fe\u9009<code>Delay Update<\/code>\u9009\u9879\u540e\uff0c\u5728\u626b\u63cf\u671f\u95f4\u66f4\u6539\u7684\u53c2\u6570\u5c06\u4f1a\u5728\u4e0b\u4e00\u5e27\u751f\u6548\uff0c\u5728\u6267\u884c\u66f4\u65b0\u4e4b\u524d\uff0c\u66f4\u6539\u7684\u53c2\u6570\u5c06\u4ee5\u6d45\u84dd\u8272\u7a81\u51fa\u663e\u793a<\/p>\n<h3 id=\"\u626b\u63cf\u9009\u533a\">\u626b\u63cf\u9009\u533a\n<\/h3><hr>\n<p>\u5728\u9ad8\u5ea6\u56fe\u4e2d\uff0c\u5728\u60f3\u8981\u626b\u63cf\u7684\u533a\u57df\u753b\u4e00\u4e2a\u6846\uff0c\u53f3\u952e\u9009\u62e9<code>ZoomZoom<\/code>\u4ee5\u626b\u63cf\u9009\u5b9a\u533a\u57df\uff0c\u9009\u62e9<code>NiceZoomZoom<\/code>\u4ee5\u5c06\u533a\u57df\u7f29\u653e\u5230\u6700\u63a5\u8fd1\u7684\u56db\u820d\u4e94\u5165\u6570\u5b57\uff0c\u6216\u9009\u62e9<code>editZoomZoom<\/code>\u4ee5\u952e\u5165\u7cbe\u786e\u7684\u626b\u63cf\u533a\u57df<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/05\/000914-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h3 id=\"\u5e73\u5766\u5316\u4fee\u6b63\">\u5e73\u5766\u5316\u4fee\u6b63\n<\/h3><hr>\n<p>\u6709\u65f6\u5019\u7531\u4e8e\u6837\u54c1\u6ca1\u6709\u653e\u7f6e\u5e73\u6574\uff0c\u6d4b\u51fa\u7684\u9ad8\u5ea6\u4f1a\u5411\u67d0\u4e2a\u65b9\u5411\u503e\u659c\uff0c\u8fd9\u65f6\u5019\u53ef\u4ee5\u4ece\u56fe\u50cf\u4e2d\u8fdb\u5165<code>Modify Panel<\/code> - <code>Flatten<\/code>\u9762\u677f\uff0c\u7136\u540e\u5c06<code>Flatten Order<\/code>\u9009\u4e3a<code>Histogram<\/code>\uff0c\u7136\u540eClick <code>Flatten<\/code>\u6309\u94ae\uff0c\u5c31\u53ef\u4ee5\u81ea\u52a8\u5bf9\u9ad8\u5ea6\u8fdb\u884c\u4fee\u6b63<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/11\/103239-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n> <img src=\"http:\/\/img.been.ee\/i\/2024\/11\/11\/103412-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u8bf4\u5b9e\u8bdd\u8fd9\u7bc7\u535a\u5ba2\u5199\u7684\u975e\u5e38\u6162\u4e5f\u975e\u5e38\u4e0d\u5bb9\u6613\uff0cAFM\u64cd\u4f5c\u7ec6\u8282\u771f\u7684\u5f88\u591a\uff0c\u5927\u90e8\u5206\u5185\u5bb9\u90fd\u5fc5\u987b\u5f97\u56fe\u793a\u52a0\u6587\u5b57\u8bf4\u660e\u624d\u80fd\u77e5\u9053\u600e\u4e48\u64cd\u4f5c\uff0c\u5982\u679c\u64cd\u4f5c\u4e0d\u5f53\u5bfc\u81f4\u649e\u9488\uff0c\u5c31\u8981\u635f\u5931\u8f7b\u5219\u51e0\u767e\u91cd\u5219\u4e0a\u5343\uff08\u63a2\u9488\u8d39\uff0c\u63a2\u9488\u5f88\u8d35\uff0c\u800c\u4e14\u662f\u6d88\u8017\u54c1\uff0c\u5982\u679c\u7ec4\u91cc\u6709\u94b1\uff0c\u5f53\u6211\u6ca1\u8bf4\ud83e\udd10\uff09\uff0c\u52a0\u4e0a\u5b66\u6821\u8fd9\u53f0\u673a\u5668\u53c8\u5de8tm\u91d1\u8d35\uff0c\u64cd\u4f5c\u8d77\u6765\u5f97\u5c0f\u5fc3\u5f97\u5f88\uff0c\u6240\u4ee5\u672c\u7bc7\u5185\u5bb9\u5df2\u7ecf\u5c3d\u535a\u4e3b\u6240\u80fd\u53bb\u8be6\u7ec6\u7684\u64b0\u5199\u8bf4\u660e\uff0c\u540e\u7eed\u5982\u679c\u8fd8\u6709\u5176\u4ed6\u5185\u5bb9\u518d\u968f\u65f6\u8865\u5145\u5427<\/p>\n<h2 id=\"\u53c2\u8003\">\u53c2\u8003\n<\/h2><hr>\n<ul>\n<li><a class=\"link\" href=\"https:\/\/www.nanosurf.com\/en\/support\/how-does-afm-work\"  target=\"_blank\" rel=\"noopener\"\n    >nanosurf<\/a><\/li>\n<li><a class=\"link\" href=\"https:\/\/www.oxinst.cn\/cloud-academy\"  target=\"_blank\" rel=\"noopener\"\n    >\u725b\u6d25\u4e91\u5b66\u9662<\/a><\/li>\n<\/ul>\n"},{"title":"Nginx \u53cd\u4ee3 Https \u7ad9\u70b9\u7684\u914d\u7f6e\u65b9\u6848","link":"https:\/\/been.ee\/p\/0-0-0-62\/","pubDate":"Thu, 16 Oct 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-62\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u6709\u65f6\u5019\u53d7\u9650\u4e8e\u8fd0\u8425\u5546\u6216\u5176\u4ed6\u7f51\u7edc\u8def\u7531\u7ebf\u8def\u7684\u95ee\u9898\uff0c\u5728\u8bbf\u95ee\u67d0\u4e2a\u7ad9\u70b9\u7684\u65f6\u5019\u5ef6\u8fdf\u548c\u4e22\u5305\u4f1a\u6bd4\u8f83\u4e25\u91cd\uff0c\u5c24\u5176\u662f\u4e00\u4e9b\u4e0a\u4e0b\u8f7d\u8d44\u6e90\u6bd4\u8f83\u5927\u7684\u7f51\u7ad9\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u7f51\u7edc\u95ee\u9898\u4f1a\u8ba9\u8bbf\u95ee\u4f53\u9a8c\u975e\u5e38\u5dee<\/p>\n<p>\u5982\u679c\u6211\u4eec\u6709\u4e00\u53f0\u76f4\u8fde\u7ebf\u8def\u975e\u5e38\u597d\u7684\u670d\u52a1\u5668\uff0c\u5c31\u53ef\u4ee5\u8003\u8651\u901a\u8fc7\u8fd9\u53f0\u670d\u52a1\u5668\u6765\u4e2d\u8f6c\u6d41\u91cf\uff0c\u4ee5\u8fbe\u5230\u63d0\u901f\u6216\u63d0\u5347\u8bbf\u95ee\u4f53\u9a8c\u7684\u6548\u679c<\/p>\n<p>\u8fd9\u91cc\u6211\u4eec\u8003\u8651\u7528Nginx\u7684\u53cd\u5411\u4ee3\u7406\u6765\u5b9e\u73b0\u8fd9\u4e00\u529f\u80fd<\/p>\n<blockquote>\n<p>\u6ce8\uff1a\u672c\u6587\u6240\u8ff0\u914d\u7f6e\u4e3b\u8981\u9488\u5bf9\u81ea\u5efa\u670d\u52a1\u6216\u5355\u4e00\u57df\u540d\u7ad9\u70b9\u7684\u53cd\u4ee3<\/p><\/blockquote>\n<h2 id=\"\u51c6\u5907\u5de5\u4f5c\">\u51c6\u5907\u5de5\u4f5c\n<\/h2><hr>\n<p>\u9664\u4e86\u6709\u4e00\u53f0\u76f4\u8fde\u7ebf\u8def\u597d\u7684\u670d\u52a1\u5668\uff0c\u8fd8\u9700\u8981\u51c6\u5907\u597d\u57df\u540d\u548cSSL\u8bc1\u4e66\uff0c\u7136\u540e\u63d0\u524d\u5b89\u88c5\u597dNginx\u5c31\u597d<\/p>\n<p>\u5173\u4e8e\u57df\u540d\u548cSSL\u8bc1\u4e66\u90e8\u5206\u8fd9\u91cc\u5c31\u4e0d\u5c55\u5f00\u8bf4\u4e86\uff0c\u4e0b\u9762\u4e3b\u8981\u8bf4\u660e\u4e00\u4e0bNginx\u7684\u914d\u7f6e<\/p>\n<h2 id=\"nginx\u914d\u7f6e\">Nginx\u914d\u7f6e\n<\/h2><hr>\n<p>\u5047\u8bbe\u6211\u4eec\u8981\u7528<code>www.local.com<\/code>\uff08\u81ea\u5df1\u7684\u57df\u540d\uff09\u6765\u53cd\u4ee3<code>www.target.com<\/code>\uff08\u76ee\u6807\u57df\u540d\uff09\uff0c\u90a3\u4e48\u6211\u8fd9\u91cc\u4f7f\u7528\u7684Nginx\u914d\u7f6e\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen 80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server_name www.local.com<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">return<\/span> <span class=\"m\">301<\/span> https:\/\/<span class=\"nv\">$server_name$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen <span class=\"m\">443<\/span> ssl<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    http2 on<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server_name www.local.com<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate \/etc\/letsencrypt\/live\/www.local.com\/fullchain.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate_key \/etc\/letsencrypt\/live\/www.local.com\/privkey.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    location \/ <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_pass https:\/\/www.target.com\/<span class=\"p\">;<\/span>  <span class=\"c1\"># \u53cd\u4ee3\u76ee\u6807<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header Host www.target.com<span class=\"p\">;<\/span>  <span class=\"c1\"># \u91cd\u5199Host\u8bf7\u6c42\u5934<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_ssl_server_name on<span class=\"p\">;<\/span>  <span class=\"c1\"># \u542f\u7528SNI<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_ssl_name www.target.com<span class=\"p\">;<\/span>  <span class=\"c1\"># \u6307\u5b9aSNI\u503c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      \n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"c1\"># proxy_ssl_verify off;  # \u5982\u679c\u4e0a\u6e38\u662f\u81ea\u7b7e\u540d\u8bc1\u4e66\u987b\u5f00\u542f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      \n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Forwarded-Proto <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Forwarded-For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      \n<\/span><\/span><span class=\"line\"><span class=\"cl\">      sub_filter <span class=\"s1\">&#39;https:\/\/www.target.com\/&#39;<\/span> <span class=\"s1\">&#39;\/&#39;<\/span><span class=\"p\">;<\/span>  <span class=\"c1\"># \u5185\u5bb9\u66ff\u6362\u8fc7\u6ee4\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      sub_filter_once off<span class=\"p\">;<\/span>  <span class=\"c1\"># \u5f00\u542f\u591a\u6b21\u66ff\u6362<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_buffering on<span class=\"p\">;<\/span>  <span class=\"c1\"># \u542f\u7528\u7f13\u51b2\u533a\uff0c\u56e0\u4e3asub_filter\u9700\u8981\u5904\u7406\u6574\u4e2a\u54cd\u5e94\u4f53<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      \n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_redirect https:\/\/www.target.com\/ \/<span class=\"p\">;<\/span>  <span class=\"c1\"># \u91cd\u5b9a\u5411\u5934\u91cd\u5199<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      \n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"c1\"># \u5f00\u542fWeb Socket\uff0c\u6839\u636e\u7f51\u7ad9\u60c5\u51b5\u9009\u7528<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"c1\"># proxy_http_version 1.1;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"c1\"># proxy_set_header Upgrade $http_upgrade;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"c1\"># proxy_set_header Connection &#34;upgrade&#34;;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6bd4\u8f83\u5173\u952e\u7684\u90e8\u5206\u662f\u8bf7\u6c42\u5934\u7684\u4fee\u6539\u4ee5\u53ca\u8de8\u57df\u548c\u91cd\u5b9a\u5411\u95ee\u9898\uff0c\u5728\u914d\u7f6e\u4e2d\u5747\u6709\u8bf4\u660e\uff0c\u9700\u8981\u786e\u4fdd\u66ff\u6362\u4e3a\u81ea\u5df1\u53cd\u4ee3\u7684\u4e0a\u6e38\u57df\u540d<\/p>\n<p>\u5982\u679c\u4e0a\u6e38\u662f\u81ea\u7b7e\u540d\u8bc1\u4e66\u9700\u8981\u6ce8\u610f\u8bbe\u7f6e<code>proxy_ssl_verify off<\/code>\u624d\u53ef\u4ee5\u8df3\u8fc7\u9a8c\u8bc1\u8bc1\u4e66\u5b89\u5168\u6027<\/p>\n<h2 id=\"\u8865\u5145\u8bf4\u660e\">\u8865\u5145\u8bf4\u660e\n<\/h2><hr>\n<p>\u901a\u5e38\u5bf9\u4e8e\u53cd\u4ee3\u81ea\u5efa\u670d\u52a1\u548c\u5c0f\u578b\u7ad9\u70b9\uff08\u5355\u4e00\u57df\u540d\uff0c\u65e0\u5176\u4ed6\u8d44\u6e90\u57df\uff09\uff0c\u672c\u6587\u6240\u8ff0\u914d\u7f6e\u57fa\u672c\u53ef\u4ee5\u5b9e\u73b0\u53cd\u4ee3\u3001\u4f18\u5316\u8bbf\u95ee\u4f53\u9a8c\u7684\u76ee\u7684<\/p>\n<p>\u4f46\u56e0\u4e3a\u672c\u6587\u914d\u7f6e\u4ec5\u5904\u7406\u5355\u4e00\u57df\u540d\uff0c\u5bf9\u4e8e\u4e00\u4e9b\u5927\u578b\u7ad9\u70b9\uff0c\u5c24\u5176\u662f\u6d89\u53ca\u4e00\u4e9b\u591a\u57df\u540d\u8de8\u57df\u8bf7\u6c42\u7684\u7f51\u7ad9\u53ef\u80fd\u5bfc\u81f4\u8d44\u6e90\u65e0\u6cd5\u52a0\u8f7d\uff0c\u9700\u8981\u5728\u914d\u7f6e\u4e2d\u9010\u4e2a\u5339\u914d\u57df\u540d\u8fdb\u884c\u66ff\u6362\uff0c\u6027\u80fd\u5f00\u9500\u4e5f\u6bd4\u8f83\u5927\uff0c\u56e0\u6b64\u6709\u4e00\u5b9a\u5c40\u9650\u6027<\/p>\n"},{"title":"\u4e09\u7ef4\u5149\u5b66\u8f6e\u5ed3\u4eea\u6570\u636e\u5206\u6790","link":"https:\/\/been.ee\/p\/0-0-0-61\/","pubDate":"Tue, 14 Oct 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-61\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u672c\u6587\u4ec5\u9488\u5bf9\u4f7f\u7528Bruker Countour GT-K\u4e09\u7ef4\u8f6e\u5ed3\u4eea\u5bf9\u78e8\u75d5\u8868\u5f81\u7684\u6570\u636e\u5206\u6790<\/p>\n<h2 id=\"\u6253\u5f00\u6570\u636e\u6587\u4ef6\">\u6253\u5f00\u6570\u636e\u6587\u4ef6\n<\/h2><hr>\n<p>\u6253\u5f00Vision64\u8f6f\u4ef6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/210825-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5728\u4e0a\u65b9\u83dc\u5355\u680f\u9009\u62e9<code>Preference<\/code> - <code>Open<\/code>\uff0c\u627e\u5230\u8981\u5904\u7406\u7684<code>.OPDx<\/code>\u540e\u7f00\u6587\u4ef6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/210942-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6253\u5f00\u540e\u754c\u9762\u5982\u4e0b\uff08\u53ef\u4ee5\u540c\u65f6\u6253\u5f00\u591a\u4e2a\u6587\u4ef6\uff0c\u5728\u4e0b\u65b9\u7684Active Gallery\u4e2d\u80fd\u627e\u5230\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/211204-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u8c03\u5e73\">\u8c03\u5e73\n<\/h2><hr>\n<p>\u7531\u4e8e\u6d4b\u8bd5\u6837\u54c1\u901a\u5e38\u90fd\u4f1a\u6709\u4e00\u5b9a\u503e\u659c\uff0c\u8fd9\u4e00\u6b65\u662f\u4e3a\u4e86\u5c06\u6d4b\u8bd5\u7684\u6837\u54c1\u8c03\u5e73<\/p>\n<p>\u5728\u53f3\u4fa7<code>Data Analyzer<\/code>\u7a97\u53e3\u53f3\u952e<code>Terms Removal (F-Operator)<\/code>\uff0c\u70b9\u51fb<code>Edit Settings<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/211335-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6253\u5f00\u754c\u9762\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/211617-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u9009\u62e9<code>Tilt Only (Plane Fit)<\/code>\uff0c\u7136\u540e\u52fe\u9009<code>Use Terms Mask<\/code>\uff0c\u518d\u70b9\u51fb<code>Edit Mask<\/code>\uff0c\u6253\u5f00<code>Mask Editor<\/code>\u7a97\u53e3\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/211747-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5728<code>Tool<\/code>\u4e2d\u9009\u62e9<code>Square<\/code>\uff0c\u7136\u540e\u5728\u56db\u4e2a\u89d2\u843d\u753b\u6846\uff0c\u518d\u70b9\u51fb<code>Inside<\/code>\u548c<code>Mask<\/code>\uff0c\u5f97\u5230\u7ed3\u679c\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/211928-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u518d\u70b9\u51fb<code>Invert Mask<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/212105-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6700\u540e\u70b9<code>OK<\/code>\uff0c\u5c31\u5b8c\u6210\u8c03\u5e73\u4e86<\/p>\n<h2 id=\"\u8865\u70b9\">\u8865\u70b9\n<\/h2><hr>\n<p>\u6d4b\u8bd5\u7684\u6570\u636e\u6709\u65f6\u5019\u4f1a\u53d1\u73b0\u4e0d\u8fde\u7eed\u7684\u60c5\u51b5\uff0c\u4f8b\u5982\u4e0b\u56fe\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/212440-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8fd9\u65f6\u5019\u901a\u5e38\u9700\u8981\u8865\u4e0a\u7f3a\u5931\u7684\u6570\u636e\u70b9\uff0c\u5728\u53f3\u4e0b\u89d2\u7684<code>3D Filter<\/code>\u83dc\u5355\u4e2d\u9009\u62e9<code>Data Restore<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/212538-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5982\u679c\u8fd8\u6709\u7f3a\u5931\u7684\u70b9\uff0c\u53ef\u4ee5\u53f3\u952e<code>Data Analyzer<\/code>\u4e2d\u7684<code>Data Restore<\/code>\uff0c\u7136\u540e\u9009\u62e9<code>Edit Settings<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/212649-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5c06<code>Iteration<\/code>\u6570\u503c\u9002\u5f53\u8c03\u5927\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/212744-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"3\u7ef4\u8f6e\u5ed3\u5207\u9762\">3\u7ef4\u8f6e\u5ed3\u5207\u9762\n<\/h2><hr>\n<p>\u8fd9\u4e00\u6b65\u662f\u4e3a\u4e86\u5c06\u6d4b\u8bd5\u7684\u8f6e\u5ed3\u5207\u5272\u4e3a\u6211\u4eec\u60f3\u8981\u7684\u5c3a\u5bf8<\/p>\n<p>\u5728\u53f3\u4e0b\u89d2<code>3D Filter<\/code>\u83dc\u5355\u4e2d\u70b9\u51fb<code>Mask Data<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/213146-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5728<code>Data Analyzer<\/code>\u4e2d\u53f3\u952e<code>Mask Data<\/code>\uff0c\u9009\u62e9<code>Edit Mask<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/213300-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5728<code>Tool<\/code>\u4e2d\u9009\u62e9<code>Rectangle<\/code>\uff0c\u7136\u540e\u753b\u4e00\u4e2a\u9002\u5f53\u5927\u5c0f\u7684\u6846\uff0c\u7136\u540e\u9009\u4e2d<code>Outside<\/code>\uff0c\u518d\u70b9\u51fb<code>Mask<\/code>\uff0c\u7ed3\u679c\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/213415-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u518d\u70b9\u51fb<code>OK<\/code>\u5c31\u5b8c\u6210\u4e86<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/213543-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u4e09\u7ef4\u8f6e\u5ed3\">\u4e09\u7ef4\u8f6e\u5ed3\n<\/h2><hr>\n<p>\u5982\u679c\u6211\u4eec\u60f3\u5f97\u5230\u4e09\u7ef4\u8f6e\u5ed3\uff0c\u53ef\u4ee5\u70b9\u51fb\u5de6\u4fa7\u7684<code>3D Plot<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/213620-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u53ef\u4ee5\u5f97\u5230\u5982\u4e0b\u6240\u793a\u7684\u4e09\u7ef4\u8f6e\u5ed3\u56fe<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/214012-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u78e8\u635f\u4f53\u79ef\">\u78e8\u635f\u4f53\u79ef\n<\/h2><hr>\n<p>\u5728\u53f3\u4e0b\u65b9<code>3D Analysis<\/code>\u83dc\u5355\u4e2d\u70b9\u51fb<code>Volume<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/214128-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5f97\u5230\u7684<code>Negative Volume<\/code>\u5373\u4e3a\u78e8\u635f\u4f53\u79ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/24\/214231-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n"},{"title":"\u4e09\u7ef4\u5149\u5b66\u8f6e\u5ed3\u4eea\u64cd\u4f5c\u8bb0\u5f55","link":"https:\/\/been.ee\/p\/0-0-0-60\/","pubDate":"Sun, 12 Oct 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-60\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u672c\u6587\u6240\u8ba8\u8bba\u7684\u4e09\u7ef4\u8f6e\u5ed3\u4eea\u578b\u53f7\u4e3aBruker Countour GT-K\uff0c\u4e0b\u9762\u4ee5\u5206\u6790\u5728\u94a2\u76d8\u4e0a\u7684\u78e8\u75d5\u4e3a\u4f8b\u8bb0\u5f55\u64cd\u4f5c\u8fc7\u7a0b<\/p>\n<p>\u4eea\u5668\u7167\u7247\u5982\u4e0b\u56fe\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/000238-1.jpg\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"e6839503b7135dc24c9b3e2a47654baa.jpg\"\n\t\n\t\n><\/p>\n<h2 id=\"\u6253\u5f00\u8f6f\u4ef6\">\u6253\u5f00\u8f6f\u4ef6\n<\/h2><hr>\n<p>\u9996\u5148\u6253\u5f00\u7535\u8111\uff0c\u627e\u5230\u684c\u9762\u4e0a\u7684Vision 64\u8f6f\u4ef6\u6253\u5f00<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/233706-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_19-47-07.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5f39\u51fa\u4e0b\u9762\u7a97\u53e3\uff0c\u70b9\u51fbOK\u5373\u53ef\uff0c\u7b49\u5f85\u6253\u5f00\u8f6f\u4ef6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/13\/211044-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_19-46-47.png\"\n\t\n\t\n><\/p>\n<p>\u8f6f\u4ef6\u6253\u5f00\u540e\u5982\u4e0b\u56fe\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/233817-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_19-48-16.png\"\n\t\n\t\n><\/p>\n<blockquote>\n<p><strong>\u6ce8\uff1a\u7531\u4e8e\u6211\u4eec\u8fd9\u8fb9\u7535\u8111\u6bd4\u8f83\u8001\u65e7\uff0c\u6240\u4ee5\u9700\u8981\u5728\u6253\u5f00\u540e\u4f9d\u6b21\u70b9\u51fb\u4e0b\u9762\u56db\u4e2a\u9009\u9879\u6570\u6b21\uff08\u6765\u56de\u591a\u70b9\u51e0\u6b21\uff09\uff0c\u9632\u6b62\u8f6f\u4ef6\u540e\u9762\u51fa\u73b0\u5361\u6b7b\u7684\u60c5\u51b5<\/strong><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/234223-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p><\/blockquote>\n<h2 id=\"\u53c2\u6570\u8bbe\u7f6e\">\u53c2\u6570\u8bbe\u7f6e\n<\/h2><hr>\n<p>\u9996\u5148\u70b9\u51fb\u4e0a\u65b9<code>Measurement Setup<\/code>\u9009\u9879<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/234430-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_19-48-06.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb\u5de6\u4fa7<code>More Settings<\/code>\u4e0b\u65b9\u7684<code>Measurement<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/234753-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5c31\u6253\u5f00\u4e86<code>Measurement Parameters<\/code>\u7a97\u53e3\u6765\u8bbe\u7f6e\u53c2\u6570<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/234846-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<blockquote>\n<p>\u8fd9\u91cc\u7b80\u5355\u4ecb\u7ecd\u4e0b\u9762\u7a97\u53e3\u4e2d\u7684\u4e3b\u8981\u53c2\u6570<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/235048-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u9996\u5148\u662f\u6700\u5de6\u4fa7\u8fd9\u91cc\u53ef\u4ee5\u4fee\u6539\u7269\u955c\u500d\u6570\uff0c\u9ed8\u8ba4\u6700\u5c0f\u4e3a2.5\u500d\uff08\u53ea\u80fd\u5f80\u4e0a\u8c03\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/235157-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u662f\u8fd9\u91cc\u7684<code>Backscan<\/code>\u548c<code>Length<\/code>\u5e94\u8be5\u662f\u5206\u522b\u8868\u793a\u6df1\u5ea6\u548c\u9ad8\u5ea6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/235259-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\u4e0b\u9762\u8fd9\u91cc\u662f\u8bbe\u7f6e\u5149\u7684\u7c7b\u578b\uff0c\u6709\u767d\u5149\u548c\u7eff\u5149\u4e24\u79cd\uff0c\u9ed8\u8ba4\u4e3a\u767d\u5149<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/235411-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5176\u4ed6\u53c2\u6570\u7684\u8bdd\u56e0\u4e3a\u4e00\u822c\u7528\u4e0d\u5230\uff0c\u6240\u4ee5\u76ee\u524d\u6ca1\u6709\u592a\u591a\u4e86\u89e3<\/p><\/blockquote>\n<p>\u6211\u81ea\u5df1\u7684\u6d4b\u8bd5\u7684\u8bdd\uff0c\u901a\u5e38\u53ea\u9700\u8981\u5c06\u9ed8\u8ba4\u7684\u767d\u5149\u4fee\u6539\u4e3a\u7eff\u5149\uff0c\u5176\u4ed6\u53c2\u6570\u9ed8\u8ba4\u5c31\u597d<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/235731-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u627e\u5230\u53f3\u4e0b\u89d2\u7684<code>Intensity<\/code>\uff0c\u8c03\u4e00\u4e0b\u5149\u7684\u4eae\u5ea6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/28\/235922-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_19-50-17.png\"\n\t\n\t\n><\/p>\n<p>\u5927\u6982\u8c03\u81f3\u6d45\u7070\u8272\u5982\u4e0b\u56fe\u6240\u793a\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/000023-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_19-57-21.png\"\n\t\n\t\n><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/000035-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_19-58-08.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u653e\u7f6e\u6837\u54c1\">\u653e\u7f6e\u6837\u54c1\n<\/h2><hr>\n<p>\u5c06\u6837\u54c1\u53f0\u62bd\u51fa\uff08\u9700\u8981\u634f\u4f4f\u7bad\u5934\u6240\u793a\u4f4d\u7f6e\uff09\uff0c\u7136\u540e\u653e\u7f6e\u6837\u54c1\u5e76\u8c03\u6574\u4f4d\u7f6e\uff0c\u7136\u540e\u63a8\u56de\uff0c\u53ef\u4ee5\u89c2\u5bdf\u5c06\u7eff\u5149\u7167\u5728\u8981\u6d4b\u91cf\u7684\u4f4d\u7f6e\u9644\u8fd1<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/000710-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u8c03\u8282\u4eea\u5668\u53f3\u4fa7\u8fd9\u4e2a\u65cb\u94ae\uff0c\u5c06\u6837\u54c1\u4e0a\u79fb\u81f3\u8d34\u8fd1\u955c\u5934\uff08\u4f46\u4e0d\u8981\u649e\u5230\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/000951-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u8c03\u8282\u4e0b\u9762\u4e24\u4e2a\u65cb\u94ae\uff0c\u53ef\u4ee5\u63a7\u5236\u6837\u54c1\u53f0\u524d\u540e\u5de6\u53f3\u79fb\u52a8\uff0c\u627e\u5230\u8981\u6d4b\u7684\u5730\u65b9\u75c5\u8c03\u5230\u5c4f\u5e55\u4e2d\u592e\u7684\u4f4d\u7f6e<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/000808-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u627e\u5e72\u6d89\u6761\u7eb9\">\u627e\u5e72\u6d89\u6761\u7eb9\n<\/h2><hr>\n<p>\u7531\u4e8e\u73b0\u5728\u6837\u54c1\u8d34\u8fd1\u955c\u5934\uff0c\u6240\u4ee5\u5e94\u5f53\u663e\u793a\u8f83\u4e3a\u6a21\u7cca\u7684\u56fe\u50cf\uff0c\u8fd9\u65f6\u6211\u4eec\u518d\u6b21\u8c03\u8282\u8fd9\u4e2a\u65cb\u94ae\uff0c\u5c06\u6837\u54c1\u7f13\u6162\u4e0b\u79fb<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/000951-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6ce8\u610f\u4e00\u5b9a\u8981\u7f13\u6162\u79fb\u52a8\uff0c\u76f4\u5230\u5c4f\u5e55\u4e0a\u51fa\u73b0\u5e72\u6d89\u6761\u7eb9\u65f6\u505c\u6b62\uff0c\u7c7b\u4f3c\u4e0b\u56fe\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/001309-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_20-06-24.png\"\n\t\n\t\n><\/p>\n<p>\u8fd9\u65f6\uff0c\u8c03\u8282\u4e0b\u56fe\u6240\u793a\u7684\u4e24\u4e2a\u65cb\u94ae\uff0c\u8ba9\u5c4f\u5e55\u4e2d\u7684\u5e72\u6d89\u6761\u7eb9\u4e0d\u8d85\u8fc715\u6761<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/001406-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5927\u6982\u8c03\u81f3\u4e0b\u56fe\u6240\u793a\u7684\u6837\u5b50<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/001644-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_20-23-31.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u6d4b\u91cf\">\u6d4b\u91cf\n<\/h2><hr>\n<p>\u6700\u540e\uff0c\u70b9\u51fb\u5de6\u4e0a\u65b9\u7684<code>Measurement<\/code>\u8fdb\u884c\u6d4b\u91cf<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/001738-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_20-23-39.png\"\n\t\n\t\n><\/p>\n<p>\u6d4b\u91cf\u5b8c\u6210\u540e\u5982\u4e0b\u56fe\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/001817-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_20-23-58.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u6211\u4eec\u70b9\u51fb\u4e0a\u65b9\u7684<code>Save<\/code>\u4fdd\u5b58\u5373\u53ef\uff0c\u540e\u7eed\u53ef\u4ee5\u5728\u81ea\u5df1\u7684\u7535\u8111\u4e0a\u5b89\u88c5\u8f6f\u4ef6\u8fdb\u884c\u6570\u636e\u5904\u7406<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/29\/001852-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Snipaste_2025-09-11_20-24-34.png\"\n\t\n\t\n><\/p>\n<p>\u5173\u4e8e\u6570\u636e\u5904\u7406\uff0c\u5c06\u5728\u540e\u9762\u518d\u5199\u4e00\u7bc7\u6587\u7ae0\u8fdb\u884c\u4ecb\u7ecd<\/p>\n"},{"title":"\u535a\u5ba2 Waline \u8bc4\u8bba\u7cfb\u7edf\u8fc1\u79fb\u81f3\u670d\u52a1\u5668\u81ea\u5efa","link":"https:\/\/been.ee\/p\/0-0-0-59\/","pubDate":"Wed, 08 Oct 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-59\/","description":"<h2 id=\"\u8d77\u56e0\">\u8d77\u56e0\n<\/h2><hr>\n<p>\u672c\u535a\u5ba2\u7684\u8bc4\u8bba\u7cfb\u7edf\u81ea\u542f\u7528\u4ee5\u6765\u4e00\u76f4\u7528\u7684<a class=\"link\" href=\"https:\/\/waline.js.org\/\"  target=\"_blank\" rel=\"noopener\"\n    >Waline<\/a>\u8fd9\u4e2a\u9879\u76ee\uff0c\u5f53\u65f6\u4f7f\u7528\u7684\u662fLeanCloud\uff08\u6570\u636e\u5e93\uff09 + Vercel\uff08\u670d\u52a1\u7aef\uff09\u7684\u65b9\u6848\uff0c\u5177\u4f53\u642d\u5efa\u8fc7\u7a0b\u53ef\u4ee5\u53c2\u8003\u4e4b\u524d<a class=\"link\" href=\"..\/0-0-0-30\/\" >\u8fd9\u7bc7\u535a\u5ba2<\/a><\/p>\n<p>\u7531\u4e8eWaline\u4e4b\u524d\u4e00\u76f4\u7528\u7684\u65e9\u671f\u7684\u7248\u672c\u6ca1\u6709\u66f4\u65b0\u8fc7\uff0c\u8fd9\u4e24\u5929\u767b\u9646Waline\u7ba1\u7406\u754c\u9762\u7684\u65f6\u5019\u4e5f\u63d0\u793a\u4e86\u7248\u672c\u66f4\u65b0\uff0c\u5c31\u60f3\u7740\u53bb\u66f4\u65b0\u4e00\u4e0b\uff0c\u7ed3\u679c\u6700\u540e\u5728Vercel\u91cd\u5efa\u7684\u65f6\u5019\u53d1\u73b0\u65e5\u5fd7\u91cc\u9762\u62a5\u4e86\u5f88\u591awarning\uff0c\u5927\u591a\u662f\u4e00\u4e9b\u4f9d\u8d56\u7248\u672c\u8fc7\u65f6\u7684\u95ee\u9898<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/09\/092232-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5c31\u60f3\u7740\u53bb\u5b98\u65b9\u6587\u6863\u67e5\u4e00\u4e0b\uff0c\u6b63\u597d\u53d1\u73b0\u6587\u6863\u91cc\u9762\u6709\u63d0\u5230\u4e86\u72ec\u7acb\u90e8\u7f72\u7684\u65b9\u6848\uff0c\u5e76\u4e14\u6709Docker\u955c\u50cf\u4ee5\u53ca\u652f\u6301\u8bc4\u8bba\u6570\u636e\u5bfc\u51fa\u548c\u8fc1\u79fb\uff0c\u7d22\u6027\u5c31\u8003\u8651\u76f4\u63a5\u5728\u81ea\u5df1\u7684\u670d\u52a1\u5668\u4e0a\u6258\u7ba1\u5f97\u4e86<\/p>\n<p>\u5e9f\u8bdd\u4e0d\u591a\u8bf4\uff0c\u4e0b\u9762\u5c31\u5f00\u59cb\u4ecb\u7ecd\u4e00\u4e0b\u5c06Waline\u8fc1\u79fb\u81f3\u6211\u81ea\u5df1\u670d\u52a1\u5668\u6258\u7ba1\u7684\u8fc7\u7a0b<\/p>\n<h2 id=\"\u51c6\u5907\u5de5\u4f5c\">\u51c6\u5907\u5de5\u4f5c\n<\/h2><hr>\n<p>\u9700\u8981\u63d0\u524d\u5b89\u88c5\u548c\u51c6\u5907\u597dDocker\u3001Nginx\u3001\u57df\u540d\u548c\u8bc1\u4e66\uff0c\u6211\u5728\u4e4b\u524d\u7684\u535a\u5ba2\u91cc\u4e5f\u90fd\u5199\u8fc7\uff0c\u8fd9\u91cc\u5c31\u4e0d\u518d\u8d58\u8ff0\u7ec6\u8282<\/p>\n<h2 id=\"docker\u642d\u5efa\u8fc7\u7a0b\">Docker\u642d\u5efa\u8fc7\u7a0b\n<\/h2><hr>\n<h3 id=\"\u5173\u4e8e\u6570\u636e\u5e93\">\u5173\u4e8e\u6570\u636e\u5e93\n<\/h3><hr>\n<p><a class=\"link\" href=\"https:\/\/waline.js.org\/guide\/database.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\u91cc\u4ecb\u7ecd\u4e86\u53ef\u4ee5\u7528SQLite\u3001MySQL\u3001PostgreSQL\u3001MongoDB\u7b49\u591a\u79cd\u6570\u636e\u5e93\uff0c\u8fd9\u91cc\u6211\u4f7f\u7528\u4e86PostgreSQL\uff0c\u5982\u679c\u8981\u7528\u5176\u4ed6\u6570\u636e\u5e93\u53ef\u4ee5\u81ea\u884c\u53c2\u8003<a class=\"link\" href=\"https:\/\/waline.js.org\/guide\/database.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a><\/p>\n<blockquote>\n<p><strong>\u9700\u8981\u6ce8\u610f<\/strong>\uff1a\u4f7f\u7528PostgreSQL\u7684\u65f6\u5019\u9700\u8981\u5bfc\u5165<a class=\"link\" href=\"https:\/\/github.com\/walinejs\/waline\/blob\/main\/assets\/waline.pgsql\"  target=\"_blank\" rel=\"noopener\"\n    >waline.pgsql<\/a>\u6587\u4ef6\u6765\u521b\u5efa\u597d\u8868\u548c\u8868\u7ed3\u6784\uff0c\u56e0\u6b64\u9700\u8981\u63d0\u524d\u5c06\u8be5\u6587\u4ef6\u4e0b\u8f7d\u4e0b\u6765\u653e\u5728\u540e\u9762\u8981\u521b\u5efaDocker\u5bb9\u5668\u7684\u76ee\u5f55\u4e0b<\/p><\/blockquote>\n<h3 id=\"\u521b\u5efa\u5bb9\u5668\">\u521b\u5efa\u5bb9\u5668\n<\/h3><hr>\n<p>\u9996\u5148\u521b\u5efa\u4e00\u4e2a\u5bb9\u5668\u76ee\u5f55\uff0c\u6bd4\u5982\u6211\u7684\u662f<code>\/docker\/waline\/<\/code>\uff0c\u7136\u540e\u8fdb\u5165\u8be5\u76ee\u5f55\uff0c\u5c06\u524d\u9762\u4e0b\u8f7d\u597d\u7684<a class=\"link\" href=\"https:\/\/github.com\/walinejs\/waline\/blob\/main\/assets\/waline.pgsql\"  target=\"_blank\" rel=\"noopener\"\n    >waline.pgsql<\/a>\u6587\u4ef6\u62f7\u8d1d\u8fdb\u8be5\u76ee\u5f55<\/p>\n<p>\u518d\u65b0\u5efa<code>docker-compose.yml<\/code>\u6587\u4ef6\uff0c\u5199\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">postgres<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">postgres:16-alpine  <\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">waline-postgres<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">always<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">POSTGRES_DB<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">waline_db <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u6570\u636e\u5e93\u540d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">POSTGRES_USER<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">waline_user <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u7528\u6237\u540d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">POSTGRES_PASSWORD<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"cp\">********<\/span><span class=\"w\">  <\/span><span class=\"c\"># \u5bc6\u7801<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">.\/postgres_data:\/var\/lib\/postgresql\/data <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u6301\u4e45\u5316\u6570\u636e<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">.\/waline.pgsql:\/docker-entrypoint-initdb.d\/init.sql <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u521d\u59cb\u5316 SQL\uff08\u9700\u5148\u4e0b\u8f7d waline.pgsql \u5230\u76ee\u5f55\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"s2\">&#34;127.0.0.1:5432:5432&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">healthcheck<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">test<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"s2\">&#34;CMD-SHELL&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;pg_isready -U waline_user -d waline_db&#34;<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">interval<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">10s<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">timeout<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">5s<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">retries<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">5<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">waline<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">lizheming\/waline:latest<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">waline-server<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">always<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"s2\">&#34;127.0.0.1:8360:8360&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># PostgreSQL \u914d\u7f6e<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">PG_DB<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">waline_db <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u6570\u636e\u5e93\u540d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">PG_USER<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">waline_user <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u7528\u6237\u540d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">PG_PASSWORD<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"cp\">********<\/span><span class=\"w\">  <\/span><span class=\"c\"># \u5bc6\u7801<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">PG_HOST<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">postgres <\/span><span class=\"w\"> <\/span><span class=\"c\"># Docker \u5185\u90e8\u670d\u52a1\u540d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">PG_PORT<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">5432<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">PG_PREFIX<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">wl_<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">PG_SSL<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># Waline \u914d\u7f6e<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">TZ<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">Asia\/Shanghai <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u65f6\u533a<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">SITE_NAME<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;\u5fd8\u5ddd\u6cb3\u7554&#34;<\/span><span class=\"w\">  <\/span><span class=\"c\"># \u7ad9\u70b9\u540d\u79f0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">SITE_URL<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">https:\/\/been.ee <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u4f60\u7684\u535a\u5ba2\u57df\u540d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">AUTHOR_EMAIL<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">manjusaka@misscel.com <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u4f5c\u8005\u90ae\u7bb1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">IPQPS<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">0<\/span><span class=\"w\">  <\/span><span class=\"c\"># \u57fa\u4e8e IP \u7684\u8bc4\u8bba\u53d1\u5e03\u9891\u7387\u9650\u5236\uff0c\u5355\u4f4d\u4e3a\u79d2\u3002\u8bbe\u7f6e\u4e3a 0 \u4e0d\u9650\u5236<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">LEVELS<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;0,3,9,20,32,50,70,100,150,200&#34;<\/span><span class=\"w\"> <\/span><span class=\"c\"># \u8bbe\u7f6e level \u7b49\u7ea7<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># \u90ae\u4ef6\u901a\u77e5\u914d\u7f6e<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">SMTP_HOST<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"cp\">********<\/span><span class=\"w\">  <\/span><span class=\"c\"># SMTP \u4e3b\u673a<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">SMTP_PORT<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">465<\/span><span class=\"w\">  <\/span><span class=\"c\"># SMTP \u7aef\u53e3<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">SMTP_SECURE<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">  <\/span><span class=\"c\"># \u4f7f\u7528 SSL<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">SMTP_USER<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">notify@misscel.com <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u90ae\u7bb1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">SMTP_PASS<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"cp\">********<\/span><span class=\"w\">  <\/span><span class=\"c\"># \u5bc6\u7801<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">SENDER_NAME<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">Been.ee<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">SENDER_EMAIL<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">notify@misscel.com<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># Telegram \u901a\u77e5\u914d\u7f6e<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">TG_BOT_TOKEN<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"cp\">****************<\/span><span class=\"w\">  <\/span><span class=\"c\"># Bot Token<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">TG_CHAT_ID<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"cp\">********<\/span><span class=\"w\">  <\/span><span class=\"c\"># Chat ID<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">depends_on<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">postgres<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">        <\/span><span class=\"nt\">condition<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">service_healthy<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">.\/uploads:\/app\/uploads<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u6211\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u914d\u7f6e\u4e86\u90ae\u4ef6\u901a\u77e5\u548cTelegram\u901a\u77e5\u7684\u529f\u80fd\uff0c\u5982\u679c\u4e0d\u9700\u8981\u53ef\u4ee5\u5c06\u5bf9\u5e94\u90e8\u5206\u5220\u9664\uff0c\u5982\u679c\u9700\u8981\u7684\u8bdd\u9700\u8981\u6362\u6210\u81ea\u5df1\u7684\u4fe1\u606f<\/p>\n<blockquote>\n<p>\u5173\u4e8e<code>Telegram Bot<\/code>\uff0c\u8fd9\u91cc\u7b80\u5355\u63d0\u4e00\u4e0b<\/p>\n<ul>\n<li>\n<p>\u83b7\u53d6<code>Bot Token<\/code>\uff1a\u9996\u5148\u9700\u8981\u521b\u5efaTelegram Bot\uff0c\u6253\u5f00Telegram\uff0c\u641c\u7d22<code>@BotFather<\/code>\uff0c\u53d1\u9001<code>\/newbot<\/code>\uff0c\u8ddf\u968f\u63d0\u793a\u8bbe\u7f6e\u540d\u79f0\u548c\u7528\u6237\u540d\uff0c\u83b7\u53d6<code>Bot Token<\/code>\uff08\u683c\u5f0f\uff1a<code>123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11<\/code>\uff09<\/p>\n<\/li>\n<li>\n<p>\u83b7\u53d6<code>Chat ID<\/code>\uff1a\u79c1\u804aBot\u53d1\u9001\u6d88\u606f\uff0c\u7136\u540e\u8bbf\u95ee<a class=\"link\" href=\"https:\/\/api.telegram.org\/bot\/getUpdates\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/api.telegram.org\/bot\/getUpdates<\/a>\u83b7\u53d6<code>Chat ID<\/code><\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u53e6\u5916\uff0c\u914d\u7f6e\u6587\u4ef6\u4e2d\u5173\u4e8ePostgreSQL\u90e8\u5206\u4e2d\u7684\u6570\u636e\u5e93\u540d\u3001\u7528\u6237\u540d\u548c\u5bc6\u7801\u53ef\u4ee5\u81ea\u884c\u4fee\u6539\uff0c\u5173\u4e8eWaline\u914d\u7f6e\u4e2d\u7684\u7f51\u7ad9\u4fe1\u606f\u7b49\u73af\u5883\u53d8\u91cf\u4e5f\u9700\u8981\u81ea\u884c\u8c03\u6574<\/p>\n<p>\u914d\u7f6e\u597d\u540e\u5c31\u53ef\u4ee5\u6267\u884c<code>docker compose up -d<\/code>\u542f\u52a8\u5bb9\u5668\u540e\u7aef<\/p>\n<h2 id=\"\u53cd\u5411\u4ee3\u7406\">\u53cd\u5411\u4ee3\u7406\n<\/h2><hr>\n<p>\u63a5\u4e0b\u6765\u7528Nginx\u914d\u7f6e\u4e00\u4e0b\u53cd\u5411\u4ee3\u7406\u6765\u8bbf\u95ee\u5bb9\u5668\u540e\u7aef\uff0c\u9700\u8981\u51c6\u5907\u597d\u57df\u540d\uff08\u4f8b\u5982<code>comment.example.com<\/code>\uff09\u5e76\u7533\u8bf7\u8bc1\u4e66<\/p>\n<p>\u65b0\u5efa\u4e00\u4e2aWaline\u7684Nginx\u914d\u7f6e\u6587\u4ef6<code>\/etc\/nginx\/conf.d\/waline.conf<\/code>\uff0c\u5199\u5165\u4e0b\u9762\u914d\u7f6e\uff0c\u6ce8\u610f\u5c06\u57df\u540d\u548c\u8bc1\u4e66\u66ff\u6362\u4e3a\u81ea\u5df1\u7684<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">server<span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen 80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server_name comment.example.com<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">return<\/span> <span class=\"m\">301<\/span> https:\/\/<span class=\"nv\">$server_name$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server<span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen <span class=\"m\">443<\/span> ssl<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    http2 on<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server_name comment.example.com<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate \/etc\/letsencrypt\/live\/comment.example.com\/fullchain.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate_key \/etc\/letsencrypt\/live\/comment.example.com\/privkey.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    location \/ <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_pass http:\/\/127.0.0.1:8360<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header Host <span class=\"nv\">$host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Forwarded-Proto <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Forwarded-For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6267\u884c<code>systemctl restart nginx<\/code>\u52a0\u8f7d\u914d\u7f6e\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u8bbf\u95ee<code>comment.example.com<\/code>\u8fdb\u5165\u8bc4\u8bba\u7cfb\u7edf\u6216<code>comment.example.com\/ui<\/code>\u8fdb\u5165\u8bc4\u8bba\u7ba1\u7406\u7cfb\u7edf\uff0c\u767b\u5f55\u8bc4\u8bba\u7ba1\u7406\u754c\u9762\u540e\u9700\u8981\u6ce8\u518c\u4e00\u4e2a\u8d26\u6237\uff0c\u7b2c\u4e00\u4e2a\u6ce8\u518c\u7684\u8d26\u6237\u5373\u4e3a\u7ba1\u7406\u5458\u8d26\u6237<\/p>\n<h2 id=\"\u5ba2\u6237\u7aef\u914d\u7f6e\u4fee\u6539hugo\">\u5ba2\u6237\u7aef\u914d\u7f6e\u4fee\u6539\uff08Hugo\uff09\n<\/h2><hr>\n<p>Waline\u7684\u5ba2\u6237\u7aef\u914d\u7f6e\u5df2\u7ecf\u96c6\u6210\u5728\u4e86\u6211\u4f7f\u7528\u7684Hugo Stack\u4e3b\u9898\u4e2d\u4e86\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728Hugo\u7684<code>config.yaml<\/code>\u6587\u4ef6\u4e2d\u6dfb\u52a0\u6216\u4fee\u6539\u914d\u7f6e<\/p>\n<p>\u8be6\u7ec6\u7684\u914d\u7f6e\u53c2\u6570\u53ef\u4ee5\u67e5\u9605<a class=\"link\" href=\"https:\/\/waline.js.org\/reference\/client\/props.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\uff0c\u4e0b\u9762\u662f\u6211\u7684\u914d\u7f6e\uff0c\u5176\u4e2d<code>level0<\/code> - <code>level9<\/code>\u5bf9\u5e94\u5728<code>docker-compose.yml<\/code>\u4e2d\u8bbe\u7f6e\u7684<code>LEVELS: &quot;0,3,9,20,32,50,70,100,150,200&quot;<\/code>\uff0c\u4ee3\u8868\u8bc4\u8bba\u6570\u5bf9\u5e94\u7684\u6807\u7b7e\uff0c\u53ef\u4ee5\u81ea\u884c\u4fee\u6539\u548c\u8bbe\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"w\">        <\/span><span class=\"nt\">waline<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">serverURL<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">https:\/\/comment.oopd.de<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">lang<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">zh-CN<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">pageview<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">emoji<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.0.1\/weibo<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/alus<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/bilibili<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/bmoji<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/qq<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/tieba<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/soul-emoji<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/tw-emoji<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">requiredMeta<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">nick<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">mail<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">locale<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">admin<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u626b\u5730\u50e7<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">placeholder<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u7559\u4e0b\u4f60\u7684\u8db3\u8ff9\u5427\uff01<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">link<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u7f51\u5740<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">mail<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u90ae\u7bb1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">nick<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u6635\u79f0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">level0<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u51e1\u4eba<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">level1<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u70bc\u4f53<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">level2<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u51dd\u6c14<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">level3<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u7b51\u57fa<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">level4<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u7ed3\u4e39<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">level5<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u5143\u5a74<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">level6<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u5316\u795e<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">level7<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u70bc\u865a<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">level8<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u6e21\u52ab<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">level9<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u98de\u5347<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">reaction<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">comment<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u6570\u636e\u8fc1\u79fb\">\u6570\u636e\u8fc1\u79fb\n<\/h2><hr>\n<p>\u8fdb\u5165Waline\u8bc4\u8bba\u7ba1\u7406\u7cfb\u7edf\uff0c\u5728\u5de6\u4e0a\u89d2\u7684\u7ba1\u7406\u83dc\u5355\u4e2d\u9009\u62e9\u5bfc\u5165\u5bfc\u51fa\uff0c\u5c31\u53ef\u4ee5\u6253\u5f00\u4e0b\u9762\u754c\u9762<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/09\/105704-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5728\u65e7\u7cfb\u7edf\u4e2d\u70b9\u51fb\u5bfc\u51fa\u53ef\u4ee5\u5f97\u5230\u4e00\u4e2a<code>waline.json<\/code>\u6587\u4ef6\uff0c\u7136\u540e\u5728\u65b0\u7cfb\u7edf\u4e2d\u5c06\u8be5\u6587\u4ef6\u5bfc\u5165\u5373\u53ef<\/p>\n<blockquote>\n<p>PS: \u5bfc\u5165\u4e4b\u540e\u53d1\u73b0\u4e00\u4e2a\u95ee\u9898\uff0c\u5c31\u662f\u5982\u679c\u6ce8\u518c\u7684\u7ba1\u7406\u5458\u8d26\u6237\u90ae\u7bb1\u548c\u4e4b\u524d\u76f8\u540c\uff0c\u90a3\u4e48\u4e4b\u524d\u7ba1\u7406\u5458\u4f3c\u4e4e\u548c\u73b0\u5728\u7684\u7ba1\u7406\u5458\u4e0d\u91cd\u53e0\uff0c\u5e76\u4e14\u5728\u8bc4\u8bba\u663e\u793a\u4e0a\u65e0\u6cd5\u663e\u793a\u5934\u50cf\uff0c\u5982\u679c\u6362\u65b0\u90ae\u7bb1\u6ce8\u518c\u5012\u662f\u53ef\u4ee5\u663e\u793a\u65e7\u7ba1\u7406\u5458\u4e4b\u524d\u8bc4\u8bba\u65f6\u7684\u5934\u50cf\uff0c\u4f46\u89d2\u8272\u4f9d\u65e7\u4e0d\u91cd\u53e0\uff0c\u6682\u65f6\u6ca1\u6709\u627e\u5230\u529e\u6cd5\uff0c\u4e0d\u8fc7\u76ee\u524d\u8bc4\u8bba\u4e0d\u591a\u6240\u4ee5\u5f71\u54cd\u4e0d\u5927<\/p><\/blockquote>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u7ecf\u6d4b\u8bd5\u611f\u89c9\u8fc1\u79fb\u540e\u8bc4\u8bba\u53d1\u5e03\u53ca\u52a0\u8f7d\u4f3c\u4e4e\u6bd4\u4e4b\u524d\u5feb\u4e86\u4e00\u4e9b\uff0c\u8fd9\u6b21\u989d\u5916\u6dfb\u52a0\u4e86Telegram\u901a\u77e5\uff0c\u6d4b\u8bd5\u4e5f\u662f\u80fd\u79d2\u6536\u5230\uff0c\u8fd9\u6837\u4ee5\u540e\u57fa\u672c\u5c31\u4e0d\u4f1a\u9519\u8fc7\u8bc4\u8bba\u4e86<\/p>\n"},{"title":"SRV \u63a5\u89e6\u7535\u963b\u6d4b\u8bd5","link":"https:\/\/been.ee\/p\/0-0-0-58\/","pubDate":"Wed, 24 Sep 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-58\/","description":"<blockquote>\n<p>\u6ce8\uff1aSRV\u53ea\u80fd\u5b9a\u6027\u6d4b\u91cf\u63a5\u89e6\u7535\u963b\uff0c\u53ea\u80fd\u901a\u8fc7\u63a5\u89e6\u7535\u963b\u7684\u53d8\u5316\u8861\u91cf\u6469\u64e6\u526f\u754c\u9762\u4e4b\u95f4\u7684\u63a5\u89e6\u72b6\u6001\uff0c\u4f8b\u5982\u6cb9\u819c\u539a\u5ea6\u7b49\u4fe1\u606f\uff08\u4e3a\u4e00\u79cd\u5b9a\u6027\u8bc4\u4f30\u624b\u6bb5\uff0c\u9700\u8981\u7ed3\u5408\u5177\u4f53\u6d4b\u8bd5\u7ed3\u679c\u5b9a\u6027\u5206\u6790\uff09<\/p><\/blockquote>\n<p>\u6d4b\u8bd5\u8fc7\u7a0b\u4e0eSRV\u5f80\u590d\u6469\u64e6\u6d4b\u8bd5\u7684\u5927\u90e8\u5206\u8fc7\u7a0b\u7c7b\u4f3c\uff0c\u4e0d\u540c\u70b9\u5728\u4e8e\u9700\u8981\u989d\u5916\u63a5\u7ebf\u7528\u4e8e\u6d4b\u91cf\u63a5\u89e6\u7535\u963b\u4fe1\u606f\uff0c\u5e76\u4e14\u6d4b\u8bd5\u7a0b\u5e8f\u7684\u4e0d\u540c<\/p>\n<h2 id=\"\u63a5\u7ebf\">\u63a5\u7ebf\n<\/h2><hr>\n<p>\u9700\u8981\u7528\u5230\u4e0b\u9762\u8fde\u63a5\u7ebf<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/11\/164802-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8fde\u63a5\u65b9\u5f0f\u5982\u4e0b\u6240\u793a\uff08\u4e24\u6839\u7535\u963b\u7ebf\u4e0d\u5206\u5dee\u522b\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/11\/165604-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u7a0b\u5e8f\u8bbe\u7f6e\">\u7a0b\u5e8f\u8bbe\u7f6e\n<\/h2><hr>\n<p>\u6d4b\u91cfECR\u63a5\u89e6\u7535\u963b\u9700\u8981\u7528\u5230\u4e13\u95e8\u7684\u7a0b\u5e8f\uff0c\u5177\u4f53\u5dee\u522b\u5728\u4e8e\u8bbe\u7f6e<code>Setpoint profile<\/code>\u7684\u65f6\u5019\uff0c\u5728<code>Electrical resistance<\/code>\u9009\u9879\u4e2d\u9009\u62e9<code>Electrical resistance oscillation<\/code>\uff0c\u5176\u4ed6\u5730\u65b9\u4e0d\u53d8<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/104714-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n"},{"title":"SRV \u7a0b\u5e8f\u8bbe\u7f6e","link":"https:\/\/been.ee\/p\/0-0-0-57\/","pubDate":"Tue, 23 Sep 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-57\/","description":"<p>SRV\u7684\u7a0b\u5e8f\u8bbe\u7f6e\u6709\u4e24\u6b65\uff0c\u7b2c\u4e00\u6b65\u9700\u8981\u5148\u8bbe\u7f6e\u4e00\u4e2a<code>Setpoint profile<\/code>\uff0c\u7136\u540e\u518d\u8bbe\u7f6e<code>Start procedure<\/code>\u8c03\u7528\u521a\u521a\u7684<code>Setpoint profile<\/code><\/p>\n<h2 id=\"\u8bbe\u7f6esetpoint-profile\">\u8bbe\u7f6eSetpoint profile\n<\/h2><hr>\n<p>\u9996\u5148\u5728\u8f6f\u4ef6\u6253\u5f00\u7684\u4e3b\u754c\u9762\u627e\u5230\u4e0b\u9762\u4e24\u4e2a\u9009\u9879<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/095634-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u5148\u70b9\u51fb\u53f3\u8fb9\u7684<code>Setpoint profile<\/code>\uff0c\u6253\u5f00\u540e\u663e\u793a\u4e0b\u9762\u7a97\u53e3<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/100010-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u901a\u5e38\u4f7f\u7528\u5f80\u590d\u6469\u64e6\uff0c\u5c31\u9009\u9ed8\u8ba4\u7684<code>Oscillation<\/code>\u5c31\u884c\uff0c\u7136\u540e\u70b9\u51fb<code>Create new setpoint profile<\/code>\uff0c\u4f1a\u663e\u793a\u4e0b\u9762\u7a97\u53e3<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/100053-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u5c06\u5de6\u4e0a\u89d2\u7684<code>General<\/code> - <code>Name<\/code>\u6539\u4e3a\u7a0b\u5e8f\u540d\u5b57\uff0c\u5e76\u4e14\u590d\u5236\u8fd9\u4e2a\u540d\u5b57\u4e00\u4f1a\u8981\u7528\uff0c\u7136\u540e\u6839\u636e\u6211\u4eec\u8bbe\u5907\u7684\u914d\u7f6e\u60c5\u51b5\uff0c\u9009\u62e9\u53f3\u4fa7<code>Setpoint profile specification<\/code>\u4e2d\u7684\u5404\u4e2a\u9009\u9879\u5982\u4e0a\u56fe<\/p>\n<p>\u7136\u540e\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684<code>Settings<\/code>\uff0c\u6309\u4e0b\u56fe\u6240\u793a\u4fee\u6539<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/100432-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u518d\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684<code>Parameter<\/code>\uff0c\u4f9d\u6b21\u4fee\u6539\u6e29\u5ea6\u3001\u8f7d\u8377\u3001\u884c\u7a0b\u548c\u9891\u7387\uff0c\u4f8b\u5982\u4e0b\u9762\u4e3a<strong>50\u6444\u6c0f\u5ea6 - 25Hz - 1mm<\/strong>\u884c\u7a0b\u53d8\u8f7d\u8377\u6d4b\u8bd5\u7684\u914d\u7f6e<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/100831-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/100923-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/100930-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/100936-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/100953-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c<code>Parameter<\/code>\u8bbe\u7f6e\u51b3\u5b9a\u4e86\u6d4b\u8bd5\u9700\u8981\u7684\u65f6\u95f4\uff0c\u4f8b\u5982\u4e0a\u9762\u53d8\u8f7d\u8377\u6700\u540e\u7684\u65f6\u95f4\u4e3a2\u4e2a\u5c0f\u65f6\uff0c\u4e5f\u5c31\u662f\u8fd9\u8f6e\u6d4b\u8bd5\u9700\u89812\u4e2a\u5c0f\u65f6\uff0c\u8fd9\u65f6\u5019\u6211\u4eec\u9700\u8981\u5c06\u4e0a\u65b9\u7684<code>Test run time<\/code>\u4e5f\u8bbe\u7f6e\u4e3a2\u5c0f\u65f6\uff0c\u5982\u4e0b\u56fe\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/101115-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684<code>Save<\/code>\u4fdd\u5b58<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/101316-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u4fdd\u5b58\u540e\u53ef\u4ee5\u68c0\u67e5\u4e00\u4e0b\u6ca1\u5565\u95ee\u9898\u7684\u8bdd\u5c31\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684<code>Cancel<\/code>\u5173\u95ed\u5c31\u597d<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/101400-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<h2 id=\"\u8bbe\u7f6estart-procedure\">\u8bbe\u7f6eStart procedure\n<\/h2><hr>\n<p>\u8fd4\u56de\u8f6f\u4ef6\u4e3b\u754c\u9762\uff0c\u70b9\u51fb<code>Start procedure<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/101555-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u5728\u65b0\u7a97\u53e3\u540c\u6837\u9009\u62e9<code>Oscillation<\/code>\uff0c\u7136\u540e\u70b9\u51fb<code>Create new start procedure <\/code>\n<img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/101818-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u5728\u4e0b\u4e00\u4e2a\u7a97\u53e3\u5c06\u5de6\u4fa7\u7684<code>General<\/code> - <code>Name<\/code>\u6539\u4e3a\u5728<code>Setpoint profile<\/code>\u4e2d\u8bbe\u7f6e\u7684\u540d\u5b57<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/102028-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684<code>Process settings<\/code>\uff0c\u9009\u62e9<code>Process settings1<\/code>\uff08\u5df2\u7ecf\u914d\u7f6e\u597d\u7684\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/102333-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u518d\u70b9\u51fb\u53f3\u4e0a\u89d2<code>Setpoint profile<\/code>\uff0c\u5728\u4e0b\u9762\u641c\u7d22\u4e4b\u524d\u5728<code>Setpoint profile<\/code>\u8bbe\u7f6e\u7684\u540d\u5b57\uff0c\u627e\u5230\u4e4b\u524d\u8bbe\u7f6e\u7684<code>Setpoint<\/code>\u6587\u4ef6\u5e76\u9009\u62e9<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/102816-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u518d\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684<code>Datalogger<\/code>\uff0c\u9009\u62e9\u9ed8\u8ba4\u7684\u4e00\u4e2a\u5c31\u597d<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/103033-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb<code>Save<\/code>\u4fdd\u5b58\u5c31\u597d<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/103145-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684<code>Information<\/code>\uff0c\u89c2\u5bdf\u5de6\u4e0a\u89d2\u6709\u7eff\u8272\u7684\u5bf9\u52fe\u5c31\u6ca1\u95ee\u9898\u4e86<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/103351-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u6700\u540e\uff0c\u5728\u4e3b\u754c\u9762\u70b9\u51fb\u641c\u7d22\uff0c\u9009\u62e9<code>Starting procedure<\/code>\uff0c\u641c\u7d22\u521a\u521a\u7684\u540d\u5b57\u5c31\u53ef\u4ee5\u627e\u5230\u7a0b\u5e8f\u7136\u540e\u8c03\u7528\u6d4b\u8bd5\u5c31\u597d\u5566<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/09\/15\/104331-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n"},{"title":"MacOS \u7528 Homebrew \u5b89\u88c5 Python \u540e\u4f7f\u7528 pip \u7684\u95ee\u9898","link":"https:\/\/been.ee\/p\/0-0-0-56\/","pubDate":"Sat, 20 Sep 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-56\/","description":"<h2 id=\"pip\u5b89\u88c5\u63d0\u793aerror-externally-managed-environment\">pip\u5b89\u88c5\u63d0\u793aerror: externally-managed-environment\n<\/h2><hr>\n<p>\u5c31\u662f\u7cfb\u7edf\u4e0d\u5141\u8bb8\u76f4\u63a5\u7528<code>pip<\/code>\u547d\u4ee4\u5728\u7cfb\u7edf\u7ea7\u7684Python\u73af\u5883\u4e2d\u5b89\u88c5\u8f6f\u4ef6\u5305\uff0c\u4ee5\u9632\u6b62\u65e0\u610f\u4e2d\u7834\u574f\u7cfb\u7edf\u6240\u9700\u7684Python\u4f9d\u8d56\uff0c\u8fd9\u662f\u4e00\u79cd\u4fdd\u62a4\u673a\u5236<\/p>\n<p>\u53ef\u4ee5\u901a\u8fc7\u521b\u5efa\u4e00\u4e2a\u72ec\u7acb\u7684\u3001\u9694\u79bb\u7684Python\u865a\u62df\u73af\u5883(venv)\u6765\u89e3\u51b3<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">python3 -m venv &lt;venv_name\/path_to_venv_name&gt;  <span class=\"c1\"># \u521b\u5efa\u865a\u62df\u73af\u5883<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">source<\/span> path\/to\/venv\/bin\/activate.fish  <span class=\"c1\"># \u6fc0\u6d3b\u8fdb\u5165\u865a\u62df\u73af\u5883\uff0c\u56e0\u4e3a\u6211\u662f\u7528fish shell\u6240\u4ee5\u7528\u7684\u662factivate.fish\uff0c\u5982\u679c\u662fbash\u6216zsh\u9700\u8981\u4fee\u6539<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pip3 install &lt;package_name&gt;  <span class=\"c1\"># \u8fdb\u5165\u865a\u62df\u73af\u5883\u540e\u53ef\u4ee5\u4f7f\u7528pip3\u5b89\u88c5\u9700\u8981\u7684\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">deactivate  <span class=\"c1\"># \u9000\u51fa\u865a\u62df\u73af\u5883<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6ce8\u610f\uff0c\u5728\u865a\u62df\u73af\u5883\u4e2d\u5b89\u88c5\u7684\u5305\u53ea\u6709\u8fdb\u5165\u865a\u62df\u73af\u5883\u624d\u80fd\u7528<\/p>\n<h2 id=\"pip\u9700\u8981\u5b89\u88c5pysocks\u5305\u540e\u624d\u80fd\u4f7f\u7528socks\u4ee3\u7406\">pip\u9700\u8981\u5b89\u88c5pysocks\u5305\u540e\u624d\u80fd\u4f7f\u7528socks\u4ee3\u7406\n<\/h2><hr>\n<p>\u53d7\u9650\u4e8e\u56fd\u5185\u7684\u7f51\u7edc\u95ee\u9898\uff0c\u65e0\u6cd5\u76f4\u63a5\u4f7f\u7528pip\u5b89\u88c5\u8f6f\u4ef6\u5305\uff0c\u56e0\u6b64\u5728shell\u4e2d\u914d\u7f6e\u4e86\u5168\u5c40socks\u4ee3\u7406<\/p>\n<p>\u4f46\u662fpip\u9ed8\u8ba4\u65e0\u6cd5\u76f4\u63a5\u4f7f\u7528shell\u914d\u7f6e\u7684socks\u4ee3\u7406\uff0c\u9700\u8981\u5148\u5b89\u88c5pysocks\u5305\uff0c\u4f46\u662f\u5b89\u88c5pysocks\u5305\u4e5f\u9700\u8981\u7528pip\u5b89\u88c5\uff0c\u8fd9\u5c31\u5f88\u70e6<\/p>\n<p>\u53ef\u4ee5\u5148\u914d\u7f6e\u4e00\u4e0bpip\u7528\u56fd\u5185\u6e90\uff0c\u9700\u8981\u5148\u521b\u5efapip\u914d\u7f6e\u6587\u4ef6~\/.config\/pip\/pip.conf\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>global<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">index-url <span class=\"o\">=<\/span> https:\/\/pypi.tuna.tsinghua.edu.cn\/simple\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>install<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">trusted-host <span class=\"o\">=<\/span> https:\/\/pypi.tuna.tsinghua.edu.cn\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5148\u6ce8\u91ca\u6389shell\u914d\u7f6e\u4e2d\u5173\u4e8e\u4ee3\u7406\u7684\u5185\u5bb9<\/p>\n<p>\u91cd\u65b0\u6253\u5f00shell\u540e\u8fdb\u5165venv\u73af\u5883\uff0c\u6267\u884cpip3 install pysocks\u5b89\u88c5socks\u6a21\u5757<\/p>\n<p>\u7136\u540e\u56de\u5230shell\u914d\u7f6e\u4e2d\u53d6\u6d88\u6ce8\u91ca\u5173\u4e8esocks\u4ee3\u7406\u7684\u5185\u5bb9<\/p>\n<p>\u5220\u9664pip\u914d\u7f6e\u6587\u4ef6<\/p>\n"},{"title":"UMT \u8bd5\u9a8c\u673a\u64cd\u4f5c\u8bb0\u5f55","link":"https:\/\/been.ee\/p\/0-0-0-55\/","pubDate":"Tue, 16 Sep 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-55\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u672c\u6587\u6240\u8ba8\u8bba\u7684UMT\u8bd5\u9a8c\u673a\u578b\u53f7\u4e3aBruker UMT Tribo Lab\uff0c\u6a21\u5f0f\u4e3a\u5f80\u590d\u6469\u64e6\uff0c\u4e0b\u9762\u5c06\u8bb0\u5f55\u5177\u4f53\u64cd\u4f5c\u6d41\u7a0b<\/p>\n<h2 id=\"\u6d4b\u8bd5\u524d\u51c6\u5907\">\u6d4b\u8bd5\u524d\u51c6\u5907\n<\/h2><hr>\n<p>\u4ee5\u4e0b\u662f\u6211\u6d4b\u8bd5\u9700\u8981\u7684\u4e1c\u897f<\/p>\n<blockquote>\n<p><code>\u94a2\u76d8\u30016mm \u94a2\u7403\u3001\u6da6\u6ed1\u6cb9\u3001\u70ed\u7194\u80f6\u67aa\uff08\u70ed\u7194\u80f6\uff09\u3001\u65e0\u6c34\u4e59\u9187\u30010.2ml \u6ef4\u7ba1\u3001\u954a\u5b50<\/code><\/p><\/blockquote>\n<h2 id=\"umt\u5f00\u673a\">UMT\u5f00\u673a\n<\/h2><hr>\n<p>\u4e0a\u673a\u540e\uff0c\u9996\u5148\u6253\u5f00UMT\u7535\u6e90\uff0c\u5728UMT\u8bbe\u5907\u4e0a\u5148\u540e\u6309POWER\u548cMOTOR\u6309\u952e\uff0c\u5982\u4e0b\u56fe<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/16\/201500-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6309\u4e0bMOTOR\u6309\u952e\u540e\uff0c\u65c1\u8fb9\u5e94\u8be5\u663e\u793a\u4e3aACTIVATED\uff08\u5e38\u4eae\uff0c\u5982\u679c\u7184\u706d\uff0c\u5219\u9700\u8981\u91cd\u65b0\u6253\u5f00MOTOR\uff09<\/p>\n<p>\u6ce8\uff1a\u5982\u679c\u6309MOTOR\u952e\u6ca1\u6709\u53cd\u5e94\uff0c\u53ef\u4ee5\u68c0\u67e5\u4e00\u4e0b\u8bbe\u5907\u4e0a\u65b9\u4e0b\u56fe\u6240\u793a\u7684\u4e24\u4e2a\u6ed1\u7247\uff0c\u9700\u8981\u5c06\u5176\u6309\u56fe\u4e2d\u6240\u793a\u6c34\u5e73\u653e\u7f6e<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/101436.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h2 id=\"\u6253\u5f00\u8f6f\u4ef6\">\u6253\u5f00\u8f6f\u4ef6\n<\/h2><hr>\n<p>\u5728\u8fde\u63a5UMT\u8bbe\u5907\u7684\u7535\u8111\u4e0a\u6253\u5f00UMT\u8f6f\u4ef6\uff0c\u6253\u5f00\u540e\u9ed8\u8ba4\u4f1a\u5f39\u51fa\u4e24\u4e2a\u7a97\u53e3\uff0c\u4e00\u4e2a\u662f\u5173\u4e8e\u529b\uff08Fx\u548cFz\uff09\u7684\uff0c\u53e6\u4e00\u4e2a\u662f\u5173\u4e8e\u6469\u64e6\u7cfb\u6570\uff08COF\uff09\u7684\uff0c\u6682\u65f6\u5148\u4e0d\u7ba1<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/102306-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u6253\u5f00\u6d4b\u8bd5\u811a\u672c\">\u6253\u5f00\u6d4b\u8bd5\u811a\u672c\n<\/h2><hr>\n<p>\u70b9\u51fb\u6700\u5de6\u4e0a\u89d2\u83dc\u5355\u680f\u9009\u9879\u6253\u5f00\u4e0b\u62c9\u5217\u8868\uff0c\u9009\u62e9<code>Open Script<\/code>\uff0c\u6253\u5f00\u4e00\u4e2a\u5df2\u6709\u7684\u6d4b\u8bd5\u811a\u672c\uff08\u6d4b\u8bd5\u811a\u672c\u901a\u5e38\u4fdd\u5b58\u5728<code>F:\\DATA\\\u4e2a\u4eba\u6587\u4ef6\u5939\\xxx.ctsx<\/code>\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/104720-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u9700\u8981\u6ce8\u610f\u6bcf\u6b21\u6d4b\u8bd5\u90fd\u8981\u4fee\u6539<code>Data File<\/code>\u4e2d\u7684\u6570\u636e\u4fdd\u5b58\u8def\u5f84<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/104601-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5176\u5b83\u9009\u9879\u6309\u6d4b\u8bd5\u9700\u8981\u8fdb\u884c\u66f4\u6539<\/p>\n<h2 id=\"\u65b0\u5efa\u6d4b\u8bd5\u811a\u672c\">\u65b0\u5efa\u6d4b\u8bd5\u811a\u672c\n<\/h2><hr>\n<p>\u4e5f\u53ef\u4ee5<code>New Script<\/code>\u65b0\u5efa\u4e00\u4e2a\u6d4b\u8bd5\u811a\u672c\uff0c\u4f8b\u5982\u65b0\u5efa\u4e00\u4e2a\u540d\u4e3a<code>Test<\/code>\u7684\u6d4b\u8bd5\u811a\u672c<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/151955-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u70b9\u51fb<code>OK<\/code>\uff0c\u5f39\u51fa\u811a\u672c\u914d\u7f6e\u9875\u9762<\/p>\n<p>\u9996\u5148\u9009\u4e2d\u5de6\u4fa7\u9009\u9879\u5361\u4e2d\u7684<code>Test<\/code>\uff0c\u5728\u53f3\u4fa7\u8fdb\u5165<code>Data File<\/code>\u9009\u9879\uff0c\u914d\u7f6e\u4e00\u4e0b\u4fdd\u5b58\u7684\u6570\u636e\u6587\u4ef6\uff0c\u9700\u8981\u52fe\u9009<code>Create Data File<\/code>\u9009\u9879\uff0c\u7136\u540e\u70b9\u51fb\u4e0b\u9762\u7684<code>Browse<\/code>\u6765\u8bbe\u7f6e\u4fdd\u5b58\u7684\u8def\u5f84\u548c\u6587\u4ef6\u540d\uff08<code>.tst<\/code>\u683c\u5f0f\uff09\uff0c<code>Channels<\/code>\u901a\u5e38\u52fe\u9009<code>Fx<\/code>\u548c<code>Fz<\/code>\u4e24\u4e2a\u9009\u9879\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/152523-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb<code>Engage<\/code>\u9009\u9879\uff0c\u5c06<code>Touch Force<\/code>\u6539\u4e3a0.2\uff0c<code>Carriage Velocity<\/code>\u680f\u4e2d\u7684<code>Pretouch<\/code>\u6539\u4e3a0.2\uff0c<code>Touch<\/code>\u6539\u4e3a0.05\uff0c<code>Tracking<\/code>\u6539\u4e3a0.005<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/105417-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb<code>Test<\/code>\u9009\u9879\uff0c\u5c06<code>Fz Tolerance<\/code>\u6539\u4e3a0.15<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/105752-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\uff0c\u70b9\u51fb\u5de6\u4fa7<code>Test<\/code>\u5de6\u8fb9\u7684\u52a0\u53f7\uff0c\u5c55\u5f00\u5de5\u6b65\uff0c\u9ed8\u8ba4\u4f1a\u6709\u4e00\u4e2a\u5de5\u6b65\uff0c\u70b9\u51fb\u8fd9\u4e2a\u5de5\u6b65\uff0c\u53f3\u4fa7\u5c31\u4f1a\u663e\u793a\u914d\u7f6e\u9875\u9762<\/p>\n<p>\u7b2c\u4e00\u4e2a\u5de5\u6b65\u901a\u5e38\u662f\u9884\u52a0\u8f7d\uff0c\u4f8b\u5982\u8981\u8bbe\u7f6e5 N\u8f7d\u8377\uff0c\u9884\u52a0\u8f7d30 s\uff0c\u5c31\u9996\u5148\u5728\u53f3\u4fa7\u7684<code>General<\/code>\u9875\u9762\u4e2d\u7684<code>Duration<\/code>\u9009\u9879\u4e2d\u8bbe\u7f6e30 s<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/153944-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb\u53f3\u4fa7\u7684<code>Load Control<\/code>\uff0c\u5c06<code>Fz Value<\/code>\u8bbe\u7f6e\u4e3a\u8981\u9884\u52a0\u8f7d\u76845 N<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/154326-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u9700\u8981\u518d\u6dfb\u52a0\u4e00\u4e2a\u5de5\u6b65\u7528\u4e8e\u5f80\u590d\u6469\u64e6\u6d4b\u8bd5<\/p>\n<p>\u9996\u5148\u9009\u4e2d\u7b2c\u4e00\u4e2a\u5de5\u6b65\uff0c\u7136\u540e\u5728\u8f6f\u4ef6\u6700\u4e0a\u65b9\u7684\u83dc\u5355\u680f\u4e2d\u9009\u4e2d<code>Script<\/code>\uff0c\u7136\u540e\u70b9\u51fb\u4e0b\u65b9\u7684<code>Add Step<\/code>\u5373\u53ef\u5728\u5f53\u524d\u5de5\u6b65\u4e0b\u9762\u6dfb\u52a0\u4e00\u4e2a\u5de5\u6b65<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/154752-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7b2c\u4e8c\u4e2a\u5de5\u6b65\u8981\u8fdb\u884c\u5f80\u590d\u6d4b\u8bd5\uff0c\u5047\u8bbe\u6211\u4eec\u7b2c\u4e8c\u4e2a\u5de5\u6b65\u9700\u8981\u8bbe\u7f6e\u57285 N\u8f7d\u8377\u4e0b\uff0c\u4ee52 Hz\u9891\u7387\u5f80\u590d\u6d4b\u8bd530 min<\/p>\n<p>\u9996\u5148\u8fdb\u5165\u53f3\u4fa7\u7684<code>General<\/code>\u754c\u9762\uff0c\u5c06<code>Duration<\/code>\u9009\u9879\u8bbe\u7f6e\u4e3a30 min<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/155239-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u8fdb\u5165<code>Load Control<\/code>\u754c\u9762\uff0c\u5c06<code>Fz Value<\/code>\u8bbe\u7f6e\u4e3a5 N<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/155326-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u8fdb\u5165<code>Rec Drive<\/code>\u754c\u9762\uff0c\u5c06<code>Mode<\/code>\u8bbe\u7f6e\u4e3a<code>Continuous<\/code>\uff0c\u7136\u540e<code>Velocity<\/code>\u8bbe\u7f6e\u4e3a2 Hz<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/155517-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6700\u540e\u91cd\u65b0\u70b9\u5de6\u4fa7\u9009\u9879\u5361\u4e2d\u7684<code>Test<\/code>\uff0c\u5728\u53f3\u4fa7\u70b9<code>Disengage<\/code>\u9009\u9879\uff0c\u5c06<code>Carriage Retracting Distance<\/code>\u8bbe\u4e3a1\uff0c<code>Velocity<\/code>\u8bbe\u4e3a5<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/113245-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8bbe\u7f6e\u597d\u6d4b\u8bd5\u811a\u672c\u540e\uff0c\u5728\u8f6f\u4ef6\u5de6\u4e0a\u89d2\u627e\u5230\u4fdd\u5b58\u6309\u94ae\uff0c\u70b9\u51fb\u4fdd\u5b58<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/160516-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8d77\u4e00\u4e2a\u540d\u5b57\uff0c\u5047\u8bbe\u4e3a<code>test<\/code>\uff0c\u8fdb\u5165\u8981\u4fdd\u5b58\u7684\u76ee\u5f55\uff0c\u70b9\u51fb\u4fdd\u5b58\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/160632-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u653e\u7f6e\u6837\u54c1\">\u653e\u7f6e\u6837\u54c1\n<\/h2><hr>\n<p>\u5c06\u94a2\u76d8\u653e\u7f6e\u5728\u4e0b\u56fe\u6240\u793a\u533a\u57df\u5dee\u4e0d\u591a\u4e2d\u95f4\u7684\u5730\u65b9<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/161844-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u9009\u62e9\u5408\u9002\u7684\u5939\u5177\u5c066 mm\u94a2\u7403\u88c5\u5230\u91cc\u9762\uff0c\u7136\u540e\u5c06\u88c5\u597d\u94a2\u7403\u7684\u5939\u5177\u63d2\u5230\u8bbe\u5907\u4e2d\u653e\u5939\u5177\u7684\u5b54\u4e2d\uff0c\u8f6c\u4e00\u4e0b\u62e7\u7d27\uff08\u4e0d\u7528\u592a\u7d27\uff0c\u5939\u5177\u56fa\u5b9a\u4f4f\u4e0d\u52a8\u5c31\u884c\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/162938-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u7528\u70ed\u7194\u80f6\u67aa\u5728\u94a2\u76d8\u5468\u56f4\u55b7\u4e00\u5708\u70ed\u7194\u80f6\u5c06\u94a2\u76d8\u56fa\u5b9a\u4f4f<\/p>\n<h2 id=\"\u64cd\u4f5c\u94a2\u7403\u79fb\u52a8\">\u64cd\u4f5c\u94a2\u7403\u79fb\u52a8\n<\/h2><hr>\n<p>\u63a5\u4e0b\u6765\u9700\u8981\u5c06\u94a2\u7403\u4e0b\u79fb\u81f3\u94a2\u76d8\u8868\u9762<\/p>\n<p>\u70b9\u51fb\u8f6f\u4ef6\u6700\u4e0a\u65b9\u83dc\u5355\u680f\u4e2d\u7684<code>Script<\/code>\uff0c\u70b9\u51fb<code>Adjustment<\/code>\u9009\u9879<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/160814-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u968f\u540e\u5f39\u51fa\u4e00\u4e2a\u7a97\u53e3\u5982\u4e0b\uff08\u4e0d\u7528\u7ba1\u8fd9\u4e2a\u7a97\u53e3\uff0c\u540e\u9762\u79fb\u52a8\u7ed3\u675f\u540e\u5173\u95ed\u8be5\u7a97\u53e3\u5373\u53ef\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/103712-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\u6211\u4eec\u901a\u8fc7\u5feb\u6377\u952e<code>\u53f3Alt + \u4e0a\/\u4e0b\u65b9\u5411\u952e<\/code>\u6765\u64cd\u4f5c\u8bbe\u5907\u4e2d\u94a2\u7403\u5939\u5177\u90e8\u5206\u4e0a\u4e0b\u79fb\u52a8\uff0c\u6216\u901a\u8fc7\u5feb\u6377\u952e<code>\u53f3Ctrl + \u4e0a\/\u4e0b\u65b9\u5411\u952e<\/code>\u5fae\u5c0f\u79fb\u52a8<\/p>\n<p>\u5c06\u94a2\u7403\u79fb\u52a8\u81f3\u5dee\u4e0d\u591a\u8d34\u5230\u94a2\u76d8\u8868\u9762\u5c31\u884c<\/p>\n<p>\u7136\u540e\u7528\u6ef4\u7ba1\u5c06\u6da6\u6ed1\u6cb9\u6ef4\u5230\u7403\u76d8\u4e4b\u95f4\uff0c\u6ef4\u5b8c\u540e\u5c31\u53ef\u4ee5\u5173\u4e0a\u4eea\u5668\u5916\u9762\u7684\u76d6\u5b50\uff0c\u540e\u9762\u9700\u8981\u5728\u7535\u8111\u4e0a\u63a7\u5236\u6d4b\u8bd5<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/163932-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u6d4b\u8bd5\">\u6d4b\u8bd5\n<\/h2><hr>\n<p>\u56de\u5230\u4e4b\u524d\u6253\u5f00\u7684UMT\u8f6f\u4ef6\uff0c\u70b9\u51fb\u521a\u6253\u5f00\u8f6f\u4ef6\u7684\u65f6\u5019\u5f39\u51fa\u7684\u5173\u4e8e<code>Fx<\/code>\u548c<code>Fz<\/code>\u7684\u7a97\u53e3\uff0c\u7136\u540e\u70b9\u51fb\u8f6f\u4ef6\u4e0a\u65b9\u83dc\u5355\u680f\u4e2d\u7684<code>Script<\/code>\uff0c\u518d\u591a\u6b21\u70b9\u51fb<code>Zero All Channels<\/code>\uff0c\u76f4\u81f3<code>Fx<\/code>\u548c<code>Fz<\/code>\u7684\u7a97\u53e3\u53f3\u4fa7\u7684<code>Fx<\/code>\u548c<code>Fz<\/code>\u663e\u793a\u7684\u6570\u503c\u5168\u90e8\u5f52\u96f6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/164635-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb\u4e4b\u524d\u6253\u5f00\u7684\u6d4b\u8bd5\u811a\u672c\u7a97\u53e3\uff08\u5305\u542b\u6d4b\u8bd5\u5de5\u6b65\u7684\u90a3\u4e2a\uff09\uff0c\u7136\u540e\u70b9\u51fb\u83dc\u5355\u680f\u4e0a\u65b9\u7684<code>Start<\/code>\u5f00\u59cb\uff08\u5982\u679c\u5931\u8d25\uff0c\u68c0\u67e5\u4eea\u5668\u7684MOTOR\u65c1\u8fb9\u7684<code>Activated<\/code>\u662f\u5426\u7184\u706d\uff0c\u5982\u679c\u7184\u706d\u91cd\u65b0\u70b9\u4e00\u4e0bMOTOR\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/17\/165017-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u540e\u9762\u5c31\u7b49\u5f85\u6d4b\u8bd5\u5373\u53ef\uff0c\u6d4b\u8bd5\u5b8c\u6210\u540e\u5f39\u51fa\u4e0b\u9762\u7a97\u53e3\uff0c\u901a\u5e38\u8fde\u7eed\u6d4b\u8bd5\u4e09\u6b21<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/103843-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u6570\u636e\u4fdd\u5b58\">\u6570\u636e\u4fdd\u5b58\n<\/h2><hr>\n<p>\u4ece\u684c\u9762\u6253\u5f00<code>Viewer<\/code>\u8f6f\u4ef6\uff0c\u6253\u5f00\u540e\u70b9\u51fb\u5de6\u4e0a\u65b9\u7684<code>Open<\/code>\u6309\u94ae\uff0c\u627e\u5230\u521a\u521a\u6d4b\u8bd5\u4fdd\u5b58\u7684<code>.tst<\/code>\u6570\u636e\u6587\u4ef6<\/p>\n<p>\u6570\u636e\u52a0\u8f7d\u540e\uff0c\u5728\u53f3\u4fa7\u7684<code>Steps<\/code>\u4e2d\u9009\u62e9\u7b2c\u4e8c\u4e2a\u5de5\u6b65\uff08\u6d4b\u8bd5\u5de5\u6b65\uff09\uff0c<code>Parameters<\/code>\u4e2d\u53ea\u52fe\u9009<code>COF<\/code>\u9009\u9879<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/102839-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb\u5de6\u4e0a\u89d2\u83dc\u5355\u680f\u4e2d\u7684<code>Compress<\/code>\u6309\u94ae<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/102942-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb\u4e0a\u65b9\u83dc\u5355\u680f\u7684<code>Filter<\/code>\u6309\u94ae\uff0c\u4f1a\u5f39\u51fa\u4e00\u4e2a<code>Filter Data<\/code>\u7a97\u53e3<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/103039-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5728<code>Filter Data<\/code>\u7a97\u53e3\u4e2d\u5c06<code>Averaging Window<\/code>, <code>samples<\/code>\u7684\u503c\u4fee\u6539\u4e3a100\uff0c\u7136\u540e\u70b9\u51fb<code>OK<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/103241-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5c31\u80fd\u5f97\u5230\u7c7b\u4f3c\u4e0b\u56fe\u7684\u6469\u64e6\u7cfb\u6570\u968f\u65f6\u95f4\u53d8\u5316\u7684\u66f2\u7ebf<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/103327-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u6211\u4eec\u70b9\u51fb\u4e0a\u65b9\u83dc\u5355\u680f\u4e2d\u7684<code>Screen<\/code>\u6309\u94ae<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/103434-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5728\u5f39\u51fa\u7684\u7a97\u53e3\u4e2d\u53ef\u4ee5\u9009\u62e9\u5c06\u6570\u636e\u4fdd\u5b58\u4e3a<code>txt<\/code>\u6216<code>csv<\/code>\u683c\u5f0f<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/21\/103528-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u81f3\u6b64\uff0c\u6570\u636e\u4fdd\u5b58\u5b8c\u6210<\/p>\n<h2 id=\"\u53d6\u6837\u5173\u8bbe\u5907\">\u53d6\u6837\u3001\u5173\u8bbe\u5907\n<\/h2><hr>\n<p>\u53d6\u6837\u4e4b\u524d\uff0c\u8981\u5148\u901a\u8fc7[[UMT\u8bd5\u9a8c\u673a\u64cd\u4f5c\u8bb0\u5f55#\u64cd\u4f5c\u94a2\u7403\u79fb\u52a8|\u64cd\u4f5c\u94a2\u7403\u79fb\u52a8]]\u5c06\u94a2\u7403\u62ac\u8d77\uff0c\u7136\u540e\u5728\u94a2\u76d8\u70ed\u7194\u80f6\u9644\u8fd1\u6ef4\u5165\u65e0\u6c34\u4e59\u9187\uff0c\u7136\u540e\u53d6\u51fa\u94a2\u76d8\u548c\u94a2\u7403<\/p>\n<p>\u5c06\u7535\u8111\u4e0a\u6253\u5f00\u7684\u8f6f\u4ef6\u5173\u95ed\uff08\u4e0d\u5173\u673a\uff09\uff0c\u7136\u540e\u5173\u95ed\u8bbe\u5907\u7684MOTOR\u548cPOWER\u5373\u53ef<\/p>\n"},{"title":"SRV \u8bd5\u9a8c\u673a\u64cd\u4f5c\u8bb0\u5f55","link":"https:\/\/been.ee\/p\/0-0-0-54\/","pubDate":"Wed, 10 Sep 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-54\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u672c\u6587\u6240\u8ba8\u8bba\u7684SRV\u8bd5\u9a8c\u673a\u578b\u53f7\u4e3aOptimal SRV V\uff0c\u6a21\u5f0f\u4e3a\u5f80\u590d\u6469\u64e6\uff0c\u4e0b\u9762\u5c06\u8bb0\u5f55\u5177\u4f53\u64cd\u4f5c\u8fc7\u7a0b<\/p>\n<h2 id=\"\u6d4b\u8bd5\u524d\u51c6\u5907\">\u6d4b\u8bd5\u524d\u51c6\u5907\n<\/h2><hr>\n<p>\u4e0b\u9762\u662f\u6211\u81ea\u5df1\u6d4b\u8bd5\u9700\u8981\u7684\u4e1c\u897f\uff0c\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u51c6\u5907\u597d<\/p>\n<blockquote>\n<p><code>\u94a2\u76d8\u300110mm \u94a2\u7403\u3001\u6da6\u6ed1\u6cb9\u3001\u65e0\u6c34\u4e59\u9187\u30010.2ml \u6ef4\u7ba1\u3001\u954a\u5b50\u3001\u8bb0\u53f7\u7b14<\/code><\/p><\/blockquote>\n<h2 id=\"\u7535\u8111\u5f00\u673a\">\u7535\u8111\u5f00\u673a\n<\/h2><hr>\n<p>\u70b9\u51fb\u4e3b\u673a\u53f3\u4e0a\u65b9\u7684<code>Power Button<\/code>\u6309\u94ae\u5f00\u542f\u7535\u8111<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/171511-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"srv\u5f00\u673a\">SRV\u5f00\u673a\n<\/h2><hr>\n<p>\u6309\u4e0bSRV\u8bbe\u5907\u4e0b\u65b9\u7684<code>POWER ON<\/code>\uff08\u7eff\u8272\uff09\u6309\u94ae\u5f00\u673a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/171732-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u6253\u5f00\u8f6f\u4ef6\">\u6253\u5f00\u8f6f\u4ef6\n<\/h2><hr>\n<p>\u5728\u7535\u8111\u4e0a\u627e\u5230<code>OCA Desktop<\/code>\u56fe\u6807\uff0c\u53cc\u51fb\u7b49\u5f85\u6253\u5f00\u8f6f\u4ef6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/171943-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7b49\u5f85\u7247\u523b\u540e\uff0c\u6253\u5f00\u7684\u4e3b\u754c\u9762\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/172322-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u653e\u7f6e\u6837\u54c1\">\u653e\u7f6e\u6837\u54c1\n<\/h2><hr>\n<p>\u6709\u4e09\u79cd\u7528\u4e8e\u56fa\u5b9a\u94a2\u76d8\u7684\u5939\u5177\uff0c\u5982\u4e0b\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/174545-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8fd9\u4e09\u79cd\u5939\u5177\u5206\u522b\u4ee3\u8868\u5728\u94a2\u76d8\u4e0a\u7684\u6469\u64e6\u4f4d\u7f6e\uff0c\u6709\u4e2d\u5fc3\u5212\u75d5\u3001\u5185\u5708\u5212\u75d5\u548c\u5916\u5708\u5212\u75d5\u4e09\u79cd\uff0c\u5206\u522b\u8868\u793a\u5212\u75d5\u5728\u94a2\u76d8\u7684\u4f4d\u7f6e<\/p>\n<p>\u56fa\u5b9a\u94a2\u7403\u7684\u5939\u5177\u53ea\u6709\u4e00\u4e2a\uff0c\u5982\u4e0b\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/175003-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u9996\u5148\u5b89\u88c5\u94a2\u7403\uff0c\u5c06\u94a2\u7403\u653e\u7f6e\u5728\u5939\u5177\u7684\u5b54\u4e2d\uff0c\u7136\u540e\u62e7\u7d27\u87ba\u4e1d\uff0c\u7528\u65e0\u6c34\u4e59\u9187\u5c06\u94a2\u7403\u8868\u9762\u64e6\u62ed\u5e72\u51c0<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/174708-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5c06\u5176\u5b89\u88c5\u5728\u8bbe\u5907\u5bf9\u5e94\u4f4d\u7f6e<\/p>\n<p>\u63a5\u4e0b\u6765\u628a\u94a2\u76d8\u7528\u65e0\u6c34\u4e59\u9187\u64e6\u62ed\u5e72\u51c0\uff0c\u4e5f\u5c06\u5176\u5b89\u88c5\u5728\u8bbe\u5907\u5bf9\u5e94\u4f4d\u7f6e\uff0c\u5b89\u88c5\u597d\u540e\u5728\u7403\u76d8\u4e4b\u95f4\u6ef4\u5165\u8981\u6d4b\u8bd5\u7684\u6da6\u6ed1\u6cb9\u6837\u54c1\uff0c\u5982\u4e0b\u6240\u793a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/175255-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5230\u7535\u8111\u4e0a\u8bbe\u7f6e\u6d4b\u8bd5\u7a0b\u5e8f<\/p>\n<h2 id=\"\u8bbe\u7f6e\u6d4b\u8bd5\u7a0b\u5e8f\">\u8bbe\u7f6e\u6d4b\u8bd5\u7a0b\u5e8f\n<\/h2><hr>\n<p>\u8fd9\u91cc\u53ea\u4ecb\u7ecd\u5982\u4f55\u8c03\u7528\u5df2\u7ecf\u914d\u7f6e\u597d\u7684\u7a0b\u5e8f\uff0c\u7a0b\u5e8f\u7684\u8bbe\u7f6e\u5c06\u5728\u540e\u9762\u5355\u72ec\u5199\u4e00\u7bc7\u4ecb\u7ecd<\/p>\n<p>\u70b9\u51fb\u4e3b\u754c\u9762\u5de6\u4e0a\u65b9\u7684<code>Search<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/172633-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5728<code>Search<\/code>\u754c\u9762\u53f3\u4fa7\u7684<code>Filter<\/code>\u4e2d\u53ea\u9009\u4e2d<code>Starting Procedure<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/172846-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u518d\u5230\u5de6\u4fa7\u641c\u7d22\u6d4b\u8bd5\u7a0b\u5e8f\u540d\uff0c\u627e\u5230\u8981\u7528\u7684\u6d4b\u8bd5\u7a0b\u5e8f\u5e76\u9009\u4e2d<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/173008-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u9009\u4e2d\u7a0b\u5e8f\u540e\uff0c\u5728\u8f6f\u4ef6\u6700\u4e0b\u65b9\u4e00\u680f\u627e\u5230<code>Manual start<\/code>\u5e76\u5355\u51fb\u4e00\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/173123-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\u5c31\u8fdb\u5165<code>Test run status<\/code>\u754c\u9762\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/173241-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6211\u4eec\u7684\u6d4b\u8bd5\u7a0b\u5e8f\u7528\u7684\u662f150 N\u7684\u6052\u5b9a\u8f7d\u8377\uff08\u9884\u52a0\u8f7d50 N\uff09\uff0c\u9700\u8981\u5728\u53f3\u4e0b\u65b9<code>Test load setpoint [N]<\/code>\u4e2d\u8bbe\u7f6e50 N<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/173426-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u70b9\u51fb<code>Apply test load<\/code>\uff0c\u7b49\u5f85\u52a0\u8f7d\uff08\u8377\uff09<\/p>\n<p>\u52a0\u8f7d\u5b8c\u6210\u540e\uff0c\u5de6\u4fa7\u7684<code>Measured value [N]<\/code>\u4f1a\u53d8\u4e3a\u6211\u4eec\u8bbe\u7f6e\u768450 N<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/173831-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u8981\u8fdb\u884c\u5378\u8f7d\uff08\u8377\uff09<\/p>\n<p>\u5378\u8f7d\u7684\u65f6\u5019\u9700\u8981\u5230\u8bbe\u5907\u90a3\u8fb9\uff0c\u627e\u5230\u4e0b\u9762\u90e8\u5206\u7684\u4e0a\u4e0b\u4e24\u4e2a\u87ba\u4e1d\uff0c\u6309\u7167\u5148\u4e0a\u540e\u4e0b\u7684\u987a\u5e8f\uff0c\u7528\u87ba\u4e1d\u5200\u5c06\u87ba\u4e1d\u62e7\u677e\u4e00\u70b9\uff08\u5927\u6982\u8f6c\u56db\u5206\u4e4b\u4e00\u5708\uff09\uff0c\u7136\u540e\u518d\u62e7\u7d27<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/174128-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5173\u4e0a\u8bbe\u5907\u5916\u9762\u7684\u76d6\u5b50<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/175442-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u518d\u56de\u5230\u8f6f\u4ef6\u754c\u9762\uff0c\u70b9\u51fbNext step<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/175832-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\u5c31\u5f00\u59cb\u5347\u6e29\u5230\u7a0b\u5e8f\u4e2d\u8bbe\u7f6e\u7684\u6e29\u5ea6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/175934-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5230\u6307\u5b9a\u6e29\u5ea6\u540e\uff0c\u5c31\u4f1a\u8df3\u8f6c\u5230\u4e0b\u56fe\u6240\u793a\u754c\u9762\u8fdb\u884c\u7b49\u5f85\u8ba1\u65f6\uff0c\u901a\u5e38\u7b49\u5f85\u5341\u51e0\u79d2\u7684\u65f6\u5019\u5c31\u53ef\u4ee5\u70b9\u53f3\u4fa7\u7684<code>Skip time delay<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/180108-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u4f1a\u8df3\u8f6c\u5230\u4e0b\u9762\u754c\u9762\uff0c\u8868\u793a\u5df2\u7ecf\u5f00\u59cb\u6d4b\u8bd5<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/180241-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u67e5\u770b\u5b9e\u65f6\u6570\u636e\">\u67e5\u770b\u5b9e\u65f6\u6570\u636e\n<\/h2><hr>\n<p>\u53ef\u4ee5\u70b9\u51fb\u5de6\u4fa7\u83dc\u5355\u4e2d\u7684<code>Live view<\/code>\u9009\u9879\u6765\u67e5\u770b\u5b9e\u65f6\u6d4b\u8bd5\u56fe\u8868<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/180346-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6253\u5f00\u540e\u663e\u793a\u5982\u4e0b\uff0c\u8fd9\u91cc\u6211\u4eec\u9700\u8981\u8bb0\u4f4f\u6570\u636e\u4e0a\u65b9\u672c\u6b21\u6d4b\u8bd5\u7684\u4ee3\u7801\u7528\u4e8e\u540e\u7eed\u6570\u636e\u4fdd\u5b58\uff0c\u8fd9\u91cc\u662f16307<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/180422-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u70b9\u51fb\u5de6\u4fa7\u83dc\u5355\u4e2d\u7684<code>Online<\/code>\u4e5f\u53ef\u4ee5\u663e\u793a\u4e00\u4e9b\u7cfb\u7edf\u4fe1\u606f<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/180501-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6253\u5f00\u540e\u663e\u793a\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/180648-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7ee7\u7eed\u70b9\u51fb\u53f3\u4e0a\u65b9\u7684<code>Tribosystem<\/code>\u53ef\u4ee5\u663e\u793a\u5b9e\u65f6\u6469\u64e6\u4fe1\u606f\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/180747-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u6570\u636e\u4fdd\u5b58\">\u6570\u636e\u4fdd\u5b58\n<\/h2><hr>\n<p>\u6d4b\u8bd5\u7ed3\u675f\u540e\uff0c\u9700\u8981\u5728\u6b64\u70b9\u51fb\u5de6\u4fa7\u83dc\u5355\u680f\u7684<code>Search<\/code>\u9009\u9879\u56de\u5230\u4e00\u5f00\u59cb\u7684\u641c\u7d22\u754c\u9762<\/p>\n<p>\u5728\u53f3\u4fa7\u7684<code>Filter<\/code>\u4e2d\u53ea\u52fe\u9009<code>Analysis<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/181231-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5728\u5de6\u4fa7\u641c\u7d22\u6846\u4e2d\u8f93\u5165\u521a\u521a\u6d4b\u8bd5\u7684\u4ee3\u7801\uff0c\u4f8b\u598216308\uff0c\u7b49\u5f85\u7d22\u5f15\u5230\u8be5\u6d4b\u8bd5\u6761\u76ee<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/181414-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5728\u8f6f\u4ef6\u53f3\u4e0b\u65b9\u627e\u5230<code>Export<\/code>\u5e76\u5355\u51fb<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/181446-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5728\u6253\u5f00\u7684\u754c\u9762\u4e2d\u70b9\u51fb\u53f3\u4fa7\u7684<code>New configuration<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/181553-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5728\u6253\u5f00\u7684\u754c\u9762\u4e2d\u5148\u9009\u4e2d\u5de6\u4fa7<code>Batch info<\/code>\uff0c\u7136\u540e\u5728\u53f3\u4fa7\u9009\u62e9<code>Export testrun info data<\/code>\uff0c\u518d\u9009\u62e9\u4e0b\u65b9\u7684<code>Excel-workbook<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/181744-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u518d\u9009\u4e2d\u5de6\u4fa7\u7684<code>Numeric SRA data<\/code>\uff0c\u7136\u540e\u5728\u53f3\u4fa7\u9009\u62e9<code>Export numeric SRA data<\/code>\uff0c\u540c\u6837\u518d\u9009\u62e9\u4e0b\u65b9\u7684<code>Excel-workbook<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/181839-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u518d\u9009\u4e2d\u5de6\u4fa7\u7684<code>File settings<\/code>\uff0c\u7136\u540e\u5728\u53f3\u4fa7<code>Export folder<\/code>\u4e2d\u9009\u62e9\u8981\u4fdd\u5b58\u7684\u76ee\u5f55<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/181915-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6700\u540e\u70b9\u51fb\u53f3\u4e0a\u65b9\u7684<code>Export and close<\/code>\uff0c\u5c31\u4fdd\u5b58\u5b8c\u6210\u5566<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/07\/24\/182021-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u8bbe\u5907\u5173\u95ed\">\u8bbe\u5907\u5173\u95ed\n<\/h2><hr>\n<p>\u6d4b\u8bd5\u5b8c\u6210\u540e\uff0c\u76f4\u63a5\u5173\u95ed\u8f6f\u4ef6\uff0c\u5173\u673a\uff0c\u7136\u540e\u6441\u7ea2\u8272\u7684\u6309\u94ae\u5173\u6389\u8bbe\u5907\u5c31\u53ef\u4ee5\u4e86<\/p>\n"},{"title":"MacOS \u7b2c\u4e09\u65b9\u5e94\u7528\u5b89\u88c5","link":"https:\/\/been.ee\/p\/0-0-0-53\/","pubDate":"Wed, 27 Aug 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-53\/","description":"<p>\u547d\u4ee4\u884c\u6267\u884c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo spctl --master-disable\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u8fdb\u5165<code>System Settings<\/code> - <code>Privacy &amp; Security<\/code> - <code>Security<\/code>\uff0c\u5c06<code>Allow applications from<\/code>\u9009\u9879\u6539\u4e3a<code>Anywhere<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/06\/25\/113823-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5982\u679c\u5b89\u88c5\u4e86\u7b2c\u4e09\u65b9\u8f6f\u4ef6\u4e4b\u540e\u6253\u5f00\u63d0\u793a\u5df2\u635f\u574f\uff0c\u5219\u6267\u884c\u4e0b\u9762\u547d\u4ee4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">xattr -cr \/Applications\/example.app\n<\/span><\/span><\/code><\/pre><\/div><blockquote>\n<p>Office \u7834\u89e3\u4e0b\u8f7d\u53ef\u4ee5\u5230<a class=\"link\" href=\"https:\/\/github.com\/alsyundawy\/Microsoft-Office-For-MacOS\"  target=\"_blank\" rel=\"noopener\"\n    >github<\/a><\/p><\/blockquote>\n"},{"title":"Hyprland \u914d\u7f6e\u8bb0\u5f55","link":"https:\/\/been.ee\/p\/0-0-0-52\/","pubDate":"Mon, 02 Jun 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-52\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>Hyprland\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u52a8\u6001\u5e73\u94fa\u7a97\u53e3\u7ba1\u7406\u5668\uff08WM\uff09\u548cWayland\u5408\u6210\u5668\uff08compositor\uff09\uff0c\u57fa\u4e8ewlroots\u5e93\u5f00\u53d1\uff0c\u5982\u8bb8\u4e86\u89e3\u53ef\u4ee5\u67e5\u770b\u5b98\u65b9<a class=\"link\" href=\"https:\/\/wiki.hyprland.org\/\"  target=\"_blank\" rel=\"noopener\"\n    >WiKi<\/a><\/p>\n<blockquote>\n<p>\u6ce8\uff1a\u4e0e\u5e38\u7528\u7684KDE\u3001Gnome\u7b49\u684c\u9762\u73af\u5883\uff08DE\uff09\u4e0d\u540c\uff0cWM\u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7ec4\u4ef6\uff0c\u53ea\u8d1f\u8d23\u7a97\u53e3\u7ba1\u7406\uff0c\u5e76\u4e0d\u4f1a\u50cfDE\u4e00\u6837\u63d0\u4f9b\u5168\u5957\u684c\u9762\u4f53\u9a8c\uff0c\u56e0\u6b64\u5b83\u7684\u6781\u5ea6\u4f9d\u8d56\u81ea\u5b9a\u4e49\uff0c\u9700\u8981\u624b\u52a8\u8fdb\u884c\u5927\u91cf\u914d\u7f6e<\/p><\/blockquote>\n<p>\u672c\u6b21\u914d\u7f6e\u8bb0\u5f55\u7684\u662f\u5728Archlinux\u7cfb\u7edf\u4e0a\u5b89\u88c5Hyprland WM\uff0c\u5c06\u4ece\u521a\u5b89\u88c5\u5b8cArchlinux\u7cfb\u7edf\u4e4b\u540e\u5f00\u59cb\u8fdb\u884cHyprland\u5b89\u88c5\u914d\u7f6e\u7684\u8bb0\u5f55\u8bf4\u660e\uff0c\u672c\u6587\u5c06\u4e0d\u518d\u4ecb\u7ecd\u548c\u5b89\u88c5\u4f8b\u5982KDE\u7b49\u684c\u9762\u73af\u5883\uff0c\u5982\u9700\u4e86\u89e3KDE\u684c\u9762\u73af\u5883\u7684\u5b89\u88c5\uff0c\u53ef\u4ee5\u67e5\u770b<a class=\"link\" href=\"..\/0-0-0-44\/\" >\u8fd9\u91cc<\/a><\/p>\n<p>\u7b80\u5355\u653e\u4e00\u5f20\u672c\u6b21\u914d\u7f6e\u7684\u684c\u9762<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/25\/164912.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p><strong>\u4e0b\u9762\u5c06\u4ece\u5b89\u88c5\u5b8cArchlinux\u7cfb\u7edf\u540e\u7684\u9996\u6b21\u767b\u5f55\u540e\u5f00\u59cb\u8bb0\u5f55<\/strong><\/p>\n<h2 id=\"archlinux\u914d\u7f6e\">Archlinux\u914d\u7f6e\n<\/h2><hr>\n<p>\u8fd9\u90e8\u5206\u5185\u5bb9\u4e3a\u5b89\u88c5Archlinux\u540e\u8fdb\u884c\u7684\u4e00\u4e9b\u5fc5\u8981\u914d\u7f6e\uff0c\u4f46\u4e0d\u6d89\u53caHyprland\u7684\u5185\u5bb9\uff0c\u56e0\u4e3a\u6211\u662f\u5b89\u88c5Archlinux\u540e\u7d27\u63a5\u7740\u5b89\u88c5Hyprland\u5e76\u8fdb\u884c\u540e\u7eed\u914d\u7f6e\uff0c\u6240\u4ee5\u5728\u8fd9\u91cc\u4e00\u5e76\u8bb0\u5f55\u4e86\u4e0b\u6765<\/p>\n<p>\u5982\u679c\u7528\u7684\u4e0d\u662fArchlinux\u6216\u8005Archlinux\u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u597d\u4e86\u53ef\u4ee5\u8df3\u8fc7\u8fd9\u90e8\u5206\u76f4\u63a5\u5230\u5f00\u59cb<a class=\"link\" href=\"#%e5%ae%89%e8%a3%85hyprland\" >\u5b89\u88c5Hyprland<\/a>\u7684\u90e8\u5206<\/p>\n<h3 id=\"\u8fde\u63a5\u7f51\u7edc\">\u8fde\u63a5\u7f51\u7edc\n<\/h3><hr>\n<p>\u5b89\u88c5\u5b8c\u7cfb\u7edf\u540e\uff0c\u4f9d\u65e7\u662f\u9700\u8981\u5148\u8fde\u63a5\u7f51\u7edc\uff0c\u6267\u884c<code>iwctl<\/code>\u8fdb\u5165<code>iwd<\/code>\u63a7\u5236\u754c\u9762\uff0c\u7136\u540e\u4e0e\u521a\u5f00\u59cb\u5b89\u88c5\u7cfb\u7edf\u7684\u65f6\u5019\u4e00\u6837\u8fdb\u884c\u7f51\u7edc\u8fde\u63a5\uff0c\u8fd9\u91cc\u4e0d\u518d\u8d58\u8ff0<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>iwd<span class=\"o\">]<\/span><span class=\"c1\"># device list<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>iwd<span class=\"o\">]<\/span><span class=\"c1\"># station [device] scan<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>iwd<span class=\"o\">]<\/span><span class=\"c1\"># station [device] get-networks <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>iwd<span class=\"o\">]<\/span><span class=\"c1\"># station [device] connect [SSID] <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>iwd<span class=\"o\">]<\/span><span class=\"c1\"># exit<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6700\u540e\u8fde\u63a5\u597d\u540e\u7528\u547d\u4ee4\u884c\u6d4b\u8bd5\u4e00\u4e0b\u80fd<code>ping<\/code>\u901a\u5373\u53ef<\/p>\n<h3 id=\"\u66f4\u65b0\u7cfb\u7edf\">\u66f4\u65b0\u7cfb\u7edf\n<\/h3><hr>\n<p>\u66f4\u65b0\u7cfb\u7edf\u53ca\u7b7e\u540d<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -Syu\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -S archlinux-keyring\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u5f00\u542f32\u4f4d\u652f\u6301\u5e93\u548carchlinuxcn\u4e2d\u6587\u793e\u533a\u5e93\">\u5f00\u542f32\u4f4d\u652f\u6301\u5e93\u548cArchlinuxcn\u4e2d\u6587\u793e\u533a\u5e93\n<\/h3><hr>\n<p>\u8fd9\u91cc\u5148\u5f00\u542f32\u4f4d\u652f\u6301\u5e93\u548cArchlinuxcn\u793e\u533a\u5e93\uff0c\u65b9\u4fbf\u4e00\u4f1a\u5148\u5b89\u88c5<code>yay<\/code>\u548c<code>paru<\/code>\u7b49\u8f6f\u4ef6<\/p>\n<p>\u7f16\u8f91<code>\/etc\/pacman.conf<\/code>\u6587\u4ef6\uff0c\u5c06<code>[multilib]<\/code>\u90e8\u5206\u7684\u4e24\u884c\u6ce8\u91ca\u53bb\u6389\u5373\u53ef\u5f00\u542f32\u4f4d\u5e93\u652f\u6301<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>multilib<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Include<\/span> <span class=\"o\">=<\/span> \/etc\/pacman.d\/mirrorlist\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5728\u6587\u4ef6\u6700\u4e0b\u9762\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\u6765\u6dfb\u52a0<code>Archlinuxcn<\/code>\u6e90\uff0c\u9009\u4e00\u4e2a\u6dfb\u52a0\u5373\u53ef\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>archlinuxcn<span class=\"o\">]<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> https:\/\/mirrors.ustc.edu.cn\/archlinuxcn\/<span class=\"nv\">$arch<\/span> <span class=\"c1\"># \u4e2d\u56fd\u79d1\u5b66\u6280\u672f\u5927\u5b66\u5f00\u6e90\u955c\u50cf\u7ad9 <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> https:\/\/mirrors.tuna.tsinghua.edu.cn\/archlinuxcn\/<span class=\"nv\">$arch<\/span> <span class=\"c1\"># \u6e05\u534e\u5927\u5b66\u5f00\u6e90\u8f6f\u4ef6\u955c\u50cf\u7ad9 <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> https:\/\/mirrors.hit.edu.cn\/archlinuxcn\/<span class=\"nv\">$arch<\/span> <span class=\"c1\"># \u54c8\u5c14\u6ee8\u5de5\u4e1a\u5927\u5b66\u5f00\u6e90\u955c\u50cf\u7ad9 <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> https:\/\/repo.huaweicloud.com\/archlinuxcn\/<span class=\"nv\">$arch<\/span> <span class=\"c1\"># \u534e\u4e3a\u5f00\u6e90\u955c\u50cf\u7ad9<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c\u4e0b\u9762\u6307\u4ee4\u5237\u65b0\u6570\u636e\u5e93\u5e76\u66f4\u65b0\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S archlinuxcn-keyring  <span class=\"c1\"># \u5bfc\u5165GPG key<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Syu  <span class=\"c1\"># \u5237\u65b0\u6570\u636e\u5e93\u5e76\u66f4\u65b0<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u5b89\u88c5yay\u548cparu\">\u5b89\u88c5yay\u548cparu\n<\/h3><hr>\n<p>\u5b89\u88c5<code>aur<\/code>\u52a9\u624b<code>yay<\/code>\u548c<code>paru<\/code>\uff0c\u65b9\u4fbf\u540e\u7eed\u7528\u6765\u5b89\u88c5\u8f6f\u4ef6<\/p>\n<p>\u8fd9\u91cc\u66f4\u63a8\u8350\u7528<code>paru<\/code>\uff0c\u5b83\u662f<code>yay<\/code>\u4f5c\u8005\u7528<code>rust<\/code>\u5199\u7684\u4e00\u6b3e\u5de5\u5177\uff0c\u5b83\u548c<code>yay<\/code>\u5728\u529f\u80fd\u548c\u4f7f\u7528\u4e0a\u51e0\u4e4e\u4e00\u6837\uff0c\u540c\u65f6<code>paru<\/code>\u53ef\u4ee5\u4f7f\u7528<code>proxychains<\/code>\u8fdb\u884c\u4ee3\u7406\u800c<code>yay<\/code>\u4e0d\u53ef\u4ee5\uff08\u4e0e<code>go<\/code>\u8bed\u8a00\u7279\u6027\u6709\u5173\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S yay paru base-devel\n<\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d\uff0c<code>base-devel<\/code>\u5305\u542b\u4e86\u4f7f\u7528<code>yay<\/code>\u548c<code>paru<\/code>\u5b89\u88c5\u8f6f\u4ef6\u5fc5\u9700\u7684\u4f9d\u8d56<\/p>\n<p>\u5982\u679c\u9700\u8981\u8ba9<code>yay<\/code>\u547d\u4ee4\u8d70\u4ee3\u7406\uff0c\u53ef\u4ee5\u5728\u76f8\u5e94\u7684Shell\u914d\u7f6e\u6587\u4ef6\u4e2d\u914d\u7f6e<code>alias<\/code>\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nb\">alias<\/span> <span class=\"nv\">yay<\/span><span class=\"o\">=<\/span><span class=\"s1\">&#39;https_proxy=socks5:\/\/127.0.0.1:10808 http_proxy=socks5:\/\/127.0.0.1:10808 yay&#39;<\/span>  <span class=\"c1\"># \u66f4\u6539\u4e3a\u81ea\u5df1\u7684socks\u670d\u52a1\u5730\u5740<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5b89\u88c5hyprland\">\u5b89\u88c5Hyprland\n<\/h2><hr>\n<p>\u63a5\u4e0b\u6765\u5c31\u8981\u8fdb\u884cHyprland\u7684\u5b89\u88c5\u4e86\u3002\u9700\u8981\u6ce8\u610f\u5728\u5f00\u59cb\u5b89\u88c5\u7684\u65f6\u5019\uff0c\u9700\u8981\u540c\u65f6\u5b89\u88c5Kitty\u7ec8\u7aef\u548cSddm\u767b\u9646\u7ba1\u7406\u5668\uff0c\u7531\u4e8eHyprland\u9ed8\u8ba4\u4f7f\u7528Kitty\u4f5c\u4e3a\u5176\u7ec8\u7aef\uff0c\u5982\u679c\u4e0d\u5b89\u88c5\u7684\u8bdd\uff0c\u767b\u9646\u540e\u5c31\u65e0\u6cd5\u8c03\u7528\u51fa\u7ec8\u7aef\uff0c\u4f60\u5c31\u53ea\u80fd\u5bf9\u7740\u7535\u8111\u5c4f\u5e55\u53d1\u5446\u4e86<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S hyprland kitty sddm\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5c06Sddm\u8bbe\u4e3a\u5f00\u673a\u81ea\u542f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo systemctl <span class=\"nb\">enable<\/span> sddm\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u76f4\u63a5<code>reboot<\/code>\u91cd\u542f\uff0c\u4e0d\u51fa\u610f\u5916\u7684\u8bdd\u53ef\u4ee5\u76f4\u63a5\u8fdb\u5165\u56fe\u5f62\u5316\u754c\u9762\u7684Sddm\u767b\u9646\u7ba1\u7406\u5668\uff0c\u9009\u62e9Hyprland\u73af\u5883\u767b\u9646\u8fdb\u5165\uff0c\u7136\u540e\u518d\u8fdb\u884c\u540e\u7eed\u64cd\u4f5c<\/p>\n<h2 id=\"\u521d\u8bc6hyprland\u73af\u5883\">\u521d\u8bc6Hyprland\u73af\u5883\n<\/h2><hr>\n<p>\u5982\u679c\u4f60\u6b63\u5e38\u767b\u9646\u8fdb\u5165\u4e86Hyprland\uff0c\u9ed8\u8ba4\u4e0a\u65b9\u4f1a\u6709\u4e00\u680f<strong>Warning<\/strong>\uff0c\u6211\u4eec\u53ef\u4ee5\u6309\u7167<strong>Warning<\/strong>\u63d0\u793a\uff0c\u5148\u7528<code>SUPER + Q<\/code>\u6253\u5f00Kitty\u7ec8\u7aef\uff0c\u7136\u540e\u7f16\u8f91<code>~\/.config\/hypr\/hyprland.conf<\/code>\uff0c\u5c06<code>autogenerated = 1<\/code>\u8fd9\u4e00\u884c\u6ce8\u91ca\u6389\uff0c\u5c31\u53ef\u4ee5\u5148\u89e3\u51b3\u6389\u70e6\u4eba\u7684<strong>Warning<\/strong>\u5566<\/p>\n<blockquote>\n<ul>\n<li>\n<p>PS1: \u591a\u6570\u7b14\u8bb0\u672c\u4e2d<code>SUPER<\/code>\u4ee3\u8868<code>Windows\u952e<\/code>\uff08\u5c31\u662f\u952e\u76d8\u4e0a\u6709<strong>Windows<\/strong>\u7cfb\u7edf\u56fe\u6807\u7684\u6309\u952e\uff09<\/p>\n<\/li>\n<li>\n<p>PS2: \u5982\u679c\u4f60\u8ddf\u6211\u4e00\u6837\u662f\u7b2c\u4e00\u6b21\u4f7f\u7528Hyprland\uff0c\u4f60\u5c31\u4f1a\u53d1\u73b0\u521d\u59cb\u684c\u9762\u4e0a\u4e00\u7247\u7a7a\u767d\uff0c\u6ca1\u6709\u80fd\u7528\u9f20\u6807\u70b9\u7684\u5730\u65b9\uff0c\u56e0\u6b64\u5f00\u59cb\u7684\u65f6\u5019\u9700\u8981\u5168\u7a0b\u7528\u952e\u76d8\u64cd\u4f5c\uff0c\u4e0b\u9762\u63d0\u4f9b\u4e86Hyprland\u9ed8\u8ba4\u7684\u5feb\u6377\u952e<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">\u9ed8\u8ba4\u5feb\u6377\u952e:\uff08\u53ef\u4ee5\u5728~\/.config\/hypr\/hyprland.conf\u6587\u4ef6\u4e2d\u4fee\u6539\uff09\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUPER + Q\uff1a\u6253\u5f00\u7ec8\u7aef\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUPER + C\uff1a\u5173\u95ed\u5f53\u524d\u6d3b\u52a8\u7a97\u53e3\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUPER + \u6570\u5b57\uff1a\u5207\u6362\u5de5\u4f5c\u533a\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUPER + <span class=\"nb\">shift<\/span> + \u6570\u5b57\uff1a\u5c06\u5f53\u524d\u7a97\u53e3\u79fb\u52a8\u5230\u76f8\u5e94\u5de5\u4f5c\u533a\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUPER + \u6eda\u8f6e\uff1a\u5207\u6362\u5de5\u4f5c\u533a\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUPER + \u9f20\u6807\u5de6\u952e\uff1a\u62d6\u52a8\u7a97\u53e3\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUPER + \u9f20\u6807\u53f3\u952e\uff1a\u8c03\u6574\u7a97\u53e3\u5927\u5c0f\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUPER + V\uff1a\u8ba9\u7a97\u53e3\u6d6e\u52a8\u51fa\u6765\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUPER + M\uff1a\u9000\u51faHyprland\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUPER + R\uff1a\u542f\u52a8\u5e94\u7528\u7a0b\u5e8f\u542f\u52a8\u5668<span class=\"o\">(<\/span>\u9ed8\u8ba4\u4e3awofi\uff0c\u4f46\u4e0d\u4f1a\u9ed8\u8ba4\u5b89\u88c5\uff0c\u540e\u9762\u4f1a\u8fdb\u884c\u4fee\u6539<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUPER + \u65b9\u5411\u952e\uff1a\u5207\u6362\u6d3b\u52a8\u7a97\u53e3\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5f00\u59cb\u914d\u7f6e\u524d\u7684\u4e00\u4e9b\u8f6f\u4ef6\u5305\">\u5f00\u59cb\u914d\u7f6e\u524d\u7684\u4e00\u4e9b\u8f6f\u4ef6\u5305\n<\/h2><hr>\n<p>\u5728\u5f00\u59cb\u914d\u7f6eHyprland\u53ca\u5176\u7ec4\u4ef6\u4e4b\u524d\uff0c\u8fd9\u90e8\u5206\u60f3\u5148\u4ecb\u7ecd\u5b89\u88c5\u4e00\u4e9b\u5728\u540e\u9762\u4f1a\u7528\u5230\u7684\u57fa\u7840\u8f6f\u4ef6\u5305\uff0c\u8fd9\u6837\u4e5f\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u540e\u9762\u914d\u7f6e\u7684\u65f6\u5019\u7701\u53bb\u5f88\u591a\u9ebb\u70e6<\/p>\n<p>\u53e6\u5916\u9700\u8981\u6ce8\u610f\u4e0b\u9762\u4ecb\u7ecd\u7684\u8f6f\u4ef6\u5e76\u4e0d\u90fd\u662f\u5fc5\u8981\u7684\uff0c\u53ea\u662f\u6211\u4e2a\u4eba\u7684\u914d\u7f6e\u9700\u8981\uff0c\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u5b89\u88c5<\/p>\n<h3 id=\"amd-gpu\u9a71\u52a8\">AMD GPU\u9a71\u52a8\n<\/h3><hr>\n<p>\u5982\u679c\u4f60\u7684\u663e\u5361\u8ddf\u6211\u4e00\u6837\u662fAMD\uff0c\u90a3\u4e48\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\uff08\u4e0d\u9002\u7528\u4e8eNvidia\u663e\u5361\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon\n<\/span><\/span><\/code><\/pre><\/div><p>\u540c\u65f6\u53ef\u4ee5\u5b89\u88c5<code>nvtop<\/code>\u7a0b\u5e8f\u6765\u67e5\u770bGPU\u5229\u7528\u7387<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S nvtop\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u4e00\u4e9b\u5f00\u6e90\u5b57\u4f53\u548c\u8868\u60c5\">\u4e00\u4e9b\u5f00\u6e90\u5b57\u4f53\u548c\u8868\u60c5\n<\/h3><hr>\n<p>\u6309\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5\u4e00\u4e9b\u5f00\u6e90\u4e2d\u6587\u5b57\u4f53\uff0c\u540e\u9762\u57fa\u672c\u5c31\u53ef\u4ee5\u6b63\u5e38\u663e\u793a\u4e2d\u6587\u5566<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts wqy-microhei wqy-microhei-lite wqy-bitmapfont wqy-zenhei noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u6d4f\u89c8\u5668\">\u6d4f\u89c8\u5668\n<\/h3><hr>\n<p>\u5b89\u88c5\u706b\u72d0\u6d4f\u89c8\u5668<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S firefox\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u84dd\u7259\">\u84dd\u7259\n<\/h3><hr>\n<p>\u5b89\u88c5\u84dd\u7259\u670d\u52a1\u53ca\u5176\u7ba1\u7406\u5de5\u5177<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S bluez bluez-utils blueman\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u540e\u542f\u52a8\u84dd\u7259\u670d\u52a1\u5e76\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo systemctl <span class=\"nb\">enable<\/span> --now bluetooth\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"upower\">Upower\n<\/h3><hr>\n<p>Upower\u662f\u4e00\u4e2a\u7528\u4e8e\u67e5\u770b\u7535\u6c60\u548c\u7535\u6e90\u4fe1\u606f\u7684\u5de5\u5177<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S upower\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u5b8c\u540e\u542f\u52a8\u5e76\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo systemctl <span class=\"nb\">enable<\/span> --now upower\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"wayland\u652f\u6301\u7ec4\u4ef6\">Wayland\u652f\u6301\u7ec4\u4ef6\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S xdg-desktop-portal-hyprland xdg-desktop-portal-gtk qt5-wayland qt6-wayland\n<\/span><\/span><\/code><\/pre><\/div><p>\u521b\u5efa<code>~\/.config\/xdg-desktop-portal\/portals.conf<\/code>\u6587\u4ef6\uff0c\u7136\u540e\u5199\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>preferred<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">default<\/span> <span class=\"o\">=<\/span> hyprland<span class=\"p\">;<\/span>gtk\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u521b\u5efa<code>~\/.config\/hypr\/xdg-portal.sh<\/code>\u6587\u4ef6\uff0c\u5199\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"cp\">#!\/bin\/bash\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"cp\"><\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sleep <span class=\"m\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">killall xdg-desktop-portal-hyprland\n<\/span><\/span><span class=\"line\"><span class=\"cl\">killall xdg-desktop-portal-gtk\n<\/span><\/span><span class=\"line\"><span class=\"cl\">killall xdg-desktop-portal\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\/usr\/lib\/xdg-desktop-portal-hyprland <span class=\"p\">&amp;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sleep <span class=\"m\">2<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\/usr\/lib\/xdg-desktop-portal <span class=\"p\">&amp;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u7f16\u8f91<code>~\/.config\/hypr\/hyprland.conf<\/code>\uff0c\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">exec-once <span class=\"o\">=<\/span> ~\/.config\/hypr\/xdg-portal.sh\n<\/span><\/span><span class=\"line\"><span class=\"cl\">exec-once <span class=\"o\">=<\/span> dbus-update-activation-environment --systemd --all\n<\/span><\/span><span class=\"line\"><span class=\"cl\">exec-once <span class=\"o\">=<\/span> systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u5b89\u88c5\u8f93\u5165\u6cd5\u5de5\u5177\">\u5b89\u88c5\u8f93\u5165\u6cd5\u5de5\u5177\n<\/h3><hr>\n<p>\u4f7f\u7528Fcitx5\u4f5c\u4e3a\u8f93\u5165\u6cd5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u8fdb\u884c\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-anthy fcitx5-pinyin-moegirl fcitx5-material-color fcitx5-pinyin-zhwiki\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u5b8c\u540e\u5728\u7ec8\u7aef\u6267\u884c<code>fcitx5-configtool<\/code>\u53ef\u4ee5\u8c03\u51fa\u8f93\u5165\u6cd5\u914d\u7f6e\u9762\u677f\uff0c\u9996\u5148\u53d6\u6d88\u53f3\u4e0b\u65b9\u7684<code>Only Show Current Language<\/code>\u9009\u9879\uff0c\u7136\u540e\u5728\u53f3\u4fa7\u7684<code>Available Input Method<\/code>\u4e00\u680f\u91cc\u4e00\u76f4\u5f80\u4e0b\u6ed1\uff0c\u53ef\u4ee5\u627e\u5230<code>Pinyin<\/code>\u9009\u9879\uff0c\u53cc\u51fb\u5c06\u5176\u6dfb\u52a0\u5230\u5de6\u8fb9\u7684<code>Current Input Method<\/code>\u680f\u4e2d<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/16\/110349.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u4ece\u4e0a\u65b9\u9009\u62e9<code>Global Options<\/code>\u8fdb\u5165\uff0c\u627e\u5230<code>Trigger Input Method<\/code>\u9009\u9879\uff0c\u5c06\u5176\u5feb\u6377\u952e\u6539\u4e3a<code>\u5de6 Shift<\/code>\uff0c\u7136\u540e\u70b9\u51fb\u53f3\u4e0b\u65b9\u7684<code>Apply<\/code>\uff0c\u8fd9\u6837\u540e\u9762\u6211\u4eec\u5c31\u53ef\u4ee5\u7528<code>\u5de6 Shift<\/code>\u952e\u5207\u6362\u8f93\u5165\u6cd5\u5566<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/16\/110518.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u4e0b\u9762\u7684\u547d\u4ee4\u662f\u6839\u636e\u6211\u6267\u884c<code>fcitx5<\/code>\u8c03\u7528\u65f6\u5019\u51fa\u73b0\u7684<code>warning<\/code>\u8fdb\u884c\u5b89\u88c5\u7684\uff0c\u5982\u679c\u4e0d\u5f71\u54cd\u4f7f\u7528\u53ef\u4ee5\u9009\u62e9\u4e0d\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S libvoikko aspell hspell hunspell nuspell\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u4ee5\u5148\u7b80\u5355\u6d4b\u8bd5\u4e00\u4e0b\uff0c\u5728\u7ec8\u7aef\u6267\u884c<code>fcitx5<\/code>\uff0c\u7136\u540e\u53ef\u4ee5\u901a\u8fc7<code>Shift<\/code>\u5207\u6362\u8f93\u5165\u6cd5\u4e86\uff0c\u8981\u5f00\u673a\u542f\u52a8\u7684\u8bdd\u53ea\u9700\u8981\u5728\u540e\u9762Hyprland\u914d\u7f6e\u6587\u4ef6\u4e2d\u8bbe\u7f6e\u5373\u53ef<\/p>\n<h3 id=\"\u5b89\u88c5\u4ee3\u7406\u5de5\u5177v2raya\">\u5b89\u88c5\u4ee3\u7406\u5de5\u5177V2rayA\n<\/h3><hr>\n<p>\u4e0b\u9762\u6211\u4eec\u5b89\u88c5<code>V2raya<\/code>\u6765\u4f5c\u4e3a\u4ee3\u7406\u8f6f\u4ef6\uff0c<code>Xray<\/code>\u4f5c\u4e3a\u5185\u6838\uff0c\u9996\u5148\u6267\u884c\u4e0b\u9762\u6307\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S v2raya xray\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo systemctl <span class=\"nb\">enable<\/span> --now v2raya  <span class=\"c1\"># \u542f\u52a8\u5e76\u914d\u7f6e\u5f00\u673a\u81ea\u542f<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u8981\u8bbe\u7f6e<code>V2raya<\/code>\u8c03\u7528<code>Xray<\/code>\u5185\u6838\uff08\u9ed8\u8ba4\u914d\u7f6e\u662f\u8c03\u7528<code>V2ray<\/code>\u5185\u6838\uff0c\u6211\u4eec\u4e0d\u4f7f\u7528<code>V2ray<\/code>\u4e5f\u5c31\u6ca1\u6709\u5b89\u88c5\uff09\uff0c\u53ef\u53c2\u8003<a class=\"link\" href=\"https:\/\/v2raya.org\/docs\/manual\/variable-argument\/#systemd-%E7%AE%A1%E7%90%86%E7%9A%84-v2raya\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\uff0c\u4e0b\u9762\u63d0\u4f9b\u4e24\u79cd\u65b9\u6cd5(<strong>\u53ea\u9700\u8981\u6309\u4e00\u79cd\u8bbe\u7f6e\u5373\u53ef\uff0c\u63a8\u8350\u7b2c\u4e00\u79cd<\/strong>)\uff1a<\/p>\n<blockquote>\n<ol>\n<li>\u7f16\u8f91\u4fee\u6539<code>\/etc\/default\/v2raya<\/code>\u914d\u7f6e\u6587\u4ef6<\/li>\n<\/ol>\n<p>\u9996\u5148\u6253\u5f00<code>\/etc\/default\/v2raya<\/code>\u6587\u4ef6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo nano \/etc\/default\/v2raya\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u627e\u5230<code>V2RAYA_V2RAY_BIN<\/code>\u548c<code>V2RAYA_V2RAY_ASSETSDIR<\/code>\u4e24\u4e2a\u73af\u5883\u53d8\u91cf\uff0c\u5c06\u5176\u524d\u9762\u7684<code>#<\/code>\u53bb\u6389\uff0c\u5e76\u5c06\u5176\u503c\u6309\u5982\u4e0b\u4fee\u6539<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">V2RAYA_V2RAY_BIN<\/span><span class=\"o\">=<\/span>\/usr\/bin\/xray\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">V2RAYA_V2RAY_ASSETSDIR<\/span><span class=\"o\">=<\/span>\/usr\/share\/xray\n<\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d<code>\/usr\/bin\/xray<\/code>\u6307\u7684\u662f<code>xray<\/code>\u53ef\u6267\u884c\u6587\u4ef6\uff0c\u800c<code>\/usr\/share\/xray<\/code>\u6307\u7684\u662f<code>xray<\/code>\u6570\u636e\u6587\u4ef6\u76ee\u5f55(\u5305\u542b\u4e86<code>geosite.dat<\/code>\u548c<code>geoip.dat<\/code>\u6587\u4ef6)<\/p>\n<p>\u7136\u540e\u91cd\u542f<code>v2raya<\/code>\u670d\u52a1\u5373\u53ef<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo systemctl restart v2raya\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"2\">\n<li>\u7f16\u8f91\u4fee\u6539<code>systemd<\/code>\u7ba1\u7406\u7684\u914d\u7f6e\u6587\u4ef6<\/li>\n<\/ol>\n<p>\u65b0\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939<code>\/etc\/systemd\/system\/v2raya.service.d<\/code>\uff0c\u7136\u540e\u8fdb\u5165\u6587\u4ef6\u5939\u65b0\u5efa\u4e00\u4e2a\u6587\u4ef6<code>xray.conf<\/code>\uff0c\u7c7b\u4f3c\u7684\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Service<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Environment<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;V2RAYA_V2RAY_BIN=\/usr\/bin\/xray&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Environment<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;V2RAYA_V2RAY_ASSETSDIR=\/usr\/share\/xray&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c\u4e0b\u9762\u6307\u4ee4\u91cd\u65b0\u52a0\u8f7d<code>V2rayA<\/code>\u670d\u52a1\u5373\u53ef<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo systemctl daemon-reload <span class=\"o\">&amp;&amp;<\/span> sudo systemctl restart v2raya\n<\/span><\/span><\/code><\/pre><\/div><\/blockquote>\n<p>\u7136\u540e\u6211\u4eec\u76f4\u63a5\u5728\u7ec8\u7aef\u6267\u884c<code>firefox<\/code>\u8fdb\u5165\u706b\u72d0\u6d4f\u89c8\u5668\uff0c\u7136\u540e\u8bbf\u95ee<code>http:\/\/127.0.0.1:2017<\/code>\u8fdb\u5165<code>V2raya<\/code>\u914d\u7f6e\u754c\u9762\uff0c\u5bfc\u5165\u81ea\u5df1\u7684\u914d\u7f6e\u89c4\u5219<\/p>\n<p>\u4e0b\u9762\u91cd\u70b9\u8bf4\u4e00\u4e0b\u8def\u7531\u5206\u6d41\uff0c\u7531\u4e8e\u6211\u4e60\u60ef\u4f7f\u7528\u6d4f\u89c8\u5668\u63d2\u4ef6<code>Zero Omega<\/code>\u6765\u914d\u7f6e\u4ee3\u7406\uff0c\u6240\u4ee5\u901a\u5e38\u4ec5\u5f00\u542f\u4ee3\u7406\u670d\u52a1\u5668\u4f46\u4e0d\u542f\u52a8\u7cfb\u7edf\u4ee3\u7406\uff0c\u56e0\u6b64\u6d41\u91cf\u901a\u8fc7\u6d4f\u89c8\u5668\u63d2\u4ef6\u8f6c\u53d1\u81f3\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u7136\u540e\u518d\u8fdb\u884c\u8def\u7531\u9009\u62e9\uff0c\u5177\u4f53\u914d\u7f6e\u5982\u4e0b<\/p>\n<p>\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u8bbe\u7f6e\uff0c\u5173\u95ed<code>\u900f\u660e\u4ee3\u7406\/\u7cfb\u7edf\u4ee3\u7406<\/code>\u9009\u9879\uff0c\u7136\u540e\u5c06<code>\u89c4\u5219\u7aef\u53e3\u7684\u5206\u6d41\u6a21\u5f0f<\/code>\u9009\u4e3a<code>RoutingA<\/code>\uff0c\u968f\u540e\u70b9\u51fb\u53f3\u8fb9\u7684<code>\u914d\u7f6e<\/code>\u9009\u9879\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9\uff08<strong>\u7528\u9ed8\u8ba4\u914d\u7f6e\u4e0d\u6539\u4e5f\u884c\uff0c\u4e5f\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u9700\u8981\u66f4\u6539<\/strong>\uff09\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">default: proxy\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># write your own rules below<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">domain<span class=\"o\">(<\/span>geosite:cn<span class=\"o\">)<\/span>-&gt;direct\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ip<span class=\"o\">(<\/span>geoip:private<span class=\"o\">)<\/span>-&gt;direct\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ip<span class=\"o\">(<\/span>geoip:cn<span class=\"o\">)<\/span>-&gt;direct\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u70b9\u51fb\u4fdd\u5b58\uff0c\u6ce8\u610f\u6b64\u65f6\u8fd9\u4e9b\u89c4\u5219\u5e76\u4e0d\u4f1a\u751f\u6548\uff0c\u56e0\u4e3a<code>V2rayA<\/code>\u4e3a<code>socks<\/code>\u534f\u8bae\u548c<code>http<\/code>\u534f\u8bae\u8bbe\u7f6e\u4e86<strong>\u5e26\u5206\u6d41\u89c4\u5219\u7684\u7aef\u53e3<\/strong>(\u8be5\u7aef\u53e3\u8fdb\u6765\u7684\u6d41\u91cf\u4f1a\u6309\u7167\u5206\u6d41\u89c4\u5219\u5206\u6d41)\u548c<strong>\u4e0d\u5e26\u5206\u6d41\u89c4\u5219\u7aef\u53e3<\/strong>(\u8be5\u7aef\u53e3\u8fdb\u6765\u7684\u6d41\u91cf\u5e76\u4e0d\u4f1a\u6309\u7167\u89c4\u5219\u5206\u6d41)\uff0c\u800c\u4e14\u9ed8\u8ba4\u53ea\u8bbe\u7f6e\u4e86<code>http<\/code>\u7684\u5206\u6d41\u7aef\u53e3\uff0c\u56e0\u6b64\u9700\u8981\u6211\u4eec\u4e0b\u9762\u624b\u52a8\u8bbe\u7f6e\u5e26\u5206\u6d41\u89c4\u5219\u7684\u7aef\u53e3<\/p>\n<p>\u6211\u4eec\u53ef\u4ee5\u70b9\u5f00\u8bbe\u7f6e\u9875\u9762\u5de6\u4e0b\u89d2\u7684<code>\u5730\u5740\u4e0e\u7aef\u53e3<\/code>\u9009\u9879\uff0c\u7136\u540e\u586b\u5199<code>\u5e26\u5206\u6d41\u89c4\u5219\u7684socks\u7aef\u53e3<\/code>\u5e76\u4fdd\u5b58\uff0c\u5982\u4e0b\u56fe\uff1a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/03\/21\/021758.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5728<code>Zero Omega<\/code>\u4e2d\u8bbe\u7f6e\u4e3a\u5e26\u5206\u6d41\u7aef\u53e3\u7684<code>socks<\/code>\u5730\u5740\uff0c\u6309\u4e0a\u56fe\u4e5f\u5c31\u662f<code>socks5:\/\/127.0.0.1:20170<\/code>\uff0c\u8fd9\u6837\u6d41\u91cf\u5c31\u53ef\u4ee5\u6b63\u5e38\u5206\u6d41\u4e86<\/p>\n<h3 id=\"\u5b89\u88c5proxychains\">\u5b89\u88c5Proxychains\n<\/h3><hr>\n<p>\u4e3b\u8981\u65b9\u4fbf\u65e5\u540e<code>paru<\/code>\u3001<code>git<\/code>\u7b49\u547d\u4ee4\u884c\u5de5\u5177\u4f7f\u7528\u4ee3\u7406<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S proxychains\n<\/span><\/span><\/code><\/pre><\/div><p>\u7f16\u8f91<code>\/etc\/proxychains.conf<\/code>\uff0c\u627e\u5230\u6700\u4e0b\u65b9\u7684<code>[ProxyList]<\/code>\uff0c\u6dfb\u52a0\u4e0a\u4e00\u6b65\u4e2d<code>v2raya<\/code>\u8bbe\u7f6e\u7684\u4ee3\u7406\uff0c\u4f8b\u5982<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>ProxyList<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">socks5  127.0.0.1  <span class=\"m\">20170<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5c31\u53ef\u4ee5\u7528<code>proxychains<\/code>\u8ba9\u6709\u4e9b\u9700\u8981\u8bbf\u95ee\u7f51\u7edc\u7684\u547d\u4ee4\u884c\u5de5\u5177\u8d70\u4ee3\u7406\u5566<\/p>\n<h3 id=\"\u5b89\u88c5\u97f3\u9891\u548c\u5c4f\u5e55\u7ba1\u7406\u5de5\u5177\">\u5b89\u88c5\u97f3\u9891\u548c\u5c4f\u5e55\u7ba1\u7406\u5de5\u5177\n<\/h3><hr>\n<p>\u4e3b\u8981\u662f\u5b89\u88c5\u4e00\u4e9b\u97f3\u89c6\u9891\u6846\u67b6\u4e0e\u5c4f\u5e55\u4eae\u5ea6\u76f8\u5173\u7ba1\u7406\u5de5\u5177\u5305\uff0c\u8fd9\u91cc\u4e0d\u518d\u8be6\u8ff0<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S pipewire pipewire-jack pipewire-alsa pipewire-pulse wireplumber rtkit light alsa-utils brightnessctl playerctl\n<\/span><\/span><\/code><\/pre><\/div><p>\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\u5e76\u7acb\u5373\u542f\u52a8\u7528\u6237\u7ea7\u7684<code>pipewire<\/code>\u548c<code>pipewire-pulse<\/code>\u670d\u52a1<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">systemctl \u2014-user <span class=\"nb\">enable<\/span> \u2014-now pipewire pipewire-pulse\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u5b89\u88c5snapper\">\u5b89\u88c5Snapper\n<\/h3><hr>\n<p>Snapper\u662f\u4e00\u4e2a\u7531SUSE\u5de5\u7a0b\u5e08\u5f00\u53d1\u7684\u5728Btrfs\u6587\u4ef6\u7cfb\u7edf\u4f7f\u7528\u7684\u7684\u5feb\u7167\u7ba1\u7406\u5de5\u5177\uff0c\u7528\u4e8e\u6062\u590d\u7cfb\u7edf\u6216\u64a4\u9500\u4e00\u4e9b\u64cd\u4f5c\uff0c<strong>\u5982\u679c\u4f7f\u7528\u4e86Btrfs\u6587\u4ef6\u7cfb\u7edf\u7684\u8bdd\u5f3a\u70c8\u5efa\u8bae\u5b89\u88c5<\/strong>\uff0c\u5982\u679c\u662fExt4\u6587\u4ef6\u7cfb\u7edf\u7684\u8bdd\u5219\u4e0d\u9700\u8981\u5b89\u88c5\uff0c\u5177\u4f53\u5b89\u88c5\u548c\u4f7f\u7528\u65b9\u6cd5\u53ef\u4ee5\u53c2\u8003\u6211\u7684<a class=\"link\" href=\"..\/0-0-0-49\/\" >\u8fd9\u7bc7\u6587\u7ae0<\/a>\uff0c\u8fd9\u91cc\u4e0d\u5728\u8d58\u8ff0<\/p>\n<h2 id=\"hyprland\u914d\u7f6e\u548c\u7f8e\u5316\">Hyprland\u914d\u7f6e\u548c\u7f8e\u5316\n<\/h2><hr>\n<p>\u63a5\u4e0b\u6765\u5c31\u662f\u5173\u952e\u7684Hyprland\u914d\u7f6e\u53ca\u7f8e\u5316\u4e86\uff0c\u8003\u8651\u5230\u8981\u517c\u987e\u7f8e\u89c2\u3001\u5b9e\u7528\u548c\u7b80\u6d01\uff0c\u5728\u53c2\u8003\u4e86\u5f88\u591aGithub\u4e0a\u7684\u914d\u7f6e\u65b9\u6848\u540e\uff0c\u9488\u5bf9\u6211\u81ea\u5df1\u7684\u8981\u6c42\u5bf9\u4e00\u4e9b\u914d\u7f6e\u8fdb\u884c\u4e86\u6539\u826f\uff0c\u4e0b\u9762\u5c31\u8bb0\u5f55\u4e00\u4e0b<\/p>\n<blockquote>\n<ul>\n<li>PS1\uff1a\u539f\u672c\u60f3\u5c3d\u91cf\u8be6\u7ec6\u4ecb\u7ecd\u4e00\u4e0b\u6bcf\u4e00\u9879\u914d\u7f6e\uff0c\u4f46\u662f\u540e\u6765\u53d1\u73b0\u7ec4\u4ef6\u5b9e\u5728\u592a\u591a\uff0c\u800c\u4e14\u8bbe\u8ba1\u591a\u4e2a\u7ec4\u4ef6\u540c\u65f6\u914d\u7f6e\uff0c\u540c\u65f6\u914d\u7f6e\u6587\u4ef6\u5185\u5bb9\u8f83\u957f\uff0c\u56e0\u6b64<strong>\u5927\u90e8\u5206\u7ec4\u4ef6\u7684\u5177\u4f53\u914d\u7f6e\u5185\u5bb9\u5c06\u4e0d\u5728\u672c\u6587\u8be6\u7ec6\u8bf4\u660e\uff0c\u5982\u9700\u5177\u4f53\u914d\u7f6e\u53ef\u4ee5\u5728\u4e0b\u9762\u8bc4\u8bba<\/strong><\/li>\n<\/ul><\/blockquote>\n<h3 id=\"hyprland\u914d\u7f6e\u6587\u4ef6\">Hyprland\u914d\u7f6e\u6587\u4ef6\n<\/h3><hr>\n<p>\u9996\u5148\u4ecb\u7ecd\u4e00\u4e0bHyprland\u7684\u914d\u7f6e\u6587\u4ef6<code>hyprland.conf<\/code>\uff0c\u8fd9\u4e2a\u6587\u4ef6\u5305\u542b\u4e86\u7528\u4e8e\u5b9a\u4e49Hyprland\u884c\u4e3a\u3001\u5916\u89c2\u3001\u5feb\u6377\u952e\u548c\u73af\u5883\u53d8\u91cf\u7b49\u529f\u80fd\u548c\u4fe1\u606f\uff0c\u5176\u914d\u7f6e\u6587\u4ef6\u7684\u8def\u5f84\u4f4d\u4e8e<code>~\/.config\/hypr\/hyprland.conf<\/code>\uff0c\u5f53\u6211\u4eec\u5b89\u88c5\u4e86Hyprland\u540e\u4f1a\u81ea\u52a8\u751f\u6210\uff0c\u5982\u679c\u9700\u8981\u8c03\u6574\u7a97\u53e3\u7ba1\u7406\u5668\u7684\u914d\u7f6e\u5c31\u53ef\u4ee5\u76f4\u63a5\u7f16\u8f91\u4fee\u6539<\/p>\n<p>\u540e\u9762\u7684\u8bb8\u591a\u7ec4\u4ef6\u7684\u914d\u7f6e\u90fd\u4f1a\u6d89\u53ca\u5230\u8c03\u6574\u548c\u4fee\u6539Hyprland\u914d\u7f6e\u6587\u4ef6<\/p>\n<p>\u63a5\u4e0b\u6765\u7684\u5185\u5bb9\u4e3b\u8981\u5c31\u5f00\u59cb\u4ecb\u7ecd\u5404\u79cd\u7ec4\u4ef6\u7684\u5b89\u88c5\u548c\u914d\u7f6e<\/p>\n<h3 id=\"hyprlock\">Hyprlock\n<\/h3><hr>\n<p>Hyprlock\u662fHyprland\u751f\u6001\u4e0b\u7684\u4e00\u6b3e\u9501\u5c4f\u5de5\u5177<\/p>\n<p>\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u8fdb\u884c\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">sudo pacman -S hyprlock\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5c06\u5176\u914d\u7f6e\u4e00\u4e0b\uff0c\u9700\u8981\u521b\u5efa\u5e76\u7f16\u8f91<code>.config\/hypr\/hyprlock.conf<\/code>\uff0c\u5199\u5165\u4ee5\u4e0b\u914d\u7f6e\uff08\u5b98\u65b9\u6587\u6863\u91cc\u63d0\u4f9b\u7684\u4e00\u4e9b\u914d\u7f6e\uff0c\u6211\u89c9\u5f97\u6548\u679c\u4e0d\u9519\u6682\u65f6\u5c31\u76f4\u63a5\u7528\u4e86\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">background <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">monitor<\/span> <span class=\"o\">=<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">path<\/span> <span class=\"o\">=<\/span> screenshot\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">color<\/span> <span class=\"o\">=<\/span> rgba<span class=\"o\">(<\/span>25, 20, 20, 1.0<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">blur_passes<\/span> <span class=\"o\">=<\/span> <span class=\"m\">2<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">input-field <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">monitor<\/span> <span class=\"o\">=<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">size<\/span> <span class=\"o\">=<\/span> 20%, 5%\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">outline_thickness<\/span> <span class=\"o\">=<\/span> <span class=\"m\">3<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">inner_color<\/span> <span class=\"o\">=<\/span> rgba<span class=\"o\">(<\/span>0, 0, 0, 0.0<span class=\"o\">)<\/span> <span class=\"c1\"># no fill<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">outer_color<\/span> <span class=\"o\">=<\/span> rgba<span class=\"o\">(<\/span>33ccffee<span class=\"o\">)<\/span> rgba<span class=\"o\">(<\/span>00ff99ee<span class=\"o\">)<\/span> 45deg\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">check_color<\/span><span class=\"o\">=<\/span>rgba<span class=\"o\">(<\/span>00ff99ee<span class=\"o\">)<\/span> rgba<span class=\"o\">(<\/span>ff6633ee<span class=\"o\">)<\/span> 120deg\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">fail_color<\/span><span class=\"o\">=<\/span>rgba<span class=\"o\">(<\/span>ff6633ee<span class=\"o\">)<\/span> rgba<span class=\"o\">(<\/span>ff0066ee<span class=\"o\">)<\/span> 40deg\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">font_color<\/span> <span class=\"o\">=<\/span> rgb<span class=\"o\">(<\/span>143, 143, 143<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">fade_on_empty<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">false<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">rounding<\/span> <span class=\"o\">=<\/span> <span class=\"m\">15<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">position<\/span> <span class=\"o\">=<\/span> 0, -20\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">halign<\/span> <span class=\"o\">=<\/span> center\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">valign<\/span> <span class=\"o\">=<\/span> center\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">label <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">monitor<\/span> <span class=\"o\">=<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">text<\/span> <span class=\"o\">=<\/span> Hi there, <span class=\"nv\">$USER<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">color<\/span> <span class=\"o\">=<\/span> rgba<span class=\"o\">(<\/span>200, 200, 200, 1.0<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">font_size<\/span> <span class=\"o\">=<\/span> <span class=\"m\">25<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">font_family<\/span> <span class=\"o\">=<\/span> Noto Sans\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">position<\/span> <span class=\"o\">=<\/span> 0, <span class=\"m\">80<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">halign<\/span> <span class=\"o\">=<\/span> center\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nv\">valign<\/span> <span class=\"o\">=<\/span> center\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5982\u679c\u9700\u8981\u7528\u5feb\u6377\u952e\u8c03\u7528\u9501\u5c4f\uff0c\u53ef\u4ee5\u7f16\u8f91<code>~\/.config\/hypr\/hyprland<\/code>\uff0c\u5199\u5165\u4e0b\u9762\u5185\u5bb9\uff08\u53ef\u4ee5\u6309\u7167\u81ea\u5df1\u9700\u8981\u4fee\u6539\u5feb\u6377\u952e\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">$screenlock<\/span> <span class=\"o\">=<\/span> hyprlock\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">bind<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$mainMod<\/span>, L, exec, <span class=\"nv\">$screelock<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6211\u8bbe\u7f6e\u7684\u662f\u7528<code>Win<\/code> + <code>L<\/code>\u8fdb\u884c\u9501\u5c4f<\/p>\n<h3 id=\"waybar\">Waybar\n<\/h3><hr>\n<p>Waybar\u662f\u4e00\u6b3e\u9ad8\u5ea6\u53ef\u5b9a\u5236\u7684\u72b6\u6001\u680f\u5de5\u5177\uff0c\u4e0b\u9762\u5148\u5b89\u88c5Waybar\u548c\u4e00\u4e9b\u8981\u7528\u5230\u7684\u5b57\u4f53\u6587\u4ef6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S waybar ttf-font-awesome ttf-jetbrains-mono-nerd ttf-jetbrains-mono\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u547d\u4ee4\u884c\u6267\u884c<code>waybar<\/code>\u5c31\u53ef\u4ee5\u770b\u5230\u4e0a\u65b9\u7684\u72b6\u6001\u680f\u4e86\uff0c\u4f46\u9ed8\u8ba4\u7684\u663e\u793a\u51fa\u6765\u53ef\u80fd\u5e76\u4e0d\u597d\u770b\uff0c\u6211\u4eec\u53ef\u4ee5\u8fdb\u884c\u4e00\u4e0b\u7f8e\u5316\uff0c\u5177\u4f53\u914d\u7f6e\u7ec6\u8282\u5728GitHub\u4e0a\u63d0\u4f9b\u4e86wiki\u6587\u6863\u53ef\u4ee5\u53c2\u8003<\/p>\n<p>\u5177\u4f53\u914d\u7f6e\u4e3b\u8981\u5305\u542b\u5728<code>~\/.config\/waybar\/config<\/code>\u548c<code>~\/.config\/waybar\/style.css<\/code>\u4e24\u4e2a\u6587\u4ef6\u4e2d<\/p>\n<h3 id=\"rofi\">Rofi\n<\/h3><hr>\n<p>Rofi\u662f\u4e00\u4e2a\u529f\u80fd\u5f3a\u5927\u7684\u7a97\u53e3\u5207\u6362\u5668\u3001\u5e94\u7528\u542f\u52a8\u5668\u548c<code>dmenu<\/code>\u66ff\u4ee3\u54c1\uff0c\u6700\u521d\u4e3a<code>X11<\/code>\u8bbe\u8ba1\uff0c\u73b0\u901a\u8fc7Rofi-Wayland\u5206\u652f\u652f\u6301Wayland\uff0c\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S rofi-wayland\n<\/span><\/span><\/code><\/pre><\/div><p>Rofi\u7684\u914d\u7f6e\u76ee\u5f55\u4f4d\u4e8e<code>~\/.config\/rofi<\/code>\uff0c\u6211\u91c7\u7528\u4e86Github\u4e0astar\u6bd4\u8f83\u591a\u7684\u4e00\u4e2aRofi\u914d\u7f6e\u9879\u76ee<a class=\"link\" href=\"https:\/\/github.com\/adi1090x\/rofi\"  target=\"_blank\" rel=\"noopener\"\n    >adi1090x\/rofi<\/a>\uff0c\u6709\u9700\u8981\u7684\u53ef\u4ee5\u81ea\u884c\u53c2\u8003<\/p>\n<p>\u53ef\u4ee5\u6839\u636eGithub\u4e2d\u7684\u8bf4\u660e\u8fdb\u884c\u4e3b\u9898\u5b89\u88c5\uff0c\u5b89\u88c5\u65b9\u6cd5\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git clone --depth<span class=\"o\">=<\/span><span class=\"m\">1<\/span> https:\/\/github.com\/adi1090x\/rofi.git\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">cd<\/span> rofi\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ chmod +x setup.sh\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ .\/setup.sh\n<\/span><\/span><\/code><\/pre><\/div><p>\u5177\u4f53\u7528\u5230\u7684\u662f\u9879\u76ee\u4e2d\u7684Launchers\u548cPowermenus\u90e8\u5206\uff0c\u4e0b\u9762\u9488\u5bf9\u6211\u7528\u5230\u7684\u914d\u7f6e\u8fdb\u884c\u7b80\u5355\u8bf4\u660e<\/p>\n<ul>\n<li>\u5e94\u7528\u542f\u52a8\u5668\uff08Launchers\uff09<\/li>\n<\/ul>\n<p>\u6211\u91c7\u7528\u7684Launchers\u4e3b\u9898\u662f<code>Type-3<\/code>\u7684<code>Style-2<\/code>\uff0cColor\u9009\u62e9\u7684\u662f<code>gruvbox.rasi<\/code><\/p>\n<p>\u9996\u5148\u9700\u8981\u7f16\u8f91<code>~\/.config\/rofi\/launchers\/type-3\/launcher.sh<\/code>\uff0c\u5c06\u4e0b\u9762\u8fd9\u884c\u6539\u4e3a<code>Style-2<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">theme<\/span><span class=\"o\">=<\/span><span class=\"s1\">&#39;style-2&#39;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u7f16\u8f91<code>~\/.config\/rofi\/launchers\/type-3\/shared\/colors.rasi<\/code>\uff0c\u5c06\u4e0b\u9762\u8fd9\u884c\u6539\u4e3a<code>gruvbox.rasi<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">@import <span class=\"s2\">&#34;~\/.config\/rofi\/colors\/gruvbox.rasi&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u4ee5\u6839\u636e\u9700\u8981\u7f16\u8f91<code>~\/.config\/rofi\/launchers\/type-3\/shared\/fonts.rasi<\/code>\u6765\u4fee\u6539\u5b57\u4f53\u548c\u5b57\u53f7\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">* {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    font: &#34;JetBrains Mono Nerd Font 16&#34;;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><\/code><\/pre><\/div><p>\u4e5f\u53ef\u4ee5\u7f16\u8f91<code>~\/.config\/rofi\/launchers\/type-3\/style-2.rasi<\/code>\u6765\u8c03\u6574\u6837\u5f0f\uff0c\u8981\u8ba9\u80cc\u666f\u663e\u793agruvbox\u7684\u989c\u8272\u53ef\u4ee5\u505a\u5982\u4e0b\u4fee\u6539<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-css\" data-lang=\"css\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">window<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">background-color<\/span><span class=\"p\">:<\/span> <span class=\"o\">@<\/span><span class=\"k\">background<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6216\u8005\u60f3\u7ed9\u80cc\u666f\u52a0\u70b9\u900f\u660e\u4e5f\u53ef\u4ee5\u8fd9\u6837\u8bbe\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-css\" data-lang=\"css\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">window<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">background-color<\/span><span class=\"p\">:<\/span> <span class=\"nb\">rgba<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.8<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u53ef\u4ee5\u6267\u884c<code>bash ~\/.config\/rofi\/launchers\/type-3\/launcher.sh<\/code>\u6d4b\u8bd5\u4e00\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/16\/111639.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u6700\u540e\u5c31\u662f\u5c06\u547d\u4ee4\u6267\u884c\u6dfb\u52a0\u5230\u6211\u5728Waybar\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684<code>launcher<\/code>\u6a21\u5757\u5c31\u53ef\u4ee5\u4eceWaybar\u4e2d\u542f\u52a8\u5566<\/p>\n<ul>\n<li>\u7535\u6e90\u83dc\u5355Powermenus<\/li>\n<\/ul>\n<p>\u6211\u91c7\u7528\u7684Powermenus\u4e3b\u9898\u662f<code>Type-1<\/code>\u7684<code>Style-2<\/code>\uff0cColor\u540c\u6837\u9009\u62e9<code>gruvbox.rasi<\/code><\/p>\n<p>\u9996\u5148\u7f16\u8f91<code>~\/.config\/rofi\/powermenu\/type-1\/powermenu.sh<\/code>\uff0c\u5c06\u4e0b\u9762\u8fd9\u884c\u6539\u4e3a<code>Style-2<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">theme<\/span><span class=\"o\">=<\/span><span class=\"s1\">&#39;style-2&#39;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u7f16\u8f91<code>~\/.config\/rofi\/powermenu\/type-1\/shared\/colors.rasi<\/code>\uff0c\u5c06\u4e0b\u9762\u8fd9\u884c\u6539\u4e3a<code>gruvbox.rasi<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">@import <span class=\"s2\">&#34;~\/.config\/rofi\/colors\/gruvbox.rasi&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6839\u636e\u9700\u8981\u7f16\u8f91<code>~\/.config\/rofi\/powermenu\/type-1\/shared\/fonts.rasi<\/code>\u6765\u4fee\u6539\u5b57\u4f53\u548c\u5b57\u53f7\uff0c\u8fd9\u91cc\u6211\u628a\u5b57\u53f7\u4fee\u6539\u4e3a\u4e86<code>16<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">* {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    font: &#34;JetBrains Mono Nerd Font 16&#34;;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><\/code><\/pre><\/div><p>\u7531\u4e8e\u5b57\u53f7\u589e\u5927\u4e86\uff0c\u9700\u8981\u5c06\u4f1a\u8bdd\u6846\u76f8\u5e94\u589e\u5927\uff0c\u4ee5\u9632\u6b62\u663e\u793a\u4e0d\u5168\uff0c\u9700\u8981\u7f16\u8f91<code>~\/.config\/rofi\/powermenu\/type-1\/powermenu.sh<\/code>\uff0c\u627e\u5230<code>confirm_cmd()<\/code>\u51fd\u6570\uff0c\u5c06\u5176\u4e2d\u7684<code>width<\/code>\u4ece<code>250px<\/code>\u589e\u52a0\u5230<code>500px<\/code><\/p>\n<p>\u7531\u4e8e\u8fd9\u4e2a\u4e3b\u9898\u9879\u76ee\u5e76\u6ca1\u6709\u8003\u8651\u9002\u914dWayland\u73af\u5883\uff0c\u56e0\u6b64\u8fd8\u9700\u8981\u5bf9\u811a\u672c\u8fdb\u884c\u4fee\u6539\uff0c\u7ee7\u7eed\u7f16\u8f91<code>~\/.config\/rofi\/powermenu\/type-1\/powermenu.sh<\/code>\uff0c\u627e\u5230<code>run_cmd()<\/code>\u51fd\u6570\uff0c\u5728<code>--logout<\/code>\u90e8\u5206\u8fdb\u884c\u4fee\u6539\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">elif<\/span> <span class=\"o\">[[<\/span> hyprland... <span class=\"o\">]]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hyprctl...\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u7740\u627e\u5230\u6587\u4ef6\u6700\u540e\u7684<code>Actions<\/code>\u90e8\u5206\uff0c\u5c06\u9501\u5c4f\u547d\u4ee4\u66ff\u6362\u4e3a\u6211\u4eec\u524d\u9762\u5b89\u88c5\u7684<code>hyprlock<\/code>\uff0c\u4fee\u6539\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">if<\/span> <span class=\"o\">[[<\/span> hyprlock... <span class=\"o\">]]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hyprlock\n<\/span><\/span><\/code><\/pre><\/div><p>\u7531\u4e8e\u811a\u672c\u8fd8\u7528\u5230\u4e86<code>hostname<\/code>\u548c<code>mpc<\/code>\u547d\u4ee4\u6240\u4ee5\u9700\u8981\u5b89\u88c5\u4e0b\u9762\u7684\u5305<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S inetutils mpc\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u4ee5\u6267\u884c<code>bash ~\/.config\/rofi\/powermenu\/type-1\/powermenu.sh<\/code>\u6d4b\u8bd5\u4e00\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/16\/111803.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u6700\u540e\u540c\u6837\u5c06\u547d\u4ee4\u6267\u884c\u6dfb\u52a0\u5230Waybar\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684\u7684<code>power<\/code>\u6a21\u5757\u5c31\u53ef\u4ee5\u4eceWaybar\u8c03\u7528\u5566<\/p>\n<h3 id=\"tofi\">Tofi\n<\/h3><hr>\n<p>Tofi\u4e5f\u662f\u4e00\u4e2a\u5e94\u7528\u542f\u52a8\u5668\uff0c\u6211\u4e2a\u4eba\u89c9\u5f97\u4e5f\u633a\u597d\u7528\u7684\uff0c\u5c31\u90fd\u5b89\u88c5\u4e86\uff0c\u76f4\u63a5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S tofi\n<\/span><\/span><\/code><\/pre><\/div><p>Tofi\u7684\u914d\u7f6e\u6587\u4ef6\u4f4d\u4e8e<code>~\/.config\/tofi\/config<\/code><\/p>\n<h3 id=\"kitty\">Kitty\n<\/h3><hr>\n<p>\u5bf9Kitty\u4f7f\u7528\u4e86Gruvbox\u7684\u914d\u8272\u65b9\u6848<\/p>\n<p>\u914d\u7f6e\u6587\u4ef6\u5305\u542b\u5728<code>~\/.config\/kitty\/kitty.conf<\/code>\u548c<code>~\/.config\/kitty\/theme.conf<\/code><\/p>\n<h3 id=\"fish-shell\">Fish Shell\n<\/h3><hr>\n<p>\u4e0b\u9762\u5c06\u5b89\u88c5Fish Shell\u4f5c\u4e3a\u9ed8\u8ba4Shell\u4f7f\u7528\uff0c\u540c\u65f6\u5b89\u88c5Shell\u7f8e\u5316\u5de5\u5177\uff08<code>pokemon-colorscripts-git<\/code>\uff09\u3001\u547d\u4ee4\u884c\u7ea0\u9519\u5de5\u5177\uff08<code>thefuck<\/code>\uff09\u548c\u5206\u9875\u5668\uff08<code>most<\/code>\uff09\uff0c\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">paro - S fish pokemon-colorscripts-git thefuck most\n<\/span><\/span><\/code><\/pre><\/div><p>\u66f4\u6539\u9ed8\u8ba4shell<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">chsh -s \/usr\/bin\/fish\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5<code>OhMyFish<\/code>\u6846\u67b6\uff0c\u6267\u884c<a class=\"link\" href=\"https:\/\/github.com\/oh-my-fish\/oh-my-fish\"  target=\"_blank\" rel=\"noopener\"\n    >Github<\/a>\u4e0a\u7684\u5b89\u88c5\u811a\u672c\uff0c\u56e0\u4e3a\u7f51\u7edc\u95ee\u9898\uff0c\u6240\u4ee5\u6211\u5728\u547d\u4ee4\u524d\u9762\u6dfb\u52a0\u4e86\u4ee3\u7406<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">proxychains curl https:\/\/raw.githubusercontent.com\/oh-my-fish\/oh-my-fish\/master\/bin\/install <span class=\"p\">|<\/span> proxychains fish\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u5b8c\u540e\u4f1a\u81ea\u52a8\u52a0\u8f7d\u5230Fish\u7684\u914d\u7f6e\u91cc\uff0c\u53ef\u4ee5\u7528omf\u547d\u4ee4\u8fdb\u884c\u64cd\u4f5c\uff0c\u4f8b\u5982\u5b89\u88c5\u559c\u6b22\u7684\u4e3b\u9898<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">omf install nai\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5c31\u662f\u5728Fish\u914d\u7f6e\u6587\u4ef6\u4e2d\u914d\u7f6e\u4e00\u4e0b\u524d\u9762\u5b89\u88c5\u7684<code>pokemon-colorscripts-git<\/code>\u3001<code>thefuck<\/code>\u548c<code>most<\/code>\u8fd9\u4e09\u4e2a\u5de5\u5177<\/p>\n<p>\u5176\u4e2d<code>pokemon-colorscripts-git<\/code>\u548c<code>most<\/code>\u9700\u8981\u5728<code>~\/.config\/fish\/config.fish<\/code>\u6587\u4ef6\u4e2d\u6dfb\u52a0\u914d\u7f6e\uff0c\u5185\u5bb9\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">if<\/span> status is-interactive\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Commands to run in interactive sessions can go here<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    pokemon-colorscripts -r --no-title\n<\/span><\/span><span class=\"line\"><span class=\"cl\">end\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> fish_greeting\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">export<\/span> <span class=\"nv\">PAGER<\/span><span class=\"o\">=<\/span><span class=\"s1\">&#39;most&#39;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p><code>thefuck<\/code>\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/github.com\/nvbn\/thefuck\"  target=\"_blank\" rel=\"noopener\"\n    >Github<\/a>\u8bf4\u660e\u8fdb\u884c\u65b0\u5efa<code>~\/.config\/fish\/functions\/fuck.fish<\/code>\u8fdb\u884c\u914d\u7f6e\uff0c\u5185\u5bb9\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">function<\/span> fuck -d <span class=\"s2\">&#34;Correct your previous console command&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"nb\">set<\/span> -l fucked_up_command <span class=\"nv\">$history<\/span><span class=\"o\">[<\/span>1<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  env <span class=\"nv\">TF_SHELL<\/span><span class=\"o\">=<\/span>fish <span class=\"nv\">TF_ALIAS<\/span><span class=\"o\">=<\/span>fuck <span class=\"nv\">PYTHONIOENCODING<\/span><span class=\"o\">=<\/span>utf-8 thefuck <span class=\"nv\">$fucked_up_command<\/span> THEFUCK_ARGUMENT_PLACEHOLDER <span class=\"nv\">$argv<\/span> <span class=\"p\">|<\/span> <span class=\"nb\">read<\/span> -l unfucked_command\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"k\">if<\/span> <span class=\"o\">[<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$unfucked_command<\/span><span class=\"s2\">&#34;<\/span> !<span class=\"o\">=<\/span> <span class=\"s2\">&#34;&#34;<\/span> <span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">eval<\/span> <span class=\"nv\">$unfucked_command<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">builtin<\/span> <span class=\"nb\">history<\/span> delete --exact --case-sensitive -- <span class=\"nv\">$fucked_up_command<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">builtin<\/span> <span class=\"nb\">history<\/span> merge\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  end\n<\/span><\/span><span class=\"line\"><span class=\"cl\">end\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"swww\">swww\n<\/h3><hr>\n<p>swww\u662f\u4e00\u4e2a\u4e13\u4e3aWayland\u73af\u5883\u8bbe\u8ba1\u7684\u8f7b\u91cf\u3001\u9ad8\u6548\u7684\u58c1\u7eb8\u7ba1\u7406\u5de5\u5177\uff0c\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S swww\n<\/span><\/span><\/code><\/pre><\/div><p>\u51c6\u5907\u4e00\u4e2a<code>~\/.config\/wallpaper<\/code>\u76ee\u5f55\u5b58\u653e\u58c1\u7eb8<\/p>\n<p>\u5728<code>~\/.config\/hypr\/hyprland.conf<\/code>\u6dfb\u52a0\u5f00\u673a\u81ea\u542f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">exec-once <span class=\"o\">=<\/span> swww-daemon\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5728Waybar\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684<code>wallpaper<\/code>\u6a21\u5757\u4e2d\u6dfb\u52a0\u914d\u7f6e\u7528\u4e8e\u5728Waybar\u4e2d\u4e00\u952e\u5207\u6362\u58c1\u7eb8\uff0c\u5e76\u8bbe\u7f6e\u4e86\u80fd\u591f\u53f3\u952e\u6362\u56de\u4e00\u5f20\u56fa\u5b9a\u58c1\u7eb8<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">   <span class=\"s2\">&#34;custom\/wallpaper&#34;<\/span>: <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;format&#34;<\/span>: <span class=\"s2\">&#34;\uf03e &#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;on-click&#34;<\/span>: <span class=\"s2\">&#34;swww img <\/span><span class=\"nv\">$HOME<\/span><span class=\"s2\">\/.config\/wallpapers\/<\/span><span class=\"k\">$(<\/span>ls <span class=\"nv\">$HOME<\/span>\/.config\/wallpapers <span class=\"p\">|<\/span> shuf -n 1<span class=\"k\">)<\/span><span class=\"s2\"> --transition-type center --transition-fps 60 --transition-duration 6&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;on-click-right&#34;<\/span>: <span class=\"s2\">&#34;swww img <\/span><span class=\"nv\">$HOME<\/span><span class=\"s2\">\/.config\/wallpapers\/gruvbox19.png --transition-type center --transition-fps 60 --transition-duration 6&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"swaync\">Swaync\n<\/h3><hr>\n<p>Swaync\u662f\u4e00\u4e2a\u73b0\u4ee3\u5316\u7684\u901a\u77e5\u5b88\u62a4\u8fdb\u7a0b\uff0c\u63d0\u4f9b\u901a\u77e5\u7ba1\u7406\u548c\u4ea4\u4e92\u5f0f\u63a7\u5236\u4e2d\u5fc3\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\uff0c\u9996\u5148\u901a\u8fc7\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S swaync\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b83\u7684\u914d\u7f6e\u76ee\u5f55\u4f4d\u4e8e<code>~\/.config\/swaync\/<\/code>\uff0c\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8fdb\u884c\u914d\u7f6e\u548c\u7f8e\u5316\uff0c\u5185\u5bb9\u8f83\u957f\u5c31\u4e0d\u5728\u8fd9\u91cc\u5c55\u793a<\/p>\n<blockquote>\n<p>\u6ce8\uff1a\u5728<code>config.json<\/code>\u4e2d\u914d\u7f6e<code>Widgets<\/code>\u7684\u65f6\u5019\u53d1\u73b0\u63a7\u5236\u4eae\u5ea6\u7684<code>backlight<\/code>\u7ec4\u4ef6\u4e00\u5f00\u59cb\u6ca1\u6709\u663e\u793a\uff0c\u9700\u8981\u6307\u5b9a<code>device<\/code>\u540d\u5b57\u624d\u53ef\u4ee5\u6b63\u5e38\u663e\u793a\uff0c\u53ef\u4ee5<code>ls \/sys\/class\/backlight<\/code>\u67e5\u770b\uff0c\u4f8b\u5982\u6211\u7684\u662f<code>amdgpu_bl1<\/code>\uff0c\u56e0\u6b64\u9700\u8981\u624b\u52a8\u6307\u5b9a\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"s2\">&#34;widget-config&#34;<\/span>: <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;inhibitors&#34;<\/span>: <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;text&#34;<\/span>: <span class=\"s2\">&#34;Inhibitors&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;button-text&#34;<\/span>: <span class=\"s2\">&#34;Clear All&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;clear-all-button&#34;<\/span>: <span class=\"nb\">true<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"o\">}<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;title&#34;<\/span>: <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;text&#34;<\/span>: <span class=\"s2\">&#34;Notifications&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;clear-all-button&#34;<\/span>: true,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;button-text&#34;<\/span>: <span class=\"s2\">&#34;Clear All&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"o\">}<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;dnd&#34;<\/span>: <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;text&#34;<\/span>: <span class=\"s2\">&#34;Do Not Disturb&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"o\">}<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;volume&#34;<\/span>: <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;label&#34;<\/span>: <span class=\"s2\">&#34;\uf028 &#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"o\">}<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;backlight&#34;<\/span>: <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;label&#34;<\/span>: <span class=\"s2\">&#34;\uf185 &#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;device&#34;<\/span>: <span class=\"s2\">&#34;amdgpu_bl1&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5c31\u53ef\u4ee5\u50cf\u4e0b\u9762\u8fd9\u6837\u6b63\u5e38\u663e\u793a\u5566<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/14\/175130.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p><\/blockquote>\n<p>\u63a5\u4e0b\u6765\u9700\u8981\u5728<code>~\/.config\/hypr\/hyprland.conf<\/code>\u6dfb\u52a0\u5f00\u673a\u81ea\u542f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">exec-once <span class=\"o\">=<\/span> swaync\n<\/span><\/span><\/code><\/pre><\/div><p>\u6700\u540e\u5728Waybar\u914d\u7f6e\u4e2d\u6dfb\u52a0\u76f8\u5e94\u7684Notification\u90e8\u5206\uff0c\u7528\u4e8e\u5728Waybar\u4e2d\u663e\u793a\u901a\u77e5\u6309\u94ae<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">  <span class=\"s2\">&#34;custom\/notification&#34;<\/span>: <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;tooltip&#34;<\/span>: false,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;format&#34;<\/span>: <span class=\"s2\">&#34;{icon}&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;format-icons&#34;<\/span>: <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;notification&#34;<\/span>: <span class=\"s2\">&#34;\uf0a2&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;none&#34;<\/span>: <span class=\"s2\">&#34;\uf0a2&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;dnd-notification&#34;<\/span>: <span class=\"s2\">&#34;&lt;span foreground=&#39;#ea6962&#39;&gt;\uf1f7&lt;\/span&gt;&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;dnd-none&#34;<\/span>: <span class=\"s2\">&#34;&lt;span foreground=&#39;#ea6962&#39;&gt;\uf1f7&lt;\/span&gt;&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;inhibited-notification&#34;<\/span>: <span class=\"s2\">&#34;\uf0a2&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;inhibited-none&#34;<\/span>: <span class=\"s2\">&#34;\uf0a2&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;dnd-inhibited-notification&#34;<\/span>: <span class=\"s2\">&#34;&lt;span foreground=&#39;#ea6962&#39;&gt;\uf1f7&lt;\/span&gt;&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"s2\">&#34;dnd-inhibited-none&#34;<\/span>: <span class=\"s2\">&#34;&lt;span foreground=&#39;#ea6962&#39;&gt;\uf1f7&lt;\/span&gt;&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"o\">}<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;return-type&#34;<\/span>: <span class=\"s2\">&#34;json&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;exec-if&#34;<\/span>: <span class=\"s2\">&#34;which swaync-client&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;exec&#34;<\/span>: <span class=\"s2\">&#34;swaync-client -swb&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;on-click&#34;<\/span>: <span class=\"s2\">&#34;swaync-client -t -sw&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;on-click-right&#34;<\/span>: <span class=\"s2\">&#34;swaync-client -d -sw&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;escape&#34;<\/span>: <span class=\"nb\">true<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"zathura\">Zathura\n<\/h3><hr>\n<p>Zathura\u662f\u4e00\u4e2a\u8f7b\u91cf\u3001\u9ad8\u5ea6\u53ef\u5b9a\u5236\u7684PDF\u6587\u6863\u67e5\u770b\u5668\uff0c\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S tesseract-data-eng tesseract-data-chi_sim zathura zathura-pdf-mupdf \n<\/span><\/span><\/code><\/pre><\/div><p>Zathura\u7684\u914d\u7f6e\u76ee\u5f55\u4f4d\u4e8e<code>~\/.config\/zathura\/<\/code>\uff0c\u53ef\u4ee5\u8fdb\u884c\u7b80\u5355\u914d\u7f6e<\/p>\n<h3 id=\"neovim\">NeoVim\n<\/h3><hr>\n<p>Neovim\u7684\u5b89\u88c5\u76f4\u63a5\u7528\u5305\u7ba1\u7406\u5668\u5c31\u597d<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S neovim\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6211\u4f7f\u7528\u7684LazyVim\u9879\u76ee\u8fdb\u884c\u7684\u914d\u7f6e\uff0c\u5173\u4e8eLazyVim\u7684\u5b89\u88c5\u53ef\u4ee5\u76f4\u63a5\u5230\u5b83\u7684<a class=\"link\" href=\"http:\/\/www.lazyvim.org\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u7f51<\/a>\u67e5\u770b\uff0c\u8fd9\u91cc\u5c31\u4e0d\u8be6\u8ff0\u4e86<\/p>\n<p>\u552f\u4e00\u9700\u8981\u8bf4\u7684\u4e00\u70b9\u662f\uff0c\u5728\u56fd\u5185\u5b89\u88c5\u7684\u8bdd\u53ef\u80fd\u901f\u5ea6\u4f1a\u6bd4\u8f83\u6162\uff0c\u53ef\u4ee5\u9009\u62e9\u5728\u6267\u884c\u6709\u4e0b\u8f7d\u5185\u5bb9\u7684\u547d\u4ee4\u7684\u65f6\u5019\u6dfb\u52a0\u4ee3\u7406\uff0c\u4f46\u662f\u6d4b\u8bd5\u53d1\u73b0\u5982\u679c\u4f7f\u7528<code>proxychains<\/code>\u53ef\u80fd\u4f1a\u6709\u95ee\u9898\uff0c\u53ef\u4ee5\u4f7f\u7528\u4e0b\u9762\u8fd9\u79cd\u65b9\u6cd5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">https_proxy<\/span><span class=\"o\">=<\/span>socks5:\/\/127.0.0.1:10808 <span class=\"nv\">http_proxy<\/span><span class=\"o\">=<\/span>socks5:\/\/127.0.0.1:10808 nvim  <span class=\"c1\"># \u76f8\u5f53\u4e8e\u53ea\u7ed9\u8fd9\u6761\u547d\u4ee4\u6dfb\u52a0\u4ee3\u7406\u6267\u884c<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"mpd-mpc-ncmpcpp\">Mpd Mpc Ncmpcpp\n<\/h3><hr>\n<p><a class=\"link\" href=\"https:\/\/www.musicpd.org\/\"  target=\"_blank\" rel=\"noopener\"\n    >Mpd<\/a>\uff08Music Player Daemon\uff09\u662f\u4e00\u4e2a\u670d\u52a1\u5668-\u5ba2\u6237\u7aef\u67b6\u6784\u7684\u97f3\u9891\u64ad\u653e\u5668\uff0c\u5360\u7528\u6781\u5c11\u8d44\u6e90\u7684\u540c\u65f6\u6709\u7740\u64ad\u653e\u97f3\u9891\u3001\u7ba1\u7406\u64ad\u653e\u5217\u8868\u548c\u97f3\u4e50\u7b49\u529f\u80fd\uff0c\u4e0e\u5b83\u8fdb\u884c\u4ea4\u4e92\u9700\u8981\u4e00\u4e2a\u5355\u72ec\u7684<a class=\"link\" href=\"https:\/\/wiki.archlinuxcn.org\/wiki\/MPD#%E5%AE%A2%E6%88%B7%E7%AB%AF\"  target=\"_blank\" rel=\"noopener\"\n    >\u5ba2\u6237\u7aef<\/a>\uff0c\u4f8b\u5982Mpc\uff08\u547d\u4ee4\u884c\u5de5\u5177\uff09\u548cNcmpcpp\uff08TUI\u5de5\u5177\uff09<\/p>\n<p>\u6709\u5173\u8fd9\u51e0\u4e2a\u5de5\u5177\u7684\u5b89\u88c5\u548c\u914d\u7f6e\u53ef\u4ee5\u53c2\u8003\u5b83\u4eec\u7684Archwiki\u6216\u6309\u7167\u4e0b\u9762\u6b65\u9aa4\u8fdb\u884c<\/p>\n<p>\u9996\u5148\u5b89\u88c5\u670d\u52a1\u7aef\u548c\u4e24\u4e2a\u5ba2\u6237\u7aef\u5de5\u5177<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S mpd\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -S mpc\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -S ncmpcpp\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"mpd\">Mpd\n<\/h4><hr>\n<p>\u5bf9\u4e8eMpd\u670d\u52a1\u7aef\uff0c\u9996\u5148\u521b\u5efa\u914d\u7f6e\u6587\u4ef6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mkdir -p ~\/.config\/mpd\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">cp \/usr\/share\/doc\/mpd\/mpdconf.example ~\/.config\/mpd\/mpd.conf\n<\/span><\/span><\/code><\/pre><\/div><p>\u5199\u5165\u4ee5\u4e0b\u914d\u7f6e\uff08\u524d\u9762\u5df2\u5b89\u88c5\u4e86Pipewire\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">music_directory    <span class=\"s2\">&#34;~\/Musics&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">playlist_directory    <span class=\"s2\">&#34;~\/.config\/mpd\/playlists&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">db_file     <span class=\"s2\">&#34;~\/.config\/mpd\/database&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pid_file    <span class=\"s2\">&#34;~\/.config\/mpd\/pid&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">state_file    <span class=\"s2\">&#34;~\/.config\/mpd\/state&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sticker_file    <span class=\"s2\">&#34;~\/.config\/mpd\/sticker.sql&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">auto_update    <span class=\"s2\">&#34;yes&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">audio_output <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\t<span class=\"nb\">type<\/span>\t\t<span class=\"s2\">&#34;pipewire&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\tname\t\t<span class=\"s2\">&#34;PipeWire Sound Server&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u521b\u5efa\u64ad\u653e\u5217\u8868\u76ee\u5f55\u548c\u97f3\u4e50\u76ee\u5f55<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mkdir ~\/.config\/mpd\/playlists \uff5e\/Musics\n<\/span><\/span><\/code><\/pre><\/div><p>\u542f\u52a8Mpd\u670d\u52a1\u5e76\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">systemctl --user <span class=\"nb\">enable<\/span> --now mpd\n<\/span><\/span><\/code><\/pre><\/div><p>Mpd\u670d\u52a1\u7aef\u914d\u7f6e\u5c31\u7b80\u5355\u5b8c\u6210\u5566<\/p>\n<h4 id=\"mpc\">Mpc\n<\/h4><hr>\n<p>\u4e0b\u9762\u4ecb\u7ecd\u4e00\u4e0b\u547d\u4ee4\u884c\u5ba2\u6237\u7aef\u5de5\u5177Mpc\u7684\u4f7f\u7528<\/p>\n<p>\u53ef\u4ee5\u5c06\u97f3\u4e50\u6587\u4ef6\u6dfb\u52a0\u5230\u6211\u4eec\u524d\u9762Mpd\u8bbe\u7f6e\u7684<code>~\/Musics<\/code>\u76ee\u5f55\uff0c\u7136\u540e\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u66f4\u65b0\u97f3\u4e50\u5e93<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mpc update \n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6d4b\u8bd5\u4e00\u4e0b\u64ad\u653e\u97f3\u4e50<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mpc listall  <span class=\"c1\"># \u5217\u51fa\u97f3\u4e50\u5e93\u6240\u6709\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc add &lt;music_file_name&gt;  <span class=\"c1\"># \u5c06\u97f3\u4e50\u6587\u4ef6\u6dfb\u52a0\u5230\u64ad\u653e\u5217\u8868<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc play  <span class=\"c1\"># \u5f00\u59cb\u64ad\u653e\u5f53\u524d\u66f2\u76ee<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u4e0b\u9762\u5217\u4e86\u4e00\u4e9bMpc\u7684\u5e38\u7528\u547d\u4ee4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u57fa\u672c\u63a7\u5236\u64cd\u4f5c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc play  <span class=\"c1\"># \u5f00\u59cb\u64ad\u653e\u5f53\u524d\u66f2\u76ee\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc pause  <span class=\"c1\"># \u6682\u505c\u64ad\u653e\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc toggle  <span class=\"c1\"># \u5207\u6362\u64ad\u653e\/\u6682\u505c\u72b6\u6001\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc stop  <span class=\"c1\"># \u505c\u6b62\u64ad\u653e\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc next  <span class=\"c1\"># \u64ad\u653e\u4e0b\u4e00\u9996\u66f2\u76ee\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc prev  <span class=\"c1\"># \u64ad\u653e\u4e0a\u4e00\u9996\u66f2\u76ee\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u64ad\u653e\u5217\u8868\u7ba1\u7406<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc playlist  <span class=\"c1\"># \u663e\u793a\u5f53\u524d\u64ad\u653e\u5217\u8868\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc add &lt;\u6587\u4ef6\/\u76ee\u5f55&gt;  <span class=\"c1\"># \u5c06\u6587\u4ef6\u6216\u76ee\u5f55\u6dfb\u52a0\u5230\u64ad\u653e\u5217\u8868\uff08\u4f8b\u5982 mpc add file.mp3\uff09\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc clear  <span class=\"c1\"># \u6e05\u7a7a\u5f53\u524d\u64ad\u653e\u5217\u8868\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc rm &lt;\u64ad\u653e\u5217\u8868\u540d&gt;  <span class=\"c1\"># \u5220\u9664\u6307\u5b9a\u7684\u64ad\u653e\u5217\u8868\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc load &lt;\u64ad\u653e\u5217\u8868\u540d&gt;  <span class=\"c1\"># \u52a0\u8f7d\u4fdd\u5b58\u7684\u64ad\u653e\u5217\u8868\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc lsplaylists  <span class=\"c1\"># \u5217\u51fa\u6240\u6709\u4fdd\u5b58\u7684\u64ad\u653e\u5217\u8868\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u97f3\u91cf\u63a7\u5236<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc volume <span class=\"o\">[<\/span>\u503c<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8bbe\u7f6e\u97f3\u91cf\uff080-100\uff0c\u4f8b\u5982 mpc volume 50\uff09\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc volume +<span class=\"o\">[<\/span>\u503c<span class=\"o\">]<\/span>  <span class=\"c1\"># \u589e\u52a0\u97f3\u91cf\uff08\u4f8b\u5982 mpc volume +10\uff09\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc volume -<span class=\"o\">[<\/span>\u503c<span class=\"o\">]<\/span>  <span class=\"c1\"># \u964d\u4f4e\u97f3\u91cf\uff08\u4f8b\u5982 mpc volume -10\uff09\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u64ad\u653e\u6a21\u5f0f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc random <span class=\"o\">[<\/span>on<span class=\"p\">|<\/span>off<span class=\"o\">]<\/span>  <span class=\"c1\"># \u5f00\u542f\u6216\u5173\u95ed\u968f\u673a\u64ad\u653e\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc repeat <span class=\"o\">[<\/span>on<span class=\"p\">|<\/span>off<span class=\"o\">]<\/span>  <span class=\"c1\"># \u5f00\u542f\u6216\u5173\u95ed\u91cd\u590d\u64ad\u653e\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc single <span class=\"o\">[<\/span>on<span class=\"p\">|<\/span>off<span class=\"o\">]<\/span>  <span class=\"c1\"># \u5f00\u542f\u6216\u5173\u95ed\u5355\u66f2\u5faa\u73af\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc consume <span class=\"o\">[<\/span>on<span class=\"p\">|<\/span>off<span class=\"o\">]<\/span>  <span class=\"c1\"># \u5f00\u542f\u6216\u5173\u95ed\u64ad\u653e\u540e\u4ece\u5217\u8868\u79fb\u9664\u66f2\u76ee\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5f53\u524d\u72b6\u6001\u548c\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc status  <span class=\"c1\"># \u663e\u793a\u5f53\u524d\u64ad\u653e\u72b6\u6001\uff08\u5305\u62ec\u66f2\u76ee\u3001\u97f3\u91cf\u3001\u64ad\u653e\u6a21\u5f0f\u7b49\uff09\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc current  <span class=\"c1\"># \u663e\u793a\u5f53\u524d\u64ad\u653e\u7684\u66f2\u76ee\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc stats  <span class=\"c1\"># \u663e\u793a MPD \u670d\u52a1\u5668\u7edf\u8ba1\u4fe1\u606f\uff08\u5982\u603b\u66f2\u76ee\u6570\u3001\u64ad\u653e\u65f6\u95f4\u7b49\uff09\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u97f3\u4e50\u5e93\u7ba1\u7406<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc ls <span class=\"o\">[<\/span>\u8def\u5f84<span class=\"o\">]<\/span>  <span class=\"c1\"># \u5217\u51fa\u97f3\u4e50\u5e93\u4e2d\u7684\u6587\u4ef6\u6216\u76ee\u5f55\uff08\u4f8b\u5982 mpc ls music\/\uff09\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc update  <span class=\"c1\"># \u66f4\u65b0\u97f3\u4e50\u5e93\uff08\u626b\u63cf\u65b0\u6587\u4ef6\u6216\u79fb\u9664\u4e0d\u5b58\u5728\u7684\u6587\u4ef6\uff09\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mpc search &lt;\u7c7b\u578b&gt; &lt;\u67e5\u8be2&gt;  <span class=\"c1\"># \u641c\u7d22\u97f3\u4e50\u5e93\uff08\u4f8b\u5982 mpc search artist &#34;Beatles&#34;\uff09\u3002<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"ncmpcpp\">Ncmpcpp\n<\/h4><hr>\n<p>\u63a5\u4e0b\u6765\u662fTUI\u5ba2\u6237\u7aefNcmpcpp\u7684\u4f7f\u7528\uff0c\u9996\u5148\u7f16\u8f91~\/.config\/mpd\/mpd.conf\uff0c\u5199\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">audio_output <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">type<\/span>                    <span class=\"s2\">&#34;fifo&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    name                    <span class=\"s2\">&#34;my_fifo&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    path                    <span class=\"s2\">&#34;\/tmp\/mpd.fifo&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    format                  <span class=\"s2\">&#34;44100:16:2&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u91cd\u542f\u4e00\u4e0bMpd\u670d\u52a1<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">systemctl --user restart mpd\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u521b\u5efaNcmpcpp\u7684\u914d\u7f6e\u6587\u4ef6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mkdir -p ~\/.config\/ncmpcpp\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">cp \/usr\/share\/doc\/ncmpcpp\/config ~\/.config\/ncmpcpp\/\n<\/span><\/span><\/code><\/pre><\/div><p>\u6839\u636e\u524d\u9762Mpd\u4e2d\u7684\u914d\u7f6e\uff0c\u5199\u5165\u4ee5\u4e0b\u914d\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">mpd_host<\/span> <span class=\"o\">=<\/span> localhost\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">mpd_port<\/span> <span class=\"o\">=<\/span> <span class=\"m\">6600<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">mpd_music_dir<\/span> <span class=\"o\">=<\/span> ~\/Musics\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">visualizer_data_source<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;\/tmp\/mpd.fifo&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">visualizer_output_name<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;my_fifo&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">visualizer_in_stereo<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;yes&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">visualizer_type<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;spectrum&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">visualizer_look<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;+|&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">execute_on_song_change<\/span> <span class=\"o\">=<\/span> notify-send <span class=\"s2\">&#34;Now Playing&#34;<\/span> <span class=\"s2\">&#34;<\/span><span class=\"k\">$(<\/span>mpc --format <span class=\"s1\">&#39;%title% \\n%artist% - %album%&#39;<\/span> current<span class=\"k\">)<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u7ec8\u7aef\u8fd0\u884c<code>ncmpcpp<\/code>\u5c31\u53ef\u4ee5\u6253\u5f00TUI\u5ba2\u6237\u7aef\u5566\uff0c\u6309<code>F1<\/code>\u53ef\u4ee5\u8c03\u51fa\u5feb\u6377\u952e\u8bf4\u660e\u83dc\u5355\uff0c\u6700\u540e\u5c1d\u8bd5\u4e00\u4e0b\u53ef\u4ee5\u6b63\u5e38\u64ad\u653e\u97f3\u4e50\u5566<\/p>\n<hr>\n<p>\u6700\u540e\uff0c\u53ef\u4ee5\u5728Waybar\u4e2d\u6dfb\u52a0\u76f8\u5e94\u7684Mpd\u6a21\u5757\uff0c\u7528\u4e8e\u6dfb\u52a0\u63a7\u5236\u97f3\u4e50\u64ad\u653e\u7684\u6309\u94ae<\/p>\n<h3 id=\"cava\">cava\n<\/h3><hr>\n<p>cava\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u97f3\u9891\u53ef\u89c6\u5316\u5de5\u5177\uff0c\u7528\u4e8e\u5728\u7ec8\u7aef\u4e5f\u53ef\u4ee5\u5728Waybar\u4e2d\u4ee5\u6761\u5f62\u9891\u8c31\u7684\u5f62\u5f0f\u663e\u793a\u97f3\u9891\u6ce2\u5f62<\/p>\n<p>\u9996\u5148\u6267\u884c\u4e0b\u9762\u6307\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">sudo pacman -S cava\n<\/span><\/span><\/code><\/pre><\/div><p>\u521b\u5efa\u4e24\u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c\u5176\u4e2d<code>config<\/code>\u7528\u4e8ecava\u5728\u7ec8\u7aef\u7684\u9ed8\u8ba4\u914d\u7f6e\uff0c<code>config-waybar<\/code>\u7528\u4e8e\u5728Waybar\u4e2d\u7684\u914d\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mkdir ~\/.config\/cava\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">touch ~\/.config\/cava\/config\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">touch ~\/.config\/cava\/config-waybar\n<\/span><\/span><\/code><\/pre><\/div><p>\u5728<code>~\/.config\/cava\/config<\/code>\u5199\u5165\u4ee5\u4e0b\u9ed8\u8ba4\u914d\u7f6e\uff0c\u53ef\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u53d6\u6d88\u6ce8\u91ca\u8c03\u6574<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">## Configuration file for CAVA. Default values are commented out. Use either &#39;;&#39; or &#39;#&#39; for commenting.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>general<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Smoothing mode. Can be &#39;normal&#39;, &#39;scientific&#39; or &#39;waves&#39;. DEPRECATED as of 0.6.0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">mode<\/span> <span class=\"o\">=<\/span> normal\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Accepts only non-negative values.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">framerate<\/span> <span class=\"o\">=<\/span> <span class=\"m\">60<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># &#39;autosens&#39; will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># new as of 0.6.0 autosens of low values (dynamic range)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># &#39;overshoot&#39; allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">autosens<\/span> <span class=\"o\">=<\/span> <span class=\"m\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">overshoot<\/span> <span class=\"o\">=<\/span> <span class=\"m\">20<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Manual sensitivity in %. If autosens is enabled, this will only be the initial value.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># 200 means double height. Accepts only non-negative values.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">sensitivity<\/span> <span class=\"o\">=<\/span> <span class=\"m\">100<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># The number of bars (0-200). 0 sets it to auto (fill up console).<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Bars&#39; width and space between bars in number of characters.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">bars<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">bar_width<\/span> <span class=\"o\">=<\/span> <span class=\"m\">2<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">bar_spacing<\/span> <span class=\"o\">=<\/span> <span class=\"m\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># bar_height is only used for output in &#34;noritake&#34; format<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">bar_height<\/span> <span class=\"o\">=<\/span> <span class=\"m\">32<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># For SDL width and space between bars is in pixels, defaults are:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">bar_width<\/span> <span class=\"o\">=<\/span> <span class=\"m\">20<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">bar_spacing<\/span> <span class=\"o\">=<\/span> <span class=\"m\">5<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Lower and higher cutoff frequencies for lowest and highest bars<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># the bandwidth of the visualizer.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Note: there is a minimum total bandwidth of 43Mhz x number of bars.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Cava will automatically increase the higher cutoff if a too low band is specified.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">lower_cutoff_freq<\/span> <span class=\"o\">=<\/span> <span class=\"m\">50<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">higher_cutoff_freq<\/span> <span class=\"o\">=<\/span> <span class=\"m\">10000<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># only check for input once per second. Cava will wake up once input is detected. 0 = disable.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">sleep_timer<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>input<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Audio capturing method. Possible methods are: &#39;pulse&#39;, &#39;alsa&#39;, &#39;fifo&#39;, &#39;sndio&#39; or &#39;shmem&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Defaults to &#39;pulse&#39;, &#39;alsa&#39; or &#39;fifo&#39;, in that order, dependent on what support cava was built with.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># All input methods uses the same config variable &#39;source&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># to define where it should get the audio.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># For pulseaudio &#39;source&#39; will be the source. Default: &#39;auto&#39;, which uses the monitor source of the default sink<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># (all pulseaudio sinks(outputs) have &#39;monitor&#39; sources(inputs) associated with them).<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># For alsa &#39;source&#39; will be the capture device.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># For fifo &#39;source&#39; will be the path to fifo-file.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># For shmem &#39;source&#39; will be \/squeezelite-AA:BB:CC:DD:EE:FF where &#39;AA:BB:CC:DD:EE:FF&#39; will be squeezelite&#39;s MAC address<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">method<\/span> <span class=\"o\">=<\/span> pulse\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nb\">source<\/span> <span class=\"o\">=<\/span> auto\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">method<\/span> <span class=\"o\">=<\/span> alsa\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nb\">source<\/span> <span class=\"o\">=<\/span> hw:Loopback,1\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">method<\/span> <span class=\"o\">=<\/span> fifo\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nb\">source<\/span> <span class=\"o\">=<\/span> \/tmp\/mpd.fifo\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">sample_rate<\/span> <span class=\"o\">=<\/span> <span class=\"m\">44100<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">sample_bits<\/span> <span class=\"o\">=<\/span> <span class=\"m\">16<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">method<\/span> <span class=\"o\">=<\/span> shmem\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nb\">source<\/span> <span class=\"o\">=<\/span> \/squeezelite-AA:BB:CC:DD:EE:FF\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">method<\/span> <span class=\"o\">=<\/span> portaudio\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nb\">source<\/span> <span class=\"o\">=<\/span> auto\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>output<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Output method. Can be &#39;ncurses&#39;, &#39;noncurses&#39;, &#39;raw&#39;, &#39;noritake&#39; or &#39;sdl&#39;.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># &#39;noncurses&#39; uses a custom framebuffer technique and prints only changes<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># from frame to frame in the terminal. &#39;ncurses&#39; is default if supported.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># &#39;raw&#39; is an 8 or 16 bit (configurable via the &#39;bit_format&#39; option) data<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># stream of the bar heights that can be used to send to other applications.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># &#39;raw&#39; defaults to 200 bars, which can be adjusted in the &#39;bars&#39; option above.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># &#39;noritake&#39; outputs a bitmap in the format expected by a Noritake VFD display<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">#  in graphic mode. It only support the 3000 series graphical VFDs for now.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># &#39;sdl&#39; uses the Simple DirectMedia Layer to render in a graphical context.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">method<\/span> <span class=\"o\">=<\/span> ncurses\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Visual channels. Can be &#39;stereo&#39; or &#39;mono&#39;.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># &#39;stereo&#39; mirrors both channels with low frequencies in center.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># &#39;mono&#39; outputs left to right lowest to highest frequencies.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># &#39;mono_option&#39; set mono to either take input from &#39;left&#39;, &#39;right&#39; or &#39;average&#39;.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># set &#39;reverse&#39; to 1 to display frequencies the other way around.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">channels<\/span> <span class=\"o\">=<\/span> stereo\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">mono_option<\/span> <span class=\"o\">=<\/span> average\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">reverse<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Raw output target. A fifo will be created if target does not exist.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">raw_target<\/span> <span class=\"o\">=<\/span> \/dev\/stdout\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Raw data format. Can be &#39;binary&#39; or &#39;ascii&#39;.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">data_format<\/span> <span class=\"o\">=<\/span> binary\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Binary bit format, can be &#39;8bit&#39; (0-255) or &#39;16bit&#39; (0-65530).<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">bit_format<\/span> <span class=\"o\">=<\/span> 16bit\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Ascii max value. In &#39;ascii&#39; mode range will run from 0 to value specified here<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">ascii_max_range<\/span> <span class=\"o\">=<\/span> <span class=\"m\">1000<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Use decimal value in ascii table (i.e. 59 = &#39;;&#39; and 10 = &#39;\\n&#39; (line feed)).<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">bar_delimiter<\/span> <span class=\"o\">=<\/span> <span class=\"m\">59<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">frame_delimiter<\/span> <span class=\"o\">=<\/span> <span class=\"m\">10<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># sdl window size and position. -1,-1 is centered.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">sdl_width<\/span> <span class=\"o\">=<\/span> <span class=\"m\">1000<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">sdl_height<\/span> <span class=\"o\">=<\/span> <span class=\"m\">500<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">sdl_x<\/span> <span class=\"o\">=<\/span> -1\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">sdl_y<\/span><span class=\"o\">=<\/span> -1\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>color<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Or defined by hex code &#39;#xxxxxx&#39; (hex code must be within &#39;&#39;). User defined colors requires<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># if supported, ncurses mode will be forced on if user defined colors are used.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># default is to keep current terminal color<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">background<\/span> <span class=\"o\">=<\/span> default\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">foreground<\/span> <span class=\"o\">=<\/span> default\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># SDL only support hex code colors, these are the default:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">background<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;#111111&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">foreground<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;#33cccc&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Gradient mode, only hex defined colors (and thereby ncurses mode) are supported,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># background must also be defined in hex  or remain commented out. 1 = on, 0 = off.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># You can define as many as 8 different colors. They range from bottom to top of screen<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">gradient<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">gradient_count<\/span> <span class=\"o\">=<\/span> <span class=\"m\">8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">gradient_color_1<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;#59cc33&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">gradient_color_2<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;#80cc33&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">gradient_color_3<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;#a6cc33&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">gradient_color_4<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;#cccc33&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">gradient_color_5<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;#cca633&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">gradient_color_6<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;#cc8033&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">gradient_color_7<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;#cc5933&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">gradient_color_8<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">&#39;#cc3333&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>smoothing<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Percentage value for integral smoothing. Takes values from 0 - 100.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Higher values means smoother, but less precise. 0 to disable.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># DEPRECATED as of 0.8.0, use noise_reduction instead<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">integral<\/span> <span class=\"o\">=<\/span> <span class=\"m\">77<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Disables or enables the so-called &#34;Monstercat smoothing&#34; with or without &#34;waves&#34;. Set to 0 to disable.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">monstercat<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">waves<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Set gravity percentage for &#34;drop off&#34;. Higher values means bars will drop faster.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable &#34;drop off&#34;.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># DEPRECATED as of 0.8.0, use noise_reduction instead<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">gravity<\/span> <span class=\"o\">=<\/span> <span class=\"m\">100<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># In bar height, bars that would have been lower that this will not be drawn.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># DEPRECATED as of 0.8.0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">ignore<\/span> <span class=\"o\">=<\/span> <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Noise reduction, float 0 - 1. default 0.77<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># 1 will be very slow and smooth, 0 will be fast but noisy.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">noise_reduction<\/span> <span class=\"o\">=<\/span> 0.77\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>eq<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># This one is tricky. You can have as much keys as you want.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Remember to uncomment more then one key! More keys = more precision.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Look at readme.md on github for further explanations and examples.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># DEPRECATED as of 0.8.0 can be brought back by popular request, open issue at:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># https:\/\/github.com\/karlstav\/cava<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">1<\/span> <span class=\"o\">=<\/span> <span class=\"m\">1<\/span> <span class=\"c1\"># bass<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">2<\/span> <span class=\"o\">=<\/span> <span class=\"m\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">3<\/span> <span class=\"o\">=<\/span> <span class=\"m\">1<\/span> <span class=\"c1\"># midtone<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">4<\/span> <span class=\"o\">=<\/span> <span class=\"m\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">;<\/span> <span class=\"nv\">5<\/span> <span class=\"o\">=<\/span> <span class=\"m\">1<\/span> <span class=\"c1\"># treble<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5728<code>~\/.config\/cava\/config-waybar<\/code>\u4e2d\u5199\u5165\u4ee5\u4e0b\u914d\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>general<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">framerate<\/span> <span class=\"o\">=<\/span> <span class=\"m\">60<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">bars<\/span> <span class=\"o\">=<\/span> <span class=\"m\">20<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">autosens<\/span> <span class=\"o\">=<\/span> <span class=\"m\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">sensitivity<\/span> <span class=\"o\">=<\/span> <span class=\"m\">100<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>input<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">method<\/span> <span class=\"o\">=<\/span> pulse\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">source<\/span> <span class=\"o\">=<\/span> auto\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>output<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">method<\/span> <span class=\"o\">=<\/span> raw\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">raw_target<\/span> <span class=\"o\">=<\/span> \/dev\/stdout\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">data_format<\/span> <span class=\"o\">=<\/span> ascii\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">ascii_max_range<\/span> <span class=\"o\">=<\/span> <span class=\"m\">7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">bar_delimiter<\/span> <span class=\"o\">=<\/span> <span class=\"m\">59<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">frame_delimiter<\/span> <span class=\"o\">=<\/span> <span class=\"m\">10<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>smoothing<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">noise_reduction<\/span> <span class=\"o\">=<\/span> 0.77\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u5728Waybar\u4e2d\u914d\u7f6ecava\uff0c\u9996\u5148\u521b\u5efa\u4e00\u4e2a\u811a\u672c\u6587\u4ef6<code>~\/.config\/waybar\/scripts\/cava.sh<\/code>\uff0c\u5e76\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"cp\">#!\/bin\/bash\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"cp\"><\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">is_cava_ServerExist<\/span><span class=\"o\">=<\/span><span class=\"k\">$(<\/span>ps -ef <span class=\"p\">|<\/span> grep -m <span class=\"m\">1<\/span> cava <span class=\"p\">|<\/span> grep -v <span class=\"s2\">&#34;grep&#34;<\/span> <span class=\"p\">|<\/span> wc -l<span class=\"k\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">if<\/span> <span class=\"o\">[<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$is_cava_ServerExist<\/span><span class=\"s2\">&#34;<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;0&#34;<\/span> <span class=\"o\">]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;cava_server not found&#34;<\/span> &gt;\/dev\/null 2&gt;<span class=\"p\">&amp;<\/span><span class=\"m\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">#\texit;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">elif<\/span> <span class=\"o\">[<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$is_cava_ServerExist<\/span><span class=\"s2\">&#34;<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;1&#34;<\/span> <span class=\"o\">]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  killall cava\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">fi<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">exec<\/span> cava -p ~\/.config\/cava\/config-waybar <span class=\"p\">|<\/span> sed -u <span class=\"s1\">&#39;s\/;\/\/g;s\/0\/\u2581\/g;s\/1\/\u2582\/g;s\/2\/\u2583\/g;s\/3\/\u2584\/g;s\/4\/\u2585\/g;s\/5\/\u2586\/g;s\/6\/\u2587\/g;s\/7\/\u2588\/g;&#39;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5728Waybar\u4e2d\u6dfb\u52a0cava\u6a21\u5757\u914d\u7f6e\uff0c\u4f8b\u5982\u6211\u7684\u914d\u7f6e\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">  <span class=\"s2\">&#34;custom\/cava-internal&#34;<\/span>: <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;exec&#34;<\/span>: <span class=\"s2\">&#34;sh ~\/.config\/waybar\/scripts\/cava.sh&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;format&#34;<\/span>: <span class=\"s2\">&#34;{}&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;tooltip&#34;<\/span>: false,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;on-click&#34;<\/span>: <span class=\"s2\">&#34;kitty -e cava ~\/.config\/cava\/config&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;layer&#34;<\/span>: <span class=\"s2\">&#34;below&#34;<\/span>,\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;output&#34;<\/span>: <span class=\"s2\">&#34;all&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">}<\/span>,\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u914d\u7f6e\u4e00\u4e0bstyle\u6837\u5f0f\uff0c\u7136\u540e\u91cd\u65b0\u542f\u52a8Waybar\u5c31\u53ef\u4ee5\u770b\u5230cava\u6a21\u5757\u6b63\u5e38\u663e\u793a\u5566<\/p>\n<h3 id=\"yazi\">yazi\n<\/h3><hr>\n<p>yazi\u662f\u4e00\u4e2a\u7528Rust\u7f16\u5199\u7684\u7ec8\u7aef\u6587\u4ef6\u7ba1\u7406\u5668\uff0c\u5efa\u8bae\u53c2\u8003<a class=\"link\" href=\"https:\/\/yazi-rs.github.io\/docs\/installation\"  target=\"_blank\" rel=\"noopener\"\n    >\u6587\u6863<\/a><\/p>\n<p>\u9996\u5148\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5yazi\u548c\u4e00\u4e9b\u5fc5\u8981\u7684\u5305<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S yazi ffmpeg 7zip jq poppler fd ripgrep fzf zoxide imagemagick\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">paru -S resvg\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u53ef\u4ee5\u5728<code>~\/.config\/fish\/functions\/<\/code>\u76ee\u5f55\u4e0b\u65b0\u5efa\u4e00\u4e2a<code>y.fish<\/code>\u6587\u4ef6\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">function<\/span> y\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\t<span class=\"nb\">set<\/span> tmp <span class=\"o\">(<\/span>mktemp -t <span class=\"s2\">&#34;yazi-cwd.XXXXXX&#34;<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\tyazi <span class=\"nv\">$argv<\/span> --cwd-file<span class=\"o\">=<\/span><span class=\"s2\">&#34;<\/span><span class=\"nv\">$tmp<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\t<span class=\"k\">if<\/span> <span class=\"nb\">set<\/span> cwd <span class=\"o\">(<\/span><span class=\"nb\">command<\/span> cat -- <span class=\"s2\">&#34;<\/span><span class=\"nv\">$tmp<\/span><span class=\"s2\">&#34;<\/span><span class=\"o\">)<\/span><span class=\"p\">;<\/span> and <span class=\"o\">[<\/span> -n <span class=\"s2\">&#34;<\/span><span class=\"nv\">$cwd<\/span><span class=\"s2\">&#34;<\/span> <span class=\"o\">]<\/span><span class=\"p\">;<\/span> and <span class=\"o\">[<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$cwd<\/span><span class=\"s2\">&#34;<\/span> !<span class=\"o\">=<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$PWD<\/span><span class=\"s2\">&#34;<\/span> <span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\t\t<span class=\"nb\">builtin<\/span> <span class=\"nb\">cd<\/span> -- <span class=\"s2\">&#34;<\/span><span class=\"nv\">$cwd<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\tend\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\trm -f -- <span class=\"s2\">&#34;<\/span><span class=\"nv\">$tmp<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">end\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u6837\u5c31\u53ef\u4ee5\u5728Fish Shell\u4e2d\u6307\u5b9a\u4e00\u4e2a\u522b\u540d<code>y<\/code>\u6765\u5bf9<code>yazi<\/code>\u8fdb\u884c\u5c01\u88c5\u4e00\u4e0b\uff0c\u5e76\u4e14\u5b9e\u73b0\u5728\u6309<code>q<\/code>\u9000\u51fa\u7684\u65f6\u5019\u81ea\u52a8\u5207\u6362\u5230yazi\u6700\u540e\u6240\u5728\u7684\u76ee\u5f55\uff08\u8981\u662f\u4e0d\u60f3\u5207\u6362\u7684\u8bdd\u53ef\u4ee5\u6309<code>Q<\/code>\uff09<\/p>\n<p>\u63a5\u4e0b\u6765\u53ef\u4ee5\u6839\u636e\u9700\u8981\u5728<code>~\/.config\/yazi\/<\/code>\u76ee\u5f55\u4e0b\u521b\u5efa<code>yazi.toml<\/code>\u3001<code>keymap.toml<\/code>\u548c<code>theme.toml<\/code>\u8fd9\u4e09\u4e2a\u6587\u4ef6\u6765\u81ea\u5b9a\u4e49\u914d\u7f6e\uff0c\u5177\u4f53\u5185\u5bb9\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/yazi-rs.github.io\/docs\/configuration\/overview\"  target=\"_blank\" rel=\"noopener\"\n    >\u6587\u6863<\/a><\/p>\n<p>\u5173\u4e8eyazi\u9ed8\u8ba4\u7684keymap\u53ef\u4ee5\u5728<a class=\"link\" href=\"https:\/\/github.com\/sxyazi\/yazi\/blob\/shipped\/yazi-config\/preset\/keymap-default.toml\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u91cc<\/a>\u67e5\u770b<\/p>\n<h3 id=\"hyprpolkitagent\">hyprpolkitagent\n<\/h3><hr>\n<p>hyprpolkitagent\u662f\u4e00\u4e2a\u4e3aHyprland\u8bbe\u8ba1\u7684\u8f7b\u91cfPolkit\u8ba4\u8bc1\u4ee3\u7406\u5de5\u5177\uff0c\u7528\u4e8e\u5728Wayland\u73af\u5883\u4e0b\u5904\u7406GUI\u5e94\u7528\u7a0b\u5e8f\u7684\u6743\u9650\u63d0\u5347\u8bf7\u6c42\uff0c\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">sudo pacman -S hyprpolkitagent\n<\/span><\/span><\/code><\/pre><\/div><p>\u9700\u8981\u63d0\u6743\u7684\u65f6\u5019\u4f1a\u663e\u793a\u7c7b\u4f3c\u4e0b\u9762\u8fd9\u79cd\u622a\u56fe<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/16\/114210.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5728<code>~\/.config\/hypr\/hyprland.conf<\/code>\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\u7528\u4e8e\u81ea\u542f\u52a8<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">exec-once = systemctl --user start hyprpolkitagent\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"wl-clipboard--cliphist\">wl-clipboard + cliphist\n<\/h3><hr>\n<p>\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5wl-clipboard\u548ccliphist\u8fd9\u4e24\u4e2a\u5de5\u5177\u7528\u4e8e\u526a\u8d34\u677f\u7ba1\u7406<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S wl-clipboard cliphist\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u5728<code>~\/.confg\/hypr\/hyprland.conf<\/code>\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e0b\u9762\u4e09\u884c\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">exec-once <span class=\"o\">=<\/span> cliphist wipe<span class=\"p\">;<\/span> wl-paste --type text --watch cliphist store\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">exec-once <span class=\"o\">=<\/span> cliphist wipe<span class=\"p\">;<\/span> wl-paste --type image --watch cliphist store\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">bind<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$mainMod<\/span>, X, exec, cliphist list <span class=\"p\">|<\/span> rofi -dmenu <span class=\"p\">|<\/span> cliphist decode <span class=\"p\">|<\/span> wl-copy\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u901a\u8fc7\u5feb\u6377\u952e<code>Win + X<\/code>\u53ef\u4ee5\u8c03\u51fa\u526a\u8d34\u677f\u5185\u5bb9<\/p>\n<h3 id=\"slurp--grim--sattyswappy\">slurp + grim + satty\/swappy\n<\/h3><hr>\n<p>\u4f7f\u7528slurp\u3001grim\u548csatty\/swappy\u8fd9\u51e0\u4e2a\u5de5\u5177\u53ef\u4ee5\u7528\u4e8e\u5b9e\u73b0\u5c4f\u5e55\u622a\u56fe\u529f\u80fd<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S slurp grim satty swappy\n<\/span><\/span><\/code><\/pre><\/div><p>satty\u76f8\u5bf9swappy\u6765\u8bf4\u529f\u80fd\u4e30\u5bcc\u4e00\u4e9b\uff0c\u4e5f\u65b9\u4fbf\u64cd\u4f5c\uff0c\u4f46\u662f\u76ee\u524d\u4f7f\u7528\u7684\u65f6\u5019\u53d1\u73b0\u5076\u5c14\u622a\u56fe\u540e\u7a97\u53e3\u65e0\u6cd5\u663e\u793a\u5168\u90e8\u5de5\u5177\u680f\uff0c\u8fd8\u4e0d\u80fd\u8c03\u6574\uff0c\u6ca1\u627e\u5230\u65b9\u6848\u89e3\u51b3\uff0c\u6240\u4ee5\u6682\u65f6\u5148\u7528\u7684swappy<\/p>\n<ul>\n<li>satty<\/li>\n<\/ul>\n<p>\u5982\u679c\u4f7f\u7528satty\u7684\u8bdd\uff0c\u9700\u8981\u5728<code>~\/.confg\/hypr\/hyprland.conf<\/code>\u6587\u4ef6\u4e2d\u6dfb\u52a0\u8fd9\u884c\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nb\">bind<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$mainMod<\/span> SHIFT, S, exec, grim -g <span class=\"s2\">&#34;<\/span><span class=\"k\">$(<\/span>slurp<span class=\"k\">)<\/span><span class=\"s2\">&#34;<\/span> -t ppm - <span class=\"p\">|<\/span> satty --filename - --fullscreen --copy-command wl-copy --output-filename <span class=\"s2\">&#34;\/tmp\/screenshot-%Y-%m-%d_%H:%M:%S.png&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5c31\u53ef\u4ee5\u4f7f\u7528<code>Win + SHIFT + S<\/code>\u5feb\u6377\u952e\u8fdb\u884c\u622a\u56fe\uff08\u6ce8\u610f\u5feb\u6377\u952e\u4e0d\u8981\u51b2\u7a81\uff09<\/p>\n<ul>\n<li>swappy<\/li>\n<\/ul>\n<p>\u5982\u679c\u4f7f\u7528swappy\u7684\u8bdd\uff0c\u5219\u9700\u8981\u5728<code>~\/.confg\/hypr\/hyprland.conf<\/code>\u6587\u4ef6\u4e2d\u6dfb\u52a0\u8fd9\u884c\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nb\">bind<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">$mainMod<\/span> SHIFT, S, exec, grim -g <span class=\"s2\">&#34;<\/span><span class=\"k\">$(<\/span>slurp<span class=\"k\">)<\/span><span class=\"s2\">&#34;<\/span> - <span class=\"p\">|<\/span> swappy -f - \n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u540c\u6837\u4f7f\u7528<code>Win + SHIFT + S<\/code>\u5feb\u6377\u952e\u8fdb\u884c\u622a\u56fe\uff08\u6ce8\u610f\u5feb\u6377\u952e\u4e0d\u8981\u51b2\u7a81\uff09<\/p>\n<h3 id=\"grub\u7f8e\u5316\">Grub\u7f8e\u5316\n<\/h3><hr>\n<p><a class=\"link\" href=\"https:\/\/www.gnome-look.org\/browse\/\"  target=\"_blank\" rel=\"noopener\"\n    >GNOME-LOOK<\/a>\u7f51\u7ad9\u63d0\u4f9b\u4e86\u8bb8\u591aGrub\u7f8e\u5316\u65b9\u6848\uff0c\u8fdb\u5165\u7f51\u7ad9\u540e\u627e\u5230<code>Categories<\/code> - <code>Grub Themes<\/code>\u5373\u53ef\u67e5\u770b<\/p>\n<p>\u672c\u6b21\u914d\u7f6e\u4f7f\u7528\u4e86\u8fd9\u4e2a\u9879\u76ee\uff1a<a class=\"link\" href=\"https:\/\/github.com\/vinceliuice\/grub2-themes\"  target=\"_blank\" rel=\"noopener\"\n    >grub2-themes<\/a> \uff08\u9700\u5b89\u88c5<code>imagemagic<\/code>\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/03\/23\/111758.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h3 id=\"sddm\u7f8e\u5316\">Sddm\u7f8e\u5316\n<\/h3><hr>\n<p>\u501f\u9274Github\u9879\u76ee<a class=\"link\" href=\"https:\/\/github.com\/PROxZIMA\/boo-sddm\"  target=\"_blank\" rel=\"noopener\"\n    >PROxZIMA\/boo-sddm<\/a><\/p>\n<p>\u9996\u5148\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">paru -S boo-sddm-git\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fdb\u5165\u8be5\u4e3b\u9898\u7684\u76ee\u5f55<code>\/usr\/share\/sddm\/themes\/boo<\/code>\uff0c\u7136\u540e\u7f16\u8f91<code>theme.conf<\/code>\u6587\u4ef6\uff0c\u5c06<code>Background<\/code>\u8bbe\u7f6e\u4e3a\u81ea\u5df1\u7684\u60f3\u7528\u7684\u80cc\u666f\u56fe\u7247\uff0c\u518d\u66f4\u6539\u4e3b\u9898\u4e2d\u4e00\u4e0b\u914d\u8272<\/p>\n<p>\u5982\u679c\u60f3\u66f4\u6539\u767b\u5f55\u5934\u50cf\uff0c\u53ef\u4ee5\u5230<code>faces<\/code>\u5b50\u76ee\u5f55\u4e0b\u66ff\u6362\u4e00\u4e0b<code>.face.icon<\/code>\u6587\u4ef6<\/p>\n<p>\u7136\u540e\u7f16\u8f91<code>\/usr\/lib\/sddm\/sddm.conf.d\/default.conf<\/code>\u6587\u4ef6\uff0c\u5c06<code>[Theme]<\/code>\u4e0b\u7684<code>Current<\/code>\u53d8\u91cf\u8bbe\u7f6e\u4e3a\u4e3b\u9898\u7684\u540d\u5b57<code>boo<\/code><\/p>\n<p>\u518d\u6b21\u767b\u5f55\u5c31\u53ef\u4ee5\u663e\u793a\u65b0\u4e3b\u9898\u5566<\/p>\n<h2 id=\"\u5176\u4ed6\u5e94\u7528\">\u5176\u4ed6\u5e94\u7528\n<\/h2><hr>\n<p>\u4e4b\u524d\u5728\u5199\u5b89\u88c5KDE\u73af\u5883\u7684<a class=\"link\" href=\"..\/0-0-0-44\/\" >\u6587\u7ae0<\/a>\u4e2d\u4ecb\u7ecd\u8fc7\u5f88\u591a\u5e94\u7528\uff0c\u8fd9\u90e8\u5206\u5c31\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b\u6211\u81ea\u5df1\u5728Hyprland\u4e2d\u5b89\u88c5\u7684\u4e00\u4e9b\u89c9\u5f97\u6bd4\u8f83\u6709\u7528\u6216\u6709\u610f\u601d\u7684\u5e94\u7528\uff0c\u90e8\u5206\u4f1a\u8ddf\u4e4b\u524d\u7684\u6587\u7ae0\u6709\u91cd\u5408\uff0c\u6b64\u90e8\u5206\u975e\u5fc5\u9700\uff0c\u4ec5\u4f9b\u53c2\u8003<\/p>\n<h3 id=\"chrome\u6d4f\u89c8\u5668\">Chrome\u6d4f\u89c8\u5668\n<\/h3><hr>\n<p>\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">paru -S google-chrome\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u5b8cChrome\u6d4f\u89c8\u5668\u540e\uff0c\u5982\u679c\u53d1\u73b0\u5b57\u4f53\u5f88\u6a21\u7cca\uff0c\u53ef\u4ee5\u6253\u5f00<code>chrome:\/\/flags\/#ozone-platform-hint<\/code>\uff0c\u7136\u540e\u8bbe\u7f6e\u4e3a<code>auto<\/code>\uff0c\u91cd\u542f\u5373\u53ef<\/p>\n<h3 id=\"neofetch\">Neofetch\n<\/h3><hr>\n<p>Neofetch\u662f\u4e00\u4e2a\u53ef\u4ee5\u975e\u5e38\u7f8e\u89c2\u5730\u663e\u793a\u7cfb\u7edf\u4fe1\u606f\u7684\u547d\u4ee4\u884c\u5de5\u5177<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S neofetch\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"fd\">fd\n<\/h3><hr>\n<p>fd\u662f\u4e00\u4e2a\u65e8\u5728\u66ff\u4ee3find\u7684\u5feb\u901f\u547d\u4ee4\u884c\u6587\u4ef6\u641c\u7d22\u5de5\u5177\uff0c\u4f7f\u7528\u65b9\u6cd5\u5c31\u4e0d\u5728\u8fd9\u91cc\u4ecb\u7ecd\u4e86<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S fd\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"btop\">btop\n<\/h3><hr>\n<p>btop\u662f\u4e00\u4e2a\u73b0\u4ee3\u5316\u7684\u7ec8\u7aef\u7cfb\u7edf\u76d1\u63a7\u5de5\u5177\uff0c\u53ef\u4ee5\u5b9e\u65f6\u663e\u793a\u7cfb\u7edf\u8d44\u6e90\u4f7f\u7528\u60c5\u51b5\uff0c\u5b89\u88c5\u65b9\u6cd5\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S btop\n<\/span><\/span><\/code><\/pre><\/div><p>btop\u914d\u7f6e\u6587\u4ef6\u4f4d\u4e8e<code>~\/.config\/btop\/<\/code>\u76ee\u5f55\uff0c\u53ef\u8fdb\u884c\u914d\u7f6e\u548c\u6837\u5f0f\u7f8e\u5316<\/p>\n<h3 id=\"tldr\">tldr\n<\/h3><hr>\n<p>tldr\u662f\u4e00\u4e2a\u547d\u4ee4\u884c\u5e2e\u52a9\u5de5\u5177\uff0c\u63d0\u4f9b\u5e38\u7528\u547d\u4ee4\u7684\u7b80\u77ed\u793a\u4f8b\uff0c\u53ef\u4ee5\u66ff\u4ee3\u590d\u6742\u7684man\u9875\u9762<\/p>\n<p>\u9996\u5148\u8fdb\u884c\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S tldr\n<\/span><\/span><\/code><\/pre><\/div><p>\u4f7f\u7528\u7684\u8bdd\u76f4\u63a5\u6267\u884c<code>tldr &lt;cmd&gt;<\/code>\u5373\u53ef<\/p>\n<h3 id=\"bat\">bat\n<\/h3><hr>\n<p>bat\u662f\u4e00\u4e2a\u7528\u4e8e\u66ff\u4ee3cat\u547d\u4ee4\u7684\u73b0\u4ee3\u5316\u5de5\u5177\uff0c\u7528\u4e8e\u67e5\u770b\u6587\u4ef6\u5185\u5bb9\uff0c\u4f46\u589e\u52a0\u4e86\u8bed\u6cd5\u9ad8\u4eae\u7b49\u9ad8\u7ea7\u529f\u80fd\uff0c\u5b89\u88c5\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S bat\n<\/span><\/span><\/code><\/pre><\/div><p>bat\u914d\u7f6e\u6587\u4ef6\u4f4d\u4e8e<code>~\/.config\/bat\/<\/code>\u76ee\u5f55\uff0c\u53ef\u8fdb\u884c\u914d\u7f6e\u548c\u6837\u5f0f\u7f8e\u5316<\/p>\n<h3 id=\"navi\">navi\n<\/h3><hr>\n<p>navi\u662f\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u7684\u547d\u4ee4\u884c\u5907\u5fd8\u5de5\u5177\uff0c\u65e8\u5728\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u67e5\u627e\u548c\u6267\u884c\u547d\u4ee4\u884c\u547d\u4ee4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S navi\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"ripgrep\">ripgrep\n<\/h3><hr>\n<p>ripgrep\u662f\u4e00\u4e2a\u5feb\u901f\u3001\u8de8\u5e73\u53f0\u7684\u6587\u672c\u641c\u7d22\u5de5\u5177<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S ripgrep\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"fzf\">fzf\n<\/h3><hr>\n<p>fzf\u662f\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u547d\u4ee4\u884c\u6a21\u7cca\u67e5\u627e\u5de5\u5177\uff0c\u9002\u7528\u4e8e\u5feb\u901f\u67e5\u627e\u6587\u4ef6\u3001\u547d\u4ee4\u5386\u53f2\u6216\u4efb\u610f\u6587\u672c\u5217\u8868<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S fzf\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"lsd\">lsd\n<\/h3><hr>\n<p>lsd\u662f\u4e00\u4e2a\u7531<code>rust<\/code>\u8bed\u8a00\u5199\u7684\u73b0\u4ee3\u5316\u7684<code>ls<\/code>\u547d\u4ee4\u66ff\u4ee3\u5de5\u5177\uff08\u4e5f\u53ef\u4ee5\u7528\u53e6\u4e00\u6b3e\u7c7b\u4f3c\u7684\u5de5\u5177eza\uff09\uff0c\u7528\u4e8e\u5728Linux\u7cfb\u7edf\u4e2d\u4ee5\u66f4\u7f8e\u89c2\u7684\u65b9\u5f0f\u5217\u51fa\u76ee\u5f55\u5185\u5bb9\uff0c\u5e26\u6709\u5f69\u8272\u8f93\u51fa\u3001\u56fe\u6807\u652f\u6301\u7b49\u7279\u6027\uff0c\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S lsd\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u540e\u53ef\u4ee5\u5728Fish\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u8bbe\u7f6e<code>alias<\/code><\/p>\n<h3 id=\"mpv\">mpv\n<\/h3><hr>\n<p>mpv\u662f\u4e00\u4e2a\u5f00\u6e90\u3001\u8de8\u5e73\u53f0\u7684\u5a92\u4f53\u64ad\u653e\u5668\uff0c\u5177\u6709\u8f7b\u91cf\u3001\u9ad8\u6027\u80fd\u3001\u5e7f\u6cdb\u683c\u5f0f\u652f\u6301\u548c\u9ad8\u5ea6\u53ef\u5b9a\u5236\u6027\u7684\u7279\u70b9<\/p>\n<p>\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S mpv\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"syncthing\">Syncthing\n<\/h3><hr>\n<p>\u53c2\u8003\u6211<a class=\"link\" href=\"..\/0-0-0-40\/\" >\u8fd9\u7bc7\u6587\u7ae0<\/a>\u7684\u5185\u5bb9<\/p>\n<h3 id=\"obsidian\">Obsidian\n<\/h3><hr>\n<p>\u8fd9\u91cc\u5148\u5b89\u88c5\u4e24\u4e2a\u6211\u60ef\u7528\u7684\u5b57\u4f53\uff0c<code>CascadiaCode<\/code>\u53ef\u4ee5\u76f4\u63a5\u7528\u5305\u7ba1\u7406\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S ttf-cascadia-code\n<\/span><\/span><\/code><\/pre><\/div><p><code>LxgwWenKai<\/code>\u53ef\u4ee5\u5148\u5230<a class=\"link\" href=\"https:\/\/github.com\/lxgw\/LxgwWenKai\"  target=\"_blank\" rel=\"noopener\"\n    >GitHub<\/a>\u4e0b\u8f7d\u5b57\u4f53\u7684\u538b\u7f29\u5305\uff0c\u7136\u540e\u89e3\u538b\u540e\u5c06\u5b57\u4f53\u76ee\u5f55\u79fb\u52a8\u5230<code>\/usr\/local\/share\/fonts\/<\/code>\uff08\u53ef\u80fd\u9700\u8981\u5148\u624b\u52a8\u521b\u5efa\uff09\u76ee\u5f55\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">\u5b89\u88c5\u793a\u4f8b\uff1a\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">wget https:\/\/github.com\/lxgw\/LxgwWenKai\/releases\/download\/v1.511\/lxgw-wenkai-v1.511.zip\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">unzip lxgw-wenkai-v1.511.zip\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo mkdir \/usr\/local\/share\/fonts  <span class=\"c1\"># \u5982\u679c\u4e0d\u5b58\u5728\u5219\u624b\u52a8\u521b\u5efa<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo mv lxgw-wenkai-v1.511 \/usr\/local\/share\/fonts\/\n<\/span><\/span><\/code><\/pre><\/div><p>\u6700\u540e\u5b89\u88c5Obsidian<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S obsidian\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"libreoffice\">LibreOffice\n<\/h3><hr>\n<p>\u5b89\u88c5\u4e00\u4e2a\u5f00\u6e90\u7684\u529e\u516c\u5957\u4ef6\uff0c\u4e0d\u7528\u591a\u8bf4<\/p>\n<p>\u53ef\u4ee5\u9009\u62e9\u5b89\u88c5\u7a33\u5b9a\u7684\u7b80\u4f53\u4e2d\u6587\u7248<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">pacman -S libreoffice-still libreoffice-still-zh-cn\n<\/span><\/span><\/code><\/pre><\/div><p>\u6216\u8005\u5b89\u88c5\u6700\u65b0feature\u7684\u7b80\u4f53\u4e2d\u6587\u7248\u672c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">pacman -S libreoffice-fresh libreoffice-fresh-zh-cn\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"wechat--qq\">Wechat + QQ\n<\/h3><hr>\n<p>\u5e73\u65f6\u6709\u4e9b\u5de5\u4f5c\u8fd8\u662f\u79bb\u4e0d\u5f00\u5fae\u4fe1\u548cQQ\u7684<\/p>\n<p>\u6211\u5b89\u88c5\u7684\u662f\u4e0b\u9762\u8fd9\u4e24\u4e2aAUR\u5305\uff0c\u5728Hyprland\u4e0b\u90fd\u662f\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\u7684<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">paru -S wechat-appimage\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">paru -S linuxqq\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"zotero\">Zotero\n<\/h3><hr>\n<p>\u4e00\u6b3e\u597d\u7528\u7684\u6587\u732e\u7ba1\u7406\u5de5\u5177<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">paru -S zotero-bin\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"termius\">Termius\n<\/h3><hr>\n<p>\u975e\u5e38\u597d\u7528\u7684SSH\u5ba2\u6237\u7aef\uff0c\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">paru -S termius\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u6709\u8da3\u7684cli\u5de5\u5177\">\u6709\u8da3\u7684CLI\u5de5\u5177\n<\/h3><hr>\n<p>\u53ef\u4ee5\u8003\u8651\u5b89\u88c5\u4e00\u4e9b\u6709\u8da3\u7684\u7ec8\u7aef\u5c0f\u5de5\u5177\uff0c\u53c2\u8003\u6211\u7684\u8fd9\u7bc7<a class=\"link\" href=\"..\/0-0-0-50\/\" >\u6587\u7ae0<\/a><\/p>\n<hr>\n<p>\u81f3\u6b64\uff0c\u57fa\u672c\u4e0a\u5c31\u662f\u5168\u90e8\u7684\u914d\u7f6e\u5185\u5bb9\u5566\uff0c\u5982\u6709\u65b0\u7684\u5185\u5bb9\u4f1a\u5728\u540e\u9762\u968f\u65f6\u8865\u5145\uff01<\/p>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u56e0\u4e3a\u4e5f\u662f\u7b2c\u4e00\u6b21\u7528Hyprland\uff0c\u751a\u81f3\u4e5f\u662f\u7b2c\u4e00\u6b21\u7528WM\uff0c\u6240\u4ee5\u8fd9\u6b21\u7684\u914d\u7f6e\u4ee5\u53ca\u672c\u6587\u7684\u64b0\u5199\u82b1\u8d39\u975e\u5e38\u591a\u7684\u65f6\u95f4\uff0c\u4ee5\u81f3\u4e8e\u5f71\u54cd\u5230\u4e86\u6b63\u5e38\u7684\u79d1\u7814\u5de5\u4f5c\uff0c\u52a0\u4e0a\u8fd9\u672c\u8eab\u4e5f\u662f\u5174\u8da3\u7231\u597d\uff0c\u7b97\u4e0d\u4e0a&quot;\u6b63\u4e8b&quot;\uff0c\u540e\u9762\u5148\u5fd9\u70b9&quot;\u6b63\u4e8b&quot;\uff0c\u53ef\u80fd\u6682\u65f6\u5148\u4e0d\u5199\u592a\u957f\u7684\u6587\u7ae0<\/p>\n<p>But<\/p>\n<p>\u751f\u547d\u4e0d\u606f\uff0c&ldquo;\u6325\u970d&quot;\u4e0d\u6b62<\/p>\n"},{"title":"Linux \u78c1\u76d8\u6302\u8f7d","link":"https:\/\/been.ee\/p\/0-0-0-51\/","pubDate":"Tue, 20 May 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-51\/","description":"<p>\u7b80\u5355\u8bb0\u5f55\u4e86\u4e00\u4e0b\u7528\u547d\u4ee4\u884c\u8fdb\u884c\u78c1\u76d8\u6302\u8f7d\u7684\u6d41\u7a0b<\/p>\n<h2 id=\"\u67e5\u770b\u5b58\u50a8\u8bbe\u5907\">\u67e5\u770b\u5b58\u50a8\u8bbe\u5907\n<\/h2><hr>\n<p>\u9996\u5148\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u4e24\u4e2a\u547d\u4ee4\u67e5\u770b\u5b58\u50a8\u8bbe\u5907\u4fe1\u606f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">lsblk -pfa  <span class=\"c1\"># \u663e\u793a\u5b58\u50a8\u8bbe\u5907\u7684\u6587\u4ef6\u7cfb\u7edf\u3001\u6302\u8f7d\u70b9\u7b49\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">blkid  <span class=\"c1\"># \u663e\u793a\u8bbe\u5907\u7684Label\u3001UUID\u548c\u6587\u4ef6\u7cfb\u7edf\u7c7b\u578b\u7b49\u4fe1\u606f<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5982\u679c\u8981\u6302\u8f7d\u7684\u6587\u4ef6\u7cfb\u7edf\u4e3aNTFS\uff0c\u5219\u9700\u8981\u5b89\u88c5<code>ntfs-3g<\/code>\u8fd9\u4e2a\u5305<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S ntfs-3g\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u6302\u8f7d\">\u6302\u8f7d\n<\/h2><hr>\n<p>\u9996\u5148\u521b\u5efa\u4e00\u4e2a\u6302\u8f7d\u70b9\uff0c\u4f8b\u5982\u4e3a\u6211\u7684USB\u9a71\u52a8\u5668\u521b\u5efa\u4e00\u4e2a\u6302\u8f7d\u70b9\u4e3a<code>\/mnt\/usb<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo mkdir -p \/mnt\/usb\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u8fdb\u884c\u6302\u8f7d\uff0c\u6ce8\u610f\u8981\u6302\u8f7d\u7684\u662f\u78c1\u76d8\u7684\u5206\u533a\uff08\u4f8b\u5982<code>sda1<\/code>\uff09\uff0c\u800c\u4e0d\u662f\u78c1\u76d8\u8bbe\u5907\u540d\uff08<code>sda<\/code>\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo mount \/dev\/sda1 \/mnt\/usb \n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u6307\u5b9a\u6587\u4ef6\u7cfb\u7edf\">\u6307\u5b9a\u6587\u4ef6\u7cfb\u7edf\n<\/h3><hr>\n<p>\u53ef\u4ee5\u52a0<code>-t<\/code>\u53c2\u6570\u624b\u52a8\u6307\u5b9a\u5206\u533a\u7684\u6587\u4ef6\u7cfb\u7edf\u7c7b\u578b\uff0c\u4f46\u9ed8\u8ba4\u4e5f\u4f1a\u81ea\u52a8\u68c0\u6d4b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo mount -t &lt;type&gt; \/dev\/sdb1 \/mnt\/mydisk  <span class=\"c1\"># &lt;type&gt;\u4e3a\u6587\u4ef6\u7cfb\u7edf\u7c7b\u578b\uff0c\u4f8b\u5982ext4\u3001ntfs\u3001vfat(FAT32)\u7b49<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u6307\u5b9a\u6302\u8f7d\u9009\u9879\">\u6307\u5b9a\u6302\u8f7d\u9009\u9879\n<\/h3><hr>\n<p>\u53ef\u4ee5\u4f7f\u7528<code>-o<\/code>\u53c2\u6570\u5236\u5b9a\u6302\u8f7d\u9009\u9879<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">sudo mount -o ro \/dev\/sda1 \/mnt\/usb  # \u53ea\u8bfb\u6302\u8f7d\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo mount -o rw \/dev\/sda1 \/mnt\/usb  # \u5141\u8bb8\u8bfb\u5199\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo mount -o uid=1000,gid=1000,umask=022 \/dev\/sda1 \/mnt\/usb  # \u6307\u5b9a\u7528\u6237\u8bbf\u95ee\uff0c\u53ef\u4ee5\u4f7f\u7528id &lt;username&gt;\u547d\u4ee4\u67e5\u770b\u7528\u6237\u7684id\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5378\u8f7d\">\u5378\u8f7d\n<\/h2><hr>\n<p>\u6700\u540e\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u547d\u4ee4\u5378\u8f7d<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo umount \/mnt\/usb\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo umount \/dev\/sda1\n<\/span><\/span><\/code><\/pre><\/div><p>\u5982\u679c\u663e\u793a\u8bbe\u5907\u5fd9\uff0c\u53ef\u4ee5\u7528\u4e0b\u9762\u547d\u4ee4\u67e5\u770b\u5360\u7528\u60c5\u51b5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">lsof \/mnt\/usb\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">fuser -mv \/mnt\/usb\n<\/span><\/span><\/code><\/pre><\/div><p>\u6839\u636e\u5360\u7528\u60c5\u51b5\u5173\u6389\u6216\u6740\u6389\u76f8\u5e94\u7684\u8fdb\u7a0b\u7136\u540e\u518d\u5378\u8f7d\u5c31\u597d\u5566<\/p>\n"},{"title":"\u6709\u8da3\u7684 CLI \u5de5\u5177","link":"https:\/\/been.ee\/p\/0-0-0-50\/","pubDate":"Tue, 13 May 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-50\/","description":"<h2 id=\"cowsay\">cowsay\n<\/h2><hr>\n<p>cowsay\u662f\u4e00\u4e2a\u53ef\u4ee5\u7528\u5976\u725b\uff08\u6216\u5176\u4ed6\u52a8\u7269\uff09\u663e\u793a\u7528\u6237\u8f93\u5165\u6587\u672c\u7684\u7a0b\u5e8f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S cowsay\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u4ee5\u6267\u884c<code>cowsay &quot;Let Me Say!&quot;<\/code>\u6d4b\u8bd5\u4e00\u4e0b\uff0c\u4e5f\u53ef\u4ee5<code>cat file.txt | cowsay<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/14\/211502.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u4e5f\u53ef\u4ee5\u5c06\u725b\u725b\u66ff\u6362\u4e3a\u522b\u7684\u6a21\u677f\uff0c\u6267\u884c<code>cowsay -l<\/code>\u53ef\u4ee5\u663e\u793a\u53ef\u7528\u7684\u6a21\u677f\u6587\u4ef6<code>cow_file<\/code>\uff0c\u7136\u540e\u6267\u884c<code>cowsay -f &lt;cow_file&gt; &quot;Let Me Say!&quot;<\/code>\u5c31\u53ef\u4ee5\u7528\u65b0\u7684\u6a21\u677f<\/p>\n<h2 id=\"fortune\">fortune\n<\/h2><hr>\n<p>fortune\u662f\u4e00\u4e2a\u53ef\u4ee5\u968f\u673a\u663e\u793a\u8c1a\u8bed\u7684\u7a0b\u5e8f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S fortune-mod\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u4ee5\u7ed3\u5408<code>cowsay<\/code>\u4f7f\u7528\uff0c\u4f8b\u5982<code>fortune | cowsay<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/14\/211537.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h2 id=\"lolcat\">lolcat\n<\/h2><hr>\n<p>lolcat\u662f\u4e00\u4e2a\u53ef\u4ee5\u5c06\u8f93\u5165\u6587\u672c\u4ee5\u5f69\u8679\u8272\u9010\u884c\u8f93\u51fa\u7684\u7a0b\u5e8f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S lolcat\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u4ee5\u8bfb\u53d6\u6587\u4ef6\u6216\u8005\u6807\u51c6\u8f93\u51fa\uff0c\u4f8b\u5982<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">lolcat &lt;file.txt&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">fortune <span class=\"p\">|<\/span> cowsay <span class=\"p\">|<\/span> lolcat\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ls <span class=\"p\">|<\/span> lolcat\n<\/span><\/span><\/code><\/pre><\/div><p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/14\/211625.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h2 id=\"charasay\">charasay\n<\/h2><hr>\n<p>\u4e00\u6b3e\u7528rust\u5199\u7684\u5c0f\u5de5\u5177\uff0c\u4e0ecowsay\u7c7b\u4f3c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">paru -S charasay\n<\/span><\/span><\/code><\/pre><\/div><p>\u4f7f\u7528\u4e5f\u4e0ecowsay\u7c7b\u4f3c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">chara say <span class=\"s2\">&#34;Hi!&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">fortune <span class=\"p\">|<\/span> chara say <span class=\"p\">|<\/span> lolcat\n<\/span><\/span><\/code><\/pre><\/div><p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/14\/211822.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h2 id=\"asciiquarium\">asciiquarium\n<\/h2><hr>\n<p>asciiquarium\u662f\u4e00\u4e2a\u5728\u7ec8\u7aef\u4e2d\u6a21\u62df\u6d77\u6d0b\u52a8\u753b\u7684\u7a0b\u5e8f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S asciiquarium\n<\/span><\/span><\/code><\/pre><\/div><p>\u76f4\u63a5\u6267\u884c<code>asciiquarium<\/code>\u5373\u53ef\u5728\u7535\u8111\u91cc\u517b\u9c7c<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/14\/211854.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h2 id=\"sl\">sl\n<\/h2><hr>\n<p>sl\u662f\u4e00\u4e2a\u7528\u4e8e\u5728\u7ec8\u7aef\u663e\u793a\u4e00\u8f86\u84b8\u6c7d\u706b\u8f66\u7ecf\u8fc7\u7684\u52a8\u753b\u7684\u7a0b\u5e8f<\/p>\n<blockquote>\n<p>\u6ce8\u89e3\uff1asl\u6700\u521d\u7531\u65e5\u672c\u5f00\u53d1\u8005Toyoda Masashi\u521b\u5efa\uff0c\u65e8\u5728\u4e3aLinux\/Unix\u7528\u6237\u63d0\u4f9b\u4e00\u79cd\u6709\u8da3\u7684\u53cd\u9988\u673a\u5236\uff0c\u5f53\u7528\u6237\u56e0\u624b\u8bef\u8f93\u5165sl\u800c\u975els\uff08\u5217\u51fa\u76ee\u5f55\u5185\u5bb9\u7684\u547d\u4ee4\uff09\u65f6\uff0csl \u4f1a\u5728\u7ec8\u7aef\u663e\u793a\u4e00\u8f86\u84b8\u6c7d\u706b\u8f66\u4ece\u5c4f\u5e55\u4e00\u4fa7\u884c\u9a76\u5230\u53e6\u4e00\u4fa7\u7684\u52a8\u753b\uff0c\u5b83\u6ca1\u6709\u4efb\u4f55\u5b9e\u7528\u529f\u80fd\uff0c\u7eaf\u7cb9\u662f\u4e3a\u4e86\u5a31\u4e50<\/p><\/blockquote>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pcaman -S sl\n<\/span><\/span><\/code><\/pre><\/div><p>\u76f4\u63a5\u6267\u884c<code>sl<\/code>\uff0c\u4f46\u662f\u9700\u8981\u6ce8\u610f\uff0c\u4e00\u65e6\u6267\u884c\u65e0\u6cd5\u7528Ctrl + C\u6307\u4ee4\u505c\u6389\uff0c\u4e0d\u8fc7\u5f88\u5feb\u5c31\u4f1a\u7ed3\u675f<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/14\/211928.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h2 id=\"genact\">genact\n<\/h2><hr>\n<p>genact\u662f\u4e00\u4e2a\u7528\u4e8e\u751f\u6210\u65e0\u610f\u4e49\u4ee3\u7801\u7684\u7a0b\u5e8f\uff0c\u53ef\u4ee5\u5047\u88c5\u81ea\u5df1\u5f88\u5fd9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S genact\n<\/span><\/span><\/code><\/pre><\/div><p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/14\/212005.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h2 id=\"cava\">cava\n<\/h2><hr>\n<p>cava\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u97f3\u9891\u53ef\u89c6\u5316\u5de5\u5177\uff0c\u8bbe\u8ba1\u7528\u4e8e\u5728\u7ec8\u7aef\u4e2d\u4ee5\u6761\u5f62\u9891\u8c31\u7684\u5f62\u5f0f\u663e\u793a\u97f3\u9891\u6ce2\u5f62\uff0c\u4e3b\u8981\u5c31\u662f\u770b\u7740\u70ab\u9177\uff0c\u4f8b\u5982\u53ef\u4ee5\u5728\u97f3\u4e50\u64ad\u653e\u65f6\u5c55\u793a\u52a8\u6001\u7684\u9891\u8c31\u52a8\u753b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S cava\n<\/span><\/span><\/code><\/pre><\/div><p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/14\/212215.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h2 id=\"cbonsai\">cbonsai\n<\/h2><hr>\n<p>cbonsai\u662f\u4e00\u4e2a\u8bbe\u8ba1\u7528\u4e8e\u5728\u7ec8\u7aef\u4e2d\u751f\u6210\u865a\u62df\u7684ASCII\u827a\u672f\u76c6\u683d\u6811\uff0c\u901a\u8fc7\u7b97\u6cd5\u968f\u673a\u521b\u5efa\u76c6\u683d\u6811\u7684\u5f62\u72b6\u3001\u989c\u8272\u548c\u4f4d\u7f6e\uff0c\u6a21\u62df\u771f\u5b9e\u76c6\u683d\u7684\u751f\u957f\u8fc7\u7a0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">paru -S cbonsai-git\n<\/span><\/span><\/code><\/pre><\/div><p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/14\/212311.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h2 id=\"unimatrix\">unimatrix\n<\/h2><hr>\n<p>unimatrix\u4e00\u4e2a\u53ef\u4ee5\u5b9e\u73b0\u5728\u5c4f\u5e55\u4e0a\u4e0b\u6570\u5b57\u96e8\u7684\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u8bbe\u8ba1\u7075\u611f\u6765\u6e90\u4e8e\u7535\u5f71\u300a\u9ed1\u5ba2\u5e1d\u56fd\u300b\u4e2d\u6807\u5fd7\u6027\u7684\u201c\u6570\u5b57\u96e8\u201d\u89c6\u89c9\u6548\u679c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">paru -S unimatrix\n<\/span><\/span><\/code><\/pre><\/div><p><img src=\"http:\/\/img.been.ee\/i\/2025\/05\/14\/212341.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n"},{"title":"Btrfs + Snapper","link":"https:\/\/been.ee\/p\/0-0-0-49\/","pubDate":"Mon, 12 May 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-49\/","description":"<h2 id=\"\u4e3a\u4ec0\u4e48\u8981\u7528btrfs\u548csnapper\">\u4e3a\u4ec0\u4e48\u8981\u7528Btrfs\u548cSnapper\n<\/h2><hr>\n<p>\u5148\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0bBtrfs\u548cSnapper<\/p>\n<p>Btrfs\u662f\u4e00\u79cd\u73b0\u4ee3\u5316\u7684Linux\u6587\u4ef6\u7cfb\u7edf\uff0c\u652f\u6301\u5199\u65f6\u590d\u5236\uff08COW\uff09\uff0c\u5176\u8bbe\u8ba1\u76ee\u6807\u662f\u63d0\u4f9b\u9ad8\u7ea7\u529f\u80fd\u3001\u9ad8\u53ef\u9760\u6027\u3001\u53ef\u6269\u5c55\u6027\u548c\u6613\u4e8e\u7ba1\u7406\uff0c\u5b83\u7531Oracle\u4e8e2007\u5e74\u53d1\u8d77\u5f00\u53d1\uff0c\u73b0\u5df2\u7528\u4e8eSUSE\u3001Fedora\u7b49\u53d1\u884c\u7248<\/p>\n<p>Snapper\u662f\u4e00\u4e2a\u7531openSUSE\u7684\u5de5\u7a0b\u5e08Arvin Schnell\u5f00\u53d1\u7684\u4e00\u6b3e\u7528\u4e8e\u7ba1\u7406Btrfs\u5b50\u5377\u548cLVM\u5377\u7684\u5feb\u7167\u7ba1\u7406\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u7528\u4e8e\u521b\u5efa\u548c\u6bd4\u8f83\u5feb\u7167\u3001\u5728\u5feb\u7167\u4e4b\u95f4\u8fdb\u884c\u56de\u6eda\uff0c\u5e76\u652f\u6301\u81ea\u52a8\u5316\u751f\u6210\u5feb\u7167\u7b49\u529f\u80fd<\/p>\n<p>Btrfs\u7684\u4e00\u9879\u975e\u5e38\u91cd\u8981\u7684\u7279\u6027\u662f\u5b83\u7684\u5feb\u7167\u548c\u5b50\u5377\uff0cSnapper\u53ef\u4ee5\u57fa\u4e8eBtrfs\u5feb\u7167\u548c\u5b50\u5377\u529f\u80fd\u6765\u8fdb\u884c\u81ea\u52a8\u5316\u5feb\u7167\u7ba1\u7406\uff0c\u4ee5\u66f4\u597d\u7684\u4fdd\u62a4\u6570\u636e\u3002<strong>Btrfs\u7684\u5feb\u7167\u57fa\u4e8e\u5176\u5199\u65f6\u590d\u5236\uff08COW\uff09\u7684\u673a\u5236\uff0c\u5728\u521d\u59cb\u521b\u5efa\u65f6\u51e0\u4e4e\u4e0d\u5360\u7528\u989d\u5916\u7a7a\u95f4\uff0c\u4ec5\u8bb0\u5f55\u4e0e\u539f\u59cb\u6587\u4ef6\u7cfb\u7edf\u76f8\u540c\u7684\u6307\u9488\u3002\u53ea\u6709\u5f53\u6570\u636e\u53d1\u751f\u66f4\u6539\u65f6\uff0c\u5feb\u7167\u624d\u4f1a\u5b58\u50a8\u5dee\u5f02\u6570\u636e\uff0c\u4ece\u800c\u8282\u7701\u5b58\u50a8\u7a7a\u95f4\uff0c\u8fd9\u4e5f\u4e3aSnapper\u63d0\u4f9b\u4e86\u9ad8\u6548\u7684\u5e95\u5c42\u652f\u6301<\/strong><\/p>\n<p>\u6240\u4ee5\uff0cSnapper\u7ed3\u5408Btrfs\u7684\u5feb\u7167\u529f\u80fd\uff0c\u53ef\u4ee5\u5e26\u6765\u975e\u5e38\u5f3a\u5927\u7684\u6570\u636e\u4fdd\u62a4\u548c\u6062\u590d\u673a\u5236\uff0c\u65e0\u8bba\u662f\u7cfb\u7edf\u66f4\u65b0\u3001\u8bef\u5220\u6587\u4ef6\uff0c\u8fd8\u662f\u6570\u636e\u635f\u574f\uff0c\u90fd\u53ef\u4ee5\u901a\u8fc7Snapper\u5feb\u901f\u56de\u6eda\u5230\u4e4b\u524d\u7684\u5feb\u7167\u72b6\u6001\uff0c\u53ef\u4ee5\u5f88\u5927\u7a0b\u5ea6\u4e0a\u51cf\u5c11\u6570\u636e\u4e22\u5931\u98ce\u9669<\/p>\n<h2 id=\"\u5b89\u88c5snapper\">\u5b89\u88c5Snapper\n<\/h2><hr>\n<blockquote>\n<p><strong>\u6ce8\uff1a\u672c\u6587\u5728\u5b89\u88c5\u4e86Btrfs\u6587\u4ef6\u7cfb\u7edf\u7684Archlinux\u7cfb\u7edf\u73af\u5883\u4e0b\u64b0\u5199\uff0c\u6240\u4ee5\u9700\u8981\u63d0\u524d\u5b89\u88c5\u597d\u8fd9\u4e24\u90e8\u5206\u73af\u5883<\/strong><\/p><\/blockquote>\n<p>\u5148\u68c0\u67e5\u4e00\u4e0b\u662f\u5426\u53ef\u4ee5\u6267\u884c<code>btrfs<\/code>\u547d\u4ee4\uff0c\u5982\u679c\u65e0\u6cd5\u6267\u884c\u547d\u4ee4\uff0c\u5219\u9700\u8981\u5148\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<code>btrfs-progs<\/code>\u5305<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S btrfs-progs\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5b89\u88c5Snapper\u5de5\u5177\u76f8\u5173\u7684\u5305<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S snapper snap-pac grub-btrfs inotify-tools  <span class=\"c1\"># \u5176\u4e2dinotify-tools\u662f\u4f7f\u7528grub-btrfs\u6240\u5fc5\u987b\u7684<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u9700\u8981\u6ce8\u610f\uff0c\u4e0a\u9762\u6211\u4eec\u5b89\u88c5\u4e86<code>grub-btrfs<\/code>\u7528\u4e8e\u4eceGrub\u4e2d\u5f15\u5bfc\u8fdb\u5165\u5feb\u7167\uff0c\u4ece\u800c\u53ef\u4ee5\u5728\u7cfb\u7edf\u5d29\u6e83\u65e0\u6cd5\u767b\u5f55\u7684\u65f6\u5019\u4ece\u7279\u5b9a\u5feb\u7167\u72b6\u6001\u542f\u52a8\u7cfb\u7edf\u6765\u8fdb\u884c\u5b9e\u73b0\u7cfb\u7edf\u56de\u6eda\uff0c\u800c\u6839\u636eArchwiki\u4e2d\u7684\u5185\u5bb9\uff1a<\/p>\n<p>&ldquo;<em>\u5728\u9ed8\u8ba4\u72b6\u6001\u4e0b\uff0cSnapper\u521b\u5efa\u7684\u5feb\u7167\u662f\u53ea\u8bfb\u7684\uff0c\u800c\u5728\u542f\u52a8\u5230\u53ea\u8bfb\u5feb\u7167\u65f6\u4f1a\u6709\u4e00\u4e9b\u56f0\u96be\u3002\u8bb8\u591a\u670d\u52a1\uff0c\u4f8b\u5982\u663e\u793a\u7ba1\u7406\u5668\uff0c\u90fd\u9700\u8981\u4e00\u4e2a\u53ef\u5199\u7684\u00a0<code>\/var<\/code>\u00a0\u76ee\u5f55\u3002\u800c\u5728\u542f\u52a8\u5230\u53ea\u8bfb\u5feb\u7167\u65f6\uff0c\u8fd9\u4e9b\u670d\u52a1\u5c06\u65e0\u6cd5\u6b63\u5e38\u5de5\u4f5c\u3002\u4e3a\u4e86\u907f\u514d\u8fd9\u4e2a\u95ee\u9898\uff0c\u53ef\u4ee5\u4f7f\u5feb\u7167\u8bbe\u4e3a\u53ef\u5199\uff0c\u6216\u8005\u4f7f\u7528overlayfs\u542f\u52a8\u5230\u5feb\u7167\u4e2d\uff0c\u8fd9\u4e5f\u662f\u5f00\u53d1\u8005\u8ba4\u53ef\u7684\u65b9\u6cd5\u3002<\/em>&rdquo;<\/p>\n<p>\u56e0\u6b64\uff0c\u6211\u4eec\u8fd9\u91cc\u4f7f\u7528overlayfs\u542f\u52a8\u5feb\u7167\uff0c\u4e5f\u5c31\u662f\u9700\u8981\u6dfb\u52a0<code>grub-btrfs-overlayfs<\/code>\u5230<code>\/etc\/mkinitcpio.conf<\/code>\u6587\u4ef6\u4e2d<code>HOOKS<\/code>\u90e8\u5206\u7684\u672b\u5c3e\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">HOOKS<\/span><span class=\"o\">=(<\/span>base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck grub-btrfs-overlayfs<span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6dfb\u52a0\u540e\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u7528\u4e8e\u91cd\u65b0\u751f\u6210initramfs<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo mkinitcpio -P\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u5b89\u88c5<code>btrfs-assistant<\/code>\uff0c\u8fd9\u662f\u4e00\u4e2aBtrfs\u7684GUI\u5feb\u7167\u7ba1\u7406\u5de5\u5177<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S btrfs-assistant\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"snapper\u914d\u7f6e\u4ecb\u7ecd\">Snapper\u914d\u7f6e\u4ecb\u7ecd\n<\/h2><hr>\n<p>Snapper\u5141\u8bb8\u4e3a\u6bcf\u4e2aBtrfs\u5b50\u5377\u521b\u5efa\u5355\u72ec\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u4ece\u800c\u5b9e\u73b0\u5bf9\u4e0d\u540c\u5b50\u5377\u7684\u5feb\u7167\u7ba1\u7406\u9694\u79bb\uff0c\u4f46Snapper\u5b89\u88c5\u540e\u4e0d\u4f1a\u81ea\u52a8\u4e3aBtrfs\u5b50\u5377\u521b\u5efa\u914d\u7f6e\uff0c\u56e0\u6b64\u9700\u8981\u6211\u4eec\u81ea\u5df1\u624b\u52a8\u521b\u5efa<\/p>\n<p>\u9996\u5148\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u67e5\u770b\u4e00\u4e0b\u5f53\u524d\u5df2\u6709\u7684\u5b50\u5377\u914d\u7f6e\uff0c\u5982\u679c\u662f\u521a\u5b89\u88c5\u7684\u8bdd\u76ee\u524d\u5e94\u8be5\u4e0d\u4f1a\u663e\u793a\u4efb\u4f55\u914d\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo snapper list-configs\n<\/span><\/span><\/code><\/pre><\/div><p>\u7531\u4e8e\u6211\u7684Btrfs\u521b\u5efa\u4e86<code>\/<\/code>\u548c<code>\/home<\/code>\u4e24\u4e2a\u5b50\u5377\uff0c\u6240\u4ee5\u6211\u9700\u8981\u4e3a\u8fd9\u4e24\u4e2a\u5b50\u5377\u5206\u522b\u521b\u5efa\u914d\u7f6e\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo snapper -c root create-config \/  <span class=\"c1\"># \u4e3a\/\u5b50\u5377\u521b\u5efa\u914d\u7f6e\uff0c\u5e76\u901a\u8fc7-c\u53c2\u6570\u5236\u5b9a\u914d\u7f6e\u540d<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo snapper -c home create-config \/home  <span class=\"c1\"># # \u4e3a\/home\u5b50\u5377\u521b\u5efa\u914d\u7f6e\uff0c\u5e76\u901a\u8fc7-c\u53c2\u6570\u5236\u5b9a\u914d\u7f6e\u540d<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u6837\u6211\u4eec\u5c31\u521b\u5efa\u597d\u4e86<code>root<\/code>\u548c<code>home<\/code>\u4e24\u4e2a\u914d\u7f6e\uff0c\u521b\u5efa\u597d\u7684\u914d\u7f6e\u6587\u4ef6\u4f1a\u4fdd\u5b58\u5728<code>\/etc\/snapper\/configs\/<\/code>\u76ee\u5f55\u4e2d\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u8fd9\u4e9b\u6307\u4ee4\u67e5\u770b\u914d\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo snapper list-configs  <span class=\"c1\"># \u5217\u51fa\u5f53\u524d\u5df2\u6709\u7684\u5b50\u5377\u914d\u7f6e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ls \/etc\/snapper\/configs\/  <span class=\"c1\"># \u67e5\u770b\u914d\u7f6e\u6587\u4ef6\u6240\u5728\u4f4d\u7f6e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo cat \/etc\/snapper\/configs\/root  <span class=\"c1\"># \u68c0\u67e5root\u914d\u7f6e\u6587\u4ef6\u7684\u5185\u5bb9<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo cat \/etc\/snapper\/configs\/home  <span class=\"c1\"># \u68c0\u67e5home\u914d\u7f6e\u6587\u4ef6\u7684\u5185\u5bb9<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo snapper -c root get-config  <span class=\"c1\"># \u7528snapper\u547d\u4ee4\u67e5\u770broot\u914d\u7f6e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo snapper -c home get-config  <span class=\"c1\"># \u7528snapper\u547d\u4ee4\u67e5\u770bhome\u914d\u7f6e<\/span>\n<\/span><\/span><\/code><\/pre><\/div><blockquote>\n<p><strong>\u6ce8\uff1a-c\u53c2\u6570\u7528\u4e8e\u6307\u5b9a\u8981\u64cd\u4f5c\u7684\u5b50\u5377\u7684\u914d\u7f6e\u540d\uff0c\u5982\u679c\u8981\u4f7f\u7528snapper\u547d\u4ee4\u5bf9root\u914d\u7f6e\u8fdb\u884c\u64cd\u4f5c\uff0c\u53ef\u4ee5\u7701\u7565\u540e\u9762\u7684-c root\u53c2\u6570<\/strong><\/p><\/blockquote>\n<p>\u7531\u4e8e\u7528<code>snapper<\/code>\u547d\u4ee4\u7ba1\u7406\u5feb\u7167\u9ed8\u8ba4\u9700\u8981<code>root<\/code>\u6743\u9650\uff0c\u5982\u679c\u60f3\u8ba9\u6211\u4eec\u5f53\u524d\u7528\u6237\u4e0d\u7528<code>sudo<\/code>\u5c31\u80fd\u4f7f\u7528<code>snapper<\/code>\u547d\u4ee4\uff0c\u9700\u8981\u5c06\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684<code>ALLOW_USERS<\/code>\u53c2\u6570\u8bbe\u4e3a\u6211\u4eec\u7684\u5f53\u524d\u7528\u6237\u540d\uff0c\u8fd9\u91cc\u6211\u4eec\u540c\u65f6\u5c06<code>SYNC_ACL<\/code>\u53c2\u6570\u8bbe\u4e3a<code>yes<\/code>\u6765\u542f\u7528Snapper\u7684\u8bbf\u95ee\u63a7\u5236\u5217\u8868\uff08ACL\uff09\u540c\u6b65\u529f\u80fd\uff0c\u4ee5\u786e\u4fdd\u5feb\u7167\u76ee\u5f55\u7684\u6743\u9650\u4e0e\u914d\u7f6e\u6587\u4ef6\u4e2d\u6307\u5b9a\u7684\u7528\u6237\u6216\u7ec4\u6743\u9650\u4fdd\u6301\u4e00\u81f4\u3002\u53ef\u4ee5\u76f4\u63a5\u6253\u5f00<code>\/etc\/snapper\/configs\/root<\/code>\u548c<code>\/etc\/snapper\/configs\/home<\/code>\u8fd9\u4e24\u4e2a\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u4fee\u6539\uff0c\u4e5f\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u4fee\u6539<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo snapper -c root set-config <span class=\"nv\">ALLOW_USERS<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;<\/span><span class=\"nv\">$USER<\/span><span class=\"s2\">&#34;<\/span> <span class=\"nv\">SYNC_ACL<\/span><span class=\"o\">=<\/span>yes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo snapper -c home set-config <span class=\"nv\">ALLOW_USERS<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;<\/span><span class=\"nv\">$USER<\/span><span class=\"s2\">&#34;<\/span> <span class=\"nv\">SYNC_ACL<\/span><span class=\"o\">=<\/span>yes\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6211\u4eec\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u68c0\u67e5\u4fee\u6539\u7ed3\u679c\uff08\u53ef\u4ee5\u53d1\u73b0\u6211\u4eec\u4e0d\u7528<code>sudo<\/code>\u5c31\u53ef\u4ee5\u6267\u884c\u5566\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">snapper -c root get-config\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c home get-config\n<\/span><\/span><\/code><\/pre><\/div><p>\u5bf9\u5176\u4ed6\u914d\u7f6e\u5185\u5bb9\u6211\u8fd8\u9002\u5f53\u8fdb\u884c\u4e86\u4e00\u4e9b\u8c03\u6574\uff0c\u5177\u4f53\u5982\u4e0b\uff0c\u4ec5\u4f9b\u53c2\u8003<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"> ~ snapper get-config\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Key                      \u2502 Value\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ALLOW_GROUPS             \u2502\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ALLOW_USERS              \u2502 cheerroad\n<\/span><\/span><span class=\"line\"><span class=\"cl\">BACKGROUND_COMPARISON    \u2502 yes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">EMPTY_PRE_POST_CLEANUP   \u2502 yes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">EMPTY_PRE_POST_MIN_AGE   \u2502 <span class=\"m\">3600<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">FREE_LIMIT               \u2502 0.2\n<\/span><\/span><span class=\"line\"><span class=\"cl\">FSTYPE                   \u2502 btrfs\n<\/span><\/span><span class=\"line\"><span class=\"cl\">NUMBER_CLEANUP           \u2502 yes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">NUMBER_LIMIT             \u2502 <span class=\"m\">50<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">NUMBER_LIMIT_IMPORTANT   \u2502 <span class=\"m\">10<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">NUMBER_MIN_AGE           \u2502 <span class=\"m\">3600<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">QGROUP                   \u2502\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SPACE_LIMIT              \u2502 0.5\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SUBVOLUME                \u2502 \/\n<\/span><\/span><span class=\"line\"><span class=\"cl\">SYNC_ACL                 \u2502 yes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">TIMELINE_CLEANUP         \u2502 yes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">TIMELINE_CREATE          \u2502 yes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">TIMELINE_LIMIT_DAILY     \u2502 <span class=\"m\">7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">TIMELINE_LIMIT_HOURLY    \u2502 <span class=\"m\">5<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">TIMELINE_LIMIT_MONTHLY   \u2502 <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">TIMELINE_LIMIT_QUARTERLY \u2502 <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">TIMELINE_LIMIT_WEEKLY    \u2502 <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">TIMELINE_LIMIT_YEARLY    \u2502 <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">TIMELINE_MIN_AGE         \u2502 <span class=\"m\">1800<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6700\u540e\u542f\u52a8\u4e0b\u9762\u4e09\u9879\u5fc5\u8981\u7684\u670d\u52a1\uff0c\u8fd9\u6837\u5fc5\u8981\u7684\u914d\u7f6e\u5c31\u5b8c\u6210\u5566<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo systemctl <span class=\"nb\">enable<\/span> --now grub-btrfsd.service  <span class=\"c1\"># \u81ea\u52a8\u66f4\u65b0Grub\u83dc\u5355\u4ee5\u5305\u542b\u6700\u65b0\u7684Btrfs\u5feb\u7167<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo systemctl <span class=\"nb\">enable<\/span> --now snapper-timeline.timer  <span class=\"c1\"># \u542f\u7528Snapper\u65f6\u95f4\u7ebf\u5feb\u7167\u5b9a\u65f6\u5668\uff0c\u5b9a\u671f\u4e3a\u914d\u7f6e\u7684\u5b50\u5377\u521b\u5efa\u5feb\u7167<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo systemctl <span class=\"nb\">enable<\/span> --now snapper-cleanup.timer  <span class=\"c1\"># \u542f\u7528Snapper\u6e05\u7406\u5b9a\u65f6\u5668\uff0c\u5b9a\u671f\u5220\u9664\u8fc7\u671f\u7684\u5feb\u7167\u4ee5\u91ca\u653e\u5b58\u50a8\u7a7a\u95f4<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"snapper\u7684\u4f7f\u7528\u8bf4\u660e\">Snapper\u7684\u4f7f\u7528\u8bf4\u660e\n<\/h2><hr>\n<p>\u4e0b\u9762\u9996\u5148\u7ed3\u5408\u4f7f\u7528\u573a\u666f\u548c\u4f8b\u5b50\u4ecb\u7ecdSnapper\u7684\u4f7f\u7528\uff0c\u6700\u540e\u4f1a\u5bf9\u547d\u4ee4\u7684\u4f7f\u7528\u65b9\u6cd5\u8fdb\u884c\u603b\u7ed3<\/p>\n<h3 id=\"\u64a4\u9500\u5305\u7ba1\u7406\u5668pacman\u7684\u5b89\u88c5\u64cd\u4f5c\">\u64a4\u9500\u5305\u7ba1\u7406\u5668\uff08pacman\uff09\u7684\u5b89\u88c5\u64cd\u4f5c\n<\/h3><hr>\n<p>\u6bcf\u6b21\u6267\u884c<code>pacman<\/code>\u5b89\u88c5\u8f6f\u4ef6\u6216\u66f4\u65b0\u7cfb\u7edf\u7b49\u64cd\u4f5c\u7684\u65f6\u5019\u4f1a\u5728<code>\/<\/code>\u5b50\u5377\u81ea\u52a8\u751f\u6210<code>pre<\/code>\u548c<code>post<\/code>\u5feb\u7167\uff0c\u5206\u522b\u8868\u793a\u5b89\u88c5\u524d\uff08<code>pre<\/code>\uff09\u548c\u5b89\u88c5\u540e\uff08<code>post<\/code>\uff09<\/p>\n<p>\u53ef\u4ee5\u6267\u884c<code>snapper ls<\/code>\u6216<code>snapper -c root ls<\/code>\u67e5\u770b\u5feb\u7167<\/p>\n<p>\u7136\u540e\u8bb0\u4e0b\u5feb\u7167\u7684\u7f16\u53f7\uff0c\u5047\u8bbe1\u53f7\u5feb\u7167\u8868\u793a\u6267\u884c<code>pacman<\/code>\u5b89\u88c5\u64cd\u4f5c\u524d\uff0c2\u53f7\u5feb\u7167\u8868\u793a\u6267\u884c<code>pacman<\/code>\u5b89\u88c5\u64cd\u4f5c\u540e\uff0c\u53ef\u4ee5\u7528\u4e0b\u9762\u547d\u4ee4\u6bd4\u8f83\u5feb\u7167\u4e4b\u95f4\u7684\u5dee\u5f02<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">snapper -c root status 1..2  <span class=\"c1\"># status\u7528\u4e8e\u67e5\u770b\u90a3\u4e9b\u6587\u4ef6\u53d1\u751f\u4e86\u6539\u53d8\uff0c1..2\u8868\u793a\u4ece1\u53f7\u5feb\u7167\u52302\u53f7\u5feb\u7167<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c root diff 1..2  <span class=\"c1\"># diff\u53ef\u4ee5\u6bd4\u8f83\u5177\u4f53\u5185\u5bb9\u7684\u53d8\u5316<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u6211\u4eec\u64a4\u95001\u53f7\u5feb\u7167\u52302\u53f7\u5feb\u7167\u7684\u66f4\u6539\uff08\u64a4\u9500\u5b89\u88c5\u64cd\u4f5c\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo snapper -c root undochange 1..2  <span class=\"c1\"># \u6ce8\u610f\uff0c\u6267\u884cundochange\u5fc5\u987b\u8981\u7528sudo\u63d0\u6743<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ea\u8981\u5feb\u7167\u5b58\u5728\uff0c\u5c31\u8fd8\u53ef\u4ee5\u518d\u6062\u590d\u56de\u53bb\uff08\u6062\u590d\u5b89\u88c5\u64cd\u4f5c\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo snapper -c root undochange 2..1\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u64a4\u9500\u5bf9\u6587\u4ef6\u7684\u4fee\u6539\">\u64a4\u9500\u5bf9\u6587\u4ef6\u7684\u4fee\u6539\n<\/h3><hr>\n<p>\u5047\u8bbe\u6211\u4eec\u5bf9<code>\/etc\/example.conf<\/code>\u6587\u4ef6\u4e86\u4fee\u6539\uff0c\u6211\u4eec\u53ea\u9700\u8981\u627e\u4e00\u4e2a\u4fee\u6539\u6587\u4ef6\u524d\u7684\u4efb\u610f\u5feb\u7167\u6bd4\u59822\u53f7\u5feb\u7167\u7528\u6765\u64a4\u9500\u5bf9\u6587\u4ef6\u7684\u4fee\u6539<\/p>\n<p>\u53ef\u4ee5\u5148\u68c0\u67e5\u4e00\u4e0b2\u53f7\u5feb\u7167\u4e2d\u7684\u6587\u4ef6\u548c\u73b0\u5728\u7684\u6587\u4ef6\u7684\u5dee\u5f02\uff0c\u786e\u8ba4\u662f\u6211\u4eec\u60f3\u6062\u590d\u7684\u72b6\u6001\uff08\u8fd9\u91cc\u53ea\u80fd\u7528<code>diff<\/code>\u547d\u4ee4\u4e0d\u80fd\u7528<code>status<\/code>\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">snapper -c root diff 2..0 \/etc\/example.conf  <span class=\"c1\"># 0\u53f7\u5feb\u7167\u4ee3\u8868\u7cfb\u7edf\u6b64\u65f6\u6b64\u523b\u7684\u72b6\u6001<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u786e\u8ba4\u540e\u5c31\u53ef\u4ee5\u540c\u6837\u7528<code>undochange<\/code>\u6765\u5c06<code>\/etc\/example.conf<\/code>\u6587\u4ef6\u4ece\u5f53\u524d\u72b6\u6001\u6062\u590d\u81f32\u53f7\u5feb\u7167\uff08\u4e5f\u5c31\u662f\u4fee\u6539\u524d\uff09\u7684\u72b6\u6001<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo snapper -c root undochange 2..0 \/etc\/example.conf\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u624b\u52a8\u521b\u5efapre\u548cpost\u5feb\u7167\u5e76\u64a4\u9500\u5feb\u7167\u95f4\u7684\u4fee\u6539\">\u624b\u52a8\u521b\u5efapre\u548cpost\u5feb\u7167\u5e76\u64a4\u9500\u5feb\u7167\u95f4\u7684\u4fee\u6539\n<\/h3><hr>\n<p>\u5982\u679c\u6211\u4eec\u73b0\u5728\u60f3\u5bf9\u7535\u8111\u505a\u4e00\u7cfb\u5217\u64cd\u4f5c\u53ef\u80fd\u5bfc\u81f4\u6587\u4ef6\u7cfb\u7edf\u5927\u89c4\u6a21\u4fee\u6539\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\u4fee\u6539\u524d\u540e\u5206\u522b\u624b\u52a8\u521b\u5efa<code>pre<\/code>\u548c<code>post<\/code>\u5feb\u7167\uff0c\u8fd9\u6837\u5373\u4f7f\u641e\u5d29\u4e86\u4e5f\u53ef\u4ee5\u6062\u590d\u56de\u53bb<\/p>\n<p>\u9996\u5148\u6211\u4eec\u5bf9<code>root<\/code>\u5b50\u5377\u548c<code>home<\/code>\u5b50\u5377\u5206\u522b\u521b\u5efa<code>pre<\/code>\u5feb\u7167<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">snapper -c root create -t pre -c number -d -p &lt;description&gt;  <span class=\"c1\"># create\u547d\u4ee4\u540e\u9762\u7684-c\u53c2\u6570\u7528\u4e8e\u6307\u5b9a\u5feb\u7167\u7684\u6e05\u7406\u7b97\u6cd5\uff0c\u5982\u679c\u4e0d\u52a0\u7684\u8bdd\uff0c\u521b\u5efa\u7684\u5feb\u7167\u5c06\u6c38\u4e45\u5b58\u5728\uff0c\u4e0d\u4f1a\u88abcleanup\u6e05\u7406\uff1b-p\u53c2\u6570\u53ef\u4ee5\u7528\u4e8e\u8f93\u51fa\u521b\u5efa\u5feb\u7167\u7684\u7f16\u53f7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c home create -t pre -c number -d -p &lt;description&gt;\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6211\u4eec\u53ef\u4ee5\u5bf9\u7535\u8111\u505a\u4e00\u7cfb\u5217\u64cd\u4f5c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Do things\n<\/span><\/span><span class=\"line\"><span class=\"cl\">...\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u521b\u5efa<code>post<\/code>\u5feb\u7167\uff0c\u6ce8\u610f\u5728\u521b\u5efa\u7684\u65f6\u5019\u9700\u8981\u7528<code>--pre-number<\/code>\u53c2\u6570\u6307\u5b9a<code>pre<\/code>\u5feb\u7167\u7684\u7f16\u53f7<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">snapper -c root create -t post --pre-number <span class=\"m\">3<\/span> -c number -d &lt;description&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c home create -t post --pre-number <span class=\"m\">1<\/span> -c number -d &lt;description&gt;\n<\/span><\/span><\/code><\/pre><\/div><p>\u5982\u679c\u6211\u4eec\u540e\u9762\u60f3\u64a4\u9500\u521a\u521a\u7684\u4e00\u7cfb\u5217\u64cd\u4f5c\uff0c\u53ea\u9700\u8981\u4e0e\u524d\u9762\u7c7b\u4f3c\u6267\u884c<code>undochange<\/code>\u5373\u53ef<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo snapper -c root undochange 3..8\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo snapper -c home undochange 1..2\n<\/span><\/span><\/code><\/pre><\/div><p>\u8981\u60f3\u5220\u9664\u5feb\u7167\u7684\u8bdd\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5220\u9664<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">snapper -c root delete 3-8\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c home delete 1-2\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u521b\u5efa\u6807\u8bb0\u4e3aimportant\u7684\u5feb\u7167\">\u521b\u5efa\u6807\u8bb0\u4e3aimportant\u7684\u5feb\u7167\n<\/h3><hr>\n<p><code>important<\/code>\u53ea\u662f\u4e00\u4e2a\u5728\u521b\u5efa\u5feb\u7167\u7684\u65f6\u5019\u6307\u5b9a\u7684\u6807\u8bb0\uff0c\u5728\u5bf9\u5b50\u5377\u521b\u5efa\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u901a\u5e38\u4f1a\u6709\u4e00\u4e2a<code>NUMBER_LIMIT_IMPORTANT<\/code>\u53c2\u6570\u7528\u6765\u63a7\u5236<code>cleanup<\/code>\u7b97\u6cd5\u8981\u4fdd\u7559\u7684\u5e26\u6709<code>important<\/code>\u6807\u8bb0\u7684<code>number<\/code>\u7c7b\u578b\u5feb\u7167\u7684\u6570\u91cf<\/p>\n<p>\u8fd9\u4e2a\u6807\u8bb0\u53ea\u9700\u8981\u5728\u521b\u5efa\u5feb\u7167\u7684\u65f6\u5019\u5728<code>Userdata<\/code>\uff08<code>-u<\/code>\u53c2\u6570\uff09\u4e2d\u6307\u5b9a<code>important=yes<\/code>\u5c31\u597d\uff0c\u4f8b\u5982\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">snapper -c root create -t single -c number -u <span class=\"s2\">&#34;important=yes&#34;<\/span> -d <span class=\"s2\">&#34;This is an important snapshot&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u6267\u884c\u547d\u4ee4\u524d\u540e\u81ea\u52a8\u521b\u5efapre\u548cpost\u5feb\u7167\">\u6267\u884c\u547d\u4ee4\u524d\u540e\u81ea\u52a8\u521b\u5efapre\u548cpost\u5feb\u7167\n<\/h3><hr>\n<p>\u6bd4\u5982\u6211\u4eec\u8981\u6267\u884c\u67d0\u4e2a\u547d\u4ee4\u53ef\u80fd\u5bfc\u81f4\u4e00\u4e9b\u53d8\u5316\uff0c\u5c31\u53ef\u4ee5\u8ba9Snapper\u5728\u6267\u884c\u524d\u540e\u81ea\u52a8\u521b\u5efa\u5feb\u7167\uff0c\u7f3a\u70b9\u662f\u53ea\u5141\u8bb8\u6307\u5b9a\u4e00\u4e2a\u5b50\u5377\u7684\u914d\u7f6e\uff0c\u5177\u4f53\u64cd\u4f5c\u5982\u4e0b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">snapper -c root create --command &lt;cmd&gt;\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u4ecegrub\u5f15\u5bfc\u754c\u9762\u56de\u6eda\u5230\u4e4b\u524d\u7684\u5feb\u7167\">\u4eceGrub\u5f15\u5bfc\u754c\u9762\u56de\u6eda\u5230\u4e4b\u524d\u7684\u5feb\u7167\n<\/h3><hr>\n<p>\u5982\u679c\u6211\u4eec\u6709\u4e00\u5929\u628a\u7cfb\u7edf\u5f7b\u5e95\u641e\u5d29\u4e86\uff0c\u65e0\u6cd5\u6b63\u5e38\u5f15\u5bfc\u8fdb\u5165\u7cfb\u7edf\uff0c\u8fd9\u65f6\u5019\u6211\u4eec\u53ef\u4ee5\u5148\u5728Grub\u754c\u9762\u9009\u62e9Archlinux Snapshots\u5f15\u5bfc\u767b\u5f55\u8fdb\u67d0\u4e2a\u5feb\u7167<\/p>\n<p>\u7136\u540e\u53ef\u4ee5\u7528\u4e24\u79cd\u65b9\u6cd5\u8fdb\u884c\u56de\u6eda<\/p>\n<p><strong>\u7b2c\u4e00\u79cd\u65b9\u6cd5<\/strong>\u662f\u901a\u8fc7GUI\u7ba1\u7406\u7a0b\u5e8f\uff0c\u8fd8\u8bb0\u5f97\u6211\u4eec\u6700\u524d\u9762\u6709\u5b89\u88c5\u4e86\u4e00\u4e2a\u53eb<code>btrfs-assistant<\/code>\u7684\u5feb\u7167\u7ba1\u7406\u5de5\u5177\u5417\uff1f\u6211\u4eec\u53ef\u4ee5\u76f4\u63a5\u6253\u5f00\uff0c\u4ece\u6700\u4e0a\u65b9\u83dc\u5355\u680f\u4f9d\u6b21\u70b9\u51fb\u8fdb\u5165<code>Snapper<\/code> - <code>Browse\/Restore<\/code>\uff0c\u9009\u62e9\u60f3\u8981\u56de\u6eda\u7684\u5feb\u7167\uff0c\u7136\u540e\u70b9\u51fb\u53f3\u4e0a\u65b9\u7684<code>Restore<\/code>\u5c31\u5b8c\u6210\u5566\uff0c\u63a5\u4e0b\u6765\u5173\u95ed\u7a97\u53e3\u76f4\u63a5<code>reboot<\/code>\u5c31\u53ef\u4ee5\u987a\u5229\u767b\u5f55\u4e86<\/p>\n<p><strong>\u7b2c\u4e8c\u79cd\u65b9\u6cd5<\/strong>\u662f\u767b\u5f55\u540e\u76f4\u63a5\u5728\u7ec8\u7aef\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u8fdb\u884cRollback<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo snapper -c root rollback &lt;snapshot_number&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo snapper -c home rollback &lt;snapshot_number&gt;\n<\/span><\/span><\/code><\/pre><\/div><blockquote>\n<p><strong>\u6ce8\uff1a\u5982\u679c\u4f7f\u7528\u4e0a\u9762\u4e24\u79cd\u65b9\u6cd5\u56de\u6eda\u540e\u53d1\u73b0\u5728\u767b\u5f55\u7684\u65f6\u5019\u6ca1\u6709\u4ece\u5feb\u7167\u5f15\u5bfc\u767b\u5f55\u7684\u9009\u9879\u7684\u8bdd\uff0c\u53ef\u4ee5\u5728\u767b\u5f55\u540e\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u4ee5\u786e\u4fddGrub\u754c\u9762\u663e\u793a\u5feb\u7167\u9009\u9879<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo grub-mkconfig -o \/boot\/grub\/grub.cfg\n<\/span><\/span><\/code><\/pre><\/div><\/blockquote>\n<h3 id=\"\u603b\u7ed3\">\u603b\u7ed3\n<\/h3><hr>\n<p>\u4e0b\u9762\u5bf9Snapper\u7684\u5e38\u7528\u64cd\u4f5c\u6307\u4ee4\u8fdb\u884c\u4e86\u603b\u7ed3\u548c\u8865\u5145<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\"># 1. \u5feb\u7167\u67e5\u770b\u4e0e\u4fe1\u606f\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u5217\u51fa\u6307\u5b9a\u914d\u7f6e\u7684\u6240\u6709\u5feb\u7167\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; list\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u7b80\u5199\u5f62\u5f0f\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; ls\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># 2. \u5feb\u7167\u6bd4\u8f83\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u67e5\u770b\u4e24\u4e2a\u5feb\u7167\u4e4b\u95f4\u7684\u6587\u4ef6\u72b6\u6001\u53d8\u5316\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; status &lt;snapshot1&gt;..&lt;snapshot2&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u67e5\u770b\u4e24\u4e2a\u5feb\u7167\u95f4\u6587\u4ef6\u7684\u8be6\u7ec6\u5dee\u5f02\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; diff &lt;snapshot1&gt;..&lt;snapshot2&gt; [\u6587\u4ef6\u8def\u5f84]\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># 3. \u5feb\u7167\u521b\u5efa\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u521b\u5efa\u5feb\u7167\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; create -t &lt;type&gt; -c &lt;cleanup&gt; -d &lt;description&gt; -p\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u53c2\u6570\u8bf4\u660e\uff1a\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># -t &lt;type&gt;\uff1a\u5feb\u7167\u7c7b\u578b\uff08single\/pre\/post\uff09\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># -c &lt;cleanup&gt;\uff1a\u6e05\u7406\u7b97\u6cd5\uff08number\/timeline\uff09\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># -d &lt;description&gt;\uff1a\u5feb\u7167\u63cf\u8ff0\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># -p\uff1a\u6253\u5370\u521b\u5efa\u7684\u5feb\u7167\u7f16\u53f7\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u521b\u5efapre\u5feb\u7167\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; create -t pre -c &lt;cleanup&gt; -d &lt;description&gt; -p\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u521b\u5efapost\u5feb\u7167\uff08\u9700\u5173\u8054 pre \u5feb\u7167\uff09\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; create -t post --pre-number &lt;pre_snapshot&gt; -c &lt;cleanup&gt; -d &lt;description&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u521b\u5efa\u5e26\u6709\u7528\u6237\u6570\u636e(UserData)\u7684\u5feb\u7167\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; create -t &lt;type&gt; -c &lt;cleanup&gt; -u &#34;key=value&#34; -d &lt;description&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u547d\u4ee4\u6267\u884c\u524d\u540e\u81ea\u52a8\u521b\u5efapre\u548cpost\u5feb\u7167\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; create --command &lt;cmd&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># 4. \u5feb\u7167\u64a4\u9500\u4e0e\u56de\u6eda\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u64a4\u9500\u4e24\u4e2a\u5feb\u7167\u95f4\u7684\u66f4\u6539\uff0c\u6587\u4ef6\u8def\u5f84\u53ef\u9009\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo snapper -c &lt;config&gt; undochange &lt;snapshot1&gt;..&lt;snapshot2&gt; [\u6587\u4ef6\u8def\u5f84]\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u56de\u6eda\u5230\u6307\u5b9a\u5feb\u7167\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo snapper -c &lt;config&gt; rollback &lt;snapshot_number&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># 5. \u5feb\u7167\u5220\u9664\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u5220\u9664\u6307\u5b9a\u5feb\u7167\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; delete &lt;snapshot_number&gt;  # \u5355\u4e2a\u5220\u9664\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; delete &lt;start_number&gt;-&lt;end_number&gt;  # \u8303\u56f4\u5220\u9664\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># 6. \u5feb\u7167cleanup\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u6e05\u7406\u5feb\u7167\uff08\u6839\u636e\u6e05\u7406\u7b97\u6cd5\u5220\u9664\u4e0d\u518d\u9700\u8981\u7684\u5feb\u7167\uff09\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; cleanup &lt;cleanup&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u53c2\u6570\u8bf4\u660e\uff1a\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># &lt;cleanup&gt;\uff1anumber\uff08\u6309\u7f16\u53f7\uff09\u3001timeline\uff08\u6309\u65f6\u95f4\uff09\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># 7. \u914d\u7f6e\u7ba1\u7406\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u67e5\u770b snapper \u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">snapper -c &lt;config&gt; get-config\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u4fee\u6539 snapper \u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo snapper -c &lt;config&gt; set-config &lt;key&gt;=&lt;value&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u521b\u5efa\u65b0\u7684 snapper \u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo snapper --config &lt;new_config&gt; create-config &lt;subvolume&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># 8. \u5168\u5c40\u9009\u9879\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># \u5e38\u7528\u5168\u5c40\u9009\u9879\uff08\u9002\u7528\u4e8e\u5927\u591a\u6570\u547d\u4ee4\uff09\uff1a\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># --verbose (-v)\uff1a\u663e\u793a\u8be6\u7ec6\u4fe1\u606f\n<\/span><\/span><span class=\"line\"><span class=\"cl\"># --quiet (-q)\uff1a\u51cf\u5c11\u8f93\u51fa\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u8865\u5145\">\u8865\u5145\n<\/h2><hr>\n<h3 id=\"\u5173\u4e8e\u4e0d\u540c\u5b50\u5377\u5feb\u7167\u7684\u5b58\u653e\u4f4d\u7f6e\u53ca\u5feb\u7167\u5360\u7528\">\u5173\u4e8e\u4e0d\u540c\u5b50\u5377\u5feb\u7167\u7684\u5b58\u653e\u4f4d\u7f6e\u53ca\u5feb\u7167\u5360\u7528\n<\/h3><hr>\n<p>\u7531\u4e8e\u4e0d\u540c\u5b50\u5377\u7684\u5feb\u7167\u662f\u72ec\u7acb\u7684\uff0c\u901a\u5e38\u5b58\u653e\u5728\u5b50\u5377\u76ee\u5f55\u4e0b\u7684<code>.snapshots<\/code>\u76ee\u5f55\u4e0b\uff0c\u4f8b\u5982\u6839\u76ee\u5f55\u5b50\u5377\uff08<code>\/<\/code>\uff09\u5b50\u5377\u7684\u5feb\u7167\u5b58\u653e\u5728<code>\/.snapshots<\/code>\uff0c\u5bb6\u76ee\u5f55\uff08<code>\/home<\/code>\uff09\u5b50\u5377\u7684\u5feb\u7167\u5b58\u653e\u5728<code>\/home\/.snapshots<\/code><\/p>\n<p>\u5982\u679c\u6211\u4eec\u60f3\u67e5\u770b\u4e00\u4e0b\u5feb\u7167\u5360\u7528\u4e86\u591a\u5c11\u7a7a\u95f4\uff0c\u7528<code>du<\/code>\u547d\u4ee4\u662f\u65e0\u6cd5\u663e\u793a\u5b9e\u9645\u5360\u7528\u7684\uff08\u5982\u679c\u6267\u884c<code>sudo du -sch \/.snapshots\/*<\/code>\u4f1a\u663e\u793a\u975e\u5e38\u5927\u7684\u7a7a\u95f4\uff0c\u5e76\u975e\u5b9e\u9645\u5360\u7528\uff09<\/p>\n<p>\u800cBtrfs\u63d0\u4f9b\u4e86\u4e00\u4e2a\u4e13\u95e8\u7684\u5de5\u5177<code>btrfs filesystem du<\/code>\u53ef\u4ee5\u533a\u5206\u6587\u4ef6\u7684\u603b\u5927\u5c0f\uff08\u903b\u8f91\u5927\u5c0f\uff09\u548c\u72ec\u5360\u5927\u5c0f\uff08\u5b9e\u9645\u5360\u7528\u7a7a\u95f4\uff09\uff0c\u56e0\u6b64\u6211\u4eec\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u67e5\u770b\u5feb\u7167\u7684\u5b9e\u9645\u5360\u7528<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo btrfs filesystem du -s \/.snapshots\/* \n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"rollback\u548cundochange\u7684\u533a\u522b\">Rollback\u548cUndochange\u7684\u533a\u522b\n<\/h3><hr>\n<ul>\n<li><strong>undochange<\/strong><br>\n<code>undochange<\/code>\u547d\u4ee4\u7528\u4e8e\u64a4\u9500\u4e24\u4e2a\u5feb\u7167\u4e4b\u95f4\u7684\u7279\u5b9a\u66f4\u6539\uff0c\u800c\u4e0d\u4f1a\u5f71\u54cd\u6587\u4ef6\u7cfb\u7edf\u7684\u6574\u4f53\u72b6\u6001\u6216\u540e\u7eed\u66f4\u6539\u3002\u4f8b\u5982\uff0c\u5982\u679c\u4f60\u6267\u884c<code>undochange 1..2<\/code>\uff0cSnapper\u4f1a\u64a4\u9500\u4ece\u5feb\u71671\u5230\u5feb\u71672\u4e4b\u95f4\u7684\u6240\u6709\u53d8\u5316\uff0c\u4f46\u5feb\u71672\u751f\u6210\u4e4b\u540e\u6240\u505a\u7684\u4efb\u4f55\u66f4\u6539\u90fd\u4f1a\u4fdd\u7559\u3002\u8fd9\u610f\u5473\u7740\uff0c\u6587\u4ef6\u7cfb\u7edf\u4f1a\u88ab\u8c03\u6574\u5230\u7c7b\u4f3c\u4e8e\u5feb\u71671\u7684\u72b6\u6001\uff0c\u4f46\u4ecd\u7136\u4fdd\u7559\u5feb\u71672\u4e4b\u540e\u7684\u4fee\u6539\u3002<\/li>\n<li><strong>rollback<\/strong><br>\n\u4e0e<code>undochange<\/code>\u4e0d\u540c\uff0c<code>rollback<\/code>\u662f\u4e00\u79cd\u975e\u5e38\u5f7b\u5e95\u7684\u64cd\u4f5c\uff0c\u5b83\u4f1a\u5c06\u6587\u4ef6\u7cfb\u7edf\u5b8c\u5168\u6062\u590d\u5230\u67d0\u4e2a\u5feb\u7167\u7684\u72b6\u6001\u3002\u4f8b\u5982\uff0c\u6267\u884c<code>rollback 1<\/code>\u4f1a\u8ba9\u6587\u4ef6\u7cfb\u7edf\u56de\u5230\u5feb\u71671\u7684\u72b6\u6001\uff0c\u5e76\u4e14\u5feb\u71671\u4e4b\u540e\u7684\u6240\u6709\u66f4\u6539\uff08\u5305\u62ec\u540e\u7eed\u7684\u5feb\u7167\uff0c\u5982\u5feb\u71672\u3001\u5feb\u71673\u7b49\uff09\u90fd\u5c06\u88ab\u4e22\u5f03\u3002\u56de\u6eda\u540e\uff0cSnapper \u4f1a\u521b\u5efa\u4e00\u4e2a\u65b0\u5feb\u7167\u6765\u8bb0\u5f55\u56de\u6eda\u524d\u7684\u72b6\u6001\uff0c\u4ee5\u786e\u4fdd\u64cd\u4f5c\u53ef\u8ffd\u6eaf\u3002<\/li>\n<\/ul>\n<hr>\n<p>\u7b80\u5355\u800c\u8a00\uff0c<code>undochange<\/code>\u4ec5\u4ec5\u662f\u64a4\u9500\u4e24\u4e2a\u5feb\u7167\u4e4b\u95f4\u7684\u64cd\u4f5c\uff0c\u800c<code>rollback<\/code>\u662f\u5b8c\u5168\u6062\u590d\u5230\u67d0\u4e2a\u5feb\u7167<\/p>\n"},{"title":"\u5e38\u7528 Linux Distros \u5305\u7ba1\u7406\u5668","link":"https:\/\/been.ee\/p\/0-0-0-48\/","pubDate":"Wed, 09 Apr 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-48\/","description":"<h2 id=\"archlinux\">Archlinux\n<\/h2><hr>\n<h3 id=\"pacman\">Pacman\n<\/h3><hr>\n<blockquote>\n<p><strong>\u4e3b\u53c2\u6570\u4ecb\u7ecd\uff1a<\/strong><\/p>\n<ul>\n<li>\n<p><strong>-S (Sync)<\/strong><br>\n\u8868\u793a\u4e0e\u8fdc\u7a0b\u8f6f\u4ef6\u4ed3\u5e93\u540c\u6b65\u76f8\u5173\u7684\u64cd\u4f5c\uff0c\u7528\u4e8e\u5b89\u88c5\u3001\u641c\u7d22\u6216\u5237\u65b0\u8f6f\u4ef6\u5305\u6570\u636e\u5e93<\/p>\n<\/li>\n<li>\n<p><strong>-Q (Query)<\/strong><br>\n\u8868\u793a\u67e5\u8be2\u672c\u5730\u5df2\u5b89\u88c5\u8f6f\u4ef6\u5305\u6570\u636e\u5e93\u7684\u64cd\u4f5c<\/p>\n<\/li>\n<li>\n<p><strong>-R (Remove)<\/strong><br>\n\u8868\u793a\u5220\u9664\u5df2\u5b89\u88c5\u8f6f\u4ef6\u5305\u7684\u64cd\u4f5c<\/p>\n<\/li>\n<li>\n<p><strong>-U (Upgrade)<\/strong><br>\n\u8868\u793a\u901a\u8fc7\u672c\u5730\u6587\u4ef6\u5b89\u88c5\u6216\u5347\u7ea7\u8f6f\u4ef6\u5305\u7684\u64cd\u4f5c<\/p>\n<\/li>\n<li>\n<p><strong>-F (Files)<\/strong><br>\n\u8868\u793a\u67e5\u8be2\u8f6f\u4ef6\u5305\u6587\u4ef6\u6570\u636e\u5e93\u7684\u64cd\u4f5c\uff0c\u901a\u5e38\u7528\u4e8e\u67e5\u627e\u6587\u4ef6\u6240\u5c5e\u7684\u5305<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p><strong>\u5177\u4f53\u4f7f\u7528\u8bf4\u660e\uff1a<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S &lt;package_name&gt;  <span class=\"c1\"># \u5b89\u88c5\u6307\u5b9a\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Ss &lt;package_name&gt;  <span class=\"c1\"># \u641c\u7d22\u540c\u6b65\u6570\u636e\u5e93\u4e2d\u4e0e &lt;package_name&gt; \u76f8\u5173\u7684\u8f6f\u4ef6\u5305\u53ca\u5176\u63cf\u8ff0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Syu  <span class=\"c1\"># \u5237\u65b0\u8f6f\u4ef6\u5305\u6570\u636e\u5e93\u5e76\u5347\u7ea7\u7cfb\u7edf\u6240\u6709\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Syyu  <span class=\"c1\"># \u5f3a\u5236\u5237\u65b0\u6570\u636e\u5e93\uff08\u5373\u4f7f\u770b\u4f3c\u6700\u65b0\uff09\uff0c\u7136\u540e\u5347\u7ea7\u7cfb\u7edf\u6240\u6709\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Sc  <span class=\"c1\"># \u6e05\u7406\u7f13\u5b58\uff0c\u4ec5\u4fdd\u7559\u5df2\u5b89\u88c5\u5305\u7684\u6700\u65b0\u7248\u672c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Scc  <span class=\"c1\"># \u5f7b\u5e95\u6e05\u7406\u7f13\u5b58\uff0c\u5220\u9664\u6240\u6709\u4e0b\u8f7d\u7684\u5305\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Si &lt;package_name&gt;  <span class=\"c1\"># \u67e5\u8be2\u8fdc\u7a0b\u5305\u7684\u8be6\u7ec6\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -R &lt;package_name&gt;  <span class=\"c1\"># \u5220\u9664\u6307\u5b9a\u8f6f\u4ef6\u5305\uff0c\u4f46\u4e0d\u5220\u9664\u5176\u4f9d\u8d56<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Rns &lt;package_name&gt;  <span class=\"c1\"># \u5220\u9664\u6307\u5b9a\u8f6f\u4ef6\u5305\u53ca\u5176\u672a\u88ab\u4f7f\u7528\u7684\u4f9d\u8d56\u548c\u914d\u7f6e\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Ql &lt;package_name&gt;  <span class=\"c1\"># \u5217\u51fa\u5305\u5b89\u88c5\u7684\u6240\u6709\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Qi &lt;package_name&gt;  <span class=\"c1\"># \u67e5\u8be2\u5df2\u5b89\u88c5\u8f6f\u4ef6\u5305\u7684\u8be6\u7ec6\u4fe1\u606f\uff08\u5982\u7248\u672c\u3001\u5b89\u88c5\u65e5\u671f\u7b49\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Qdt  <span class=\"c1\"># \u5217\u51fa\u5b64\u7acb\u5305\uff08\u4e0d\u518d\u88ab\u4efb\u4f55\u5305\u4f9d\u8d56\u7684\u5305\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Rns <span class=\"k\">$(<\/span>pacman -Qdtq<span class=\"k\">)<\/span>  <span class=\"c1\"># \u81ea\u52a8\u5220\u9664\u6240\u6709\u5b64\u7acb\u5305\u53ca\u5176\u914d\u7f6e\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Fy  <span class=\"c1\"># \u66f4\u65b0\u6587\u4ef6\u5217\u8868\u6570\u636e\u5e93\uff0c\u7528\u4e8e\u6587\u4ef6\u67e5\u8be2<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -F &lt;command_name&gt;  <span class=\"c1\"># \u67e5\u8be2\u8fdc\u7a0b\u8f6f\u4ef6\u5305\u6570\u636e\u5e93\uff0c\u67e5\u627e\u5305\u542b\u6307\u5b9a\u547d\u4ee4\u7684\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pactree &lt;package_name&gt;  <span class=\"c1\"># \u663e\u793a\u6307\u5b9a\u8f6f\u4ef6\u5305\u7684\u4f9d\u8d56\u6811\uff08\u9700\u5b89\u88c5 pacman-contrib\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Qe  <span class=\"c1\"># \u5217\u51fa\u663e\u5f0f\u5b89\u88c5\u7684\u8f6f\u4ef6\u5305\uff08\u975e\u4f9d\u8d56\u5b89\u88c5\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -T &lt;package_name&gt;  <span class=\"c1\"># \u68c0\u67e5\u5305\u7684\u4f9d\u8d56\u662f\u5426\u6ee1\u8db3<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -U &lt;package_file&gt;  <span class=\"c1\"># \u5b89\u88c5\u672c\u5730\u8f6f\u4ef6\u5305\u6587\u4ef6\uff08\u5982 .pkg.tar.zst\uff09<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"yay\">Yay\n<\/h3><hr>\n<p>\u4f7f\u7528<code>yay<\/code>\u547d\u4ee4\u5b89\u88c5\u8f6f\u4ef6\u4e0d\u9700\u8981\u7528<code>sudo<\/code>\uff01<\/p>\n<blockquote>\n<p><strong>\u4e3b\u53c2\u6570\u4ecb\u7ecd\uff1a<\/strong><\/p>\n<p><strong>-S (Sync)<\/strong><br>\n\u8868\u793a\u540c\u6b65\u64cd\u4f5c\uff0c\u652f\u6301\u5b98\u65b9\u4ed3\u5e93\u548cAUR<\/p>\n<p><strong>-Q (Query)<\/strong><br>\n\u8868\u793a\u67e5\u8be2\u672c\u5730\u5df2\u5b89\u88c5\u8f6f\u4ef6\u5305\uff0c\u652f\u6301\u533a\u5206\u5b98\u65b9\u548cAUR\u6765\u6e90<\/p>\n<p><strong>-R (Remove)<\/strong><br>\n\u8868\u793a\u5220\u9664\u8f6f\u4ef6\u5305\uff0c\u652f\u6301AUR\u548c\u5b98\u65b9\u5305<\/p>\n<p><strong>-Y (Yay-specific)<\/strong><br>\nyay\u7279\u6709\u7684\u64cd\u4f5c\uff0c\u901a\u5e38\u7528\u4e8e\u7ef4\u62a4\u6216\u7edf\u8ba1<\/p><\/blockquote>\n<p><strong>\u5177\u4f53\u4f7f\u7528\u8bf4\u660e\uff1a<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">yay -S &lt;package_name&gt;  <span class=\"c1\"># \u5b89\u88c5\u8f6f\u4ef6\u5305\uff08\u81ea\u52a8\u5904\u7406\u6743\u9650\uff0c\u652f\u6301\u5b98\u65b9\u4ed3\u5e93\u548c AUR\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Syyu  <span class=\"c1\"># \u5f3a\u5236\u5237\u65b0\u6570\u636e\u5e93\u5e76\u5347\u7ea7\u7cfb\u7edf\u6240\u6709\u8f6f\u4ef6\u5305\uff08\u5305\u62ec AUR\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Syyw  <span class=\"c1\"># \u5f3a\u5236\u5237\u65b0\u6570\u636e\u5e93\u5e76\u4e0b\u8f7d\u6700\u65b0\u8f6f\u4ef6\u5305\uff0c\u4f46\u4e0d\u5b89\u88c5<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Sua  <span class=\"c1\"># \u4ec5\u5347\u7ea7 AUR \u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Qdt  <span class=\"c1\"># \u5217\u51fa\u5b64\u7acb\u5305\uff08\u5305\u62ec AUR\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Qe  <span class=\"c1\"># \u5217\u51fa\u663e\u5f0f\u5b89\u88c5\u7684\u8f6f\u4ef6\u5305\u53ca\u5176\u7248\u672c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Qq  <span class=\"c1\"># \u4ec5\u5217\u51fa\u663e\u5f0f\u5b89\u88c5\u7684\u8f6f\u4ef6\u5305\u540d\u79f0\uff0c\u65e0\u7248\u672c\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Qn  <span class=\"c1\"># \u5217\u51fa\u4ece\u5b98\u65b9\u4ed3\u5e93\u5b89\u88c5\u7684\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Qm  <span class=\"c1\"># \u5217\u51fa\u4ece AUR \u5b89\u88c5\u7684\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Rs &lt;package_name&gt;  <span class=\"c1\"># \u5220\u9664\u8f6f\u4ef6\u5305\u53ca\u5176\u4f9d\u8d56<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Rns &lt;package_name&gt;  <span class=\"c1\"># \u5220\u9664\u8f6f\u4ef6\u5305\u3001\u672a\u4f7f\u7528\u7684\u4f9d\u8d56\u53ca\u914d\u7f6e\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Yc  <span class=\"c1\"># \u6e05\u9664\u4e0d\u518d\u9700\u8981\u7684\u4f9d\u8d56\u9879<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -S &lt;package_name&gt; --aur  <span class=\"c1\"># \u4ec5\u4ece AUR \u5b89\u88c5\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -S &lt;package_name&gt; --repo  <span class=\"c1\"># \u4ec5\u4ece\u5b98\u65b9\u4ed3\u5e93\u5b89\u88c5\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Pg  <span class=\"c1\"># \u66f4\u65b0 AUR \u5305\u7684 PKGBUILD \u6587\u4ef6\u5e76\u68c0\u67e5\u66f4\u65b0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">yay -Ps  <span class=\"c1\"># \u663e\u793a\u7cfb\u7edf\u8f6f\u4ef6\u5305\u7edf\u8ba1\u4fe1\u606f<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"downgrade\u8f6f\u4ef6\u5305\u964d\u7ea7\">Downgrade\u8f6f\u4ef6\u5305\u964d\u7ea7\n<\/h3><hr>\n<p>\u56e0\u4e3a<code>Archlinux<\/code>\u7684\u66f4\u65b0\u7b56\u7565\u6bd4\u8f83\u6fc0\u8fdb\uff0c\u6709\u4e9b\u8f6f\u4ef6\u5305\u53ef\u80fd\u7531\u4e8e\u592a\u65b0\u800c\u7f3a\u4e4f\u76f8\u5173\u4f9d\u8d56\u652f\u6301\uff0c\u56e0\u6b64\u6709\u65f6\u5019\u9700\u8981\u8fdb\u884c\u8f6f\u4ef6\u5305\u964d\u7ea7<\/p>\n<p>\u6bd4\u8f83\u65b9\u4fbf\u7684\u662f\u4f7f\u7528<code>Downgrade<\/code>\u8fdb\u884c\u964d\u7ea7\uff0c\u4f7f\u7528\u524d\u9700\u8981\u5148\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S downgrade  <span class=\"c1\"># \u5b89\u88c5 downgrade \u5de5\u5177<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo downgrade &lt;package_name&gt;  <span class=\"c1\"># \u4ea4\u4e92\u5f0f\u964d\u7ea7\u6307\u5b9a\u8f6f\u4ef6\u5305\uff0c\u9009\u62e9\u53ef\u7528\u7248\u672c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo downgrade &lt;package_name&gt; --maxdepth &lt;Num&gt;  <span class=\"c1\"># \u9650\u5236\u641c\u7d22\u7684\u7248\u672c\u6df1\u5ea6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo downgrade &lt;package_name&gt; --ala-only  <span class=\"c1\"># \u4ec5\u4ece Arch Linux Archive \u964d\u7ea7<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"debian\">Debian\n<\/h2><hr>\n<h3 id=\"apt\">APT\n<\/h3><hr>\n<p><code>apt<\/code>\u662fDebian\u7cfb\u64cd\u4f5c\u7cfb\u7edf\u6700\u5e38\u7528\u7684\u5305\u7ba1\u7406\u5de5\u5177\uff0c\u5176\u5e95\u5c42\u4f9d\u8d56<code>dpkg<\/code>\u5904\u7406\uff0c\u7528\u4e8e\u7ba1\u7406\u8fdc\u7a0b\u4ed3\u5e93\u4e2d\u7684<code>.deb<\/code>\u5305<\/p>\n<p><strong>\u5177\u4f53\u4f7f\u7528\u8bf4\u660e\uff1a<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo apt update  <span class=\"c1\"># \u5237\u65b0\u8f6f\u4ef6\u5305\u6570\u636e\u5e93\uff0c\u4ece\u914d\u7f6e\u7684\u6e90\u83b7\u53d6\u6700\u65b0\u7d22\u5f15<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt upgrade  <span class=\"c1\"># \u5347\u7ea7\u7cfb\u7edf\u4e2d\u6240\u6709\u5df2\u5b89\u88c5\u7684\u8f6f\u4ef6\u5305\u5230\u6700\u65b0\u7248\u672c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt full-upgrade  <span class=\"c1\"># \u5347\u7ea7\u7cfb\u7edf\uff0c\u5141\u8bb8\u5220\u9664\u6216\u5b89\u88c5\u65b0\u4f9d\u8d56\u4ee5\u89e3\u51b3\u51b2\u7a81<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt install &lt;package_name&gt;  <span class=\"c1\"># \u5b89\u88c5\u6307\u5b9a\u8f6f\u4ef6\u5305\u53ca\u5176\u4f9d\u8d56<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt remove &lt;package_name&gt;  <span class=\"c1\"># \u5220\u9664\u6307\u5b9a\u8f6f\u4ef6\u5305\uff0c\u4f46\u4fdd\u7559\u914d\u7f6e\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt purge &lt;package_name&gt;  <span class=\"c1\"># \u5220\u9664\u8f6f\u4ef6\u5305\u53ca\u5176\u914d\u7f6e\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt autoremove  <span class=\"c1\"># \u79fb\u9664\u4e0d\u518d\u9700\u8981\u7684\u4f9d\u8d56\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt search &lt;keyword&gt;  <span class=\"c1\"># \u5728\u8f6f\u4ef6\u5305\u6570\u636e\u5e93\u4e2d\u641c\u7d22\u5305\u542b\u5173\u952e\u5b57\u7684\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt show &lt;package_name&gt;  <span class=\"c1\"># \u663e\u793a\u6307\u5b9a\u8f6f\u4ef6\u5305\u7684\u8be6\u7ec6\u4fe1\u606f\uff08\u5982\u7248\u672c\u3001\u4f9d\u8d56\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt list --installed  <span class=\"c1\"># \u5217\u51fa\u6240\u6709\u5df2\u5b89\u88c5\u7684\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt clean  <span class=\"c1\"># \u5220\u9664\/var\/cache\/apt\/archives\/\u4e2d\u7684\u6240\u6709\u7f13\u5b58\u5305\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt autoclean  <span class=\"c1\"># \u5220\u9664\u8fc7\u671f\u7684\u7f13\u5b58\u5305\u6587\u4ef6\uff0c\u4fdd\u7559\u53ef\u7528\u7248\u672c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo apt install &lt;package.deb&gt;  <span class=\"c1\"># \u5b89\u88c5\u672c\u5730.deb\u6587\u4ef6\uff0c\u4f9d\u8d56\u4f1a\u81ea\u52a8\u4ece\u4ed3\u5e93\u89e3\u51b3<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"dpkg\">DPKG\n<\/h3><hr>\n<p><code>dpkg<\/code>\u662fDebian\u7684\u5e95\u5c42\u5305\u7ba1\u7406\u5de5\u5177\uff0c\u76f4\u63a5\u64cd\u4f5c<code>.deb<\/code>\u6587\u4ef6<\/p>\n<p><strong>\u5177\u4f53\u4f7f\u7528\u8bf4\u660e\uff1a<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo dpkg -i &lt;package.deb&gt;  <span class=\"c1\"># \u5b89\u88c5\u672c\u5730 .deb \u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">dpkg -l  <span class=\"c1\"># \u5217\u51fa\u6240\u6709\u5df2\u5b89\u88c5\u7684\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">dpkg -L &lt;package_name&gt;  <span class=\"c1\"># \u5217\u51fa\u5305\u5b89\u88c5\u7684\u6587\u4ef6\u5217\u8868<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo dpkg -r &lt;package_name&gt;  <span class=\"c1\"># \u5220\u9664\u5305\uff0c\u4fdd\u7559\u914d\u7f6e\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo dpkg --purge &lt;package_name&gt;  <span class=\"c1\"># \u5220\u9664\u5305\u53ca\u5176\u914d\u7f6e\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">dpkg -S &lt;file_path&gt;  <span class=\"c1\"># \u67e5\u8be2\u6587\u4ef6\u5c5e\u4e8e\u54ea\u4e2a\u5305\uff0c\u67e5\u627e\u5305\u542b\u6307\u5b9a\u547d\u4ee4\u7684\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"opensuse\">OpenSUSE\n<\/h2><hr>\n<p>OpenSUSE\u4f7f\u7528<code>zypper<\/code>\u4f5c\u4e3a\u5305\u7ba1\u7406\u5668\uff0c\u7ba1\u7406<code>.rpm<\/code>\u5305<\/p>\n<p><strong>\u5177\u4f53\u4f7f\u7528\u8bf4\u660e\uff1a<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo zypper refresh  <span class=\"c1\"># \u5237\u65b0\u6240\u6709\u8f6f\u4ef6\u6e90\u7684\u6570\u636e\u5e93<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo zypper update  <span class=\"c1\"># \u5347\u7ea7\u7cfb\u7edf\u4e2d\u6240\u6709\u5df2\u5b89\u88c5\u7684\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo zypper install &lt;package_name&gt;  <span class=\"c1\"># \u5b89\u88c5\u6307\u5b9a\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo zypper remove &lt;package_name&gt;  <span class=\"c1\"># \u5220\u9664\u6307\u5b9a\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo zypper search &lt;keyword&gt;  <span class=\"c1\"># \u641c\u7d22\u5305\u542b\u5173\u952e\u5b57\u7684\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo zypper info &lt;package_name&gt;  <span class=\"c1\"># \u663e\u793a\u8f6f\u4ef6\u5305\u7684\u8be6\u7ec6\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo zypper packages --orphaned  <span class=\"c1\"># \u5217\u51fa\u5b64\u7acb\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo zypper dup  <span class=\"c1\"># \u6267\u884c\u53d1\u884c\u7248\u5347\u7ea7\uff08Distribution Upgrade\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo zypper clean  <span class=\"c1\"># \u6e05\u7406\u7f13\u5b58\u7684\u5143\u6570\u636e\u548c\u5305\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo zypper ps  <span class=\"c1\"># \u68c0\u67e5\u5347\u7ea7\u540e\u9700\u8981\u91cd\u542f\u7684\u670d\u52a1\u6216\u8fdb\u7a0b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo zypper addrepo &lt;URL&gt; &lt;name&gt;  <span class=\"c1\"># \u6dfb\u52a0\u65b0\u7684\u8f6f\u4ef6\u6e90<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"fedora\">Fedora\n<\/h2><hr>\n<p>Fedora\u4f7f\u7528<code>dnf<\/code>(Dandified Yum)\u7ba1\u7406<code>.rpm<\/code>\u5305<\/p>\n<p><strong>\u5177\u4f53\u4f7f\u7528\u8bf4\u660e\uff1a<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo dnf upgrade  <span class=\"c1\"># \u5237\u65b0\u6570\u636e\u5e93\u5e76\u5347\u7ea7\u6240\u6709\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo dnf install &lt;package_name&gt;  <span class=\"c1\"># \u5b89\u88c5\u6307\u5b9a\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo dnf remove &lt;package_name&gt;  <span class=\"c1\"># \u5220\u9664\u6307\u5b9a\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo dnf search &lt;keyword&gt;  <span class=\"c1\"># \u641c\u7d22\u5305\u542b\u5173\u952e\u5b57\u7684\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo dnf info &lt;package_name&gt;  <span class=\"c1\"># \u663e\u793a\u8f6f\u4ef6\u5305\u8be6\u7ec6\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo dnf autoremove  <span class=\"c1\"># \u5220\u9664\u4e0d\u518d\u9700\u8981\u7684\u4f9d\u8d56<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo dnf list installed  <span class=\"c1\"># \u5217\u51fa\u5df2\u5b89\u88c5\u7684\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo dnf downgrade &lt;package_name&gt;  <span class=\"c1\"># \u964d\u7ea7\u6307\u5b9a\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo dnf clean all  <span class=\"c1\"># \u6e05\u7406\u6240\u6709\u7f13\u5b58\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo dnf provides &lt;file_path&gt;  <span class=\"c1\"># \u67e5\u8be2\u6587\u4ef6\u5c5e\u4e8e\u54ea\u4e2a\u5305\uff0c\u67e5\u627e\u5305\u542b\u6307\u5b9a\u547d\u4ee4\u7684\u8f6f\u4ef6\u5305<\/span>\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"\u5ef6\u5b892\u65e5\u6e38\u8bb0","link":"https:\/\/been.ee\/p\/0-0-0-47\/","pubDate":"Mon, 07 Apr 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-47\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u4e4b\u524d\u5973\u670b\u53cb\u5c31\u4e00\u76f4\u60f3\u62c9\u6211\u5230\u5ef6\u5b89\uff0c\u5979\u4e4b\u524d\u53bb\u8fc7\u51e0\u6b21\uff0c\u636e\u5979\u6240\u8bf4\u5ef6\u5b89\u662f\u4e00\u5ea7\u5f88&quot;\u7ea2&quot;\u7684\u57ce\u5e02\uff0c\u4e0d\u8fc7\u5979\u60f3\u53bb\u4e3b\u8981\u662f\u6709\u597d\u591a\u597d\u5403\u7684\uff0c\u73b0\u5728\u4e00\u5fc3\u60f3\u53bb\u5403\uff0c\u597d\u5728\u5ef6\u5b89\u79bb\u6211\u4eec\u73b0\u5728\u6240\u5728\u7684\u897f\u5b89\u4e0d\u8fdc\uff0c\u6240\u4ee5\u4e5f\u5c31\u662f\u5927\u6982\u534a\u4e2a\u6708\u524d\uff0c\u6211\u4eec\u5c31\u8ba1\u5212\u5229\u7528\u8fd9\u4e2a\u6e05\u660e\u5c0f\u5047\u671f\u53bb\u5ef6\u5b89\u5403\u559d\uff0c\u4e5f\u6d45\u6d45\u5730\u8bb0\u5f55\u4e00\u4e0b\u8fd9\u6b21\u884c\u7a0b<\/p>\n<p>PS: \u6ca1\u9519\uff0c\u662f\u53bb\u5403\u559d\uff0c\u5b8c\u5168\u6ca1\u6709\u8003\u8651\u6e38\u89c8\u666f\u70b9\uff0c\u5bf9\u6b64\u6211\u53ea\u80fd\u8bf4\uff0c\u4e0d\u6127\u662f\u5979\ud83d\ude11<\/p>\n<h2 id=\"\u65c5\u884c\">\u65c5\u884c\n<\/h2><hr>\n<p>\u672c\u6765\u662f\u6709\u4e09\u5929\u5047\u671f\u53ef\u4ee5\u53bb\uff0c\u4f46\u662f\u6b63\u597d\u6e05\u660e\u653e\u5047\u671f\u95f4\uff0c\u5973\u670b\u53cb\u7684\u4e00\u4e2a\u597d\u53cb\u4ece\u4e0a\u6d77\u56de\u6765\uff0c\u60f3\u7740\u597d\u4e45\u6ca1\u89c1\u4e86\u4e00\u8d77\u89c1\u4e2a\u9762\uff0c\u4f46\u662f\u5979\u7b2c\u4e09\u5929\u4e0a\u5348\u5c31\u53c8\u8981\u56de\u4e0a\u6d77\uff0c\u6240\u4ee5\u6211\u4eec\u4e5f\u53ea\u5728\u5ef6\u5b89\u5f852\u5929<\/p>\n<h3 id=\"day0\">Day0\n<\/h3><hr>\n<p>\u6211\u4eec\u5728\u5047\u671f\u524d\u4e00\u5929\uff08\u5468\u56db\uff09\u665a\u4e0a\u52a8\u8eab\uff0c\u4ece\u897f\u5b89\u4e58\u5750C188\u57ce\u9645\u5feb\u8f66\uff0c19:49\u51fa\u53d1\uff0c22:18\u5230\u8fbe\u76ee\u7684\u5730\u5ef6\u5b89\uff0c\u5386\u65f62\u5c0f\u65f629\u5206\u949f<\/p>\n<p>\u4e0a\u8f66\u524d\u63d0\u524d\u4e0b\u8f7d\u4e86\u7b2c\u4e00\u5b63\u9ed1\u955c\u5728\u8def\u4e0a\u6d88\u78e8\u65f6\u95f4\uff0c\u770b\u4e86\u4e24\u96c6\u5c31\u57fa\u672c\u5230\u76ee\u7684\u5730\u4e86<\/p>\n<p>\u5bf9\u4e86\uff0c\u8f66\u4e0a\u7ecf\u5e38\u6709\u4e58\u52a1\u5458\u4f1a\u5356\u4e00\u4e9b\u7279\u4ea7\u4e4b\u7c7b\u7684\uff0c\u5f80\u5e38\u6211\u603b\u662f\u4f1a\u4e0d\u5c51\u4e00\u987e\uff0c\u4f46\u5973\u670b\u53cb\u8bf4\u6709\u4e2a\u4ec0\u4e48\u4e73\u916a\u8d85\u7ea7\u597d\u5403\uff0c35\u4e00\u5305\uff0c100\u5757\u94b1\u4e09\u5305\uff0c\u7136\u540e\u5979\u4e09\u79cd\u53e3\u5473\u5404\u8981\u4e86\u4e00\u5305\uff0c\u540e\u6765\u6211\u5c1d\u4e86\u4e00\u4e0b\uff0c\u53ea\u662f\u611f\u89c9\u4e2d\u89c4\u4e2d\u77e9\uff0c\u4f46\u5979\u8bf4\u5979\u8fd8\u6709\u5979\u5988\u5988\u548c\u59e5\u59e5\u90fd\u7231\u5403\uff08\u53ef\u80fd\u996e\u98df\u504f\u597d\u4e5f\u4f1a\u9057\u4f20\u5427\uff09\uff0c\u6bd5\u7adf\u5e73\u65f6\u4e5f\u4e70\u4e0d\u5230\uff0c\u4e70\u5c31\u4e70\u5427<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/04\/06\/230010.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u5230\u5ef6\u5b89\u540e\u8003\u8651\u5230\u4e5f\u4e0d\u65e9\u4e86\uff0c\u62e6\u4e86\u4e00\u8f86\u51fa\u79df\u8f66\u5c31\u76f4\u5954\u9152\u5e97\uff0c\u6211\u4eec\u662f\u63d0\u524d\u8ba2\u5728\u4e86\u5b9d\u5854\u533a\u7684\u5ef6\u5b89\u83f2\u6f2b\u9152\u5e97\uff0c\u4f4d\u7f6e\u548c\u4ef7\u683c\u90fd\u6bd4\u8f83\u5408\u9002\uff08\u636e\u5979\u8bf4\u662f\u79bb\u591c\u5e02\u6bd4\u8f83\u8fd1\uff0c\u597d\u597d\u597d\uff09\uff0c\u9152\u5e97\u73af\u5883\u4e5f\u4e0d\u9519<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/04\/06\/230436.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u6253\u8f66\u53bb\u9152\u5e97\u7684\u8def\u4e0a\uff0c\u4e5f\u7ec8\u4e8e\u662f\u7b2c\u4e00\u6b21\u611f\u53d7\u5230\u4e86\u5ef6\u5b89\u7ea2\u8272\u7684\u6c14\u606f\uff0c\u611f\u89c9\u5468\u56f4\u4e24\u8fb9\u6563\u51fa\u7684\u5149\u90fd\u662f\u7ea2\u8272\u7684\uff0c\u8def\u706f\u3001\u6a2a\u5e45\u3001\u6807\u8bed\u4e4b\u7c7b\u7684\u90fd\u662f\u7ea2\u8272\u7684\uff0c\u786e\u5b9e\u65e0\u5904\u4e0d\u4f53\u73b0\u7740\u8fd9\u5ea7\u57ce\u5e02\u7684\u7ea2\u8272\u5386\u53f2\u548c\u6c14\u606f<\/p>\n<p>\u5230\u9152\u5e97\u540e\uff0c\u5148\u662f\u529e\u7406\u4e86\u767b\u8bb0\u5165\u4f4f\uff0c\u7136\u540e\u5230\u623f\u95f4\u6240\u5728\u7684\u697c\u5c42\uff0c\u7535\u68af\u95e8\u4e00\u5f00\uff0c\u611f\u89c9\u8d70\u5eca\u5f25\u6f2b\u7740\u4e00\u80a1\u5f88\u6d53\u7684\u70df\u5473\uff0c\u8d8a\u5f80\u524d\u8d70\u70df\u5473\u8d8a\u5927\uff0c\u7136\u540e\u4e0d\u5e78\u5730\u53d1\u73b0\uff0c\u4f4f\u6211\u4eec\u9694\u58c1\u7684\u4e24\u95f4\u623f\u5f00\u7740\u95e8\uff0c\u91cc\u9762\u7684\u4eba\u4e00\u8fb9\u62bd\u70df\u4e00\u8fb9\u5927\u58f0\u804a\u5929\uff0c\u56e0\u4e3a\u5b9e\u5728\u53d7\u4e0d\u4e86\u70df\u5473\uff0c\u6211\u4eec\u5c31\u8d76\u7d27\u6253\u5f00\u623f\u95e8\u8fdb\u53bb\u4e86\uff0c\u4f46\u4f9d\u7136\u80fd\u542c\u5230\u4ed6\u4eec\u8bb2\u8bdd<\/p>\n<p>\u7136\u540e\uff0c\u6211\u4eec\u60f3\u7740\u770b\u80fd\u4e0d\u80fd\u6362\u4e2a\u623f\u95f4\uff0c\u7ed9\u9152\u5e97\u524d\u53f0\u6253\u7535\u8bdd\u540e\u88ab\u544a\u77e5\u4eca\u665a\u623f\u95f4\u90fd\u4f4f\u6ee1\u4e86\uff08\u6bd5\u7adf\u662f\u5047\u671f\uff0c\u4e5f\u6b63\u5e38\uff09\uff0c\u4f46\u4f1a\u5e2e\u6211\u4eec\u8ddf\u9694\u58c1\u8bf4\u4e00\u4e0b\uff0c\u597d\u5728\u8fc7\u4e86\u4e00\u4f1a\uff0c\u9694\u58c1\u628a\u95e8\u5173\u4e0a\u4e86\uff0c\u58f0\u97f3\u4e5f\u5c0f\u4e86\u4e0d\u5c11<\/p>\n<p>\u5230\u623f\u95f4\u540e\uff0c\u7b80\u5355\u6d17\u6f31\u4e86\u4e00\u4e0b\u5c31\u4e0a\u5e8a\u4e86\uff0c\u6211\u56e0\u4e3a\u4e34\u65f6\u6709\u70b9\u5de5\u4f5c\uff0c\u641e\u5230\u4e86\u51cc\u6668\u4e09\u70b9\u624d\u7761\ud83d\ude2d<\/p>\n<h3 id=\"day1\">Day1\n<\/h3><hr>\n<p>\u5047\u671f\u6b63\u5f0f\u7b2c\u4e00\u5929\uff0c\u6211\u4eec\u5927\u6982\u7761\u5230\u4e8611:30\u5427\uff0c\u4e2d\u5348\u5148\u7ea6\u4e86\u5973\u670b\u53cb\u5728\u5ef6\u5b89\u7684\u4e00\u4e2a\u670b\u53cb\u5403\u996d\uff0c\u672c\u6765\u7ea6\u7684\u662f12:00\u89c1\u9762\uff0c\u4f46\u8d77\u5f97\u665a\u4e86\u70b9\uff0c\u8ddf\u5979\u670b\u53cb\u8bf4\u4e86\u4e00\u4e0b\uff0c\u5979\u670b\u53cb\u8bf4\u7b49\u51c6\u5907\u597d\u4e86\u5f00\u8f66\u63a5\u6211\u4eec\u8fc7\u53bb\uff0c\u4e5f\u5c31\u6ca1\u592a\u7740\u6025<\/p>\n<p>\u4e2d\u5348\u5148\u662f\u53bb\u4e86\u4e00\u5bb6\u53eb\u5feb\u4e50\u5c0f\u7f8a\u7684\u706b\u9505\u5e97\uff0c\u636e\u5979\u4eec\u8bf4\u662f\u8d3c\u597d\u5403\uff0c\u4e0d\u7528\u8638\u6599\u5c31\u5f88\u597d\u5403\uff0c\u4f46\u6211\u5403\u706b\u9505\u4e00\u5b9a\u8981\u5403\u8fa3\uff0c\u6240\u4ee5\u4e00\u822c\u90fd\u8981\u8c03\u4e00\u7897\u53c8\u8fa3\u53c8\u6cb9\u7684\u789f\u5b50\u8638\uff0c\u4e0d\u8fc7\u5b83\u672c\u8eab\u6c64\u5e95\u7684\u5473\u9053\u786e\u5b9e\u4e5f\u4e0d\u9519\uff0c\u6574\u4f53\u7684\u91cf\u4e5f\u6bd4\u897f\u5b89\u7684\u706b\u9505\u5927\u4e00\u4e9b\uff0c\u5473\u9053\u4e5f\u633a\u597d\u7684<\/p>\n<p>\u4f46\u8fd9\u5bb6\u5e97\u6211\u4eec\u53bb\u7684\u65f6\u5019\u4eba\u4e0d\u591a\uff0c\u53ea\u6709\u6211\u4eec\u4e00\u684c\uff0c\u5230\u8d70\u7684\u65f6\u5019\u624d\u6709\u522b\u7684\u5ba2\u4eba\u6765<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/04\/06\/232556.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u5403\u5b8c\u996d\u540e\uff0c\u60f3\u7740\u6765\u90fd\u6765\u4e86\uff0c\u600e\u4e48\u4e5f\u5f97\u53bb\u4e2a\u666f\u70b9\u770b\u770b\uff0c\u7136\u540e\u6211\u4eec\u5c31\u53bb\u4e86\u5ef6\u5b89\u9769\u547d\u7eaa\u5ff5\u9986\u5c0f\u5c0f\u53c2\u89c2\u4e86\u4e00\u4e0b\uff0c\u5728\u573a\u9986\u8fd8\u78b0\u5230\u4e86\u6b63\u5728\u5f55\u5236\u89c6\u9891\u7684CCTV\u8bb0\u8005\uff0c\u4e5f\u4e0d\u77e5\u9053\u5f53\u665a\u65b0\u95fb\u8054\u64ad\u6709\u6ca1\u6709\u64ad\u653e<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/04\/06\/235441.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n> <img src=\"http:\/\/img.been.ee\/i\/2025\/04\/06\/235524.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u53c2\u89c2\u5b8c\u540e\uff0c\u5973\u670b\u53cb\u975e\u5f97\u60f3\u53bb\u5403\u4e00\u4e2a\u5f88\u597d\u5403\u7684\u86cb\u7cd5\uff0c\u662f\u5728\u4e2d\u73af\u5e7f\u573a\u7684\u4e00\u5bb6\u53eb77bakery\u7684\u751c\u54c1\uff0c\u6211\u4eec\u8fc7\u53bb\u540e\uff0c\u53d1\u73b0\u8fd9\u4e2a\u5e7f\u573a\u6709\u70b9\u8352\u51c9\uff0c\u57fa\u672c\u6ca1\u4ec0\u4e48\u4eba\uff0c\u4f46\u8fd9\u5bb6\u5e97\u5012\u662f\u4eba\u5f88\u591a\uff0c\u4f46\u5979\u53c8\u8bf4\u4e0d\u60f3\u8ddf\u8fd9\u4e9b\u4eba\u6324\u5728\u4e00\u8d77\u5403\uff0c\u5c31\u5728\u9644\u8fd1\u6362\u4e86\u4e00\u5bb6\u53eb\u6dd1\u82ac\u5bb6\u7684\u86cb\u7cd5\u5e97\uff0c\u8bf4\u662f\u4e5f\u5f88\u597d\u5403\uff0c\u4f46\u6211\u89c9\u5f97\u86cb\u7cd5\u8fd9\u4e2a\u4e1c\u897f\uff0c\u6211\u5403\u7740\u53cd\u6b63\u611f\u89c9\u4e0d\u51fa\u80fd\u6709\u591a\u597d\u5403\u6216\u8005\u591a\u96be\u5403\uff0c\u7136\u540e\u679c\u4e0d\u5176\u7136\uff0c\u5979\u4e70\u7684\u90a3\u4e2a\u4e5f\u8bf4\u6ca1\u6709\u4e4b\u524d\u7684\u597d\u5403<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/04\/07\/000422.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u5403\u5b8c\u540e\uff0c\u6211\u7a81\u7136\u60f3\u5230\u4e4b\u524d\u8bf4\u6765\u5ef6\u5b89\u8981\u53bb\u770b\u770b\u8fd9\u8fb9\u7684miniso\u6709\u6ca1\u6709\u4e00\u4e2a\u5c0f\u718a\u7ef4\u5c3c\u7684\u76f2\u76d2\u3002\u4e4b\u524d\u5728\u897f\u5b89\u7684\u65f6\u5019\uff0c\u51e0\u4e4e\u901b\u904d\u4e86\u6240\u6709\u7684miniso\u4e5f\u5728\u4e00\u5bb6\u5e97\u4e70\u5230\u4e86\u4e00\u4e2a\uff0c\u4e8e\u662f\u641c\u4e86\u4e0b\u9644\u8fd1\u7684miniso\uff0c\u53d1\u73b0\u4e0d\u8fdc\u6709\u4e2a\u543e\u60a6\u5e7f\u573a\u6709\u4e00\u5bb6miniso\uff0c\u6211\u4eec\u4e5f\u5c31\u4e0d\u62b1\u5e0c\u671b\u7684\u53bb\u4e86\uff0c\u4f46\u662f\u975e\u5e38\u60ca\u559c\u7684\u662f\u8fd9\u5bb6\u5e97\u7adf\u7136\u771f\u7684\u6709\uff0c\u800c\u4e14\u8d27\u67b6\u4e0a\u6446\u6ee1\u4e86\u4e5d\u4e2a\u76f2\u76d2<\/p>\n<p>\u4e3a\u4e86\u62bd\u6211\u4eec\u60f3\u8981\u7684\uff0c\u4e0d\u51fa\u610f\u5916\u5730\uff0c\u6211\u4eec\u4e00\u5171\u4e70\u4e86\u4e09\u6b21\uff0c\u603b\u5171\u56db\u4e2a\u76f2\u76d2\uff0c\u82b1\u8d39200+\uff0c\u6210\u4e3a\u4e86\u672c\u6b21\u51fa\u884c\u6700\u8d35\u7684\u4e00\u7b14\u6d88\u8d39\uff01\u4f46\u597d\u5728\u6211\u4eec\u90fd\u5404\u62bd\u5230\u4e86\u4e00\u4e2a\u5f88\u60f3\u8981\u7684\u6b3e\uff0c\u4e5f\u8fd8\u4e0d\u9519<\/p>\n<p>\u4eceminiso\u51fa\u6765\u540e\u60f3\u7740\u665a\u4e00\u70b9\u53bb\u591c\u5e02\uff0c\u5c31\u5148\u56de\u9152\u5e97\u4f11\u606f\u4e86\u4e00\u4f1a\uff0c\u7136\u540e\u5728\u665a\u4e0a\u516b\u70b9\u5de6\u53f3\u524d\u5f80\u4e8c\u9053\u8857\u591c\u5e02\uff0c\u4e0d\u5f97\u4e0d\u8bf4\uff0c\u4eba\u786e\u5b9e\u591a\uff0c\u636e\u5bf9\u8c61\u8bf4\u90a3\u8fb9\u6709\u4e2a\u7f8a\u8e44\u8d3c\u597d\u5403\uff0c\u5c31\u53bb\u4e86\u5979\u8bf4\u7684\u90a3\u5bb6\u5f88\u597d\u5403\u7684\uff0c\u679c\u7136\u6392\u4e86\u597d\u957f\u7684\u961f\uff0c\u6392\u4e86\u5927\u6982\u6709\u4e2a\u5341\u5206\u949f\uff0c\u4e70\u4e865\u4e2a\u7f8a\u8e44\uff0c8\u5757\u94b1\u4e00\u4e2a\uff0c\u4ef7\u683c\u4e0d\u8d35\u4f46\u6bd5\u7adf\u7f8a\u8e44\u4e0a\u80fd\u5403\u7684\u5730\u65b9\u4e5f\u4e0d\u591a\uff0c\u6211\u662f\u89c9\u5f97\u662f\u633a\u597d\u5403\u7684\u4f46\u53ef\u80fd\u6ca1\u6709\u5f88\u60ca\u8273\u7684\u611f\u89c9\u5427\uff0c\u540e\u6765\u53d1\u73b0\u6709\u597d\u591a\u6446\u644a\u5356\u7f8a\u8e44\u7684\uff0c\u4f46\u53ea\u6709\u8fd9\u4e00\u5bb6\u6392\u961f\uff0c\u6211\u4eec\u5c31\u5728\u53e6\u4e00\u5bb6\u53c8\u4e70\u4e86\u4e00\u4efd\u5bf9\u6bd4\u4e86\u4e00\u4e0b\uff0c\u611f\u89c9\u662f\u7f8a\u5473\u6bd4\u6392\u961f\u90a3\u5bb6\u91cd\uff0c\u4f46\u6211\u597d\u50cf\u66f4\u559c\u6b22\u5403\u8fd9\u79cd\u7f8a\u5473\u91cd\u7684\u54c8\u54c8\uff0c\u6574\u4f53\u611f\u89c9\u5dee\u522b\u6ca1\u6709\u5f88\u5927\uff0c\u771f\u662f\u65f1\u7684\u65f1\u6b7b\uff0c\u6d9d\u7684\u6d9d\u6b7b<\/p>\n<p>\u540e\u6765\u53c8\u53bb\u4e00\u4e2a\u70e7\u70e4\u644a\u4e70\u4e86\u5979\u5fc3\u5fc3\u5ff5\u5ff5\u7684\u9762\u76ae\u5939\u9e21\u86cb\uff0c\u6211\u611f\u89c9\u8fd9\u4e1c\u897f\u53ef\u6cb9\u4e86\uff0c\u800c\u4e14\u5473\u9053\u8ddf\u70e4\u51b7\u9762\u4e5f\u5dee\u4e0d\u591a\uff0c\u4e5f\u4e0d\u77e5\u9053\u5979\u4e3a\u5565\u8fd9\u4e48\u7231\u5403\uff0c\u518d\u4e4b\u540e\u5c31\u662f\u8fd8\u4e70\u4e86\u70b9\u70e4\u4e32\uff0c\u7c73\u997c\u5565\u7684\uff0c\u5728\u8fd9\u8fb9\u4e00\u8fb9\u901b\u4e00\u8fb9\u5403\u4e86\u4e00\u4f1a\u770b\u4e0d\u65e9\u4e86\u5c31\u6b65\u884c\u56de\u4e86\u9152\u5e97\uff0c\u6700\u540e\u7ed3\u675f\u4e86\u7b2c\u4e00\u5929\u7684\u65c5\u884c<\/p>\n<h3 id=\"day2\">Day2\n<\/h3><hr>\n<p>\u7b2c\u4e8c\u5929\u7167\u65e7\u8fd8\u662f\u5230\u4e2d\u5348\u624d\u8d77\uff0c\u56e0\u4e3a\u4eca\u5929\u8981\u9000\u623f\uff0c\u6240\u4ee5\u6536\u62fe\u4e5f\u82b1\u4e86\u70b9\u65f6\u95f4\uff0c\u6536\u62fe\u5b8c\u540e\u9000\u623f\uff0c\u7136\u540e\u51fa\u53d1\u53bb\u5403\u5ef6\u5b89\u7684\u6cbe\u6cbe\uff08\u611f\u89c9\u5ef6\u5b89\u904d\u5730\u90fd\u662f\uff0c\u5b9e\u9645\u4e0a\u7c7b\u4f3c\u4e8e\u5e73\u65f6\u5403\u7684\u6dae\u5728\u9505\u91cc\u7684\u4e32\u4e32\uff09\uff0c\u6211\u4eec\u662f\u53bb\u4e86\u4e00\u5bb6\u53eb\u773c\u955c\u5bb6\u7684\u6cbe\u6cbe\uff0c\u4e5f\u662f\u636e\u5979\u8bf4\u8d3c\u597d\u5403\u7684\u4e00\u5bb6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/04\/08\/160443-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8fd9\u5bb6\u5e97\u4eba\u5012\u662f\u4e0d\u5c11\uff0c\u6211\u4eec\u8981\u4e86\u4e00\u4e2a\u5fae\u8fa3\/\u9ebb\u8fa3\u53cc\u62fc\u9505\uff0c\u9505\u5e95\u624d10\u5757\u94b1\uff0c\u6211\u770b\u4e86\u4e00\u4e0b\u4ed6\u4eec\u9505\u5e95\u662f\u7528\u5404\u79cd\u7c89\u6599\u6df7\u5728\u4e00\u8d77\u52a0\u6c34\u71ac\u7684\uff0c\u548c\u706b\u9505\u4e0d\u592a\u4e00\u6837\uff0c\u7136\u540e\u53bb\u81ea\u5df1\u62ff\u4e32\u4e32\u6dae\u5c31\u884c\u4e86\uff0c\u4ef7\u683c\u5012\u662f\u4e0d\u8d35\uff0c\u6709\u4e00\u5757\u7684\u8fd8\u6709\u4e24\u6bdb\u94b1\u7684\uff0c\u4e2a\u522b\u7684\u6709\u4e94\u516d\u5757\u94b1\u7684\uff0c\u6700\u540e\u6211\u4eec\u4e24\u4e2a\u4eba\u4e00\u5171\u5403\u4e86\u4e00\u767e\u96f6\u51e0\uff0c\u5df2\u7ecf\u5f88\u6491\u4e86<\/p>\n<p>\u6211\u662f\u7b2c\u4e00\u6b21\u5403\u6cbe\u6cbe\uff0c\u4e00\u5f00\u59cb\u5403\u611f\u89c9\u5473\u9053\u786e\u5b9e\u4e0d\u9519\uff0c\u4f46\u540e\u9762\u5c31\u611f\u89c9\u7279\u522b\u54b8\uff0c\u5c31\u6ca1\u6709\u611f\u89c9\u5f88\u7279\u522b\u4e86\uff0c\u56e0\u4e3a\u662f\u771f\u7684\u5f88\u54b8\uff0c\u4f46\u597d\u8bc4\u7684\u662f\u4ed6\u4eec\u5bb6\u63d0\u4f9b\u514d\u8d39\u7684\u5c0f\u5e03\u4e01\u548c\u96ea\u83b2\u81ea\u52a9\uff0c\u6700\u540e\u6211\u5149\u8fd9\u4e24\u6837\u603b\u5171\u5403\u4e8610\u5305\u5de6\u53f3\u5427\uff0c\u800c\u4e14\u540e\u9762\u4e5f\u6ca1\u62c9\u809a\u5b50\uff0c\u8fb9\u5403\u8fa3\u8fb9\u5403\u96ea\u7cd5\u5012\u662f\u8d3c\u723d\u5462\uff01<\/p>\n<p>\u539f\u672c\u6253\u7b97\u5403\u5b8c\u6cbe\u6cbe\u540e\uff0c\u6700\u540e\u4e00\u987f\u5403\u9178\u83dc\u9762\uff0c\u4f46\u662f\u8fd9\u4e00\u987f\u5403\u7684\u592a\u9971\u4e86\uff0c\u52a0\u4e0a\u5403\u5b8c\u5c31\u4e09\u70b9\u591a\u4e86\uff0c\u4e5f\u5c31\u6ca1\u65f6\u95f4\u5403\u4e86\uff0c\u5c31\u53ea\u80fd\u7559\u5230\u4ee5\u540e\u518d\u6765\u5403\u5427\uff0c\u5269\u4e0b\u7684\u65f6\u95f4\u6211\u4eec\u53bb\u4e86\u9644\u8fd1\u7684\u4e00\u4e2a\u4e07\u8fbe\u901b\u4e86\u4f1a\uff0c\u5c31\u53bb\u706b\u8f66\u7ad9\u51c6\u5907\u56de\u897f\u5b89\u4e86<\/p>\n<h2 id=\"\u7ed3\u8bed\">\u7ed3\u8bed\n<\/h2><hr>\n<p>\u611f\u89c9\u5ef6\u5b89\u786e\u5b9e\u662f\u4e00\u5ea7\u5f88\u7ea2\u7684\u57ce\u5e02\uff0c\u6bd5\u7adf\u627f\u8f7d\u7740\u9769\u547d\u7684\u5386\u53f2\uff0c\u5176\u5b9e\u4e5f\u662f\u6709\u4e00\u4e9b\u503c\u5f97\u53bb\u770b\u7684\u5730\u65b9\uff0c\u4f46\u6211\u4eec\u6b64\u884c\u4e3b\u8981\u4ee5\u5403\u548c\u8f7b\u677e\u4e3a\u4e3b\uff0c\u6ca1\u6709\u53bb\u592a\u591a\u5730\u65b9<\/p>\n<p>\u8fd8\u6709\u5c31\u662f\u5ef6\u5b89\u5c71\u786e\u5b9e\u4e5f\u6bd4\u8f83\u591a\uff0c\u8def\u6bd4\u8f83\u7ed5\uff0c\u6bd4\u5982\u53bb\u4e2a\u5730\u65b9\u76f4\u7ebf\u8ddd\u79bb1\u516c\u91cc\u591a\uff0c\u5f00\u8f66\u8981\u8d70\u4e94\u516d\u516c\u91cc<\/p>\n<p>\u53e6\u5916\u8fd9\u4e2a\u5b63\u8282\u5ef6\u5b89\u6e29\u5dee\u6bd4\u8f83\u5927\uff0c\u4e2d\u5348\u53ef\u80fd26-27\u5ea6\uff0c\u665a\u4e0a\u53ef\u80fd3-4\u5ea6\uff0c\u6765\u7684\u8bdd\u665a\u4e0a\u9700\u8981\u6ce8\u610f\u4fdd\u6696<\/p>\n"},{"title":"systemd \u914d\u7f6e\u4f7f\u7528\u4ecb\u7ecd","link":"https:\/\/been.ee\/p\/0-0-0-45\/","pubDate":"Wed, 26 Mar 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-45\/","description":"<h2 id=\"\u5173\u4e8esystemd\">\u5173\u4e8esystemd\n<\/h2><hr>\n<p>\u7528\u8fc7Linux\u7684\u4e00\u822c\u90fd\u4f1a\u6bd4\u8f83\u719f\u6089<code>systemd<\/code>\uff0c\u8fd9\u91cc\u5c31\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b<\/p>\n<p><code>systemd<\/code>\u662f\u4e00\u79cd\u7cfb\u7edf\u548c\u670d\u52a1\u7ba1\u7406\u5668\uff0c<code>systemd<\/code>\u662fLinux\u7cfb\u7edf\u4e2d<code>PID<\/code>\u4e3a<code>1<\/code>\u7684\u8fdb\u7a0b\uff0c\u8d1f\u8d23\u542f\u52a8\u6240\u6709\u5176\u4ed6\u8fdb\u7a0b\u548c\u670d\u52a1\u3002\u5b83\u5728\u5185\u6838\u52a0\u8f7d\u540e\u63a5\u7ba1\u7cfb\u7edf\uff0c\u8d1f\u8d23\u521d\u59cb\u5316\u7528\u6237\u7a7a\u95f4\u3001\u7ba1\u7406\u7cfb\u7edf\u7684\u670d\u52a1\u3001\u4f9d\u8d56\u3001\u8d44\u6e90\u548c\u65e5\u5fd7\u7b49<\/p>\n<p>\u76ee\u524d\u51e0\u4e4e\u6240\u6709Linux\u53d1\u884c\u7248\u4e2d\u90fd\u4f1a\u4f7f\u7528<code>systemd<\/code>\u4f5c\u4e3a\u521d\u59cb\u5316\u7cfb\u7edf\u548c\u7ba1\u7406\u670d\u52a1\u7684\u7ec4\u4ef6<\/p>\n<h2 id=\"\u5e38\u7528\u547d\u4ee4\">\u5e38\u7528\u547d\u4ee4\n<\/h2><hr>\n<p><code>systemd<\/code>\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177<code>systemctl<\/code>\u6765\u7ba1\u7406\u670d\u52a1\u548c\u7cfb\u7edf\u72b6\u6001\uff0c\u4e0b\u9762\u4ecb\u7ecd\u4e00\u4e9b\u5e38\u7528\u547d\u4ee4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">systemctl start &lt;service_name&gt;  <span class=\"c1\"># \u542f\u52a8\u670d\u52a1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl stop &lt;service_name&gt;  <span class=\"c1\"># \u505c\u6b62\u670d\u52a1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl restart &lt;service_name&gt;  <span class=\"c1\"># \u91cd\u542f\u670d\u52a1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl status &lt;service_name&gt;  <span class=\"c1\"># \u67e5\u770b\u670d\u52a1\u72b6\u6001<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl daemon-reload  <span class=\"c1\"># \u91cd\u65b0\u52a0\u8f7dsystemd\u7684\u914d\u7f6e\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl <span class=\"nb\">enable<\/span> &lt;service_name&gt;  <span class=\"c1\"># \u8bbe\u7f6e\u670d\u52a1\u5f00\u673a\u81ea\u542f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl disable &lt;service_name&gt;  <span class=\"c1\"># \u53d6\u6d88\u670d\u52a1\u5f00\u673a\u81ea\u542f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">journalctl -u &lt;service_name&gt;  <span class=\"c1\"># \u67e5\u770b\u670d\u52a1\u65e5\u5fd7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemd-analyze blame  <span class=\"c1\"># \u663e\u793a\u6bcf\u4e2a\u670d\u52a1\u7684\u542f\u52a8\u8017\u65f6<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u914d\u7f6esystemd\u670d\u52a1\">\u914d\u7f6esystemd\u670d\u52a1\n<\/h2><hr>\n<p>\u6709\u65f6\u5019\u6211\u4eec\u67d0\u4e2a\u7a0b\u5e8f\u6216\u811a\u672c\u5e0c\u671b\u4f7f\u7528<code>systemd<\/code>\u7ba1\u7406\uff0c\u90a3\u4e48\u9700\u8981\u7f16\u5199\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6\u5c06\u5176\u52a0\u5165<code>systemd<\/code>\u7ba1\u7406<\/p>\n<p>\u9996\u5148\u9700\u8981\u521b\u5efa\u4e00\u4e2a<code>systemd<\/code>\u670d\u52a1\u6587\u4ef6\uff0c\u4f8b\u5982<code>xxx.service<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">nano \/etc\/systemd\/system\/xxx.service\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9(\u9002\u7528\u4e8e\u5927\u591a\u6570\u60c5\u51b5)<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Unit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Description<\/span> <span class=\"o\">=<\/span> This is xxx service\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">After<\/span> <span class=\"o\">=<\/span> network.target\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Wants<\/span> <span class=\"o\">=<\/span> network.target\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Service<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Type<\/span> <span class=\"o\">=<\/span> simple\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">ExecStart<\/span> <span class=\"o\">=<\/span> \/usr\/bin\/mycommand --option\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Restart<\/span> <span class=\"o\">=<\/span> always\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Install<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">WantedBy<\/span> <span class=\"o\">=<\/span> multi-user.target\n<\/span><\/span><\/code><\/pre><\/div><p>\u53c2\u6570\u89e3\u91ca\uff1a<\/p>\n<blockquote>\n<ul>\n<li>\n<p>Description\uff1a\u81ea\u5b9a\u4e49\u670d\u52a1\u7684\u63cf\u8ff0\u4fe1\u606f\uff0c\u8bf4\u660e\u4f5c\u7528<\/p>\n<\/li>\n<li>\n<p>After\uff1anetwork.target\u8868\u793a\u7f51\u7edc\u670d\u52a1\u53ef\u7528\u540e\u624d\u80fd\u542f\u52a8<\/p>\n<\/li>\n<li>\n<p>Wants\uff1anetwork.target\u8868\u793a\u670d\u52a1&quot;\u5e0c\u671b&quot;\u4f9d\u8d56network.target\uff0c\u4f46\u4e0d\u662f\u5f3a\u4f9d\u8d56\uff0c\u5982\u679cnetwork.target\u4e0d\u53ef\u7528\uff0c\u670d\u52a1\u4ecd\u7136\u4f1a\u5c1d\u8bd5\u542f\u52a8<\/p>\n<\/li>\n<li>\n<p>Type\uff1asimple\u662f\u9ed8\u8ba4\u670d\u52a1\u7c7b\u578b\uff0c\u8868\u793aExecStart\u5b9a\u4e49\u7684\u8fdb\u7a0b\u662f\u4e3b\u8fdb\u7a0b\uff0c\u4e14\u542f\u52a8\u540e\u4f1a\u6301\u7eed\u8fd0\u884c<\/p>\n<\/li>\n<li>\n<p>ExecStart\uff1a\u542f\u52a8\u670d\u52a1\u65f6\u6267\u884c\u7684\u5177\u4f53\u547d\u4ee4<\/p>\n<\/li>\n<li>\n<p>Restart\uff1aalways\u8868\u793a\u5982\u679c\u547d\u4ee4\u610f\u5916\u9000\u51fa\u4f1a\u81ea\u52a8\u91cd\u542f<\/p>\n<\/li>\n<li>\n<p>WantedBy\uff1amulti-user.target\u8868\u793a\u652f\u6301\u591a\u7528\u6237\u6a21\u5f0f<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u4e0a\u8ff0\u5185\u5bb9\u4e00\u822c\u9700\u8981\u4fee\u6539<code>Description<\/code>\u548c<code>ExecStart<\/code>\u90e8\u5206<\/p>\n<p>\u5982\u679c\u914d\u7f6e\u6ca1\u95ee\u9898\u7684\u8bdd\uff0c\u6267\u884c<code>systemctl start xxx<\/code>\u5c31\u53ef\u4ee5\u542f\u52a8\u670d\u52a1\u4e86\uff0c\u6216\u8005\u6267\u884c<code>systemctl enable xxx<\/code>\u53ef\u4ee5\u914d\u7f6e\u670d\u52a1\u5f00\u673a\u81ea\u542f<\/p>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u56e0\u4e3a\u6709\u65f6\u5019\u6709\u4e9b\u5e94\u7528\u7a0b\u5e8f\u6216\u811a\u672c\u9700\u8981\u901a\u8fc7\u547d\u4ee4\u884c\u542f\u52a8\u5e76\u5728\u540e\u53f0\u957f\u671f\u8fd0\u884c\uff0c\u8fd9\u6837\u6bcf\u6b21\u5f00\u673a\u90fd\u8981\u91cd\u65b0\u624b\u52a8\u6267\u884c\uff0c\u9700\u8981\u505c\u6b62\u7684\u65f6\u5019\u8fd8\u5f97\u4ece\u628a\u5b83\u8fdb\u7a0b\u4e2d\u6740\u6389\uff0c\u800c\u901a\u8fc7<code>systemd<\/code>\u670d\u52a1\u5c31\u53ef\u4ee5\u66f4\u65b9\u4fbf\u5730\u63a7\u5236\u8fd9\u4e9b\u5e38\u7528\u5e94\u7528\u6216\u811a\u672c\u7684\u6267\u884c<\/p>\n"},{"title":"\u914d\u7f6e Syncthing \u53d1\u73b0\u670d\u52a1\u548c\u4e2d\u7ee7\u670d\u52a1","link":"https:\/\/been.ee\/p\/0-0-0-46\/","pubDate":"Wed, 26 Mar 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-46\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u5728<a class=\"link\" href=\"..\/0-0-0-40\/\" >\u5148\u524d\u7684\u6587\u7ae0<\/a>\u4e2d\u6211\u5df2\u7ecf\u4ecb\u7ecd\u8fc7Syncthing\u670d\u52a1\uff0c\u5982\u6709\u9700\u8981\u53ef\u4ee5\u70b9\u8fdb\u53bb\u67e5\u770b<\/p>\n<p>\u4f46\u662f\u5728\u4f7f\u7528\u7684\u65f6\u5019\u4f1a\u53d1\u73b0\uff0c\u5bf9\u7b49\u70b9\u4e4b\u95f4\u8fde\u63a5\u4fe1\u53f7\u7ecf\u5e38\u4e0d\u7a33\u5b9a\uff0c\u5e76\u4e14\u6570\u636e\u4f20\u8f93\u7f13\u6162\uff0c\u8fd9\u662f\u7531\u4e8e\u6211\u4eec\u9ed8\u8ba4\u4f7f\u7528\u7684\u662f\u5b98\u65b9\u63d0\u4f9b\u7684\u516c\u5171<strong>\u53d1\u73b0\u670d\u52a1\u5668\u548c\u4e2d\u7ee7\u670d\u52a1\u5668<\/strong>\u96c6\u7fa4\uff0c\u5728<a class=\"link\" href=\"https:\/\/relays.syncthing.net\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u91cc<\/a>\u67e5\u770b\u5b98\u65b9\u63d0\u4f9b\u7684\u4e2d\u7ee7\u670d\u52a1\u5668\u3002\u7531\u4e8e\u8fd9\u4e9b\u53d1\u73b0\u670d\u52a1\u5668\u548c\u4e2d\u7ee7\u670d\u52a1\u5668\u5927\u591a\u5728\u56fd\u5916(\u867d\u7136\u56fd\u5185\u4e5f\u6709\uff0c\u4f46\u7f51\u7edc\u65f6\u597d\u65f6\u574f)\uff0c\u901a\u5e38\u5ef6\u8fdf\u9ad8\uff0c\u7f51\u7edc\u5dee\uff0c\u56e0\u6b64\u5bfc\u81f4\u5bf9\u7b49\u70b9\u8fde\u63a5\u4e0d\u7a33\u5b9a\u7684\u95ee\u9898<\/p>\n<p>\u6240\u4ee5\u4e3a\u4e86\u4f18\u5316\u7f51\u7edc\u6570\u636e\u4f20\u8f93\uff0c\u6211\u4eec\u53ef\u4ee5\u9009\u62e9\u5728\u4e00\u53f0\u4e0e\u56fd\u5185\u4e92\u8054\u8f83\u597d\u670d\u52a1\u5668\u4e0a\u81ea\u884c\u6258\u7ba1\u53d1\u73b0\u670d\u52a1\u548c\u4e2d\u7ee7\u670d\u52a1\u4f7f\u7528<\/p>\n<p>\u90e8\u7f72\u4e5f\u5f88\u65b9\u4fbf\uff0c\u4e0b\u9762\u5c06\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b<\/p>\n<h2 id=\"\u90e8\u7f72\">\u90e8\u7f72\n<\/h2><hr>\n<p>\u6709\u5173\u53d1\u73b0\u670d\u52a1\u5668\u548c\u4e2d\u7ee7\u670d\u52a1\u5668\u7684\u8be6\u7ec6\u4ecb\u7ecd\u53ef\u4ee5\u67e5\u770b\u4ee5\u4e0b\u5b98\u65b9\u6587\u6863<\/p>\n<blockquote>\n<ul>\n<li>\n<p><a class=\"link\" href=\"https:\/\/docs.syncthing.net\/users\/stdiscosrv.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u53d1\u73b0\u670d\u52a1\u5668<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/docs.syncthing.net\/users\/strelaysrv.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u4e2d\u7ee7\u670d\u52a1\u5668<\/a><\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u4e0b\u9762\u6211\u4eec\u5c06\u76f4\u63a5\u5229\u7528Docker\u540c\u65f6\u90e8\u7f72\u53d1\u73b0\u670d\u52a1\u548c\u4e2d\u7ee7\u670d\u52a1<\/p>\n<p>\u65b0\u5efa\u4e00\u4e2a\u5b58\u653e\u5bb9\u5668\u914d\u7f6e\u7684\u76ee\u5f55\uff0c\u521b\u5efa<code>docker-compose.yml<\/code>\u6587\u4ef6\uff0c\u5e76\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">syncthing_discovery_server<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">syncthing\/discosrv:latest<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">stdiscosrv<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">command<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span>--<span class=\"l\">debug --listen=&#34;:8443&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">PUID=1000<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">PGID=1000<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">.\/syncthing\/discosrv:\/var\/stdiscosrv<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"m\">8443<\/span><span class=\"p\">:<\/span><span class=\"m\">8443<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">always<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">syncthing_relay_server<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">syncthing\/relaysrv:latest<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">strelaysrv<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">command<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span>-<span class=\"l\">debug -pools=&#34;&#34; -listen=&#34;:22067&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">PUID=1000<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">PGID=1000<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">.\/syncthing\/strelaysrv:\/var\/strelaysrv<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"m\">22067<\/span><span class=\"p\">:<\/span><span class=\"m\">22067<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">always<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c<code>docker compose up -d<\/code>\u542f\u52a8\u4e24\u4e2a\u5bb9\u5668\u670d\u52a1<\/p>\n<p>\u542f\u52a8\u540e\uff0c\u6211\u4eec\u9700\u8981\u6267\u884c<code>docker ps<\/code>\u627e\u5230\u4e24\u4e2a\u5bb9\u5668\uff0c\u7136\u540e\u6267\u884c<code>docker logs &lt;container_id&gt;<\/code>\u901a\u8fc7\u65e5\u5fd7\u67e5\u770b\u53d1\u73b0\u670d\u52a1\u548c\u4e2d\u7ee7\u670d\u52a1\u7684<code>Device ID<\/code><\/p>\n<blockquote>\n<ul>\n<li>\u53d1\u73b0\u670d\u52a1\u5668(\u793a\u4f8b)<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># docker logs 1f5a691d72f8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">2025\/03\/17 08:56:58 stdiscosrv v1.29.3 <span class=\"s2\">&#34;Gold Grasshopper&#34;<\/span> <span class=\"o\">(<\/span>go1.24.1 linux-amd64<span class=\"o\">)<\/span> docker@github.syncthing.net 2025-03-07 11:50:33 UTC <span class=\"o\">[<\/span>noupgrade<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">2025\/03\/17 08:56:58 Failed to load keypair. Generating one, this might take a <span class=\"k\">while<\/span>...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">2025\/03\/17 08:56:58 Server device ID is KTYXYMX-N3J7VZX-QO5CD47-DRTFUGG-WKKOFY3-6A4EJ3Y-X5VXTIP-RWI32QP\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u4ee5\u627e\u5230Device ID\u4e3a<strong>KTYXYMX-N3J7VZX-QO5CD47-DRTFUGG-WKKOFY3-6A4EJ3Y-X5VXTIP-RWI32QP<\/strong><\/p>\n<ul>\n<li>\u4e2d\u7ee7\u670d\u52a1\u5668(\u793a\u4f8b)<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># docker logs b5e1e74ae3ff<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">2025\/03\/17 08:56:58 main.go:141: strelaysrv v1.29.3 <span class=\"s2\">&#34;Gold Grasshopper&#34;<\/span> <span class=\"o\">(<\/span>go1.24.1 linux-amd64<span class=\"o\">)<\/span> docker@github.syncthing.net 2025-03-07 11:50:33 UTC <span class=\"o\">[<\/span>noupgrade<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">2025\/03\/17 08:56:58 main.go:147: Connection limit <span class=\"m\">838860<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">2025\/03\/17 08:56:58 main.go:160: Failed to load keypair. Generating one, this might take a <span class=\"k\">while<\/span>...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">2025\/03\/17 08:56:58 main.go:186: ID: NNO7VN5-JNNI35L-3D2S4ER-W4WXCOM-KHA7E2L-N5I5K5Q-R5KB3BN-DC6NWA7\n<\/span><\/span><span class=\"line\"><span class=\"cl\">2025\/03\/17 08:56:58 main.go:267: URI: relay:\/\/0.0.0.0:22067\/?id<span class=\"o\">=<\/span>NNO7VN5-JNNI35L-3D2S4ER-W4WXCOM-KHA7E2L-N5I5K5Q-R5KB3BN-DC6NWA7<span class=\"p\">&amp;<\/span><span class=\"nv\">networkTimeout<\/span><span class=\"o\">=<\/span>2m0s<span class=\"p\">&amp;<\/span><span class=\"nv\">pingInterval<\/span><span class=\"o\">=<\/span>1m0s<span class=\"p\">&amp;<\/span><span class=\"nv\">statusAddr<\/span><span class=\"o\">=<\/span>%3A22070\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u4ee5\u627e\u5230Device ID\u4e3a<strong>NNO7VN5-JNNI35L-3D2S4ER-W4WXCOM-KHA7E2L-N5I5K5Q-R5KB3BN-DC6NWA7<\/strong><\/p><\/blockquote>\n<p>\u7136\u540e\u6211\u4eec\u5c31\u5f97\u5230\u4e86<strong>\u53d1\u73b0\u670d\u52a1\u548c\u4e2d\u7ee7\u670d\u52a1\u7684URL<\/strong><\/p>\n<blockquote>\n<ul>\n<li>\n<p>\u53d1\u73b0\u670d\u52a1\u5668\uff1ahttps:\/\/&lt;Server_IP&gt;:8443\/?id=&lt;\u53d1\u73b0\u670d\u52a1\u5668Device_ID&gt;<\/p>\n<\/li>\n<li>\n<p>\u4e2d\u7ee7\u670d\u52a1\u5668\uff1arelay:\/\/&lt;Server_IP&gt;:22067?id=&lt;\u4e2d\u7ee7\u670d\u52a1\u5668Device_ID&gt;<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u5230\u6b64\u4e3a\u6b62\u5c31\u90e8\u7f72\u5b8c\u6210\u5566<\/p>\n<h2 id=\"\u5728syncthing\u4e2d\u914d\u7f6e\u4f7f\u7528\">\u5728Syncthing\u4e2d\u914d\u7f6e\u4f7f\u7528\n<\/h2><hr>\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u5728\u642d\u5efa\u4e86Syncthing\u7684\u673a\u5668\u4e0a\u914d\u7f6e\u4f7f\u7528\u81ea\u5df1\u7684\u53d1\u73b0\u670d\u52a1\u548c\u4e2d\u7ee7\u670d\u52a1<\/p>\n<p>\u9996\u5148\u6253\u5f00Syncthing Web\u914d\u7f6e\u7f51\u9875\uff0c\u7136\u540e\u5728\u53f3\u4e0a\u89d2\u70b9\u51fb<code>\u64cd\u4f5c<\/code> - <code>\u8bbe\u7f6e<\/code> - <code>\u8fde\u63a5<\/code>\uff0c\u6253\u5f00\u540e\u5c06<code>\u540c\u6b65\u534f\u8bae\u76d1\u542c\u5730\u5740<\/code>\u7684<code>default<\/code>\u66ff\u6362\u4e3a<code>default,relay:\/\/&lt;Server_IP&gt;:22067?id=&lt;\u4e2d\u7ee7\u670d\u52a1\u5668Device_ID&gt;<\/code>\uff0c\u7136\u540e\u5c06<code>\u5168\u5c40\u53d1\u73b0\u670d\u52a1\u5668<\/code>\u7684<code>default<\/code>\u66ff\u6362\u4e3a<code>default,https:\/\/&lt;Server_IP&gt;:8443\/?id=&lt;\u53d1\u73b0\u670d\u52a1\u5668Device_ID&gt;<\/code>\uff0c\u7136\u540e\u70b9\u51fb\u4fdd\u5b58\u5c31\u5b8c\u6210\u5566<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/03\/27\/171538.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u6700\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u5728\u670d\u52a1\u5668\u4e0a\u4f7f\u7528<code>docker logs &lt;container_id&gt;<\/code>\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7\u89c2\u5bdf\u5230\u8fde\u63a5\u4fe1\u606f\uff0c\u8bf4\u660e\u670d\u52a1\u5df2\u7ecf\u542f\u7528\u751f\u6548<\/p>\n"},{"title":"Archlinux + KDE Plasma \u5168\u8bb0\u5f55","link":"https:\/\/been.ee\/p\/0-0-0-44\/","pubDate":"Sun, 23 Mar 2025 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-44\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u6700\u8fd1\u82b1\u8d39\u4e24\u5343\u4e94\u767e\u591a\u5757\u94b1\u5165\u624b\u4e86\u4e00\u53f0Honor X14\u7b14\u8bb0\u672c\uff0c\u6253\u7b97\u88c5Linux\u7cfb\u7edf\u65e5\u5e38\u4f7f\u7528\uff0c\u800c\u76ee\u524dLinux Distro\u662f\u4f17\u591a\uff0c\u867d\u7136\u73b0\u9636\u6bb5\u4e5f\u6bd4\u8f83\u5fd9\uff0c\u611f\u89c9\u5728\u8ba1\u7b97\u673a\u4e0a\u82b1\u8d39\u7684\u65f6\u95f4\u548c\u7cbe\u529b\u611f\u89c9\u5927\u4e0d\u5982\u524d\uff0c\u4f46\u521d\u5fc3\u672a\u6cef\uff0c\u8fd8\u662f\u60f3\u6298\u817e\u4e00\u4e0b<\/p>\n<p>\u8003\u8651\u5230\u670d\u52a1\u5668\u957f\u671f\u4f7f\u7528Debian\uff0c\u6240\u4ee5\u5c31\u4e0d\u518d\u8003\u8651Debian\u7cfb\u7684\u7cfb\u7edf\uff0c\u5728Archlinux\u3001Arch\u7cfb\u7684Manjaro\u548cEndeavourOS\u3001Fedora\u548cOpenSUSE\u8fd9\u51e0\u4e2a\u91cc\u601d\u8003\u826f\u4e45\u540e\uff0c\u672c\u7740\u6298\u817e\u7684\u539f\u5219\u6700\u7ec8\u8fd8\u662f\u9009\u62e9\u4e86Archlinux(\u5269\u4f59\u7684\u51e0\u4e2a\u4e5f\u5f88\u611f\u5174\u8da3\uff0c\u7b49\u6765\u65e5\u6709\u673a\u4f1a\u518d\u7814\u7a76\u5427)<\/p>\n<blockquote>\n<p>\u6ce81\uff1a\u672c\u6587\u4ecb\u7ecd\u7684\u662f\u5b89\u88c5<strong>Archlinux\u5355\u7cfb\u7edf<\/strong>(\u8986\u76d6\u78c1\u76d8\u5168\u90e8\u6570\u636e)\uff0c\u5e76\u4e0d\u9002\u7528\u4e8eWindows+Archlinux\u53cc\u7cfb\u7edf(\u5982\u679c\u5b89\u88c5\u53cc\u7cfb\u7edf\u7684\u8bdd\uff0c\u4e2a\u522b\u6b65\u9aa4\u4f1a\u6709\u5dee\u5f02\uff0c\u4f8b\u5982\u5206\u533a\u60c5\u51b5\u4ee5\u53ca\u914d\u7f6egrub\u5f15\u5bfc\u52a0\u8f7d\u7a0b\u5e8f\u7684\u65f6\u5019\u7b49)<\/p>\n<p>\u6ce82\uff1a\u7531\u4e8e\u672c\u6587\u8bb0\u5f55\u7684\u662f<strong>\u5b9e\u4f53\u673a\u5b89\u88c5\u8fc7\u7a0b<\/strong>\uff0c\u6240\u4ee5\u6ca1\u6709\u5b89\u88c5\u8fc7\u7a0b\u7684\u622a\u56fe\uff0c\u4f46\u5df2\u5c3d\u53ef\u80fd\u8be6\u7ec6\u5730\u8bb0\u5f55\u4e86\u64cd\u4f5c\u6b65\u9aa4<\/p><\/blockquote>\n<h2 id=\"\u51c6\u5907\u5de5\u4f5c\">\u51c6\u5907\u5de5\u4f5c\n<\/h2><hr>\n<h3 id=\"\u70e7\u5f55\u955c\u50cf\">\u70e7\u5f55\u955c\u50cf\n<\/h3><hr>\n<p>\u9700\u8981\u51c6\u5907\u4e00\u4e2a<strong>U\u76d8 (\u9700\u8981\u6e05\u7a7a)<\/strong>\uff0c\u4e00\u4e2a\u4e0b\u8f7d\u597d\u7684<strong>Archlinux iso\u955c\u50cf\u6587\u4ef6<\/strong>\uff0c\u4e00\u4e2a<strong>\u70e7\u5f55\u8f6f\u4ef6<\/strong><\/p>\n<p>\u4f7f\u7528\u7684\u70e7\u5f55\u8f6f\u4ef6\u662fRufus\uff0c\u53ef\u4ee5\u76f4\u63a5\u5230<a class=\"link\" href=\"https:\/\/rufus.ie\/zh\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u7f51<\/a>\u4e0b\u8f7d\uff0c\u53ef\u4ee5\u76f4\u63a5\u4e0b\u8f7d\u4fbf\u643a\u7248(portable)\uff0c\u514d\u5b89\u88c5\u65b9\u4fbf\u4f7f\u7528<\/p>\n<p>\u63d2\u597dU\u76d8\uff0c\u6253\u5f00Rufus\uff0c\u9009\u4e2d\u8981\u70e7\u5f55\u7684U\u76d8\u548c\u955c\u50cf\u6587\u4ef6\uff0c\u5206\u533a\u7c7b\u578b\u9009\u62e9GPT\uff0c\u76ee\u6807\u7cfb\u7edf\u7c7b\u578b\u9009\u62e9UEFI\uff0c\u6587\u4ef6\u7cfb\u7edf\u548c\u7c07\u5927\u5c0f\u7528\u9ed8\u8ba4\u7684FAT32\u548c32K\u5b57\u8282\u5c31\u597d\uff0c\u7136\u540e\u70b9\u51fb\u5f00\u59cb\u70e7\u5f55\u7b49\u5f85\u5b8c\u6210\u5373\u53ef<\/p>\n<h3 id=\"bios-\u8bbe\u7f6e\">Bios \u8bbe\u7f6e\n<\/h3><hr>\n<p>\u7535\u8111\u63d2\u597d\u70e7\u5f55\u597d\u7684U\u76d8\uff0c\u5f00\u673a\u540e\u75af\u72c2\u6441<strong>F2<\/strong>(\u9488\u5bf9Honor\u7b14\u8bb0\u672c\uff0c\u5176\u4ed6\u54c1\u724c\u9700\u81ea\u884c\u767e\u5ea6\u6216\u8be2\u95ee\u4eac\u4e1c\u5ba2\u670d\u8fdb\u5165Bios\u7684\u65b9\u6cd5)<\/p>\n<p>\u8fdb\u5165Bios\u754c\u9762\u540e\u627e\u5230<strong>\u5b89\u5168\u542f\u52a8(Secure Boot)\u9009\u9879<\/strong>\uff0c\u9700\u8981\u5c06\u5176\u5173\u95ed(\u8bbe\u7f6e\u4e3adisable)<\/p>\n<p>\u7136\u540e\u627e\u5230<strong>\u5f15\u5bfc\u987a\u5e8f(Boot Sequence)<\/strong>\uff0c\u5c06USB\u542f\u52a8\u8bbe\u4e3a\u9996\u4f4d\uff0c\u70b9\u51fb\u4fdd\u5b58\uff0c\u968f\u540e\u4f1a\u81ea\u52a8\u91cd\u542f\uff0c\u8fdb\u5165U\u76d8\u542f\u52a8\u754c\u9762<\/p>\n<h2 id=\"\u5f00\u59cb\u5b89\u88c5\">\u5f00\u59cb\u5b89\u88c5\n<\/h2><hr>\n<p>\u5728\u4e0a\u4e00\u6b65U\u76d8\u542f\u52a8\u540e\uff0c\u7b49\u5f85\u52a0\u8f7d\u7247\u523b\u5c31\u8fdb\u5165\u5230\u4e86\u5b89\u88c5\u7684\u547d\u4ee4\u884c\u73af\u5883<\/p>\n<h3 id=\"\u8bbe\u7f6e\u7f51\u7edc\">\u8bbe\u7f6e\u7f51\u7edc\n<\/h3><hr>\n<p>\u5982\u679c\u76f4\u63a5\u63d2\u7684\u7f51\u7ebf\uff0c\u4e00\u822c\u4e0d\u9700\u8981\u5728\u8fdb\u884c\u914d\u7f6e\u5c31\u53ef\u4ee5\u8054\u7f51\uff0c\u4f46\u5982\u679c\u4f60\u548c\u6211\u4e00\u6837\u60f3\u7528WiFi\u7f51\u7edc\uff0c\u90a3\u4e48\u9700\u8981\u624b\u52a8\u64cd\u4f5c<\/p>\n<p>\u955c\u50cf\u4e2d\u63d0\u4f9b\u4e86<code>iwctl<\/code>\u8fd9\u4e2a\u5de5\u5177\u53ef\u4ee5\u8ba9\u6211\u4eec\u7ba1\u7406WiFi\u7f51\u7edc\uff0c\u9996\u5148\u6211\u4eec\u76f4\u63a5\u5728\u7ec8\u7aef\u6267\u884c<code>iwctl<\/code>\u5c31\u53ef\u4ee5\u8fdb\u5165<code>iwctl<\/code>\u7684\u547d\u4ee4\u884c\u4ea4\u4e92\u754c\u9762<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">iwctl\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6309\u7167\u4e0b\u9762\u64cd\u4f5c\u8fde\u63a5\u65e0\u7ebf\u7f51\u7edc(\u6ce8\u610f\u8981\u5c06\u4f60\u8981\u8fde\u63a5\u7684\u65e0\u7ebf\u7f51\u7edc\u540d\u79f0\u6539\u4e3a\u82f1\u6587\uff0c\u5426\u5219\u4e2d\u6587\u8f93\u51fa\u4f1a\u4e71\u7801)<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>iwd<span class=\"o\">]<\/span><span class=\"c1\"># device list  # \u67e5\u770b\u7535\u8111\u7684\u65e0\u7ebf\u8bbe\u5907\u5217\u8868\uff0c\u901a\u5e38\u5e94\u8be5\u662fwlan0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>iwd<span class=\"o\">]<\/span><span class=\"c1\"># station [device] scan  # \u626b\u63cf\u65e0\u7ebf\u7f51\u7edc\uff0c\u5c06[device]\u66ff\u6362\u4e3a\u4e0a\u4e00\u6761\u547d\u4ee4\u663e\u793a\u7684\u8bbe\u5907\u540d\u79f0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>iwd<span class=\"o\">]<\/span><span class=\"c1\"># station [device] get-networks  # \u5217\u51fa\u521a\u521a\u626b\u63cf\u5230\u7684\u65e0\u7ebf\u7f51\u7edc\u540d\u79f0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>iwd<span class=\"o\">]<\/span><span class=\"c1\"># station [device] connect [SSID]  # \u8fde\u63a5\u5230\u6307\u5b9a\u7684\u65e0\u7ebf\u7f51\u7edc\uff0c[SSID]\u4e3a\u65e0\u7ebf\u7f51\u7edc\u540d\u79f0\uff0c\u8fd9\u4e00\u6b65\u8fd8\u4f1a\u8981\u6c42\u8f93\u5165\u65e0\u7ebf\u7f51\u7edc\u7684\u5bc6\u7801<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>iwd<span class=\"o\">]<\/span><span class=\"c1\"># exit  # \u9000\u51fa\u4ea4\u4e92\u754c\u9762<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u56de\u5230\u547d\u4ee4\u884c\u754c\u9762\u540e\uff0c\u53ef\u4ee5\u6267\u884c<code>ping baidu.com<\/code>\uff0c\u68c0\u6d4b\u7f51\u7edc\u662f\u5426\u8fde\u901a<\/p>\n<h3 id=\"\u66f4\u65b0\u7cfb\u7edf\u65f6\u95f4\">\u66f4\u65b0\u7cfb\u7edf\u65f6\u95f4\n<\/h3><hr>\n<p>\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u8bbe\u7f6eNTP\u65f6\u95f4\u540c\u6b65<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">timedatectl set-ntp <span class=\"nb\">true<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u78c1\u76d8\u5206\u533a\">\u78c1\u76d8\u5206\u533a\n<\/h3><hr>\n<p>\u4e0b\u9762\u5206\u522b\u4ecb\u7ecd\u4f7f\u7528ext4\u6587\u4ef6\u7cfb\u7edf\u548cbtrfs\u6587\u4ef6\u7cfb\u7edf\u7684\u65b9\u6848\uff0c\u9009\u62e9\u4e00\u79cd\u65b9\u6848\u5373\u53ef<\/p>\n<h4 id=\"\u4f7f\u7528ext4\u6587\u4ef6\u7cfb\u7edf\u65b9\u6848\">\u4f7f\u7528ext4\u6587\u4ef6\u7cfb\u7edf\u65b9\u6848\n<\/h4><hr>\n<p>\u53ef\u4ee5\u901a\u8fc7<code>lsblk<\/code>\u548c<code>fdisk -l<\/code>\u6765\u67e5\u770b\u78c1\u76d8\u548c\u9a71\u52a8\u5668<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">lsblk\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">fdisk -l\n<\/span><\/span><\/code><\/pre><\/div><p>\u56e0\u4e3a\u6211\u53ea\u6709\u4e00\u5757500G\u7684\u56fa\u6001\u786c\u76d8\uff0c\u5206\u533a\u65b9\u6848\u8003\u8651\u4e3a1G\u7684efi\u7cfb\u7edf\u5206\u533a\uff0c200G\u7684\u6839\u76ee\u5f55(<code>\/<\/code>)\u5206\u533a\uff0c\u5269\u4e0b200\u591aG\u5168\u90e8\u4e3a\u7528\u6237\u76ee\u5f55(<code>\/home<\/code>)\u5206\u533a\uff0c\u5927\u5bb6\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u8c03\u6574<\/p>\n<p>\u4ece\u4e0a\u9762\u547d\u4ee4\u8f93\u51fa\u4e2d\u53ef\u4ee5\u627e\u5230\u6709\u4e2a\u5dee\u4e0d\u591a500G\u7684<code>nvme0n1<\/code>\u8bbe\u5907\uff0c\u63a5\u4e0b\u6765\u5c31\u8981\u5728\u8fd9\u5757\u78c1\u76d8\u4e0a\u4f7f\u7528<code>fdisk<\/code>\u8fdb\u884c\u5206\u533a\uff0c\u6309\u5982\u4e0b\u6b65\u9aa4\u64cd\u4f5c\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">fdisk \/dev\/nvme0n1  <span class=\"c1\"># \u6267\u884c\u540e\u8fdb\u5165\u4ea4\u4e92\u754c\u9762\uff0c\u4e0b\u9762\u5747\u4e3a\u5728\u4ea4\u4e92\u754c\u9762\u4e0b\u6309\u987a\u5e8f\u8f93\u5165\u7684\u6307\u4ee4\uff0c\u4f9b\u53c2\u8003<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">g  <span class=\"c1\"># \u521b\u5efaGPT\u5206\u533a\u8868<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">n  <span class=\"c1\"># \u6dfb\u52a0\u65b0\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u5206\u533a\u53f7(Partition Number)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u8d77\u59cb\u6247\u533a(First Sector)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">+1G  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u7ed3\u675f\u6247\u533a(Last Sector)\uff0c\u8fd9\u91cc\u6211\u4eec\u9996\u5148\u521b\u5efa1G\u7684efi\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">t  <span class=\"c1\"># \u4fee\u6539\u5206\u533a\u7c7b\u578b\uff0c\u7531\u4e8e\u65b0\u5efa\u7684\u5206\u533a\u9ed8\u8ba4\u4e3aLinux FileSystem\u7c7b\u578b\uff0c\u9700\u8981\u6539\u4e3aefi\u7c7b\u578b\uff0c\u7531\u4e8e\u73b0\u5728\u53ea\u6709\u4e00\u4e2a\u5206\u533a\uff0c\u6267\u884c\u540e\u9ed8\u8ba4\u9009\u5b9a\u8be5\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">1<\/span>  <span class=\"c1\"># \u8f93\u5165\u5206\u533a\u7c7b\u578b\u7684\u7f16\u53f7\uff0c1\u4ee3\u8868efi\u7c7b\u578b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">n  <span class=\"c1\">#  \u518d\u6dfb\u52a0\u4e00\u4e2a\u65b0\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u5206\u533a\u53f7(Partition Number)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u8d77\u59cb\u6247\u533a(First Sector)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">+200G  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u7ed3\u675f\u6247\u533a(Last Sector)\uff0c\u8fd9\u91cc\u6211\u4eec\u521b\u5efa200G\u7684\/\u76ee\u5f55\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">n  <span class=\"c1\">#  \u518d\u6dfb\u52a0\u4e00\u4e2a\u65b0\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u5206\u533a\u53f7(Partition Number)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u8d77\u59cb\u6247\u533a(First Sector)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u7ed3\u675f\u6247\u533a(Last Sector)\uff0c\u8f93\u5165\u56de\u8f66\u540e\u4f1a\u5c06\u5269\u4f59\u7a7a\u95f4\u5168\u90e8\u5206\u7ed9\u8be5\u5206\u533a\uff0c\u7528\u4e8e\/home\u76ee\u5f55\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">p  <span class=\"c1\"># \u6253\u5370\u521a\u521a\u5206\u914d\u597d\u7684\u5206\u533a\u8868<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">w  <span class=\"c1\"># \u4fdd\u5b58\u5e76\u9000\u51fa<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u4e0a\u8ff0\u6267\u884c\u5b8c\u540e\u6253\u5370\u51fa\u7684\u5206\u533a\u8868\u5982\u4e0b(\u56e0\u4e3a\u662f\u5b89\u88c5\u5b8c\u7cfb\u7edf\u540e\u622a\u56fe\u7684\u6240\u4ee5\u662f\u4e2d\u6587\u663e\u793a)\uff1a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/03\/21\/134012.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u4e0b\u9762\u6211\u4eec\u8981\u5bf9\u521a\u521a\u5206\u7684\u4e09\u4e2a\u5206\u533a\u8fdb\u884c\u683c\u5f0f\u5316\uff0c\u5176\u4e2defi\u5206\u533a\u7528fat32\u683c\u5f0f\u5316\uff0c\u6587\u4ef6\u7cfb\u7edf\u7528\u7684ext4\u683c\u5f0f\u5316\uff0c\u5177\u4f53\u64cd\u4f5c\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mkfs.fat -F32 \/dev\/nvme0n1p1\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mkfs.ext4 \/dev\/nvme0n1p2\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mkfs.ext4 \/dev\/nvme0n1p3\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u5bf9\u683c\u5f0f\u5316\u7684\u5206\u533a\u8fdb\u884c\u6302\u8f7d\uff0c\u5176\u4e2defi\u5206\u533a\u6302\u8f7d\u5230\u542f\u52a8\u76ee\u5f55\uff0c\u5269\u4f59\u4e24\u4e2a\u5206\u533a\u5206\u522b\u6302\u8f7d\u5230\u6839\u76ee\u5f55\u548c\u5bb6\u76ee\u5f55\uff0c<strong>\u8981\u6ce8\u610fLinux\u5206\u533a\u9700\u8981\u4ece\u6839\u5206\u533a\u5f00\u59cb\uff0c\u6240\u4ee5\u5fc5\u987b\u5148\u5c06\u6839\u5206\u533a\u6302\u8f7d\u5230\u6839\u76ee\u5f55\uff0c\u7136\u540e\u521b\u5efa\u76ee\u5f55\u6302\u8f7d\u5176\u4ed6\u5206\u533a<\/strong>\uff0c\u5177\u4f53\u6309\u5982\u4e0b\u547d\u4ee4\u64cd\u4f5c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mount \/dev\/nvme0n1p2 \/mnt  <span class=\"c1\"># \u5148\u6302\u8f7d\u6839\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mkdir \/mnt\/home\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mount \/dev\/nvme0n1p3 \/mnt\/home  <span class=\"c1\"># \u6302\u8f7d\u5bb6\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mkdir \/mnt\/boot\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mount \/dev\/nvme0n1p1 \/mnt\/boot  <span class=\"c1\"># \u6302\u8f7d\u542f\u52a8\u76ee\u5f55<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6302\u8f7d\u540e\u53ef\u4ee5\u7528<code>df<\/code>\u547d\u4ee4\u67e5\u770b\u4e09\u4e2a\u5206\u533a\u662f\u5426\u6302\u8f7d\u597d\u4e86<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">df -h\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u4f7f\u7528btrfs\u6587\u4ef6\u7cfb\u7edf\u65b9\u6848\">\u4f7f\u7528btrfs\u6587\u4ef6\u7cfb\u7edf\u65b9\u6848\n<\/h4><hr>\n<p>\u9996\u5148\u4f7f\u7528lsblk\u67e5\u770b\u78c1\u76d8\u548c\u9a71\u52a8\u5668\u4fe1\u606f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">lsblk\n<\/span><\/span><\/code><\/pre><\/div><p>\u627e\u5230\u8981\u8fdb\u884c\u5206\u533a\u7684\u78c1\u76d8\uff0c\u6211\u7684\u78c1\u76d8\u53ea\u6709\u4e00\u5757\uff0c\u663e\u793a\u4e3a<code>nvme0n1<\/code><\/p>\n<p>\u5206\u533a\u65b9\u6848\u8003\u8651\u4e3a1G\u7684efi\u7cfb\u7edf\u5206\u533a\u300116G\u7684SWAP\u5206\u533a\u3001\u5269\u4e0b\u7684\u4e3abtrfs\u6587\u4ef6\u7cfb\u7edf\u5206\u533a\uff08\u7531\u4e8e\u4f7f\u7528btrfs,\u540e\u9762\u8bbe\u7f6e\u7684\u6839\u5206\u533a\u548c\u7528\u6237\u76ee\u5f55\u5206\u533a\u5b9e\u9645\u4e0a\u53ea\u662f\u540c\u4e00\u4e2a\u5206\u533a\u7684\u4e0d\u540c\u5b50\u5377\uff09<\/p>\n<p>\u63a5\u4e0b\u6765\u4f7f\u7528<code>fdisk<\/code>\u8fdb\u884c\u5206\u533a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">fdisk \/dev\/nvme0n1  <span class=\"c1\"># \u6267\u884c\u540e\u8fdb\u5165\u4ea4\u4e92\u754c\u9762\uff0c\u4e0b\u9762\u5747\u4e3a\u5728\u4ea4\u4e92\u754c\u9762\u4e0b\u6309\u987a\u5e8f\u8f93\u5165\u7684\u6307\u4ee4\uff0c\u4f9b\u53c2\u8003<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">g  <span class=\"c1\"># \u521b\u5efaGPT\u5206\u533a\u8868<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">n  <span class=\"c1\"># \u6dfb\u52a0\u65b0\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u5206\u533a\u53f7(Partition Number)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u8d77\u59cb\u6247\u533a(First Sector)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">+1G  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u7ed3\u675f\u6247\u533a(Last Sector)\uff0c\u8fd9\u91cc\u6211\u4eec\u9996\u5148\u521b\u5efa1G\u7684efi\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">t  <span class=\"c1\"># \u4fee\u6539\u5206\u533a\u7c7b\u578b\uff0c\u7531\u4e8e\u65b0\u5efa\u7684\u5206\u533a\u9ed8\u8ba4\u4e3aLinux FileSystem\u7c7b\u578b\uff0c\u9700\u8981\u6539\u4e3aefi\u7c7b\u578b\uff0c\u7531\u4e8e\u73b0\u5728\u53ea\u6709\u4e00\u4e2a\u5206\u533a\uff0c\u6267\u884c\u540e\u9ed8\u8ba4\u9009\u5b9a\u8be5\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">1<\/span>  <span class=\"c1\"># \u8f93\u5165\u5206\u533a\u7c7b\u578b\u7684\u7f16\u53f7\uff0c1\u4ee3\u8868efi\u7c7b\u578b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">n  <span class=\"c1\">#  \u518d\u6dfb\u52a0\u4e00\u4e2a\u65b0\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u5206\u533a\u53f7(Partition Number)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u8d77\u59cb\u6247\u533a(First Sector)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">+16G  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u7ed3\u675f\u6247\u533a(Last Sector)\uff0c\u8fd9\u91cc\u6211\u4eec\u521b\u5efa16G\u7684Swap\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">t  <span class=\"c1\"># \u4fee\u6539\u5206\u533a\u7c7b\u578b\uff0c\u9700\u8981\u6539\u4e3alinux swap\u7c7b\u578b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">19<\/span>  <span class=\"c1\"># \u8f93\u5165\u5206\u533a\u7c7b\u578b\u7684\u7f16\u53f7\uff0c19\u4ee3\u8868Swap\u7c7b\u578b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">n  <span class=\"c1\">#  \u518d\u6dfb\u52a0\u4e00\u4e2a\u65b0\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u5206\u533a\u53f7(Partition Number)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u8d77\u59cb\u6247\u533a(First Sector)\uff0c\u9ed8\u8ba4\u56de\u8f66\u5c31\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Enter<span class=\"o\">]<\/span>  <span class=\"c1\"># \u8981\u6c42\u8f93\u5165\u7ed3\u675f\u6247\u533a(Last Sector)\uff0c\u8f93\u5165\u56de\u8f66\u540e\u4f1a\u5c06\u5269\u4f59\u7a7a\u95f4\u5168\u90e8\u5206\u7ed9\u8be5\u5206\u533a\uff0c\u7528\u4e8ebtrfs<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">p  <span class=\"c1\"># \u6253\u5370\u521a\u521a\u5206\u914d\u597d\u7684\u5206\u533a\u8868<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">w  <span class=\"c1\"># \u4fdd\u5b58\u5e76\u9000\u51fa<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b8c\u6210\u540e\u53ef\u4ee5\u6267\u884c<code>fdisk -l<\/code>\u67e5\u770b\u5206\u533a\u60c5\u51b5<\/p>\n<p>\u63a5\u4e0b\u6765\u5c06\u5bf9\u5206\u533a\u8fdb\u884c\u683c\u5f0f\u5316<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mkfs.fat -F32 \/dev\/nvme0n1p1  <span class=\"c1\"># \u683c\u5f0f\u5316efi\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mkswap \/dev\/nvme0n1p2  <span class=\"c1\"># \u683c\u5f0f\u5316swap\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mkfs.btrfs -L Arch \/dev\/nvme0n1p3  <span class=\"c1\"># \u683c\u5f0f\u5316btrfs\u5206\u533a\uff0c-L\u8868\u793a\u6307\u5b9a\u5206\u533a\u7684Label<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u9700\u8981\u4e3abtrfs\u5206\u533a\u521b\u5efa\u5b50\u5377\uff0c\u9996\u5148\u6302\u8f7dbtrfs\u5206\u533a\u5230<code>\/mnt<\/code>\u76ee\u5f55<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mount -t btrfs -o <span class=\"nv\">compress<\/span><span class=\"o\">=<\/span>zstd \/dev\/nvme0n1p3 \/mnt  <span class=\"c1\"># compress=zstd\u8868\u793a\u4f7f\u7528zstd\u7b97\u6cd5\u8fdb\u884c\u900f\u660e\u538b\u7f29<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6302\u8f7d\u540e\u53ef\u4ee5\u7528<code>df<\/code>\u547d\u4ee4\u67e5\u770b\u4e09\u4e2a\u5206\u533a\u662f\u5426\u6302\u8f7d\u597d\u4e86<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">df -h\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u4e3abtrfs\u5206\u533a\u521b\u5efa\u4e24\u4e2a\u5b50\u5377\uff0c\u5206\u522b\u7528\u4e8e\u6302\u8f7d\u6839\u76ee\u5f55(<code>\/<\/code>)\u548c\u7528\u6237\u76ee\u5f55(<code>\/home<\/code>)<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">btrfs subvolume create \/mnt\/@  <span class=\"c1\"># \u521b\u5efa\/\u76ee\u5f55\u5b50\u5377<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">btrfs subvolume create \/mnt\/@home  <span class=\"c1\"># \u521b\u5efa\/home\u76ee\u5f55\u5b50\u5377<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u67e5\u770b\u5b50\u5377\u60c5\u51b5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">btrfs subvolume list -p \/mnt\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5378\u8f7d\u6389<code>\/mnt<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">umount \/mnt\n<\/span><\/span><\/code><\/pre><\/div><p>\u63a5\u4e0b\u6765\u4ece\u6839\u76ee\u5f55\u5f00\u59cb\u6302\u8f7dbtrfs\u5b50\u5377\u3001efi\u5206\u533a\u548cSwap\u5206\u533a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">mount -t btrfs -o <span class=\"nv\">subvol<\/span><span class=\"o\">=<\/span>\/@,compress<span class=\"o\">=<\/span>zstd,ssd,space_cache<span class=\"o\">=<\/span>v2,noatime \/dev\/nvme0n1p3 \/mnt  <span class=\"c1\"># \u6302\u8f7d\u6839\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mkdir \/mnt\/home  <span class=\"c1\"># \u521b\u5efa\/home\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mount -t btrfs -o <span class=\"nv\">subvol<\/span><span class=\"o\">=<\/span>\/@home,compress<span class=\"o\">=<\/span>zstd,ssd,space_cache<span class=\"o\">=<\/span>v2,noatime \/dev\/nvme0n1p3 \/mnt\/home  <span class=\"c1\"># \u6302\u8f7d\/home\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mkdir \/mnt\/boot  <span class=\"c1\"># \u521b\u5efa\/boot\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mount \/dev\/nvme0n1p1 \/mnt\/boot  <span class=\"c1\"># \u6302\u8f7d\/boot\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">swapon \/dev\/nvme0n1p2  <span class=\"c1\"># \u6302\u8f7d\u4ea4\u6362\u5206\u533a<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u4f7f\u7528<code>df<\/code>\u548c<code>free<\/code>\u547d\u4ee4\u67e5\u770b\u6302\u8f7d\u60c5\u51b5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">df -h\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">free -h\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u4fee\u6539\u8f6f\u4ef6\u6e90\">\u4fee\u6539\u8f6f\u4ef6\u6e90\n<\/h3><hr>\n<p>\u4e3a\u4e86\u66f4\u5feb\u7684\u8fdb\u884c\u540e\u7eed\u8f6f\u4ef6\u5305\u7684\u4e0b\u8f7d\u548c\u5b89\u88c5\uff0c\u6211\u4eec\u9700\u8981\u5c06\u8f6f\u4ef6\u6e90\u66ff\u6362\u4e3a\u56fd\u5185\u955c\u50cf<\/p>\n<p>\u901a\u8fc7\u6267\u884c\u4e0b\u9762\u6307\u4ee4\u53ef\u4ee5\u5c06\u8f6f\u4ef6\u6e90\u66ff\u6362\u4e3a\u5b98\u65b9\u6307\u5b9a\u7684CN\u533a\u57df\u955c\u50cf\u6e90<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">curl -L -o \/etc\/pacman.d\/mirrorlist <span class=\"s2\">&#34;https:\/\/www.archlinux.org\/mirrorlist\/?country=CN&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u7f16\u8f91<code>\/etc\/pacman.d\/mirrorlist<\/code>\uff0c\u53ea\u4fdd\u7559\u4e0b\u9762\u51e0\u4e2a\u6e90\u5c31\u597d\uff0c\u5c06\u5176\u4ed6\u7684\u90fd\u5220\u6389(\u867d\u7136\u90fd\u662f\u56fd\u5185\u7684\uff0c\u4f46\u6709\u4e9b\u6e90\u901f\u5ea6\u8fd8\u662f\u4e0d\u884c)<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">## China  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> https:\/\/mirrors.tuna.tsinghua.edu.cn\/archlinux\/<span class=\"nv\">$repo<\/span>\/os\/<span class=\"nv\">$arch<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> https:\/\/mirrors.ustc.edu.cn\/archlinux\/<span class=\"nv\">$repo<\/span>\/os\/<span class=\"nv\">$arch<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> https:\/\/mirrors.xjtu.edu.cn\/archlinux\/<span class=\"nv\">$repo<\/span>\/os\/<span class=\"nv\">$arch<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> http:\/\/mirrors.zju.edu.cn\/archlinux\/<span class=\"nv\">$repo<\/span>\/os\/<span class=\"nv\">$arch<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u5b89\u88c5\u4e00\u4e9b\u57fa\u7840\u8f6f\u4ef6\u5305\">\u5b89\u88c5\u4e00\u4e9b\u57fa\u7840\u8f6f\u4ef6\u5305\n<\/h3><hr>\n<p>\u9700\u8981\u6ce8\u610f\uff0c\u4e0b\u9762\u7684\u547d\u4ee4\u4e2d\u7684<code>base<\/code>\u3001<code>linux<\/code>\u548c<code>linux-firmware<\/code>\u662f\u5fc5\u987b\u8981\u88c5\u7684\uff0c<code>amd-ucode<\/code>\u548c<code>intel-ucode<\/code>\u6839\u636e\u5904\u7406\u5668\u7684\u724c\u5b50\u9009\u4e00\u4e2a\u5b89\u88c5\uff0c\u5176\u4f59\u7684\u6839\u636e\u60c5\u51b5\u5b89\u88c5\uff0c\u4e5f\u53ef\u4ee5\u540e\u7eed\u518d\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">pacstrap \/mnt base linux linux-firmware amd-ucode intel-ucode bash-completion vim networkmanager pacman-contrib sudo\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u6267\u884c\u4e0b\u9762\u6307\u4ee4\u751f\u6210<code>fstab<\/code>\u6587\u4ef6\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">genfstab -U \/mnt &gt;&gt; \/mnt\/etc\/fstab\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5207\u6362\u7cfb\u7edf\u73af\u5883\u5230\u65b0\u7cfb\u7edf\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">arch-chroot \/mnt\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u8bbe\u7f6e\u65f6\u533a\u548c\u4e3b\u673a\u540d\">\u8bbe\u7f6e\u65f6\u533a\u548c\u4e3b\u673a\u540d\n<\/h3><hr>\n<p>\u5c06\u65f6\u533a\u8bbe\u4e3a\u4e0a\u6d77<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">ln -sf \/usr\/share\/zoneinfo\/Asia\/Shanghai \/etc\/localtime  <span class=\"c1\"># \u5c06\u65f6\u533a\u8bbe\u4e3a\u4e0a\u6d77<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hwclock --systohc  <span class=\"c1\"># \u5c06\u7cfb\u7edf\u65f6\u95f4\u540c\u6b65\u5230\u786c\u4ef6\u65f6\u95f4<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7f16\u8f91<code>\/etc\/hostname<\/code>\u6587\u4ef6\uff0c\u8bbe\u7f6e\u4e00\u4e2a\u4e3b\u673a\u540d\uff0c\u4f8b\u5982<code>mypc<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">vim \/etc\/hostname\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u7f16\u8f91<code>\/etc\/hosts<\/code>\u6587\u4ef6\uff0c\u5185\u5bb9\u5982\u4e0b\uff0c\u6ce8\u610f\u5c06\u6587\u4ef6\u4e2d\u7684<code>mypc.localdomain<\/code>\u548c<code>mypc<\/code>\u6309\u7167\u81ea\u5df1\u7684\u4e3b\u673a\u540d\u8fdb\u884c\u5339\u914d\u4fee\u6539<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">127.0.0.1 \u00a0\u00a0\u00a0localhost  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">::1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0localhost \u00a0\u00a0\u00a0ip6-localhost \u00a0\u00a0\u00a0ip6-loopback  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">127.0.0.1 \u00a0\u00a0\u00a0mypc.localdomain \u00a0\u00a0\u00a0mypc\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u7f51\u7edc\u8bbe\u7f6e\">\u7f51\u7edc\u8bbe\u7f6e\n<\/h3><hr>\n<p>\u6309\u4e0b\u9762\u6307\u4ee4\u5b89\u88c5\u5e76\u542f\u7528\u7f51\u7edc\u7ba1\u7406\u7a0b\u5e8f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">pacman -S dhcpcd iwd networkmanager network-manager-applet\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl <span class=\"nb\">enable<\/span> dhcpcd\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl <span class=\"nb\">enable<\/span> iwd\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl <span class=\"nb\">enable<\/span> NetworkManager\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u672c\u5730\u5316\">\u672c\u5730\u5316\n<\/h3><hr>\n<p>\u7f16\u8f91<code>\/etc\/locale.gen<\/code>\u6587\u4ef6\uff0c\u5c06\u4e0b\u9762\u4e09\u884c\u5185\u5bb9\u524d\u9762\u7684#\u53bb\u6389<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">en_US.UTF-8 UTF-8\n<\/span><\/span><span class=\"line\"><span class=\"cl\">zh_CN.UTF-8 UTF-8\n<\/span><\/span><span class=\"line\"><span class=\"cl\">zh_HK.UTF-8 UTF-8\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u751f\u6210\u672c\u5730\u5316\u914d\u7f6e\u6587\u4ef6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">locale-gen\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u521b\u5efa\u4e00\u4e2a<code>\/etc\/locale.conf<\/code>\u6587\u4ef6\uff0c\u5199\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">LANG<\/span><span class=\"o\">=<\/span>en_US.UTF-8\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u8bbe\u7f6e-root-\u5bc6\u7801\">\u8bbe\u7f6e root \u5bc6\u7801\n<\/h3><hr>\n<p>\u63a5\u4e0b\u6765\u6267\u884c<code>passwd<\/code>\u8bbe\u7f6eroot\u5bc6\u7801(\u975e\u5e38\u91cd\u8981\uff0c\u52a1\u5fc5\u7262\u8bb0)<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">passwd root\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u6dfb\u52a0\u65b0\u7528\u6237\">\u6dfb\u52a0\u65b0\u7528\u6237\n<\/h3><hr>\n<p>\u4e0b\u9762\u6dfb\u52a0\u4e00\u4e2a\u5e73\u5e38\u767b\u9646\u4f7f\u7528\u7684\u666e\u901a\u7528\u6237<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">useradd -m -G wheel -s \/bin\/bash &lt;username&gt;  <span class=\"c1\"># \u521b\u5efa\u7528\u6237\u5e76\u6dfb\u52a0\u5230wheel\u7ec4\uff0c\u5c06&lt;username&gt;\u66ff\u6362\u4e3a\u81ea\u5df1\u7684\u7528\u6237\u540d<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">passwd &lt;username&gt;  <span class=\"c1\"># \u4e3a\u65b0\u7528\u6237\u8bbe\u7f6e\u5bc6\u7801\uff0c\u540c\u6837\u5c06&lt;username&gt;\u66ff\u6362\u4e3a\u81ea\u5df1\u7684\u7528\u6237\u540d<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5c06\u5176\u6dfb\u52a0\u81f3<code>sudoers<\/code>\u7528\u4e8e\u4f7f\u7528<code>sudo<\/code>\u547d\u4ee4\uff0c\u7531\u4e8e\u6211\u4eec\u521b\u5efa\u7528\u6237\u7684\u65f6\u5019\u5c06\u5176\u6dfb\u52a0\u81f3\u4e86<code>wheel<\/code>\u7ec4(<code>wheel<\/code>\u7ec4\u662f\u4e00\u4e2a\u7279\u6b8a\u7ec4\uff0c\u901a\u5e38\u4e0e\u7ba1\u7406\u5458\u6743\u9650\u76f8\u5173)\uff0c\u56e0\u6b64\u6211\u4eec\u53ea\u9700\u8981\u786e\u4fdd<code>wheel<\/code>\u7ec4\u88ab\u6dfb\u52a0\u5230<code>\/etc\/sudoers<\/code>\u6587\u4ef6\u4e2d\u5373\u53ef<\/p>\n<p>\u6267\u884c<code>visudo<\/code>\u547d\u4ee4\u7f16\u8f91<code>\/etc\/sudoers<\/code>\u6587\u4ef6<\/p>\n<p>\u7136\u540e\u627e\u5230\u4e0b\u9762\u8fd9\u4e00\u884c\uff0c\u5c06\u6700\u524d\u9762\u7684#\u53bb\u6389\u5373\u53ef<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># %wheel ALL=(ALL:ALL) ALL<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6267\u884c\u5b8c\u540e\uff0c\u4ee5\u540e<code>wheel<\/code>\u7ec4\u7684\u6240\u6709\u6210\u5458\u90fd\u5c06\u53ef\u4ee5\u4f7f\u7528<code>sudo<\/code>\u547d\u4ee4<\/p>\n<h3 id=\"\u5b89\u88c5\u5f15\u5bfc\u52a0\u8f7d\u7a0b\u5e8f\">\u5b89\u88c5\u5f15\u5bfc\u52a0\u8f7d\u7a0b\u5e8f\n<\/h3><hr>\n<p>\u4f7f\u7528<code>grub<\/code>\u4f5c\u4e3a\u5f15\u5bfc\u52a0\u8f7d\u7a0b\u5e8f\uff0c\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5\u76f8\u5173\u7a0b\u5e8f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">pacman -S grub efibootmgr efivar\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5b89\u88c5<code>grub<\/code>\u5230efi\u5206\u533a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">grub-install --target<span class=\"o\">=<\/span>x86_64-efi --efi-directory<span class=\"o\">=<\/span>\/boot --bootloader-id<span class=\"o\">=<\/span>GRUB --recheck\n<\/span><\/span><\/code><\/pre><\/div><p>\u6700\u540e\u751f\u6210<code>grub<\/code>\u914d\u7f6e\u6587\u4ef6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">grub-mkconfig -o \/boot\/grub\/grub.cfg\n<\/span><\/span><\/code><\/pre><\/div><p>\u6ce8\u610f\u8981\u786e\u4fdd\u6574\u4e2a\u8fc7\u7a0b\u6ca1\u6709\u4efb\u4f55\u9519\u8bef<\/p>\n<h3 id=\"\u9000\u51fachroot\u73af\u5883\u5e76\u91cd\u542f\">\u9000\u51fachroot\u73af\u5883\u5e76\u91cd\u542f\n<\/h3><hr>\n<p>\u6309\u987a\u5e8f\u6267\u884c\u4e0b\u9762\u547d\u4ee4\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nb\">exit<\/span>  <span class=\"c1\"># \u9000\u56de\u5b89\u88c5\u73af\u5883<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">umount -R \/mnt  <span class=\"c1\"># \u5378\u8f7d\u5206\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">reboot  <span class=\"c1\"># \u91cd\u542f<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5230\u6b64\u4e3a\u6b62\uff0c\u7cfb\u7edf\u5c42\u9762\u7684\u5b89\u88c5\u8fc7\u7a0b\u5c31\u5168\u90e8\u5b8c\u6210\u4e86<\/p>\n<p>\u53e6\u5916\uff0c\u8fd9\u91cc\u91cd\u542f\u7684\u65f6\u5019\u53ef\u4ee5\u5148\u4e0d\u8981\u62d4U\u76d8\uff0c\u5148\u518d\u8fdb\u4e00\u6b21Bios\u754c\u9762\u628a\u5f15\u5bfc\u987a\u5e8f\u6539\u56de\u53bb\uff0c\u4e5f\u5c31\u662f\u5c06U\u76d8\u9009\u9879\u4e0b\u79fb\uff0c\u78c1\u76d8\u9009\u9879\u4e0a\u79fb\uff0c\u7136\u540e\u4fdd\u5b58\u9000\u51fa\u540e\u62d4\u51faU\u76d8\u5c31\u597d\u4e86<\/p>\n<h2 id=\"\u5b89\u88c5\u540e\u7684\u914d\u7f6e\u5de5\u4f5c\">\u5b89\u88c5\u540e\u7684\u914d\u7f6e\u5de5\u4f5c\n<\/h2><hr>\n<h3 id=\"\u5237\u65b0\u5305\u6570\u636e\u5e93\u5e76\u5347\u7ea7\u7cfb\u7edf\u4e2d\u6240\u6709\u8f6f\u4ef6\u5305\">\u5237\u65b0\u5305\u6570\u636e\u5e93\u5e76\u5347\u7ea7\u7cfb\u7edf\u4e2d\u6240\u6709\u8f6f\u4ef6\u5305\n<\/h3><hr>\n<p>\u5728\u4e0a\u4e00\u6b65\u91cd\u542f\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528\u4e4b\u524d\u521b\u5efa\u7684\u666e\u901a\u7528\u6237\u767b\u5f55\uff0c\u7136\u540e\u5728\u7ec8\u7aef\u754c\u9762\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u6765\u66f4\u65b0\u7cfb\u7edf\u5168\u90e8\u8f6f\u4ef6\u5305<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -Syu  <span class=\"c1\"># \u8fd9\u4e2a\u547d\u4ee4\u4f1a\u5148\u66f4\u65b0\u672c\u5730\u7684\u8f6f\u4ef6\u5305\u6570\u636e\u5e93\uff08\u5305\u62ec\u6240\u6709\u4ed3\u5e93\u7684\u7d22\u5f15\uff09\uff0c\u7136\u540e\u5c06\u7cfb\u7edf\u4e2d\u6240\u6709\u5df2\u5b89\u88c5\u7684\u8f6f\u4ef6\u5305\u5347\u7ea7\u5230\u6700\u65b0\u7248\u672c<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u540e\u7eed\u66f4\u65b0\u7684\u65f6\u5019\u5982\u679c\u9047\u5230\u7b7e\u540d\u9a8c\u8bc1\u9519\u8bef\uff0c\u53ef\u4ee5\u6309\u4e0b\u9762\u6307\u4ee4\u6267\u884c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S archlinux-keyring  <span class=\"c1\"># \u5148\u66f4\u65b0\u5bc6\u94a5<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Syu  <span class=\"c1\"># \u518d\u66f4\u65b0\u7cfb\u7edf<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u4e00\u8def\u56de\u8f66\u5373\u53ef<\/p>\n<h3 id=\"\u914d\u7f6e\u56fe\u5f62\u5316\u754c\u9762-gui\">\u914d\u7f6e\u56fe\u5f62\u5316\u754c\u9762 (GUI)\n<\/h3><hr>\n<h4 id=\"\u5b89\u88c5kde-plasma\">\u5b89\u88c5KDE Plasma\n<\/h4><hr>\n<p>\u672c\u6b21\u5b89\u88c5\u4f7f\u7528<strong>KDE Plasma<\/strong>\u684c\u9762\u73af\u5883\uff08\u540e\u9762\u6211\u8fd8\u5199\u4e86\u4e00\u7bc7\u4f7f\u7528<strong>Hyprland<\/strong>\u7a97\u53e3\u7ba1\u7406\u5668\u7684\u6587\u7ae0\uff0c\u5982\u6709\u9700\u8981\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"..\/0-0-0-52\/\" >\u8fd9\u7bc7\u6587\u7ae0<\/a>\uff09\uff0c\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S plasma-meta konsole dolphin  <span class=\"c1\"># konsole\u548cdolphin\u5206\u522b\u662f\u7ec8\u7aef\u6a21\u62df\u5668\u548c\u6587\u4ef6\u7ba1\u7406\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -S wayland  <span class=\"c1\"># \u4f7f\u7528Wayland\u66ff\u4ee3X11\u7ba1\u7406\u56fe\u5f62\u754c\u9762\uff0cplasma 6\u9ed8\u8ba4\u4e5f\u4f1a\u5b89\u88c5X11\uff0c\u4f46\u636e\u8bf4plasma 7\u540e\u5c06\u9ed8\u8ba4\u4f7f\u7528Wayland<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u542f\u7528\u56fe\u5f62\u5316\u754c\u9762\u767b\u9646\u7ba1\u7406\u5668sddm\">\u542f\u7528\u56fe\u5f62\u5316\u754c\u9762\u767b\u9646\u7ba1\u7406\u5668SDDM\n<\/h4><hr>\n<p>\u5b89\u88c5\u597d\u684c\u9762\u73af\u5883\u540e\uff0c\u9700\u8981\u542f\u7528<code>SDDM<\/code>\u670d\u52a1\u6765\u542f\u52a8\u684c\u9762\u4f1a\u8bdd\uff0c\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u542f\u7528\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo systemctl <span class=\"nb\">enable<\/span> sddm  <span class=\"c1\"># \u8bbe\u7f6e\u5f00\u673a\u81ea\u542f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo systemctl start sddm  <span class=\"c1\"># \u76f4\u63a5\u542f\u52a8sddm\uff0c\u6267\u884c\u540e\u4f1a\u76f4\u63a5\u8df3\u8f6c\u5230\u56fe\u5f62\u5316\u767b\u5f55\u754c\u9762<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p><strong>\u9996\u6b21\u8fdb\u5165\u56fe\u5f62\u5316\u767b\u5f55\u754c\u9762\u540e\uff0c\u9ed8\u8ba4\u4f7f\u7528X11\u7ba1\u7406\uff0c\u5982\u679c\u5e0c\u671b\u7528Wayland\u7ba1\u7406\uff0c\u9700\u8981\u624b\u52a8\u5728\u5de6\u4e0b\u89d2\u66f4\u6539\u4e3aWayland<\/strong><\/p>\n<h4 id=\"\u56fe\u5f62\u5316\u754c\u9762\u7f51\u7edc\u7ba1\u7406\u8bbe\u7f6e\">\u56fe\u5f62\u5316\u754c\u9762\u7f51\u7edc\u7ba1\u7406\u8bbe\u7f6e\n<\/h4><hr>\n<p>\u6211\u4eec\u5728\u5b89\u88c5\u7cfb\u7edf\u7684\u65f6\u5019\u4f7f\u7528<code>iwctl<\/code>\u8fde\u63a5\u4e86WiFi\u7f51\u7edc\uff0c\u4e4b\u540e\u4f1a\u5c06\u8be5\u7f51\u7edc\u8bb0\u4f4f\uff0c\u4f46\u5728\u56fe\u5f62\u754c\u9762\u4e2d\u6211\u4eec\u4f7f\u7528<code>NetworkManager<\/code>\u8fdb\u884c\u7ba1\u7406\uff0c\u4e3a\u4e86\u907f\u514d\u51b2\u7a81\uff0c\u9700\u8981\u8ba9<code>iwctl<\/code>\u5fd8\u8bb0\u4e4b\u524d\u7684\u8fde\u63a5<\/p>\n<p>\u6267\u884c<code>iwctl<\/code>\u8fdb\u5165\u4ea4\u4e92\u754c\u9762\uff0c\u7136\u540e\u6309\u5982\u4e0b\u64cd\u4f5c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">[iwd] known-networks list  # \u5217\u51fa\u4ee5\u524d\u8fde\u63a5\u8fc7\u7684\u7f51\u7edc\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">[iwd] known-networks &lt;SSID&gt; forget  # \u5fd8\u8bb0\u5df2\u77e5\u7684\u7f51\u7edc\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u5f00\u542f32\u4f4d\u652f\u6301\u5e93\u548carchlinuxcn\u4e2d\u6587\u793e\u533a\u5e93\">\u5f00\u542f32\u4f4d\u652f\u6301\u5e93\u548cArchlinuxcn\u4e2d\u6587\u793e\u533a\u5e93\n<\/h3><hr>\n<p>\u9700\u8981\u7f16\u8f91<code>\/etc\/pacman.conf<\/code>\u6587\u4ef6\uff0c\u5c06<code>[multilib]<\/code>\u90e8\u5206\u7684\u4e24\u884c\u6ce8\u91ca\u53bb\u6389\u5373\u53ef\u5f00\u542f32\u4f4d\u5e93\u652f\u6301<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>multilib<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Include<\/span> <span class=\"o\">=<\/span> \/etc\/pacman.d\/mirrorlist\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5728\u6587\u4ef6\u6700\u4e0b\u9762\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\u6765\u6dfb\u52a0<code>Archlinuxcn<\/code>\u6e90\uff0c\u9009\u4e00\u4e2a\u6dfb\u52a0\u5373\u53ef\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>archlinuxcn<span class=\"o\">]<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> https:\/\/mirrors.ustc.edu.cn\/archlinuxcn\/<span class=\"nv\">$arch<\/span> <span class=\"c1\"># \u4e2d\u56fd\u79d1\u5b66\u6280\u672f\u5927\u5b66\u5f00\u6e90\u955c\u50cf\u7ad9 <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> https:\/\/mirrors.tuna.tsinghua.edu.cn\/archlinuxcn\/<span class=\"nv\">$arch<\/span> <span class=\"c1\"># \u6e05\u534e\u5927\u5b66\u5f00\u6e90\u8f6f\u4ef6\u955c\u50cf\u7ad9 <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> https:\/\/mirrors.hit.edu.cn\/archlinuxcn\/<span class=\"nv\">$arch<\/span> <span class=\"c1\"># \u54c8\u5c14\u6ee8\u5de5\u4e1a\u5927\u5b66\u5f00\u6e90\u955c\u50cf\u7ad9 <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Server<\/span> <span class=\"o\">=<\/span> https:\/\/repo.huaweicloud.com\/archlinuxcn\/<span class=\"nv\">$arch<\/span> <span class=\"c1\"># \u534e\u4e3a\u5f00\u6e90\u955c\u50cf\u7ad9<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c\u4e0b\u9762\u6307\u4ee4\u5237\u65b0\u6570\u636e\u5e93\u5e76\u66f4\u65b0\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S archlinuxcn-keyring  <span class=\"c1\"># \u5bfc\u5165GPG key<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -Syyu  <span class=\"c1\"># \u5237\u65b0\u6570\u636e\u5e93\u5e76\u66f4\u65b0<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"grub\u7f8e\u5316\">Grub\u7f8e\u5316\n<\/h3><hr>\n<p><a class=\"link\" href=\"https:\/\/www.gnome-look.org\/browse\/\"  target=\"_blank\" rel=\"noopener\"\n    >GNOME-LOOK<\/a>\u7f51\u7ad9\u63d0\u4f9b\u4e86\u8bb8\u591aGrub\u7f8e\u5316\u65b9\u6848\uff0c\u8fdb\u5165\u7f51\u7ad9\u540e\u627e\u5230<code>Categories<\/code> - <code>Grub Themes<\/code>\u5373\u53ef\u67e5\u770b<\/p>\n<p>\u672c\u6b21\u914d\u7f6e\u4f7f\u7528\u4e86\u8fd9\u4e2a\u9879\u76ee\uff1a<a class=\"link\" href=\"https:\/\/github.com\/vinceliuice\/grub2-themes\"  target=\"_blank\" rel=\"noopener\"\n    >grub2-themes<\/a><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/03\/23\/111758.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h3 id=\"konsole\u914d\u7f6e\">Konsole\u914d\u7f6e\n<\/h3><hr>\n<p>\u6253\u5f00<code>Konsole<\/code>\u540e\uff0c\u6309\u987a\u5e8f\u627e\u5230\u5e76\u6253\u5f00<code>\u8bbe\u7f6e <\/code>- <code>\u914d\u7f6eKonsole<\/code> - <code>\u914d\u7f6e\u65b9\u6848<\/code> - <code>\u65b0\u5efa<\/code>\uff0c\u6253\u5f00\u65b0\u5efa\u914d\u7f6e\u65b9\u6848\u7a97\u53e3\uff0c\u968f\u4fbf\u8d77\u4e00\u4e2a\u914d\u7f6e\u540d\u5b57\u5e76\u52fe\u9009<code>\u9ed8\u8ba4\u914d\u7f6e\u65b9\u6848<\/code>\u9009\u9879\uff1b\u7136\u540e\u6253\u5f00<code>\u5916\u89c2<\/code>\uff0c\u9009\u62e9<code>Breeze\u5fae\u98ce<\/code>\uff0c\u70b9\u51fb<code>\u7f16\u8f91<\/code>\uff0c\u5c06<code>\u900f\u660e\u5ea6<\/code>\u6539\u4e3a<code>10%<\/code>\uff1b\u8fd4\u56de<code>\u5916\u89c2<\/code>\uff0c\u5c06<code>\u5b57\u4f53<\/code>\u6539\u4e3a\u559c\u6b22\u7684\u5b57\u4f53\uff0c\u4f8b\u5982<code>Cascadia Code<\/code><\/p>\n<h3 id=\"\u5b89\u88c5\u914d\u7f6e\u5e38\u7528\u8f6f\u4ef6\u548c\u670d\u52a1\">\u5b89\u88c5\u914d\u7f6e\u5e38\u7528\u8f6f\u4ef6\u548c\u670d\u52a1\n<\/h3><hr>\n<h4 id=\"\u84dd\u7259\u670d\u52a1\">\u84dd\u7259\u670d\u52a1\n<\/h4><hr>\n<p>\u767b\u9646\u7cfb\u7edf\u540e\u4f1a\u53d1\u73b0\u9ed8\u8ba4\u662f\u6ca1\u6709\u542f\u7528\u84dd\u7259\u670d\u52a1\u7684\uff0c\u9700\u8981\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u542f\u7528\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo systemctl <span class=\"nb\">enable<\/span> --now bluetooth\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"amd-gpu\u9a71\u52a8\u5b89\u88c5\">AMD GPU\u9a71\u52a8\u5b89\u88c5\n<\/h4><hr>\n<p>\u5982\u679c\u4f60\u7684\u663e\u5361\u8ddf\u6211\u4e00\u6837\u662fAMD\uff0c\u90a3\u4e48\u53ef\u4ee5\u6267\u884c\u4e0b\u9762\u547d\u4ee4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u4ee5\u5b89\u88c5<code>nvtop<\/code>\u7a0b\u5e8f\u6765\u67e5\u770bGPU\u5229\u7528\u7387<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S nvtop\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"proxychains\">Proxychains\n<\/h4><hr>\n<p>\u547d\u4ee4\u884c\u4ee3\u7406\u5de5\u5177<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S proxychains\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"yay\u548cparu\">yay\u548cparu\n<\/h4><hr>\n<p>\u5b89\u88c5<code>aur<\/code>\u52a9\u624b<code>yay<\/code>\u548c<code>paru<\/code>\uff0c\u65b9\u4fbf\u540e\u7eed\u7528\u6765\u5b89\u88c5\u8f6f\u4ef6<\/p>\n<p>\u8fd9\u91cc\u66f4\u63a8\u8350\u7528<code>paru<\/code>\uff0c\u5b83\u662f<code>yay<\/code>\u4f5c\u8005\u7528<code>rust<\/code>\u5199\u7684\u4e00\u6b3e\u5de5\u5177\uff0c\u5b83\u548c<code>yay<\/code>\u5728\u529f\u80fd\u548c\u4f7f\u7528\u4e0a\u51e0\u4e4e\u4e00\u6837\uff0c\u540c\u65f6<code>paru<\/code>\u53ef\u4ee5\u4f7f\u7528<code>proxychains<\/code>\u8fdb\u884c\u4ee3\u7406\u800c<code>yay<\/code>\u4e0d\u53ef\u4ee5\uff08\u4e0e<code>go<\/code>\u8bed\u8a00\u6709\u5173\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S yay paru base-devel\n<\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d\uff0c<code>base-devel<\/code>\u5305\u542b\u4e86\u4f7f\u7528<code>yay<\/code>\u548c<code>paru<\/code>\u5b89\u88c5\u8f6f\u4ef6\u5fc5\u9700\u7684\u4f9d\u8d56<\/p>\n<p>\u5982\u679c\u9700\u8981\u8ba9<code>yay<\/code>\u547d\u4ee4\u8d70\u4ee3\u7406\uff0c\u53ef\u4ee5\u5728<code>.bashrc<\/code>\u4e2d\u52a0\u5165\u4e0b\u9762\u4e00\u884c\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nb\">alias<\/span> <span class=\"nv\">yay<\/span><span class=\"o\">=<\/span><span class=\"s1\">&#39;https_proxy=socks5:\/\/127.0.0.1:10808 http_proxy=socks5:\/\/127.0.0.1:10808 yay&#39;<\/span>  <span class=\"c1\"># \u66f4\u6539\u4e3a\u81ea\u5df1\u7684socks\u670d\u52a1\u5730\u5740<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u6d4f\u89c8\u5668\">\u6d4f\u89c8\u5668\n<\/h4><hr>\n<p>\u5b89\u88c5Firefox\u6d4f\u89c8\u5668<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S firefox\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -S firefox-i18n-zh-cn\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u5b57\u4f53\">\u5b57\u4f53\n<\/h4><hr>\n<p>\u5b89\u88c5\u51e0\u4e2a\u5f00\u6e90\u4e2d\u6587\u5b57\u4f53<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts wqy-microhei wqy-microhei-lite wqy-bitmapfont wqy-zenhei\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u8c37\u6b4c\u5f00\u6e90\u5b57\u4f53\u53ca\u8868\u60c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra\n<\/span><\/span><\/code><\/pre><\/div><p><strong>\u5b89\u88c5\u5b8c\u540e\uff0c\u5c31\u53ef\u4ee5\u5230\u7cfb\u7edf\u8bbe\u7f6e\u91cc\u4fee\u6539\u7cfb\u7edf\u8bed\u8a00\u5566<\/strong><\/p>\n<p>\u4fee\u6539\u540e\uff0c\u53ef\u4ee5\u4ece\u7f51\u7edc\u4e0a\u4e0b\u8f7d\u81ea\u5df1\u559c\u6b22\u7684\u5b57\u4f53\u6587\u4ef6\uff0c\u4f8b\u5982\u6211\u901a\u5e38\u4f1a\u4e0b\u8f7d<strong>LXGWWenkai<\/strong>\u548c<strong>Cascadia Code<\/strong>\uff0c\u7136\u540e\u5230<code>\u7cfb\u7edf\u8bbe\u7f6e<\/code> - <code>\u6587\u5b57\u548c\u5b57\u4f53<\/code> - <code>\u5b57\u4f53\u7ba1\u7406<\/code>\u91cc\u9762\u6dfb\u52a0\u5b57\u4f53\uff0c\u7136\u540e\u5728<code>\u5b57\u4f53<\/code>\u9009\u9879\u4e2d\u8bbe\u7f6e\u4e3a\u7cfb\u7edf\u5b57\u4f53\uff0c\u8ba9\u7cfb\u7edf\u7684\u6587\u5b57\u53d8\u5f97\u66f4\u52a0\u597d\u770b<\/p>\n<h4 id=\"\u56fe\u7247\u67e5\u770b\u5668\">\u56fe\u7247\u67e5\u770b\u5668\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S gwenview\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u538b\u7f29\u8f6f\u4ef6\">\u538b\u7f29\u8f6f\u4ef6\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S ark <span class=\"c1\"># \u538b\u7f29\u8f6f\u4ef6\uff0c\u5728 dolphin \u4e2d\u53ef\u7528\u53f3\u952e\u89e3\u538b\u538b\u7f29\u5305<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u8f93\u5165\u6cd5\">\u8f93\u5165\u6cd5\n<\/h4><hr>\n<p>\u6ce8\u610f\uff0c\u4e0b\u9762\u4ecb\u7ecd\u7684\u662f\u5728<code>Wayland<\/code>\u73af\u5883\u4e0b\u5b89\u88c5<code>fcitx5<\/code>\u8f93\u5165\u6cd5\u7684\u6b65\u9aa4\uff0c\u5982\u679c\u5728<code>X11<\/code>\u73af\u5883\u4e0b\u5b89\u88c5\u4f1a\u6709\u6240\u4e0d\u540c\uff0c\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/wiki.archlinuxcn.org\/wiki\/Fcitx5?rdfrom=https%3A%2F%2Fwiki.archlinux.org%2Findex.php%3Ftitle%3DFcitx5_%28%25E7%25AE%2580%25E4%25BD%2593%25E4%25B8%25AD%25E6%2596%2587%29%26redirect%3Dno\"  target=\"_blank\" rel=\"noopener\"\n    >Fcitx5\u5b98\u65b9\u6587\u6863<\/a><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S fcitx5-im <span class=\"c1\"># \u8f93\u5165\u6cd5\u57fa\u7840\u5305\u7ec4 <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -S fcitx5-chinese-addons <span class=\"c1\"># \u5b98\u65b9\u4e2d\u6587\u8f93\u5165\u5f15\u64ce <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -S fcitx5-anthy <span class=\"c1\"># \u65e5\u6587\u8f93\u5165\u5f15\u64ce <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -S fcitx5-pinyin-moegirl <span class=\"c1\"># \u840c\u5a18\u767e\u79d1\u8bcd\u5e93<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -S fcitx5-material-color <span class=\"c1\"># \u8f93\u5165\u6cd5\u4e3b\u9898<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -S fcitx5-pinyin-zhwiki <span class=\"c1\"># \u4e2d\u6587\u7ef4\u57fa\u767e\u79d1\u521b\u5efa\u7684\u8bcd\u5e93<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u8fdb\u5165<code>\u7cfb\u7edf\u8bbe\u7f6e<\/code> - <code>\u952e\u76d8<\/code> - <code>\u865a\u62df\u952e\u76d8<\/code>\u4e2d\u9009\u4e2d<code>Fcitx5<\/code>\u5e94\u7528\u5373\u53ef<\/p>\n<blockquote>\n<p>\u6ce8\uff1a\u57fa\u4e8e<code>Chromium<\/code>\u7684\u7a0b\u5e8f(\u5305\u62ec\u6d4f\u89c8\u5668\u548c\u4f7f\u7528<code>Electron<\/code>\u7684\u7a0b\u5e8f)\u5982\u679c\u53d1\u73b0\u65e0\u6cd5\u8c03\u7528\u8f93\u5165\u6cd5\uff0c\u5219\u9700\u8981\u52a0\u5165<code>--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime<\/code>\u542f\u52a8\u53c2\u6570<\/p><\/blockquote>\n<hr>\n<p>\u53ef\u4ee5\u9009\u62e9\u8fdb\u4e00\u6b65\u5b89\u88c5<del>\u4f53\u9a8c\u66f4\u597d\u7684<\/del><a class=\"link\" href=\"https:\/\/rime.im\/\"  target=\"_blank\" rel=\"noopener\"\n    >Rime\u8f93\u5165\u6cd5(\u57fa\u4e8eFcitx5\u8f93\u5165\u6cd5\u6846\u67b6\uff0c\u7531Fcitx\u56e2\u961f\u5f00\u53d1\u548c\u7ef4\u62a4)<\/a><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S fcitx5-rime\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u540e\u8fdb\u5165<code>\u7cfb\u7edf\u8bbe\u7f6e<\/code> - <code>\u8f93\u5165\u6cd5<\/code>\u4f1a\u63d0\u793a<strong>\u53d1\u73b0\u4e86\u65b0\u5b89\u88c5\u7684\u66f4\u65b0<\/strong>\uff0c\u5148\u70b9\u51fb<code>\u66f4\u65b0<\/code>\uff0c\u7136\u540e\u70b9\u51fb<code>\u6dfb\u52a0\u8f93\u5165\u6cd5<\/code>\uff0c\u627e\u5230<code>\u4e2d\u5dde\u97f5<\/code>\u70b9\u51fb<code>\u6dfb\u52a0<\/code>\uff08\u53ef\u4ee5\u5c06\u539f\u6765\u7684<code>Pinyin<\/code>\u8f93\u5165\u6cd5\u5220\u6389\uff09\uff0c\u7136\u540e\u70b9<code>\u5e94\u7528<\/code>\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/03\/23\/112830.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<blockquote>\n<p>\u6ce8\uff1a\u521a\u5b89\u88c5\u540e\u9ed8\u8ba4\u4e3a\u534a\u89d2+\u7e41\u4f53\uff0c\u53ef\u4ee5\u5728\u8f93\u5165\u6cd5\u56fe\u6807\u53f3\u952e\uff0c\u9009\u62e9<code>\u6f22\u5b57 --&gt; \u6c49\u5b57<\/code>\u9009\u9879\u5373\u53ef<\/p><\/blockquote>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/03\/23\/114019.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<hr>\n<p>\u63a5\u4e0b\u6765\u5b89\u88c5<a class=\"link\" href=\"https:\/\/github.com\/iDvel\/rime-ice\"  target=\"_blank\" rel=\"noopener\"\n    >\u96fe\u51c7\u62fc\u97f3(Rime-Ice)<\/a>\uff0c\u9700\u8981\u5df2\u6309\u4e0a\u8ff0\u64cd\u4f5c\u5b89\u88c5\u4e86<code>fcitx5<\/code>\u548c<code>fcitx5-rime<\/code><\/p>\n<p>\u7136\u540e\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S rime-ice\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u4ee5\u8865\u4e01\u7684\u65b9\u5f0f\u521b\u5efa\u914d\u7f6e\u6587\u4ef6\u5728<code>rime<\/code>\u4e2d\u4f7f\u7528\uff0c\u9996\u5148\u9700\u8981\u5728<code>fcitx5-rime<\/code>\u7684\u7528\u6237\u76ee\u5f55\u4e0b\u521b\u5efa<code>default.custom.yaml<\/code>\u6587\u4ef6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">nano ~\/.local\/share\/fcitx5\/rime\/default.custom.yaml\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5199\u5165\u4ee5\u4e0b\u914d\u7f6e(\u8be6\u7ec6\u914d\u7f6e\u53ef\u4ee5\u67e5\u770b<a class=\"link\" href=\"https:\/\/dvel.me\/posts\/rime-ice\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>)\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">patch:  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\u00a0<span class=\"c1\"># \u4ec5\u4f7f\u7528\u300c\u96fe\u51c7\u62fc\u97f3\u300d\u7684\u9ed8\u8ba4\u914d\u7f6e\uff0c\u914d\u7f6e\u6b64\u884c\u5373\u53efu  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\u00a0__include: rime_ice_suggestion:\/  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\u00a0<span class=\"c1\"># \u4ee5\u4e0b\u6839\u636e\u81ea\u5df1\u6240\u9700\u81ea\u884c\u5b9a\u4e49\uff0c\u4ec5\u505a\u53c2\u8003\u3002  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\u00a0<span class=\"c1\"># \u9488\u5bf9\u5bf9\u5e94\u5904\u65b9\u7684\u5b9a\u5236\u6761\u76ee\uff0c\u8bf7\u4f7f\u7528 &lt;recipe&gt;.custom.yaml \u4e2d\u914d\u7f6e\uff0c\u4f8b\u5982 rime_ice.cus  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">tom.yaml  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\u00a0__patch:  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\u00a0\u00a0\u00a0menu\/page_size: <span class=\"m\">5<\/span>  <span class=\"c1\"># \u5019\u9009\u8bcd\u4e2a\u6570<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u53f3\u952e<code>\u8f93\u5165\u6cd5\u56fe\u6807<\/code>\uff0c\u627e\u5230<code>\u4e2d\u5dde\u97f5<\/code> - <code>\u96fe\u51c7\u62fc\u97f3<\/code> - <code>\u91cd\u65b0\u90e8\u7f72<\/code>\uff0c\u70b9\u51fb\u4e00\u4e0b\u5c31\u5b8c\u6210\u5566\uff01<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/03\/23\/134644.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<h4 id=\"\u4ee3\u7406\u8f6f\u4ef6v2raya\">\u4ee3\u7406\u8f6f\u4ef6V2rayA\n<\/h4><hr>\n<p>\u6211\u4eec\u4f7f\u7528<code>V2rayA<\/code>\u6765\u4f5c\u4e3a\u4ee3\u7406\u8f6f\u4ef6\uff0c\u9996\u5148\u6267\u884c\u4e0b\u9762\u6307\u4ee4\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S v2ray v2raya xray\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo systemctl <span class=\"nb\">enable<\/span> --now v2raya  <span class=\"c1\"># \u542f\u52a8\u5e76\u914d\u7f6e\u5f00\u673a\u81ea\u542f<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u91cc\u6211\u4eec\u5b89\u88c5\u4e86<code>V2ray<\/code>\u548c<code>Xray<\/code>\u5185\u6838\uff0c\u4f46\u662f\u9700\u8981\u6ce8\u610f\u9ed8\u8ba4\u60c5\u51b5\u4e0b<code>V2rayA<\/code>\u4f7f\u7528\u7684\u662f<code>V2ray<\/code>\u5185\u6838\uff0c\u4f46\u5982\u679c\u6211\u4eec\u60f3\u4f7f\u7528<code>Reality<\/code>\u534f\u8bae\uff0c\u5219\u9700\u8981\u7528\u5230<code>Xray<\/code>\u5185\u6838\uff08\u5982\u679c\u53ea\u7528<code>Xray<\/code>\u7684\u8bdd\u53ef\u4ee5\u4e0d\u7528\u5b89\u88c5<code>V2ray<\/code>\uff09<\/p>\n<p>\u56e0\u6b64\u9700\u8981\u5207\u6362\u5185\u6838\uff0c\u53ef\u53c2\u8003<a class=\"link\" href=\"https:\/\/v2raya.org\/docs\/manual\/variable-argument\/#systemd-%E7%AE%A1%E7%90%86%E7%9A%84-v2raya\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\uff0c\u4e0b\u9762\u63d0\u4f9b\u4e24\u79cd\u65b9\u6cd5(<strong>\u53ea\u9700\u8981\u6309\u4e00\u79cd\u8bbe\u7f6e\u5373\u53ef<\/strong>)\uff1a<\/p>\n<blockquote>\n<ol>\n<li>\u7f16\u8f91\u4fee\u6539<code>\/etc\/default\/v2raya<\/code>\u914d\u7f6e\u6587\u4ef6<\/li>\n<\/ol>\n<p>\u9996\u5148\u6253\u5f00<code>\/etc\/default\/v2raya<\/code>\u6587\u4ef6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo nano \/etc\/default\/v2raya\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u627e\u5230<code>V2RAYA_V2RAY_BIN<\/code>\u548c<code>V2RAYA_V2RAY_ASSETSDIR<\/code>\u4e24\u4e2a\u73af\u5883\u53d8\u91cf\uff0c\u5c06\u5176\u524d\u9762\u7684<code>#<\/code>\u53bb\u6389\uff0c\u5e76\u5c06\u5176\u503c\u6309\u5982\u4e0b\u4fee\u6539<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">V2RAYA_V2RAY_BIN<\/span><span class=\"o\">=<\/span>\/usr\/bin\/xray\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">V2RAYA_V2RAY_ASSETSDIR<\/span><span class=\"o\">=<\/span>\/usr\/share\/xray\n<\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d<code>\/usr\/bin\/xray<\/code>\u6307\u7684\u662f<code>xray<\/code>\u53ef\u6267\u884c\u6587\u4ef6\uff0c\u800c<code>\/usr\/share\/xray<\/code>\u6307\u7684\u662f<code>xray<\/code>\u6570\u636e\u6587\u4ef6\u76ee\u5f55(\u5305\u542b\u4e86<code>geosite.dat<\/code>\u548c<code>geoip.dat<\/code>\u6587\u4ef6)<\/p>\n<p>\u7136\u540e\u91cd\u542f<code>v2raya<\/code>\u670d\u52a1\u5373\u53ef<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo systemctl restart v2raya\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"2\">\n<li>\u7f16\u8f91\u4fee\u6539<code>systemd<\/code>\u7ba1\u7406\u7684\u914d\u7f6e\u6587\u4ef6<\/li>\n<\/ol>\n<p>\u65b0\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939<code>\/etc\/systemd\/system\/v2raya.service.d<\/code>\uff0c\u7136\u540e\u8fdb\u5165\u6587\u4ef6\u5939\u65b0\u5efa\u4e00\u4e2a\u6587\u4ef6<code>xray.conf<\/code>\uff0c\u7c7b\u4f3c\u7684\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Service<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Environment<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;V2RAYA_V2RAY_BIN=\/usr\/bin\/xray&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Environment<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;V2RAYA_V2RAY_ASSETSDIR=\/usr\/share\/xray&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c\u4e0b\u9762\u6307\u4ee4\u91cd\u65b0\u52a0\u8f7d<code>V2rayA<\/code>\u670d\u52a1\u5373\u53ef<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo systemctl daemon-reload <span class=\"o\">&amp;&amp;<\/span> sudo systemctl restart v2raya\n<\/span><\/span><\/code><\/pre><\/div><\/blockquote>\n<p>\u7136\u540e\u6211\u4eec\u4ece\u5e94\u7528\u4e2d\u627e\u5230<code>V2rayA Web Panel<\/code>\u5c31\u53ef\u4ee5\u8fdb\u5165\u7f51\u9875\u7248\u914d\u7f6e\u754c\u9762\uff0c\u5bfc\u5165\u6211\u4eec\u7684\u89c4\u5219<\/p>\n<p>\u4e0b\u9762\u91cd\u70b9\u8bf4\u4e00\u4e0b\u8def\u7531\u5206\u6d41\uff0c\u7531\u4e8e\u6211\u901a\u5e38\u4f7f\u7528\u6d4f\u89c8\u5668\u63d2\u4ef6<code>Zero Omega<\/code>\u6765\u914d\u7f6e\u4ee3\u7406\uff0c\u6240\u4ee5\u901a\u5e38\u4ec5\u5f00\u542f\u4ee3\u7406\u670d\u52a1\u5668\u4f46\u4e0d\u542f\u52a8\u7cfb\u7edf\u4ee3\u7406\uff0c\u56e0\u6b64\u6d41\u91cf\u901a\u8fc7\u6d4f\u89c8\u5668\u63d2\u4ef6\u8f6c\u53d1\u81f3\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u7136\u540e\u518d\u8fdb\u884c\u8def\u7531\u9009\u62e9\uff0c\u5177\u4f53\u914d\u7f6e\u5982\u4e0b<\/p>\n<p>\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u8bbe\u7f6e\uff0c\u5173\u95ed<code>\u900f\u660e\u4ee3\u7406\/\u7cfb\u7edf\u4ee3\u7406<\/code>\u9009\u9879\uff0c\u7136\u540e\u5c06<code>\u89c4\u5219\u7aef\u53e3\u7684\u5206\u6d41\u6a21\u5f0f<\/code>\u9009\u4e3a<code>RoutingA<\/code>\uff0c\u968f\u540e\u70b9\u51fb\u53f3\u8fb9\u7684<code>\u914d\u7f6e<\/code>\u9009\u9879\uff0c\u586b\u5165\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">default: proxy\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># write your own rules below<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">domain<span class=\"o\">(<\/span>geosite:cn<span class=\"o\">)<\/span>-&gt;direct\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ip<span class=\"o\">(<\/span>geoip:private<span class=\"o\">)<\/span>-&gt;direct\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ip<span class=\"o\">(<\/span>geoip:cn<span class=\"o\">)<\/span>-&gt;direct\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u4fdd\u5b58\uff0c\u6ce8\u610f\u6b64\u65f6\u8fd9\u4e9b\u89c4\u5219\u5e76\u4e0d\u4f1a\u751f\u6548\uff0c\u56e0\u4e3a<code>V2rayA<\/code>\u4e13\u95e8\u4e3a<code>socks<\/code>\u534f\u8bae\u548c<code>http<\/code>\u534f\u8bae\u8bbe\u7f6e\u4e86<strong>\u5e26\u5206\u6d41\u89c4\u5219\u7684\u7aef\u53e3<\/strong>(\u6d41\u91cf\u53d1\u9001\u8fdb\u6765\u4f1a\u6309\u7167\u5206\u6d41\u89c4\u5219\u5206\u6d41)\u548c<strong>\u4e0d\u5e26\u5206\u6d41\u89c4\u5219\u7aef\u53e3<\/strong>(\u6d41\u91cf\u8fdb\u6765\u540e\u5e76\u4e0d\u4f1a\u6309\u7167\u89c4\u5219\u5206\u6d41)\uff0c\u800c\u4e14\u9ed8\u8ba4\u53ea\u8bbe\u7f6e\u4e86<code>http<\/code>\u7684\u5206\u6d41\u7aef\u53e3\uff0c\u6211\u4eec\u53ef\u4ee5\u70b9\u5f00\u8bbe\u7f6e\u9875\u9762\u5de6\u4e0b\u89d2\u7684<code>\u5730\u5740\u4e0e\u7aef\u53e3<\/code>\u9009\u9879\uff0c\u7136\u540e\u586b\u5199<code>\u5e26\u5206\u6d41\u89c4\u5219\u7684socks\u7aef\u53e3<\/code>\u5e76\u4fdd\u5b58\uff0c\u5982\u4e0b\u56fe\uff1a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/03\/21\/021758.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5728<code>Zero Omega<\/code>\u4e2d\u8bbe\u7f6e\u4e3a\u5e26\u5206\u6d41\u7aef\u53e3\u7684<code>socks<\/code>\u5730\u5740\uff0c\u6309\u4e0a\u56fe\u4e5f\u5c31\u662f<code>socks5:\/\/127.0.0.1:20170<\/code>\uff0c\u8fd9\u6837\u6d41\u91cf\u5c31\u53ef\u4ee5\u6b63\u5e38\u5206\u6d41\u4e86<\/p>\n<h4 id=\"\u5b89\u88c5snapper\">\u5b89\u88c5Snapper\n<\/h4><hr>\n<p>Snapper\u662f\u4e00\u4e2aBtrfs\u6587\u4ef6\u7cfb\u7edf\u7684\u5feb\u7167\u7ba1\u7406\u5de5\u5177\uff0c\u5982\u679c\u4f7f\u7528Btrfs\u6587\u4ef6\u7cfb\u7edf\u7684\u8bdd\u5f3a\u70c8\u5efa\u8bae\u5b89\u88c5\uff0c\u5982\u679c\u662fExt4\u7684\u8bdd\u5219\u4e0d\u9700\u8981\u5b89\u88c5<\/p>\n<p>\u5177\u4f53\u7684\u5b89\u88c5\u548c\u4f7f\u7528\u53ef\u4ee5\u53c2\u8003\u6211<a class=\"link\" href=\"..\/0-0-0-49\/\" >\u8fd9\u7bc7\u6587\u7ae0<\/a><\/p>\n<h4 id=\"\u5176\u4ed6\u8f6f\u4ef6\u5305\">\u5176\u4ed6\u8f6f\u4ef6\u5305\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S packagekit-qt5 packagekit appstream-qt appstream <span class=\"c1\"># \u786e\u4fdd Discover\uff08\u8f6f\u4ef6\u4e2d\u5fc3\uff09\u53ef\u7528\uff0c\u9700\u91cd\u542f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo pacman -S ntfs-3g <span class=\"c1\"># \u4f7f\u7cfb\u7edf\u53ef\u4ee5\u8bc6\u522b NTFS \u683c\u5f0f\u7684\u786c\u76d8<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u5176\u4ed6\u81ea\u7528\u8f6f\u4ef6\">\u5176\u4ed6\u81ea\u7528\u8f6f\u4ef6\n<\/h3><hr>\n<h4 id=\"\u7b14\u8bb0\u8f6f\u4ef6-obsidian\">\u7b14\u8bb0\u8f6f\u4ef6 Obsidian\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S obsidian\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"pdf\u9605\u8bfb\u5668\">PDF\u9605\u8bfb\u5668\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S okular\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"telegram\">Telegram\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S telegram-desktop\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"libreoffice\">LibreOffice\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S libreoffice-still libreoffice-still-zh-cn\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"wps\">WPS\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">yay -S wps-office-cn wps-office-mui-zh-cn ttf-wps-fonts wps-office-mime-cn ttf-ms-win10-auto wps-office-fonts\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u76f8\u673a\">\u76f8\u673a\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S kamoso\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u79d1\u5b66\u8ba1\u7b97\u5668\">\u79d1\u5b66\u8ba1\u7b97\u5668\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S kcalc\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"notepad\">Notepad&ndash;\n<\/h4><hr>\n<p>\u4e00\u6b3e\u56fd\u4ea7\u5f00\u6e90\u5f88\u597d\u7528\u7684\u7f16\u8f91\u5668\uff0c\u66ff\u4ee3Notepad++<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">paru -S notepad--\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"xfreerdp\">XfreeRDP\n<\/h4><hr>\n<p>\u4e00\u6b3e\u7528\u4e8e\u8fde\u63a5RDP\u8fdc\u7a0b\u684c\u9762\u7684\u8f6f\u4ef6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S freerdp  <span class=\"c1\"># \u6ce8\u610f\u4e0d\u662fxfreerdp<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u4f7f\u7528\u65b9\u6cd5\u7b80\u4ecb\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">xfreerdp \/v:1.2.3.4:3389 \/u:administrator \/p:<span class=\"s2\">&#34;your_password&#34;<\/span> \/cert:ignore\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"gnuplot\">Gnuplot\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S gnuplot\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"scilab\">Scilab\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">yay -S scilab-bin\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"gnu-octave\">GNU Octave\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S octave\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u4e0d\u5f97\u4e0d\u8bf4\uff0c\u5b89\u88c5\u548c\u914d\u7f6eArchlinux\u786e\u5b9e\u633a\u6298\u817e\u7684\uff0c\u9700\u8981\u6709\u8010\u5fc3\uff0c\u4f46\u597d\u5728\u672c\u6b21\u5b89\u88c5\u4e0e\u914d\u7f6e\u8fc7\u7a0b\u57fa\u672c\u987a\u5229\uff0c\u6ca1\u6709\u51fa\u73b0\u592a\u5927\u95ee\u9898\uff0c\u5e76\u82b1\u4e86\u8f83\u591a\u65f6\u95f4\u5c06\u8fc7\u7a0b\u8be6\u7ec6\u8bb0\u5f55\u4e86\u4e0b\u6765\u4ee5\u5907\u81ea\u5df1\u67e5\u9605\uff0c\u4e5f\u5e0c\u671b\u80fd\u7ed9\u770b\u5230\u8fd9\u7bc7\u6587\u7ae0\u7684Arch\u521d\u88c5\u8005\u4e00\u4e9b\u542f\u53d1<\/p>\n<h2 id=\"\u53c2\u8003\">\u53c2\u8003\n<\/h2><hr>\n<p>\u4ee5\u4e0b\u4e3a\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u53c2\u8003\u7684\u8bb8\u591aWiki\u3001\u535a\u5ba2\u548c\u6587\u7ae0<\/p>\n<blockquote>\n<ul>\n<li>\n<p><a class=\"link\" href=\"https:\/\/wiki.archlinux.org\/title\/Main_page\"  target=\"_blank\" rel=\"noopener\"\n    >Arch Wiki<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/www.cnblogs.com\/vconlln\/articles\/17065410.html\"  target=\"_blank\" rel=\"noopener\"\n    >Archlinux\u5b89\u88c5<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/arch.icekylin.online\/guide\/rookie\/basic-install-detail.html\"  target=\"_blank\" rel=\"noopener\"\n    >Arch\u57fa\u7840\u5b89\u88c5\u8be6\u89e3<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/arch.icekylin.online\/app\/common\/daily\"  target=\"_blank\" rel=\"noopener\"\n    >\u5e38\u7528\u8f6f\u4ef6<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/www.cnblogs.com\/Junglezt\/p\/16927100.html\"  target=\"_blank\" rel=\"noopener\"\n    >Arch\u7f8e\u5316<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/store.kde.org\/browse?cat=421&amp;ord=latest\"  target=\"_blank\" rel=\"noopener\"\n    >KDE\u5546\u5e97<\/a><\/p>\n<\/li>\n<\/ul><\/blockquote>\n"},{"title":"frp + nginx \u4e3a\u5185\u7f51 http \u670d\u52a1\u914d\u7f6e ssl","link":"https:\/\/been.ee\/p\/0-0-0-43\/","pubDate":"Tue, 17 Dec 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-43\/","description":"<h2 id=\"frp\u4ecb\u7ecd\">frp\u4ecb\u7ecd\n<\/h2><hr>\n<p><code>frp<\/code>\u662f\u4e00\u6b3e\u975e\u5e38\u7ecf\u5178\u5e76\u4e14\u529f\u80fd\u975e\u5e38\u5f3a\u5927\u7684&quot;\u6253\u6d1e&quot;\uff08\u5185\u7f51\u7a7f\u900f\uff09\u5de5\u5177\uff0c\u7b80\u5355\u6765\u8bf4\uff0c\u5c31\u662f\u901a\u8fc7\u5728\u5185\u7f51\u673a\u5668\u548c\u516c\u7f51\u670d\u52a1\u5668\u4e4b\u95f4\u642d\u5efa&quot;\u96a7\u9053&quot;\uff08<strong>\u5c06\u5185\u7f51\u670d\u52a1\u7684\u7aef\u53e3\u6620\u5c04\u5230\u516c\u7f51\u670d\u52a1\u5668<\/strong>\uff09\uff0c\u4ece\u800c\u4f7f\u5916\u90e8\u7528\u6237\u80fd\u591f\u901a\u8fc7\u516c\u7f51\u670d\u52a1\u5668\u8bbf\u95ee\u5230\u5185\u7f51\u673a\u5668\u7684\u670d\u52a1<\/p>\n<p>\u9879\u76ee\u5730\u5740\uff1a<a class=\"link\" href=\"https:\/\/github.com\/fatedier\/frp\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/github.com\/fatedier\/frp<\/a><\/p>\n<p>\u4e2d\u6587\u6587\u6863\uff1a<a class=\"link\" href=\"https:\/\/gofrp.org\/zh-cn\/\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/gofrp.org\/zh-cn\/<\/a><\/p>\n<p><code>frp<\/code>\u652f\u6301\u7684\u534f\u8bae\u548c\u53ef\u5b9e\u73b0\u7684\u529f\u80fd\u975e\u5e38\u591a\uff0c\u5177\u4f53\u53ef\u4ee5\u53c2\u8003\u6587\u6863\uff0c\u672c\u6587\u53ea\u4ecb\u7ecd\u5982\u4f55\u66b4\u9732\u5185\u7f51\u670d\u52a1\u5e76\u901a\u8fc7<code>nginx<\/code>\u914d\u7f6e<code>https<\/code><\/p>\n<h2 id=\"\u539f\u7406\u548c\u8fc7\u7a0b\u4ecb\u7ecd\">\u539f\u7406\u548c\u8fc7\u7a0b\u4ecb\u7ecd\n<\/h2><hr>\n<p>\u5176\u5b9e\u975e\u5e38\u7b80\u5355\uff0c\u5c31\u4e00\u53e5\u8bdd\u7b80\u5355\u5e26\u8fc7\u4e86<\/p>\n<p>\u9996\u5148\uff0c<code>frp<\/code>\u5c06\u5185\u7f51<code>http<\/code>\u670d\u52a1\u6620\u5c04\u5230\u516c\u7f51\u670d\u52a1\u5668\u7684\u67d0\u4e2a\u7aef\u53e3\uff0c\u7136\u540e\u5728\u670d\u52a1\u5668\u901a\u8fc7<code>nginx<\/code>\u914d\u7f6e\u53cd\u5411\u4ee3\u7406\u5c06\u8bf7\u6c42\u53d1\u9001\u5230\u8fd9\u4e2a\u7aef\u53e3\uff0c\u7531<code>nginx<\/code>\u670d\u52a1\u5668\u8d1f\u8d23\u4e0e\u5ba2\u6237\u7aef\u901a\u4fe1\u65f6\u7684<code>SSL\/TLS<\/code>\u52a0\u5bc6\uff0c<code>frp<\/code>\u8d1f\u8d23\u548c\u5185\u7f51\u670d\u52a1\u901a\u4fe1<\/p>\n<h2 id=\"\u914d\u7f6e\">\u914d\u7f6e\n<\/h2><hr>\n<p>\u9996\u5148\uff0c\u5728\u5185\u7f51\u673a\u5668\u548c\u516c\u7f51\u670d\u52a1\u5668\u90fd\u4e0b\u8f7d<code>frp<\/code>\u53ef\u6267\u884c\u7a0b\u5e8f\uff0c\u53ef\u4ee5\u76f4\u63a5\u5230<code>frp<\/code>\u7684github\u9879\u76ee\u4e2d\u7684release\u91cc\u4e0b\u8f7d\u6700\u65b0\u7248\u672c\u3002\u4e0b\u8f7d\u5e76\u89e3\u538b\u540e\uff0c\u53ef\u4ee5\u5f97\u5230\u670d\u52a1\u7aef\u7a0b\u5e8f\uff08<code>frps<\/code>\uff09\u3001\u5ba2\u6237\u7aef\u7a0b\u5e8f\uff08<code>frpc<\/code>\uff09\u548c\u5404\u81ea\u7684\u914d\u7f6e\u6587\u4ef6\uff08<code>frps.toml<\/code>\u3001<code>frpc.toml<\/code>\uff09<\/p>\n<h3 id=\"frps\">frps\n<\/h3><hr>\n<p>\u516c\u7f51\u670d\u52a1\u5668\u4e2d\u53ea\u9700\u8981\u7528\u5230<code>frps<\/code>\u548c<code>frps.toml<\/code><\/p>\n<h4 id=\"\u4f7f\u7528systemd\u7ba1\u7406frps\u670d\u52a1\">\u4f7f\u7528systemd\u7ba1\u7406frps\u670d\u52a1\n<\/h4><hr>\n<p>\u5728\u591a\u6570\u573a\u666f\u4e0b\uff0c\u6211\u4eec\u901a\u5e38\u4f7f\u7528\u7684\u662fLinux\u7cfb\u7edf\uff0c\u56e0\u6b64\u5efa\u8bae\u4f7f\u7528<code>systemd<\/code>\u6765\u7ba1\u7406<code>frps<\/code><\/p>\n<p>\u9996\u5148\uff0c\u5728<code>\/etc\/systemd\/system<\/code>\u76ee\u5f55\u4e0b\u521b\u5efa<code>frps.service<\/code>\u6587\u4ef6\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9\uff0c\u6ce8\u610f\uff0c\u4ec5\u9700\u8981\u5c06<code>ExecStart<\/code>\u540e\u9762\u4e2d\u7684<code>\/root\/frp\/frps<\/code>\u548c<code>\/root\/frp\/frps.toml<\/code>\u6539\u4e3a\u81ea\u5df1\u7684\u5bf9\u5e94\u6587\u4ef6\u7684\u7edd\u5bf9\u8def\u5f84<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Unit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Description<\/span><span class=\"o\">=<\/span>Frp Server Service\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">After<\/span> <span class=\"o\">=<\/span> network.target syslog.target\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Wants<\/span> <span class=\"o\">=<\/span> network.target\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Service<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Type<\/span><span class=\"o\">=<\/span>simple\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Restart<\/span><span class=\"o\">=<\/span>on-failure\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">RestartSec<\/span><span class=\"o\">=<\/span>5s\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">ExecStart<\/span><span class=\"o\">=<\/span>\/root\/frp\/frps -c \/root\/frp\/frps.toml\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">LimitNOFILE<\/span><span class=\"o\">=<\/span><span class=\"m\">1048576<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Install<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">WantedBy<\/span><span class=\"o\">=<\/span>multi-user.target\n<\/span><\/span><\/code><\/pre><\/div><p>\u4fdd\u5b58\u5e76\u9000\u51fa\u540e\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528<code>systemd<\/code>\u6765\u7ba1\u7406<code>frps<\/code>\u670d\u52a1\u5566<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u542f\u52a8frp<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl start frps\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u505c\u6b62frp<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl stop frps\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u91cd\u542ffrp<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl restart frps\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u67e5\u770bfrp\u72b6\u6001<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl status frps\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u8bbe\u7f6efrps\u5f00\u673a\u81ea\u542f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl <span class=\"nb\">enable<\/span> frps\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u914d\u7f6e\u6587\u4ef6\">\u914d\u7f6e\u6587\u4ef6\n<\/h4><hr>\n<p>\u63a5\u4e0b\u6765\u7f16\u8f91<code>frps.toml<\/code>\u6587\u4ef6\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-toml\" data-lang=\"toml\"><span class=\"line\"><span class=\"cl\"><span class=\"nx\">bindPort<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">17000<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">auth<\/span><span class=\"p\">.<\/span><span class=\"nx\">method<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">&#34;token&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">auth<\/span><span class=\"p\">.<\/span><span class=\"nx\">token<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">&#34;YourStrongToken&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">vhostHTTPPort<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">18000<\/span>\n<\/span><\/span><\/code><\/pre><\/div><blockquote>\n<p>\u53c2\u6570\u89e3\u91ca\uff1a<\/p>\n<ul>\n<li>\n<p><code>bindPort<\/code>\uff1a\u8bbe\u7f6e<code>frps<\/code>\u670d\u52a1\u7684\u76d1\u542c\u7aef\u53e3\uff0c\u7528\u4e8e\u548c<code>frpc<\/code>\u5efa\u7acb\u8fde\u63a5<\/p>\n<\/li>\n<li>\n<p><code>auth.method<\/code>\uff1a\u8bbe\u7f6e\u8ba4\u8bc1\u65b9\u6cd5\uff0c\u7528\u4e8e\u548c<code>frpc<\/code>\u5efa\u7acb\u8fde\u63a5\u65f6\u8fdb\u884c\u8eab\u4efd\u8ba4\u8bc1\uff0c\u4e00\u822c\u7528<code>token<\/code>\u5c31\u53ef\u4ee5<\/p>\n<\/li>\n<li>\n<p><code>auth.token<\/code>\uff1a\u8bbe\u7f6e\u4e00\u4e2a\u7528\u4e8e\u7528\u6237\u8ba4\u8bc1\u7684\u5bc6\u7801<\/p>\n<\/li>\n<li>\n<p><code>vhostHTTPPort<\/code>\uff1a\u8bbe\u7f6e\u5185\u7f51<code>http<\/code>\u670d\u52a1\u5728\u516c\u7f51\u670d\u52a1\u5668\u4e0a\u7684\u6620\u5c04\u7aef\u53e3<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u8bbe\u7f6e\u597d\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7<code>systemctl restart frps<\/code>\u91cd\u542f\u670d\u52a1\uff0c\u670d\u52a1\u7aef<code>frps<\/code>\u5c31\u914d\u7f6e\u5b8c\u6210\uff0c\u7b49\u5f85\u5185\u7f51\u5ba2\u6237\u7aef<code>frpc<\/code>\u53d1\u8d77\u8fde\u63a5\u5566<\/p>\n<h3 id=\"frpc\">frpc\n<\/h3><hr>\n<p>\u5185\u7f51\u670d\u52a1\u5668\u4e2d\u53ea\u9700\u8981\u7528\u5230<code>frpc<\/code>\u548c<code>frpc.toml<\/code><\/p>\n<p>\u6253\u5f00<code>frpc.toml<\/code>\u6587\u4ef6\u8fdb\u884c\u7f16\u8f91\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-toml\" data-lang=\"toml\"><span class=\"line\"><span class=\"cl\"><span class=\"nx\">serverAddr<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">&#34;server_ip&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">serverPort<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">17000<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">auth<\/span><span class=\"p\">.<\/span><span class=\"nx\">token<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">&#34;YourStrongToken&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">[[<\/span><span class=\"nx\">proxies<\/span><span class=\"p\">]]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">name<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">&#34;web&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">type<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">&#34;http&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">localPort<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">80<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">customDomains<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"s2\">&#34;www.domain1.com&#34;<\/span><span class=\"p\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">[[<\/span><span class=\"nx\">proxies<\/span><span class=\"p\">]]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">name<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">&#34;web2&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">type<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">&#34;http&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">localPort<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">8080<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">customDomains<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"s2\">&#34;www.domain2.com&#34;<\/span><span class=\"p\">]<\/span>\n<\/span><\/span><\/code><\/pre><\/div><blockquote>\n<p>\u53c2\u6570\u89e3\u91ca\uff1a<\/p>\n<ul>\n<li>\n<p><code>serverAddr<\/code>\uff1a\u66ff\u6362\u4e3a\u516c\u7f51\u670d\u52a1\u5668\u7684ip\u5730\u5740<\/p>\n<\/li>\n<li>\n<p><code>serverPort<\/code>\uff1a<code>frps<\/code>\u670d\u52a1\u76d1\u542c\u7aef\u53e3<\/p>\n<\/li>\n<li>\n<p><code>auth.token<\/code>\uff1a<code>frps<\/code>\u8bbe\u7f6e\u7684\u8ba4\u8bc1\u5bc6\u7801<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<blockquote>\n<p><code>[[proxies]]<\/code>\u53c2\u6570\u89e3\u91ca\uff1a<\/p>\n<ul>\n<li>\n<p><code>name<\/code>\uff1a\u7ed9\u5185\u7f51<code>http<\/code>\u670d\u52a1\u8d77\u4e2a\u540d\u5b57<\/p>\n<\/li>\n<li>\n<p><code>type<\/code>\uff1a\u534f\u8bae\u7c7b\u578b\u8bbe\u7f6e\u4e3a<code>http<\/code><\/p>\n<\/li>\n<li>\n<p><code>localPort<\/code>\uff1a<code>http<\/code>\u670d\u52a1\u5728\u5185\u7f51\u7684\u76d1\u542c\u7aef\u53e3<\/p>\n<\/li>\n<li>\n<p><code>customDomains<\/code>\uff1a\u8bbe\u7f6e\u7528\u4e8e\u8bbf\u95ee\u8be5<code>http<\/code>\u670d\u52a1\u7684\u57df\u540d<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u5176\u4e2d\uff0c<code>customDomains<\/code>\u975e\u5e38\u91cd\u8981\uff0c\u5b83\u7528\u4e8e\u786e\u5b9a\u8bbf\u95ee\u7684\u5177\u4f53\u662f\u54ea\u4e00\u4e2a\u5185\u7f51\u670d\u52a1\uff0c\u56e0\u4e3a\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6e\u8bb8\u591a<code>[[proxies]]<\/code>\u6765\u8bbe\u7f6e\u591a\u4e2a\u5185\u7f51<code>http<\/code>\u670d\u52a1\uff0c\u4f46\u662f\u5728\u516c\u7f51\u670d\u52a1\u5668\u6620\u5c04\u7684\u7aef\u53e3\u53ea\u6709\u4e00\u4e2a\uff0c\u56e0\u6b64\u9700\u8981\u901a\u8fc7\u8bbf\u95ee\u7684\u57df\u540d\u6765\u5bf9\u5e94\u4e0d\u540c\u7684\u5185\u7f51<code>http<\/code>\u670d\u52a1<\/p>\n<p>\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u5982\u679c\u662f<code>Linux<\/code>\u7cfb\u7edf\uff0c\u5230\u5bf9\u5e94\u8def\u5f84\u6267\u884c<code>.\/frpc -c frpc.toml<\/code>\u5c31\u53ef\u4ee5\u542f\u52a8\uff0c\u540c\u6837\u4e5f\u53ef\u4ee5\u8ddf<code>frps<\/code>\u4e00\u6837\u63a8\u8350\u7528<code>systemd<\/code>\u7ba1\u7406\uff1b\u5982\u679c\u662f<code>Windows<\/code>\u7cfb\u7edf\uff0c\u53ef\u4ee5\u8bbe\u7f6e<a class=\"link\" href=\"..\/0-0-0-42\/\" >\u4efb\u52a1\u8ba1\u5212<\/a>\u6765\u8fd0\u884c<\/p>\n<h3 id=\"nginx\">nginx\n<\/h3><hr>\n<p>\u5b8c\u6210<code>frps<\/code>\u548c<code>frpc<\/code>\u914d\u7f6e\u540e\uff0c\u53ea\u9700\u8981\u5230\u516c\u7f51\u670d\u52a1\u5668\u914d\u7f6e\u4e00\u4e0b<code>nginx<\/code>\u53cd\u5411\u4ee3\u7406<\/p>\n<p>\u9996\u5148\u4e3a\u5185\u7f51<code>http<\/code>\u670d\u52a1\u8bbe\u7f6e\u4e00\u4e2a\u57df\u540d\uff0c\u4f8b\u5982<code>www.domain1.com<\/code>\uff0c\u7136\u540e\u5c06\u57df\u540d\u89e3\u6790\u5230\u516c\u7f51\u670d\u52a1\u7684ip\uff0c\u5e76\u7528<code>certbot<\/code>\u7533\u8bf7<code>SSL<\/code>\u8bc1\u4e66<\/p>\n<p>\u5230<code>\/etc\/nginx\/conf.d\/<\/code>\u76ee\u5f55\u4e0b\u4e3a<code>frps<\/code>\u4ee3\u7406\u7684\u5185\u7f51<code>http<\/code>\u670d\u52a1\u521b\u5efa\u4e00\u4e2a\u7edf\u4e00\u7684<code>nginx<\/code>\u914d\u7f6e\u6587\u4ef6<code>frps-http.conf<\/code>\uff0c\u7136\u540e\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9\uff0c\u9700\u8981\u5c06\u57df\u540d\u548c\u8bc1\u4e66\u66ff\u6362\u4e3a\u81ea\u5df1\u7684<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen 80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server_name www.domain1.com<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">return<\/span> <span class=\"m\">301<\/span> https:\/\/<span class=\"nv\">$server_name$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen <span class=\"m\">443<\/span> ssl<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    http2 on<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server_name www.domain1.com<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate \/etc\/letsencrypt\/live\/www.domain1.com\/fullchain.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate_key \/etc\/letsencrypt\/live\/www.domain1.com\/privkey.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    location \/ <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_pass http:\/\/127.0.0.1:18000\/<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header Host <span class=\"nv\">$host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Forwarded-Proto <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Forwarded-For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e<code>systemctl restart nginx<\/code>\u540e\uff0c\u5c31\u53ef\u4ee5\u901a\u8fc7<code>https:\/\/www.domain1.com<\/code>\u8bbf\u95ee\u5bf9\u5e94\u7684\u5185\u7f51\u670d\u52a1\u5566<\/p>\n<h2 id=\"\u5173\u4e8e\u52a0\u5bc6\u7684\u8bf4\u660e\">\u5173\u4e8e\u52a0\u5bc6\u7684\u8bf4\u660e\n<\/h2><hr>\n<p>\u4f60\u53ef\u80fd\u4f1a\u53d1\u73b0\uff0c\u5728\u6574\u4e2a\u8fc7\u7a0b\u4e2d\uff0c\u5ba2\u6237\u7aef\u548c<code>nginx<\/code>\u4e4b\u95f4\u7684\u901a\u4fe1\u91c7\u7528\u4e86<code>HTTPS<\/code>\u8fdb\u884c\u4e86\u52a0\u5bc6\u4f20\u8f93\uff0c<code>nginx<\/code>\u5c06\u6d41\u91cf\u53cd\u5411\u4ee3\u7406\u5230<code>frps<\/code>\u4f7f\u7528\u7684\u662f\u672c\u5730\u5c40\u57df\u7f51\u73af\u56de\u5730\u5740\u6240\u4ee5\u4e5f\u6ca1\u6709\u5b89\u5168\u95ee\u9898\uff0c\u4f46<code>frps<\/code>\u548c<code>frpc<\/code>\u4e4b\u95f4\u901a\u4fe1\u7684\u6d41\u91cf\u5374\u662f\u5728\u516c\u7f51\u4f20\u8f93\u7684\uff0c\u6240\u4ee5\u662f\u5b58\u5728\u5b89\u5168\u9690\u60a3\u7684<\/p>\n<p>\u4e0d\u8fc7\uff0c\u6839\u636e<a class=\"link\" href=\"https:\/\/gofrp.org\/zh-cn\/docs\/features\/common\/network\/network\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\uff0c\u6700\u65b0\u7248\u672c\u7684<code>frps<\/code>\u548c<code>frpc<\/code>\u4e4b\u95f4\u7684\u6570\u636e\u4f20\u8f93\u5df2\u7ecf\u9ed8\u8ba4\u5f00\u542f\u4e86TLS\u52a0\u5bc6\uff0c\u4e0d\u9700\u8981\u5355\u72ec\u914d\u7f6e\uff0c\u5f53\u7136\uff0c\u5982\u679c\u4f60\u60f3\u7684\u8bdd\u4e5f\u53ef\u4ee5\u6309\u7167\u5982\u4e0b\u793a\u4f8b\u6307\u5b9a\u5f00\u542f\u6216\u5173\u95ed\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-toml\" data-lang=\"toml\"><span class=\"line\"><span class=\"cl\"><span class=\"p\">[[<\/span><span class=\"nx\">proxies<\/span><span class=\"p\">]]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">name<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">&#34;ssh&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">type<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">&#34;tcp&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">localPort<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">22<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">remotePort<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">6000<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">transport<\/span><span class=\"p\">.<\/span><span class=\"nx\">useEncryption<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>   <span class=\"c\"># \u5f00\u542fTLS\u52a0\u5bc6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">transport<\/span><span class=\"p\">.<\/span><span class=\"nx\">useCompression<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>  <span class=\"c\"># \u4f20\u8f93\u5185\u5bb9\u542f\u52a8\u538b\u7f29\uff0c\u53ef\u4ee5\u52a0\u5feb\u6d41\u91cf\u8f6c\u53d1\u901f\u5ea6\uff0c\u4f46\u662f\u4f1a\u989d\u5916\u6d88\u8017\u4e00\u4e9b CPU \u8d44\u6e90<\/span>\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"\u4ee5 Windows Server \u4e3a\u4f8b\u914d\u7f6e\u4efb\u52a1\u8ba1\u5212\u7a0b\u5e8f","link":"https:\/\/been.ee\/p\/0-0-0-42\/","pubDate":"Mon, 16 Dec 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-42\/","description":"<h2 id=\"\u4ecb\u7ecd\">\u4ecb\u7ecd\n<\/h2><hr>\n<p>Windows\u7684\u4efb\u52a1\u8ba1\u5212\u7a0b\u5e8f\u7528\u4e8e\u5728\u7279\u5b9a\u7684\u65f6\u95f4\u6216\u573a\u666f\u4e0b\u6216\u89e6\u53d1\u67d0\u4e9b\u7279\u5b9a\u6761\u4ef6\u65f6\u81ea\u52a8\u6267\u884c\u4efb\u52a1\uff08\u5305\u62ec\u7a0b\u5e8f\u3001\u811a\u672c\u7b49\uff09<\/p>\n<p>\u4e0b\u9762\u5c06\u4ee5<strong>Windows Server 2022<\/strong>\u670d\u52a1\u5668\u4e3a\u4f8b\u4ecb\u7ecd\u914d\u7f6e\u8fc7\u7a0b\u548c\u793a\u4f8b<\/p>\n<h2 id=\"\u914d\u7f6e\u6d41\u7a0b\u4ecb\u7ecd\">\u914d\u7f6e\u6d41\u7a0b\u4ecb\u7ecd\n<\/h2><hr>\n<p>\u9996\u5148\uff0c\u4ece<code>\u6b64\u7535\u8111<\/code> - <code>\u7ba1\u7406<\/code>\u8fdb\u5165\u670d\u52a1\u5668\u7ba1\u7406\u5668\u9875\u9762\uff0c\u7136\u540e\u627e\u5230\u6211\u4eec\u7684\u670d\u52a1\u5668\uff0c\u53f3\u952e\u9009\u62e9<code>\u8ba1\u7b97\u673a\u7ba1\u7406<\/code>\uff0c\u70b9\u51fb\u8fdb\u5165<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/18\/164720.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u4ece\u5de6\u4fa7\u680f\u4e2d\u9009\u62e9<code>\u4efb\u52a1\u8ba1\u5212\u7a0b\u5e8f<\/code>\uff0c\u7136\u540e\u518d\u70b9\u51fb\u53f3\u4fa7\u7684<code>\u521b\u5efa\u4efb\u52a1<\/code>\u5c31\u53ef\u4ee5\u6253\u5f00\u4efb\u52a1\u521b\u5efa\u7a97\u53e3<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/18\/165032.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u540e\u9762\u5c31\u9700\u8981\u6839\u636e\u4e0d\u540c\u9700\u6c42\u8fdb\u884c\u8bbe\u7f6e\uff0c\u4e0b\u9762\u5c06\u901a\u8fc7\u793a\u4f8b\u6765\u8be6\u7ec6\u4ecb\u7ecd<\/p>\n<h2 id=\"\u793a\u4f8b\">\u793a\u4f8b\n<\/h2><hr>\n<p>\u4e0b\u9762\u5c06\u4ecb\u7ecd\u5982\u4f55\u914d\u7f6e<strong>\u7f51\u7edc\u65ad\u5f00\u6216\u91cd\u542f\u540e\u81ea\u52a8\u62e8\u53f7<\/strong>\u7684\u4efb\u52a1<\/p>\n<p>\u5728\u4f7f\u7528\u62e8\u53f7\u4e0a\u7f51\u7684\u573a\u666f\u4e0b\uff0c<strong>\u5982\u679c\u6211\u4eec\u9700\u8981\u8fdc\u7a0b\u8bbf\u95ee\uff0c\u90a3\u4e48\u670d\u52a1\u5668\u6bcf\u5f53\u65ad\u7f51\u6216\u91cd\u542f\u540e\u5c31\u4f1a\u5931\u8054<\/strong>\uff0c\u6240\u4ee5\u6211\u4eec\u5e0c\u671b\u5728\u65ad\u7f51\u6216\u91cd\u542f\u7535\u8111\u540e\u80fd\u591f\u81ea\u52a8\u8fdb\u884c\u62e8\u53f7\u4e0a\u7f51\uff0c\u4e0b\u9762\u5c06\u4ecb\u7ecd\u521b\u5efa\u8fd9\u4e2a\u4efb\u52a1<\/p>\n<p>\u8fdb\u5165\u4efb\u52a1\u521b\u5efa\u7a97\u53e3\u540e\uff0c\u9996\u5148\u5728<code>\u5e38\u89c4<\/code>\u680f\u4e2d\u586b\u5165\u4efb\u52a1\u540d\u79f0\uff0c\u9009\u62e9\u8fd0\u884c\u4efb\u52a1\u7684\u8d26\u6237\u4e3a<code>Administrator<\/code>\uff0c\u7136\u540e\u52fe\u9009<code>\u4e0d\u7ba1\u7528\u6237\u662f\u5426\u767b\u5f55\u90fd\u8981\u8fd0\u884c<\/code>\u548c<code>\u4f7f\u7528\u6700\u9ad8\u6743\u9650\u8fd0\u884c<\/code>\uff0c\u53f3\u4e0b\u89d2\u7684<code>\u914d\u7f6e<\/code>\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u9009\u62e9\u5bf9\u5e94\u7684\u670d\u52a1\u5668\u7cfb\u7edf\uff0c\u4f8b\u5982\u6211\u7684\u662f<code>Windows Server 2022<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/18\/171103.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\uff0c\u8fdb\u5165<code>\u89e6\u53d1\u5668<\/code>\u680f\uff0c\u70b9\u51fb<code>\u65b0\u5efa<\/code>\uff0c\u521b\u5efa\u4e00\u4e2a\u89e6\u53d1\u5668\u7528\u4e8e<strong>\u65ad\u7f51\u540e\u81ea\u52a8\u91cd\u8fde<\/strong>\u3002\u9009\u62e9<code>\u5f00\u59cb\u4efb\u52a1<\/code>\u7684\u6761\u4ef6\u4e3a<code>\u53d1\u751f\u4e8b\u4ef6\u65f6<\/code>\uff0c\u5728<code>\u65e5\u5fd7<\/code>\u9009\u9879\u9009\u62e9<code>\u7cfb\u7edf<\/code>\uff0c<code>\u6e90<\/code>\u9009\u9879\u8f93\u5165<code>Rasman<\/code>\uff0c<code>\u4e8b\u4ef6ID<\/code>\u8f93\u5165<code>20268<\/code>\uff0c\u8be5\u4e8b\u4ef6\u53ef\u4ee5\u8868\u793a\u7f51\u7edc\u72b6\u6001\u53d1\u751f\u53d8\u5316\uff0c\u6700\u540e\u52fe\u9009\u6700\u4e0b\u65b9\u7684<code>\u5df2\u542f\u7528<\/code>\u540e\u9009\u62e9\u786e\u5b9a\u5373\u53ef\u5b8c\u6210\u89e6\u53d1\u5668\u6dfb\u52a0<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/18\/172643.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u518d\u521b\u5efa\u4e00\u4e2a\u89e6\u53d1\u5668\u7528\u4e8e<strong>\u91cd\u542f\u540e\u81ea\u52a8\u62e8\u53f7<\/strong>\u3002\u53ea\u9700\u8981\u5c06\u5f00\u59cb\u4efb\u52a1\u9009\u62e9\u4e3a<code>\u542f\u52a8\u65f6<\/code>\uff0c\u7136\u540e\u6700\u4e0b\u65b9\u52fe\u9009<code>\u5df2\u542f\u7528<\/code>\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/18\/173304.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u4e0b\u9762\u9700\u8981\u5728<code>\u64cd\u4f5c<\/code>\u9009\u9879\u4e2d\u70b9\u51fb\u65b0\u5efa\uff0c\u521b\u5efa\u4e00\u4e2a\u5f53\u89e6\u53d1\u5668\u6761\u4ef6\u6ee1\u8db3\u65f6\u8981\u6267\u884c\u7684\u4efb\u52a1\uff0c\u4e5f\u5c31\u662f\u8fdb\u884c\u62e8\u53f7\u3002\u9700\u8981\u6ce8\u610f\uff0c\u62e8\u53f7\u4e0a\u7f51\u7684\u5b8c\u6574\u547d\u4ee4\u683c\u5f0f\u4e3a<code>rasdial [\u62e8\u53f7\u8fde\u63a5\u540d] [\u7528\u6237\u540d] [\u5bc6\u7801]<\/code>\uff0c\u5176\u4e2d<code>\u62e8\u53f7\u8fde\u63a5<\/code>\u540d\u9ed8\u8ba4\u4e00\u822c\u4e3a<code>\u5bbd\u5e26\u8fde\u63a5<\/code>\uff0c\u4f46\u662f\u6211\u4e4b\u524d\u56e0\u4e3a\u7528\u4e2d\u6587\u51fa\u8fc7\u95ee\u9898\uff0c\u6240\u4ee5\u540e\u6765\u628a\u540d\u5b57\u6539\u4e3a\u4e86<code>ADSL<\/code>\uff0c\u7528\u6237\u540d\u548c\u5bc6\u7801\u6839\u636e\u81ea\u5df1\u7684\u586b\u5c31\u53ef\u4ee5\u4e86<\/p>\n<p>\u5728\u4efb\u52a1\u7f16\u8f91\u7a97\u53e3\u4e2d\uff0c\u5c06<code>\u64cd\u4f5c<\/code>\u8bbe\u4e3a<code>\u542f\u52a8\u7a0b\u5e8f<\/code>\uff0c<code>\u7a0b\u5e8f\u6216\u811a\u672c\u540d<\/code>\u586b\u5199<code>rasdial<\/code>\uff0c<code>\u53c2\u6570<\/code>\u586b\u5199<code>ADSL username password<\/code>\uff08\u66ff\u6362\u4e3a\u81ea\u5df1\u7684\uff09\uff0c\u6700\u540e\u70b9\u51fb\u786e\u5b9a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/18\/174522.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\u662f<code>\u6761\u4ef6<\/code>\u680f\uff0c\u9009\u9879\u90fd\u5f88\u6e05\u695a\uff0c\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u9002\u5f53\u4fee\u6539\u5c31\u597d<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/18\/175206.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u6700\u540e\u662f\u8bbe\u7f6e\u680f\uff0c\u7ecf\u6d4b\u8bd5\uff0c\u4e3a\u4e86\u786e\u4fdd\u4efb\u52a1\u4e00\u5b9a\u80fd\u591f\u6267\u884c\uff0c\u6700\u597d\u52fe\u9009\u524d\u4e09\u4e2a\u9009\u9879<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/18\/175320.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u6700\u540e\u70b9\u51fb\u786e\u5b9a\u540e\uff0c\u9700\u8981\u8f93\u5165\u4e00\u6b21\u7535\u8111\u5f00\u673a\u5bc6\u7801\uff0c\u5c31\u53ef\u4ee5\u521b\u5efa\u6210\u529f\u4e86\uff0c\u5b8c\u6210\u540e\u53ef\u4ee5\u5728<code>\u4efb\u52a1\u8ba1\u5212\u7ba1\u7406\u5e93<\/code>\u4e2d\u67e5\u770b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/18\/175621.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n> <img src=\"http:\/\/img.been.ee\/i\/2024\/12\/18\/175846.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n"},{"title":"\u642d\u5efa\u5728\u7ebf\u804a\u5929\u670d\u52a1 Mattermost","link":"https:\/\/been.ee\/p\/0-0-0-41\/","pubDate":"Thu, 05 Dec 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-41\/","description":"<h2 id=\"\u4ecb\u7ecd\">\u4ecb\u7ecd\n<\/h2><hr>\n<p>Mattermost\u662f\u4e00\u6b3e\u5f00\u6e90\u901a\u4fe1\u670d\u52a1\uff0c\u76ee\u524d\u6709\u56e2\u961f\u7248\u548c\u4f01\u4e1a\u7248\uff0c\u5176\u4e2d\u4f01\u4e1a\u7248\u8981\u6536\u8d39\uff0c\u529f\u80fd\u66f4\u5168\u9762\u4e00\u4e9b\uff0c\u4f46\u662f\u6211\u4eec\u4e2a\u4eba\u6216\u8005\u56e2\u961f\u7684\u8bdd\uff0c\u4f7f\u7528\u56e2\u961f\u7248\u5c31\u53ef\u4ee5\u4e86<\/p>\n<p>\u8bdd\u4e0d\u591a\u8bf4\uff0c\u4e0b\u9762\u5c31\u5f00\u59cb\u90e8\u7f72<\/p>\n<h2 id=\"\u642d\u5efa\">\u642d\u5efa\n<\/h2><hr>\n<p>\u7531\u4e8e\u6211\u4eec\u4f7f\u7528Docker\u6765\u8fdb\u884c\u90e8\u7f72\uff0c\u9700\u8981\u786e\u4fdd\u670d\u52a1\u5668\u5df2\u7ecf\u5b89\u88c5Docker\uff0c\u540c\u65f6\u5b98\u65b9\u6587\u6863\u4e5f\u63d0\u4f9b\u4e86\u4f7f\u7528Docker\u90e8\u7f72\u7684\u6b65\u9aa4\uff0c\u53ef\u4ee5\u76f4\u63a5\u53bb\u53c2\u8003<a class=\"link\" href=\"https:\/\/docs.mattermost.com\/install\/install-docker.html#\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a><\/p>\n<h3 id=\"\u5bb9\u5668\u5316\u670d\u52a1\u521b\u5efa\">\u5bb9\u5668\u5316\u670d\u52a1\u521b\u5efa\n<\/h3><hr>\n<p>\u9996\u5148\u521b\u5efa\u4e00\u4e2a\u653e\u7f6e\u914d\u7f6e\u6587\u4ef6\u7684\u76ee\u5f55\uff0c\u4f8b\u5982\u6211\u7684\u662f<code>\/docker\/mattermost\/<\/code>\uff0c\u8fdb\u5165\u76ee\u5f55\uff0c\u521b\u5efa<code>docker-compose.yml<\/code>\u6587\u4ef6\u5e76\u5199\u5165\u4e0b\u9762\u5185\u5bb9\uff0c\u4e0d\u9700\u8981\u4fee\u6539\u76f4\u63a5\u4fdd\u5b58<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">postgres<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">postgres:${POSTGRES_IMAGE_TAG}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">${RESTART_POLICY}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">security_opt<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"kc\">no<\/span>-<span class=\"l\">new-privileges:true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">pids_limit<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">100<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">read_only<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">tmpfs<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">\/tmp<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">\/var\/run\/postgresql<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">${POSTGRES_DATA_PATH}:\/var\/lib\/postgresql\/data<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># timezone inside container<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">TZ=${TZ}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># necessary Postgres options\/variables<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">POSTGRES_USER=${POSTGRES_USER}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">POSTGRES_PASSWORD=${POSTGRES_PASSWORD}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">POSTGRES_DB=${POSTGRES_DB}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">mattermost<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">depends_on<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">postgres<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">mattermost\/${MATTERMOST_IMAGE}:${MATTERMOST_IMAGE_TAG}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">${RESTART_POLICY}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">security_opt<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"kc\">no<\/span>-<span class=\"l\">new-privileges:true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">pids_limit<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">200<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">read_only<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">${MATTERMOST_CONTAINER_READONLY}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">tmpfs<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">\/tmp<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"m\">127.0.0.1<\/span><span class=\"p\">:<\/span><span class=\"l\">${APP_PORT}:8065<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">${MATTERMOST_CONFIG_PATH}:\/mattermost\/config:rw<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">${MATTERMOST_DATA_PATH}:\/mattermost\/data:rw<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">${MATTERMOST_LOGS_PATH}:\/mattermost\/logs:rw<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">${MATTERMOST_PLUGINS_PATH}:\/mattermost\/plugins:rw<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">${MATTERMOST_CLIENT_PLUGINS_PATH}:\/mattermost\/client\/plugins:rw<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">${MATTERMOST_BLEVE_INDEXES_PATH}:\/mattermost\/bleve-indexes:rw<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># When you want to use SSO with GitLab, you have to add the cert pki chain of GitLab inside Alpine<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># to avoid Token request failed: certificate signed by unknown authority <\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># (link: https:\/\/github.com\/mattermost\/mattermost-server\/issues\/13059 and https:\/\/github.com\/mattermost\/docker\/issues\/34)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># - ${GITLAB_PKI_CHAIN_PATH}:\/etc\/ssl\/certs\/pki_chain.pem:ro<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># timezone inside container<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">TZ=${TZ}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># necessary Mattermost options\/variables (see env.example)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">MM_SQLSETTINGS_DRIVERNAME=${MM_SQLSETTINGS_DRIVERNAME}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">MM_SQLSETTINGS_DATASOURCE=${MM_SQLSETTINGS_DATASOURCE}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># necessary for bleve<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">MM_BLEVESETTINGS_INDEXDIR=${MM_BLEVESETTINGS_INDEXDIR}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># additional settings<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">MM_SERVICESETTINGS_SITEURL=${MM_SERVICESETTINGS_SITEURL}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\"># If you use rolling image tags and feel lucky watchtower can automatically pull new images and<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\"># instantiate containers from it. https:\/\/containrrr.dev\/watchtower\/<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\"># Please keep in mind watchtower will have access on the docker socket. This can be a security risk.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#  watchtower:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#    container_name: watchtower<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#    image: containrrr\/watchtower:latest<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#    restart: unless-stopped<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#    volumes:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#      - \/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u521b\u5efa<code>.env<\/code>\u6587\u4ef6\u7528\u4e8e\u914d\u7f6e\u73af\u5883\u53d8\u91cf\uff0c\u5199\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"c\"># Domain of service<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">DOMAIN=mm.yourdomain.com<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\"># Container settings<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Timezone inside the containers. The value needs to be in the form &#39;Europe\/Berlin&#39;.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## A list of these tz database names can be looked up at Wikipedia<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## https:\/\/en.wikipedia.org\/wiki\/List_of_tz_database_time_zones<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">TZ=Asia\/Shanghai<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">RESTART_POLICY=unless-stopped<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\"># Postgres settings<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Documentation for this image and available settings can be found on hub.docker.com<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## https:\/\/hub.docker.com\/_\/postgres<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Please keep in mind this will create a superuser and it&#39;s recommended to use a less privileged<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## user to connect to the database.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## A guide on how to change the database user to a nonsuperuser can be found in docs\/creation-of-nonsuperuser.md<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">POSTGRES_IMAGE_TAG=13-alpine<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">POSTGRES_DATA_PATH=.\/volumes\/db\/var\/lib\/postgresql\/data<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">POSTGRES_USER=mattermost<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">POSTGRES_PASSWORD=your_strong_password<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">POSTGRES_DB=mattermost<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\"># Nginx<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## The nginx container will use a configuration found at the NGINX_MATTERMOST_CONFIG. The config aims<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## to be secure and uses a catch-all server vhost which will work out-of-the-box. For additional settings<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## or changes ones can edit it or provide another config. Important note: inside the container, nginx sources<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## every config file inside *\/etc\/nginx\/conf.d* ending with a *.conf* file extension.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Inside the container the uid and gid is 101. The folder owner can be set with<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## `sudo chown -R 101:101 .\/nginx` if needed.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#NGINX_IMAGE_TAG=alpine<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## The folder containing server blocks and any additional config to nginx.conf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#NGINX_CONFIG_PATH=.\/nginx\/conf.d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#NGINX_DHPARAMS_FILE=.\/nginx\/dhparams4096.pem<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#CERT_PATH=.\/volumes\/web\/cert\/cert.pem<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#KEY_PATH=.\/volumes\/web\/cert\/key-no-password.pem<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#GITLAB_PKI_CHAIN_PATH=&lt;path_to_your_gitlab_pki&gt;\/pki_chain.pem<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#CERT_PATH=.\/certs\/etc\/letsencrypt\/live\/${DOMAIN}\/fullchain.pem<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#KEY_PATH=.\/certs\/etc\/letsencrypt\/live\/${DOMAIN}\/privkey.pem<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Exposed ports to the host. Inside the container 80, 443 and 8443 will be used<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#HTTPS_PORT=443<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#HTTP_PORT=80<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">#CALLS_PORT=8443<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\"># Mattermost settings<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Inside the container the uid and gid is 2000. The folder owner can be set with<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## `sudo chown -R 2000:2000 .\/volumes\/app\/mattermost`.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MATTERMOST_CONFIG_PATH=.\/volumes\/app\/mattermost\/config<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MATTERMOST_DATA_PATH=.\/volumes\/app\/mattermost\/data<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MATTERMOST_LOGS_PATH=.\/volumes\/app\/mattermost\/logs<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MATTERMOST_PLUGINS_PATH=.\/volumes\/app\/mattermost\/plugins<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MATTERMOST_CLIENT_PLUGINS_PATH=.\/volumes\/app\/mattermost\/client\/plugins<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MATTERMOST_BLEVE_INDEXES_PATH=.\/volumes\/app\/mattermost\/bleve-indexes<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Bleve index (inside the container)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MM_BLEVESETTINGS_INDEXDIR=\/mattermost\/bleve-indexes<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## This will be &#39;mattermost-enterprise-edition&#39; or &#39;mattermost-team-edition&#39; based on the version of Mattermost you&#39;re installing.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MATTERMOST_IMAGE=mattermost-team-edition<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Update the image tag if you want to upgrade your Mattermost version. You may also upgrade to the latest one. The example is based on the latest Mattermost ESR version.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MATTERMOST_IMAGE_TAG=latest<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Make Mattermost container readonly. This interferes with the regeneration of root.html inside the container. Only use<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## it if you know what you&#39;re doing.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## See https:\/\/github.com\/mattermost\/docker\/issues\/18<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MATTERMOST_CONTAINER_READONLY=false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## The app port is only relevant for using Mattermost without the nginx container as reverse proxy. This is not meant<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## to be used with the internal HTTP server exposed but rather in case one wants to host several services on one host<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## or for using it behind another existing reverse proxy.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">APP_PORT=8065<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Configuration settings for Mattermost. Documentation on the variables and the settings itself can be found at<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## https:\/\/docs.mattermost.com\/administration\/config-settings.html<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Keep in mind that variables set here will take precedence over the same setting in config.json. This includes<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## the system console as well and settings set with env variables will be greyed out.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Below one can find necessary settings to spin up the Mattermost container<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MM_SQLSETTINGS_DRIVERNAME=postgres<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MM_SQLSETTINGS_DATASOURCE=postgres:\/\/${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432\/${POSTGRES_DB}?sslmode=disable&amp;connect_timeout=10<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"c\">## Example settings (any additional setting added here also needs to be introduced in the docker-compose.yml)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">MM_SERVICESETTINGS_SITEURL=https:\/\/${DOMAIN}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u9700\u8981\u6ce8\u610f\uff0c\u5728<code>.env<\/code>\u6587\u4ef6\u4e2d\uff0c\u5c06<code>DOMAIN<\/code>\u4fee\u6539\u4e3a\u81ea\u5df1\u7684\u7528\u4e8e\u8bbf\u95ee\u670d\u52a1\u5668\u7684\u57df\u540d\uff0c<code>POSTGRES_PASSWORD<\/code>\u914d\u7f6e\u4e3a\u81ea\u5df1\u7684\u6570\u636e\u5e93\u5bc6\u7801\uff0c\u5176\u4ed6\u7684\u53ef\u4ee5\u4e0d\u7528\u4fee\u6539\uff0c\u7136\u540e\u4fdd\u5b58<\/p>\n<p>\u63a5\u4e0b\u6765\u5728\u5bbf\u4e3b\u673a\u521b\u5efa\u7528\u4e8e\u6620\u5c04\u5bb9\u5668\u5185\u6570\u636e\u7684\u76ee\u5f55\u5e76\u8bbe\u7f6e\u6743\u9650<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">mkdir -p .\/volumes\/app\/mattermost\/<span class=\"o\">{<\/span>config,data,logs,plugins,client\/plugins,bleve-indexes<span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo chown -R 2000:2000 .\/volumes\/app\/mattermost\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c<code>docker compose up -d<\/code>\u542f\u52a8\u5bb9\u5668\u670d\u52a1<\/p>\n<h3 id=\"nginx\u914d\u7f6e\">Nginx\u914d\u7f6e\n<\/h3><hr>\n<p>\u63a5\u4e0b\u6765\uff0c\u9700\u8981\u914d\u7f6enginx\u8fdb\u884c\u53cd\u5411\u4ee3\u7406\uff0c\u9996\u5148\u9700\u8981\u7ed9\u57df\u540d\u7533\u8bf7\u4e00\u4e2aSSL\u8bc1\u4e66\uff0c\u53ef\u4ee5\u7528<code>certbot<\/code>\u8fdb\u884c\u7533\u8bf7<\/p>\n<p>\u7136\u540e\u5728<code>\/etc\/nginx\/conf.d\/<\/code>\u4e0b\u521b\u5efa<code>mattermost.conf<\/code>\u914d\u7f6e\u6587\u4ef6\uff0c\u7136\u540e\u5199\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">upstream backend <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   server 127.0.0.1:8065<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   keepalive 32<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen 80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  server_name   mm.yourdomain.com<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"k\">return<\/span> <span class=\"m\">301<\/span> https:\/\/<span class=\"nv\">$server_name$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   listen <span class=\"m\">443<\/span> ssl<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   http2 on<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   server_name    mm.yourdomain.com<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"c1\"># http2_push_preload on; # Enable HTTP\/2 Server Push<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   ssl_certificate \/etc\/letsencrypt\/live\/mm.yourdomain.com\/fullchain.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   ssl_certificate_key \/etc\/letsencrypt\/live\/mm.yourdomain.com\/privkey.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   ssl_session_timeout 1d<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"c1\"># Enable TLS versions (TLSv1.3 is required upcoming HTTP\/3 QUIC).<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   ssl_protocols TLSv1.2 TLSv1.3<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"c1\"># Enable TLSv1.3&#39;s 0-RTT. Use $ssl_early_data when reverse proxying to<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"c1\"># prevent replay attacks.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"c1\"># @see: https:\/\/nginx.org\/en\/docs\/http\/ngx_http_ssl_module.html#ssl_early_data<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   ssl_early_data on<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   ssl_ciphers <span class=\"s1\">&#39;ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384&#39;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   ssl_prefer_server_ciphers on<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   ssl_session_cache shared:SSL:50m<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"c1\"># HSTS (ngx_http_headers_module is required) (15768000 seconds = six months)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   add_header Strict-Transport-Security max-age<span class=\"o\">=<\/span>15768000<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"c1\"># OCSP Stapling ---<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"c1\"># fetch OCSP records from URL in ssl_certificate and cache them<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   ssl_stapling on<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   ssl_stapling_verify on<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   add_header X-Early-Data <span class=\"nv\">$tls1_3_early_data<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   location ~ \/api\/v<span class=\"o\">[<\/span>0-9<span class=\"o\">]<\/span>+\/<span class=\"o\">(<\/span>users\/<span class=\"o\">)<\/span>?websocket$ <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header Upgrade <span class=\"nv\">$http_upgrade<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header Connection <span class=\"s2\">&#34;upgrade&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       client_max_body_size 50M<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header Host <span class=\"nv\">$host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header X-Forwarded-For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header X-Forwarded-Proto <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header X-Frame-Options SAMEORIGIN<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_buffers <span class=\"m\">256<\/span> 16k<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_buffer_size 16k<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       client_body_timeout 60s<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       send_timeout 300s<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       lingering_timeout 5s<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_connect_timeout 90s<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_send_timeout 300s<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_read_timeout 90s<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_http_version 1.1<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_pass http:\/\/backend<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   location \/ <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       client_max_body_size 100M<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header Connection <span class=\"s2\">&#34;&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header Host <span class=\"nv\">$host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header X-Forwarded-For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header X-Forwarded-Proto <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_set_header X-Frame-Options SAMEORIGIN<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_buffers <span class=\"m\">256<\/span> 16k<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_buffer_size 16k<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_read_timeout 600s<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_http_version 1.1<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       proxy_pass http:\/\/backend<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># This block is useful for debugging TLS v1.3. Please feel free to remove this<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># and use the `$ssl_early_data` variable exposed by NGINX directly should you<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># wish to do so.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> map <span class=\"nv\">$ssl_early_data<\/span> <span class=\"nv\">$tls1_3_early_data<\/span> <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"s2\">&#34;~.&#34;<\/span> <span class=\"nv\">$ssl_early_data<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   default <span class=\"s2\">&#34;&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6ce8\u610f\uff0c\u9700\u8981\u5c06<code>server_name<\/code>\u548c\u8bc1\u4e66\u90e8\u5206\u66ff\u6362\u4e3a\u81ea\u5df1\u7684\u670d\u52a1\u5668\u57df\u540d\u548c\u8bc1\u4e66\uff0c \u7136\u540e\u6267\u884c<code>systemctl restart nginx<\/code>\u4f7f\u914d\u7f6e\u751f\u6548\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u901a\u8fc7<code>https:\/\/mm.yourdomain.com<\/code>\u8bbf\u95eeMattermost\u670d\u52a1\u5566<\/p>\n<h2 id=\"\u914d\u7f6e\">\u914d\u7f6e\n<\/h2><hr>\n<p>\u6211\u4eec\u901a\u8fc7\u57df\u540d\u8bbf\u95ee\u670d\u52a1\u540e\uff0c\u9996\u5148\u9700\u8981\u6ce8\u518c\u4e00\u4e2a\u8d26\u6237\u5c06\u4f5c\u4e3a\u7ba1\u7406\u5458<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/06\/101420.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u9700\u8981\u6211\u4eec\u521b\u5efa\u4e00\u4e2a\u7ec4\u7ec7\u4e5f\u5c31\u662f\u56e2\u961f\uff0c\u53ef\u4ee5\u968f\u4fbf\u586b\u4e00\u4e2a\u540d\u5b57\uff08\u5efa\u8bae\u7528\u82f1\u6587\u5c31\u597d\uff0c\u4e0d\u8981\u52a0\u4e0b\u5212\u7ebf\u4e4b\u7c7b\u7684\u7b26\u53f7\uff0c\u56e0\u4e3a\u4e00\u5f00\u59cb\u52a0\u4e0b\u5212\u7ebf\u540e\uff0c\u540e\u9762\u521b\u5efa\u5de5\u4f5c\u533a\u4f1a\u4e00\u76f4\u5361\u4f4f\uff0c\u53bb\u6389\u540e\u5c31\u4e00\u5207\u987a\u5229\uff0c\u76ee\u524d\u6ca1\u6709\u6d4b\u8bd5\u5176\u4ed6\u7b26\u53f7\uff0c\u53ef\u80fd\u662fBug\uff0c\u603b\u4e4b\u5148\u6ce8\u610f\u4e00\u4e0b\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/06\/101520.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n><\/p>\n<p>\u540e\u9762\u80fd\u8df3\u8fc7\u7684\u5c31\u5148\u8df3\u8fc7\uff0c\u6700\u540e\u70b9\u51fbFinish Setup\uff0c\u7136\u540e\u5c31\u521b\u5efa\u597d\u4e86<\/p>\n<h3 id=\"\u4fee\u6539\u8bed\u8a00\">\u4fee\u6539\u8bed\u8a00\n<\/h3><hr>\n<p>\u8fdb\u5165\u5de5\u4f5c\u533a\u540e\uff0c\u53ef\u4ee5\u5728\u53f3\u4e0a\u89d2\u8bbe\u7f6e\u4e2d\u4fee\u6539\u8bed\u8a00\u4e3a\u4e2d\u6587<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/06\/102244-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h3 id=\"\u5f00\u653e\u6ce8\u518c\">\u5f00\u653e\u6ce8\u518c\n<\/h3><hr>\n<p>Mattermost\u9ed8\u8ba4\u662f\u53ea\u80fd\u901a\u8fc7\u9080\u8bf7\u6ce8\u518c\uff0c\u800c\u4e0d\u5141\u8bb8\u7528\u6237\u81ea\u5df1\u6ce8\u518c\u7684\uff0c\u53ef\u4ee5\u4ece\u5de6\u4e0a\u89d2\u8fdb\u5165<code>\u7cfb\u7edf\u63a7\u5236\u53f0<\/code>\uff0c\u627e\u5230<code>\u8ba4\u8bc1<\/code> - <code>\u6ce8\u518c<\/code>\u4e00\u680f\u6253\u5f00\uff0c\u7136\u540e\u5728<code>\u542f\u7528\u5f00\u653e\u670d\u52a1\u5668<\/code>\u9009\u9879\u9009\u62e9<code>\u662f<\/code>\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/06\/104250-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n> <img src=\"http:\/\/img.been.ee\/i\/2024\/12\/06\/104456-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7531\u4e8eMattermost\u8981\u6c42\u7528\u6237\u6ce8\u518c\u540e\u9700\u8981\u52a0\u5165\u56e2\u961f\u6216\u521b\u5efa\u56e2\u961f\uff0c\u800c\u6211\u4eec\u6b64\u524d\u9ed8\u8ba4\u521b\u5efa\u7684\u56e2\u961f\u662f\u4e0d\u516c\u5f00\u7684\uff0c\u5982\u679c\u6211\u4eec\u5e0c\u671b\u521b\u5efa\u7528\u6237\u7684\u65f6\u5019\u76f4\u63a5\u52a0\u5165\u5df2\u6709\u56e2\u961f\uff0c\u9700\u8981\u786e\u4fdd\u56e2\u961f\u662f\u516c\u5f00\u7684\uff0c\u8fd9\u5c31\u9700\u8981\u70b9\u51fb\u56e2\u961f\u540d\u79f0\uff0c\u5728\u8bbf\u95ee\u4e00\u680f\u627e\u5230<code>\u5141\u8bb8\u4efb\u4f55\u5728\u672c\u670d\u52a1\u5668\u4e0a\u7684\u7528\u6237\u52a0\u5165\u6b64\u56e2\u961f<\/code>\u9009\u9879\u5e76\u52fe\u9009\uff0c\u8fd9\u6837\u65b0\u7528\u6237\u521b\u5efa\u7684\u65f6\u5019\u80fd\u591f\u76f4\u63a5\u52a0\u5165\u8fdb\u6765\uff0c\u4e0d\u7136\u7684\u8bdd\u5c31\u9700\u8981\u9080\u8bf7\u94fe\u63a5\u624d\u884c<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/06\/110305-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5f53\u7136\uff0c\u4e3a\u4e86\u9632\u6b62\u6076\u610f\u6279\u91cf\u6ce8\u518c\uff0c\u5efa\u8bae\u6ce8\u518c\u9009\u9879\u5728\u6709\u9700\u8981\u7684\u65f6\u5019\u6253\u5f00\uff0c\u5e73\u65f6\u5173\u95ed\u5c31\u597d<\/p>\n<h3 id=\"\u914d\u7f6esmtp\u901a\u77e5\">\u914d\u7f6eSMTP\u901a\u77e5\n<\/h3><hr>\n<p>\u540c\u6837\u5728<code>\u7cfb\u7edf\u63a7\u5236\u53f0<\/code>\u627e\u5230<code>\u73af\u5883<\/code> - <code>SMTP<\/code>\u4e00\u680f\u6253\u5f00\uff0c\u7136\u540e\u8f93\u5165\u81ea\u5df1\u7684SMTP\u670d\u52a1\u5668\u4fe1\u606f\uff0c\u5177\u4f53\u9700\u8981\u6839\u636e\u81ea\u5df1\u4f7f\u7528\u7684SMTP\u670d\u52a1\u5668\u8bbe\u7f6e\uff0c\u8fd9\u91cc\u5c31\u4e0d\u591a\u4ecb\u7ecd\uff0c\u4f46\u662f\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5728\u914d\u7f6e\u5b8c\u540e\u5e76\u4e14\u786e\u4fdd\u6ca1\u6709\u9519\u8bef\u7684\u60c5\u51b5\u4e0b\uff0c\u70b9\u51fb<code>\u6d4b\u8bd5\u94fe\u63a5<\/code>\u53ef\u80fd\u4e00\u76f4\u5931\u8d25<\/p>\n<p>\u5982\u679c\u51fa\u73b0\u8fd9\u79cd\u60c5\u51b5\uff0c\u9700\u8981\u5230<code>\u7cfb\u7edf\u63a7\u5236\u53f0<\/code>\u4e2d\u627e\u5230<code>\u7ad9\u70b9\u914d\u7f6e<\/code> - <code>\u901a\u77e5<\/code>\u4e00\u680f\u6253\u5f00\uff0c\u9009\u62e9<code>\u542f\u7528\u53d1\u9001\u90ae\u4ef6\u901a\u77e5<\/code>\uff0c\u5e76\u914d\u7f6e<code>\u6765\u81ea\u5730\u5740\u7684\u901a\u77e5<\/code>\u3001<code>\u5ba2\u6237\u652f\u6301\u90ae\u4ef6\u5730\u5740<\/code>\u548c<code>\u901a\u77e5 Reply-To \u5730\u5740<\/code>\u9009\u9879\u4e3a\u524d\u9762\u8bbe\u7f6e\u7684<code>SMTP\u670d\u52a1\u5668\u7528\u6237\u540d<\/code>\uff0c\u4f8b\u5982notify@xxx.com\uff0c<code>\u901a\u77e5\u663e\u793a\u540d\u79f0<\/code>\u4e5f\u53ef\u4ee5\u8bbe\u7f6e\u4e00\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/12\/06\/105802-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u4ee5\u4e0a\u8bbe\u7f6e\u597d\u4fdd\u5b58\u540e\uff0c\u518d\u8fd4\u56deSMTP\u914d\u7f6e\u9875\u9762\u70b9\u51fb<code>\u6d4b\u8bd5\u94fe\u63a5<\/code>\u5e94\u8be5\u5c31\u6210\u529f\u4e86<\/p>\n<blockquote>\n<p><code>\u542f\u7528\u53d1\u9001\u90ae\u4ef6\u901a\u77e5<\/code>\u5f00\u542f\u540e\uff0c\u7528\u6237\u5728\u53d7\u5230\u5404\u79cd\u4fe1\u606f\u7684\u65f6\u5019\u90fd\u4f1a\u88ab\u53d1\u9001\u90ae\u4ef6\u901a\u77e5\uff0c\u5982\u679c\u4e0d\u5e0c\u671b\u5982\u6b64\uff0c\u53ef\u4ee5\u5728\u914d\u7f6e\u5b8c\u540e\u5173\u95ed\u8be5\u9009\u9879<\/p><\/blockquote>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u57fa\u672c\u4e0a\u611f\u89c9\u6bd4Matrix Synapse\u66f4\u6613\u7528\u4e00\u4e9b\uff0c\u914d\u7f6e\u8d77\u6765\u76f8\u5bf9\u66f4\u7b80\u5355\u4e00\u4e9b\uff0c\u540e\u9762\u5148\u4f53\u9a8c\u6bb5\u65f6\u95f4\u770b\u770b\u5427\uff0c\u4ee5\u540e\u6709\u9700\u8981\u518d\u505a\u8865\u5145\u5427<\/p>\n"},{"title":"\u642d\u5efa Syncthing \u670d\u52a1\u7528\u4e8e\u591a\u7aef\u540c\u6b65\u4e0e\u5907\u4efd","link":"https:\/\/been.ee\/p\/0-0-0-40\/","pubDate":"Sun, 03 Nov 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-40\/","description":"<h2 id=\"syncthing\u4ecb\u7ecd\">Syncthing\u4ecb\u7ecd\n<\/h2><hr>\n<p>\u7b80\u5355\u5730\u8bf4<a class=\"link\" href=\"https:\/\/github.com\/syncthing\/syncthing\"  target=\"_blank\" rel=\"noopener\"\n    >Syncthing<\/a>\u662f\u4e00\u6b3e\u53ef\u4ee5\u5b9e\u73b0<strong>\u591a\u7aef\u6587\u4ef6\u540c\u6b65<\/strong>\u7684\u5f00\u6e90\u9879\u76ee\u7a0b\u5e8f\uff0c\u4f8b\u5982\uff0c\u6211\u67093\u53f0\u673a\u5668\u548c\u8bb8\u591a\u91cd\u8981\u7684\u6570\u636e\u8d44\u6599\uff0c\u8fd9\u4e9b\u6570\u636e\u8d44\u6599\u4f1a\u4e0d\u5b9a\u65f6\u66f4\u65b0\u8865\u5145\uff0c\u4e3a\u4e86\u9632\u6b62\u4e22\u5931\uff0c\u6211\u5e0c\u671b\u5c06\u8d44\u6599\u5b58\u653e\u5728\u8fd93\u53f0\u673a\u5668\u4e2d\uff0c\u5e76\u4e14\u53ea\u8981\u5728\u4e00\u53f0\u673a\u5668\u66f4\u65b0\uff0c\u5c31\u4f1a\u81ea\u52a8\u540c\u6b65\u5230\u6240\u6709\u673a\u5668\uff0c\u90a3\u4e48Syncthing\u5c31\u662f\u7528\u6765\u5b9e\u73b0\u8fd9\u4e2a\u529f\u80fd\u7684\uff0c\u5e76\u4e14\u5176\u529f\u80fd\u8fdc\u4e0d\u6b62\u6b64<\/p>\n<p>Syncthing\u76ee\u524d\u51e0\u4e4e\u53ef\u4ee5<strong>\u5168\u5e73\u53f0<\/strong>\u90e8\u7f72\uff08<a class=\"link\" href=\"https:\/\/syncthing.net\/downloads\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u4e0b\u8f7d\u5730\u5740<\/a>\uff09\uff0c\u652f\u6301Windows\u3001Linux\u3001MacOS\u3001Android\u7b49\uff0c\u51e0\u4e4e\u6db5\u76d6\u5927\u90e8\u5206\u4eba\u63a5\u89e6\u5230\u7684\u5e73\u53f0\uff0c\u6240\u4ee5\u7528\u8d77\u6765\u975e\u5e38\u65b9\u4fbf<\/p>\n<h2 id=\"\u90e8\u7f72\">\u90e8\u7f72\n<\/h2><hr>\n<p>\u4e0b\u9762\u5c06\u53ea\u4ecb\u7ecd\u5e38\u7528\u7684Windows\u548cLinux\u5e73\u53f0\u7684\u90e8\u7f72\u65b9\u6848<\/p>\n<h3 id=\"windows\u5e73\u53f0\">Windows\u5e73\u53f0\n<\/h3><hr>\n<p>Windows\u5e73\u53f0\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5b89\u88c5\u7a0b\u5e8f\uff0c\u53ef\u4ee5\u76f4\u63a5\u5b89\u88c5\u5230\u7cfb\u7edf\u4e0a\uff0c\u7136\u540e\u5728GUI\u754c\u9762\u4e0b\u4f7f\u7528\uff0c\u975e\u5e38\u65b9\u4fbf<\/p>\n<p>\u53ef\u4ee5\u76f4\u63a5\u70b9\u51fb<a class=\"link\" href=\"https:\/\/github.com\/Bill-Stewart\/SyncthingWindowsSetup\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u91cc<\/a>\u8fdb\u5230Github\u9879\u76ee\u4e2d\u4e0b\u8f7d\u5b89\u88c5\u7a0b\u5e8f\uff0c\u6309\u7167\u6b65\u9aa4\u5b89\u88c5\u5373\u53ef<\/p>\n<p>\u5b89\u88c5\u597d\u540e\uff0c\u7a0b\u5e8f\u4f1a\u9ed8\u8ba4\u76d1\u542c\u5728<code>8384<\/code>\u7aef\u53e3\uff0c\u5728\u6d4f\u89c8\u5668\u4e2d\u8bbf\u95ee<code>http:\/\/127.0.0.1:8384\/<\/code>\u5373\u53ef\u8fdb\u5165Syncthing\u7684GUI\u754c\u9762\uff0c\u4e5f\u53ef\u4ee5\u5728\u5b89\u88c5\u7684\u65f6\u5019\u52fe\u9009\u751f\u6210<code>shortcut<\/code>\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u5728\u684c\u9762\u70b9\u51fb\u5feb\u6377\u65b9\u5f0f\u8fdb\u5165\u4e86<\/p>\n<blockquote>\n<p>\u6ce8\uff1a\u6ca1\u8bb0\u9519\u7684\u8bdd\uff0c\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u6709\u63d0\u4f9b\u5f00\u673a\u81ea\u542f\u7684\u9009\u9879\uff0c\u7531\u4e8e\u4e0d\u592a\u8bb0\u5f97\u5f53\u65f6\u6709\u6ca1\u6709\u52fe\u9009\uff0c\u6240\u4ee5\u6211\u5c06<code>Start Syncthing<\/code>\u8fd9\u4e2a\u7a0b\u5e8f\u91cd\u65b0\u751f\u6210\u4e86\u4e2a\u5feb\u6377\u65b9\u5f0f\u653e\u5230\u4e86\u542f\u52a8\u76ee\u5f55\uff08shell:startup\uff09\u91cc\u4ee5\u9632\u4e07\u4e00<\/p><\/blockquote>\n<p>\u5173\u4e8eGUI\u754c\u9762\u64cd\u4f5c\u7684\u5185\u5bb9\u653e\u5230\u6700\u540e\u9762\u4e00\u8d77\u8bb2\u5427\uff0c\u53ef\u4ee5\u76f4\u63a5\u70b9\u51fb<a class=\"link\" href=\"#%e9%85%8d%e7%bd%ae%e4%b8%8e%e6%93%8d%e4%bd%9c\" >\u8fd9\u91cc<\/a>\u8df3\u8f6c<\/p>\n<h3 id=\"linux\u5e73\u53f0\u670d\u52a1\u5668\">Linux\u5e73\u53f0(\u670d\u52a1\u5668)\n<\/h3><hr>\n<p>\u8fd9\u90e8\u5206\u4ecb\u7ecd\u4e00\u4e0b\u5728Linux\u670d\u52a1\u5668\u4e0a\u642d\u5efaSyncthing\u7684\u65b9\u6cd5\uff0c\u56e0\u4e3a\u670d\u52a1\u5668\u4e0a\u901a\u5e38\u4f1a\u90fd\u5b89\u88c5Docker\uff0c\u800cSyncthing\u63d0\u4f9b\u4e86Docker\u5bb9\u5668\u955c\u50cf\uff0c\u56e0\u6b64\u63a8\u8350\u4f7f\u7528Docker\u90e8\u7f72\uff0c\u6bd4\u8f83\u65b9\u4fbf<\/p>\n<h4 id=\"\u5bb9\u5668\u521b\u5efa\">\u5bb9\u5668\u521b\u5efa\n<\/h4><hr>\n<p>\u63a8\u8350\u76f4\u63a5\u4f7f\u7528<code>docker-compose<\/code>\u8fdb\u884c\u90e8\u7f72\uff0c\u786e\u4fdd\u5df2\u7ecf\u5b89\u88c5\u4e86<code>docker<\/code>\u548c<code>docker-compose<\/code>\uff0c\u5b89\u88c5\u6b65\u9aa4\u8fd9\u91cc\u5c31\u4e0d\u518d\u8d58\u8ff0\uff0c\u7136\u540e\u521b\u5efa<code>docker-compose.yml<\/code>\u6587\u4ef6\uff0c\u5199\u5165\u5982\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">syncthing<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">syncthing\/syncthing<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">syncthing<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">hostname<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">my-syncthing<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">PUID=0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">PGID=0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">.\/syncthing_data:\/var\/syncthing<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">\/dir1:\/dir1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">\/dir2:\/dir2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"m\">127.0.0.1<\/span><span class=\"p\">:<\/span><span class=\"m\">8384<\/span><span class=\"p\">:<\/span><span class=\"m\">8384<\/span><span class=\"w\"> <\/span><span class=\"c\"># Web UI<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"m\">22000<\/span><span class=\"p\">:<\/span><span class=\"m\">22000<\/span><span class=\"l\">\/tcp<\/span><span class=\"w\"> <\/span><span class=\"c\"># TCP file transfers<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"m\">22000<\/span><span class=\"p\">:<\/span><span class=\"m\">22000<\/span><span class=\"l\">\/udp<\/span><span class=\"w\"> <\/span><span class=\"c\"># QUIC file transfers<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"m\">21027<\/span><span class=\"p\">:<\/span><span class=\"m\">21027<\/span><span class=\"l\">\/udp<\/span><span class=\"w\"> <\/span><span class=\"c\"># Receive local discovery broadcasts<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">unless-stopped<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u6211\u5728<code>docker-compose.yml<\/code>\u6587\u4ef6\u7684\u73af\u5883\u53d8\u91cf\u4e2d\u914d\u7f6e\u4e86<code>PUID=0<\/code>\u548c<code>PGID=0<\/code>\uff0c\u8fd9\u610f\u5473\u7740\u5bb9\u5668\u542f\u52a8\u540eSyncthing\u5c06\u5177\u6709<strong>Root\u6743\u9650<\/strong>\uff0c\u800c<strong>\u5b98\u65b9\u5efa\u8bae\u914d\u7f6e\u666e\u901a\u7528\u6237\u6743\u9650<\/strong><code>PUID=1000\uff0cPGID=1000<\/code>\uff0c\u6211\u4e4b\u6240\u4ee5\u4f7f\u7528Root\u6743\u9650\u662f\u56e0\u4e3a\u6211\u7684\u6587\u4ef6\u7cfb\u7edf\u4e2d\u7684\u76ee\u5f55\u6240\u5c5e\u7528\u6237\u51e0\u4e4e\u90fd\u4e3aRoot\uff0c\u4f7f\u7528\u666e\u901a\u7528\u6237\u4f1a\u6ca1\u6cd5\u8bbf\u95ee\uff0c\u6240\u4ee5\u5e72\u8106\u63d0\u6743\u6765\u4e00\u52b3\u6c38\u9038<\/p>\n<p>\u5bf9\u4e8e\u6302\u8f7d\u5377\uff0c\u9700\u8981\u4fdd\u8bc1\u5bb9\u5668\u7684<code>\/var\/syncthing<\/code>\u76ee\u5f55\u8981\u6302\u8f7d\u5230\u5bbf\u4e3b\u673a\uff0c\u5176\u4ed6\u7684\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u9700\u8981\u540c\u6b65\u7684\u76ee\u5f55\u6309\u7167\u9700\u8981\u8fdb\u884c\u6302\u8f7d<\/p>\n<p><code>docker-compose.yml<\/code>\u6587\u4ef6\u5199\u5165\u540e\u5c31\u53ef\u4ee5\u6267\u884c<code>docker-compose up -d<\/code>\u542f\u52a8\u5bb9\u5668\u4e86<\/p>\n<h4 id=\"\u53cd\u5411\u4ee3\u7406\">\u53cd\u5411\u4ee3\u7406\n<\/h4><hr>\n<p>\u53cd\u4ee3\u7a0b\u5e8f\u4f7f\u7528\u7684\u4f9d\u7136\u662f\u6211\u4eec\u7684\u8001\u670b\u53cbNginx\uff0c\u6211\u4eec\u9700\u8981\u6709\u4e00\u4e2a\u57df\u540d\uff0c\u5e76\u7533\u8bf7\u597d\u8bc1\u4e66\uff08\u53ef\u4ee5\u4f7f\u7528<code>certbot<\/code>\u7533\u8bf7<code>Let's Encrypt<\/code>\u8bc1\u4e66\uff09\uff0c\u8fd9\u91cc\u4e5f\u4e0d\u518d\u8d58\u8ff0<\/p>\n<p>\u7136\u540e\u5728<code>\/etc\/nginx\/conf.d\/<\/code>\u4e0b\u521b\u5efaNginx\u914d\u7f6e\u6587\u4ef6<code>syncthing.conf<\/code>\uff0c\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen 80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen <span class=\"o\">[<\/span>::<span class=\"o\">]<\/span>:80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  server_name &lt;your_domain&gt;<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"k\">return<\/span> <span class=\"m\">301<\/span> https:<span class=\"nv\">$server_name$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen <span class=\"m\">443<\/span> ssl http2<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen <span class=\"o\">[<\/span>::<span class=\"o\">]<\/span>:443 ssl http2<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  server_name &lt;your_domain&gt;<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_certificate     \/etc\/letsencrypt\/live\/&lt;your_domain&gt;\/fullchain.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_certificate_key \/etc\/letsencrypt\/live\/&lt;your_domain&gt;\/privkey.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">  location \/ <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header        Host <span class=\"nv\">$host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header        X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header        X-Forwarded-For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header        X-Forwarded-Proto <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_pass              http:\/\/localhost:8384\/<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_read_timeout      600s<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_send_timeout      600s<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u9700\u8981\u5c06<code>server_name<\/code>\u548cssl\u8bc1\u4e66\u90e8\u5206\u7684<code>&lt;your_domain&gt;<\/code>\u66ff\u6362\u4e3a\u81ea\u5df1\u7684\u57df\u540d\uff0c\u7136\u540e<code>systemctl restart nginx<\/code>\u91cd\u542fNginx\u670d\u52a1\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u76f4\u63a5\u8bbf\u95ee<code>https:\/\/&lt;your_domain&gt;<\/code>\u8fdb\u5165GUI\u754c\u9762<\/p>\n<h3 id=\"linux\u5e73\u53f0\u4e2a\u4ebapc\">Linux\u5e73\u53f0(\u4e2a\u4ebaPC)\n<\/h3><hr>\n<p>\u8fd9\u91cc\u4ecb\u7ecd\u5728\u4e2a\u4ebaLinux PC\u4e0a\u5b89\u88c5Syncthing\u7684\u6b65\u9aa4\uff0c\u4ee5Archlinux\u7cfb\u7edf\u4e3a\u4f8b\uff0c\u5b89\u88c5\u5341\u5206\u7b80\u5355<\/p>\n<p>\u76f4\u63a5\u4f7f\u7528Archlinux\u7684\u5305\u7ba1\u7406\u5668\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo pacman -S syncthing\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u542f\u52a8Syncthing\u670d\u52a1\u5e76\u914d\u7f6e\u5f00\u673a\u81ea\u542f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">sudo systemctl <span class=\"nb\">enable<\/span> --now syncthing@&lt;username&gt;.service  <span class=\"c1\"># \u6ce8\u610f\u8fd9\u91cc\u7684&lt;username&gt;\u9700\u8981\u66ff\u6362\u4e3a\u7cfb\u7edf\u771f\u5b9e\u7684\u7528\u6237\u540d\uff0c\u8868\u793a\u8fd9\u4e2a\u670d\u52a1\u4e3a\u8be5\u7528\u6237\u8fd0\u884c<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u670d\u52a1\u542f\u52a8\u540e\uff0c\u4f55\u4ee5\u8bbf\u95ee<code>http:\/\/localhost:8384<\/code>\u6765\u8bbf\u95eeWeb\u914d\u7f6e\u754c\u9762<\/p>\n<h2 id=\"\u914d\u7f6e\u4e0e\u64cd\u4f5c\">\u914d\u7f6e\u4e0e\u64cd\u4f5c\n<\/h2><hr>\n<p>\u642d\u5efa\u597d\u670d\u52a1\u540e\uff0c\u63a5\u4e0b\u6765\u4ecb\u7ecd\u4e00\u4e0bSyncthing GUI\u754c\u9762\u7684\u64cd\u4f5c\u548c\u4f7f\u7528<\/p>\n<h3 id=\"\u8bbf\u95ee\u63a7\u5236\">\u8bbf\u95ee\u63a7\u5236\n<\/h3><hr>\n<p>\u8fdb\u5165\u754c\u9762\u540e\u53ef\u4ee5\u5148\u5c06\u8bed\u8a00\u6539\u4e3a\u4e2d\u6587\uff0c\u7136\u540e\u53ef\u4ee5\u6839\u636e\u9700\u8981\u5728<code>\u8bbe\u7f6e - GUI<\/code>\u754c\u9762\u4e2d\u6dfb\u52a0\u6253\u5f00\u7f51\u9875\u65f6\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/010131.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<h3 id=\"\u6dfb\u52a0\u8fdc\u7a0b\u8bbe\u5907\">\u6dfb\u52a0\u8fdc\u7a0b\u8bbe\u5907\n<\/h3><hr>\n<p>\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u9700\u8981\u9996\u5148\u6dfb\u52a0\u4e00\u4e2a\u8fdc\u7a0b\u8bbe\u5907\u6765\u548c\u6211\u4eec\u5f53\u524d\u8bbe\u5907\u5efa\u7acb\u8fde\u63a5\uff0c\u70b9\u51fb\u9996\u9875<code>\u6dfb\u52a0\u8fdc\u7a0b\u8bbe\u5907<\/code>\uff0c\u5f39\u51fa\u5bf9\u8bdd\u6846\uff0c\u5728<code>\u5e38\u89c4<\/code>\u83dc\u5355\u91cc\u8f93\u5165\u8fdc\u7a0b\u8bbe\u5907\u7684<strong>\u8bbe\u5907ID<\/strong>\u548c<strong>\u8bbe\u5907\u540d<\/strong>\uff0c<code>\u5171\u4eab<\/code>\u548c<code>\u9ad8\u7ea7<\/code>\u83dc\u5355\u53ef\u4ee5\u6682\u65f6\u4e0d\u7528\u7ba1<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/100934-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5176\u4e2d<strong>\u8bbe\u5907ID<\/strong>\u662f\u6bcf\u53f0\u8bbe\u5907\u90e8\u7f72\u597dSyncthing\u670d\u52a1\u540e\u81ea\u52a8\u751f\u6210\u7684\u552f\u4e00\u6807\u8bc6\u7b26\uff0c\u53ef\u4ee5\u70b9\u51fb\u53f3\u4e0a\u89d2<code>\u64cd\u4f5c<\/code> - <code>\u663e\u793aID<\/code>\u627e\u5230\uff0c<strong>\u8bbe\u5907\u540d<\/strong>\u53ef\u4ee5\u968f\u4fbf\u8d77\u4e00\u4e2a\u522b\u540d\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/101210-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6dfb\u52a0\u5b8c\u8bbe\u5907\u70b9\u51fb\u4fdd\u5b58\u540e\uff0c\u5728\u8fdc\u7a0b\u8bbe\u5907\u7684GUI\u754c\u9762\u4f1a\u5f39\u51fa\u4e00\u4e2a\u7533\u8bf7\u5efa\u7acb\u8bbe\u5907\u8fde\u63a5\u7684\u5bf9\u8bdd\u6846\uff08\u53ef\u80fd\u9700\u8981\u7b49\u51e0\u79d2\uff09\uff0c\u53ef\u4ee5\u76f4\u63a5\u70b9\u51fb<code>\u6dfb\u52a0\u8bbe\u5907<\/code>\u5373\u53ef\u5b8c\u6210\u6dfb\u52a0\u5e76\u5efa\u7acb\u8fde\u63a5\uff08\u5982\u679c\u6ca1\u6709\u5f39\u51fa\u5efa\u7acb\u8fde\u63a5\u7684\u5bf9\u8bdd\u6846\uff0c\u6216\u8005\u4e0d\u5c0f\u5fc3\u5173\u4e86\uff0c\u53ef\u4ee5\u7528\u540c\u6837\u7684\u65b9\u6cd5\u624b\u52a8\u6dfb\u52a0\u8bbe\u5907\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/102848-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h3 id=\"\u6dfb\u52a0\u6587\u4ef6\u5939\">\u6dfb\u52a0\u6587\u4ef6\u5939\n<\/h3><hr>\n<p>\u6dfb\u52a0\u5b8c\u8bbe\u5907\u540e\uff0c\u63a5\u4e0b\u6765\u5c31\u53ef\u4ee5\u6dfb\u52a0\u7528\u4e8e\u540c\u6b65\u7684\u76ee\u5f55\uff0c\u70b9\u51fb\u9996\u9875\u7684<code>\u6dfb\u52a0\u6587\u4ef6\u5939<\/code>\uff0c\u5f39\u51fa\u5bf9\u8bdd\u6846<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/103517-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6211\u4eec\u9700\u8981\u5728\u5e38\u89c4\u83dc\u5355\u4e2d\u6307\u5b9a<strong>\u6587\u4ef6\u5939\u6807\u7b7e<\/strong>\u3001<strong>\u6587\u4ef6\u5939ID<\/strong>\u548c<strong>\u6587\u4ef6\u5939\u8def\u5f84<\/strong>\uff0c\u5176\u4e2d<strong>\u6587\u4ef6\u5939ID<\/strong>\u548c\u662f\u552f\u4e00\u6807\u8bc6\u7b26\uff0c<strong>\u6587\u4ef6\u5939\u6807\u7b7e<\/strong>\u53ef\u4ee5\u968f\u610f\u6307\u5b9a\uff0c<strong>\u6587\u4ef6\u5939\u8def\u5f84<\/strong>\u8981\u6307\u5b9a\u9700\u540c\u6b65\u76ee\u5f55\u7684\u8def\u5f84\uff08\u5982\u679c\u7528\u7684\u662fDocker\u5bb9\u5668\uff0c\u8981\u786e\u4fdd\u5df2\u7ecf\u5c06\u5bbf\u4e3b\u673a\u76ee\u5f55\u6620\u5c04\u5230\u4e86\u5bb9\u5668\u5185\uff0c\u8def\u5f84\u4e3a\u5bb9\u5668\u5185\u90e8\u8def\u5f84\uff09<\/p>\n<p>\u7136\u540e\u5728<code>\u5171\u4eab<\/code>\u83dc\u5355\u4e2d\u9009\u62e9\u8981\u5c06\u76ee\u5f55\u5185\u5bb9\u5171\u4eab\u7684\u8bbe\u5907<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/104049-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p><code>\u6587\u4ef6\u7248\u672c\u63a7\u5236<\/code>\u83dc\u5355\u4e3b\u8981\u662f\u6d89\u53ca\u6587\u4ef6\u5220\u9664\u6216\u66f4\u66ff\u65f6\u7684\u884c\u4e3a\uff0c\u9ed8\u8ba4\u7684<strong>\u65e0\u6587\u4ef6\u7248\u672c\u63a7\u5236<\/strong>\u8868\u793a<strong>\u4e0d\u4fdd\u7559\u6587\u4ef6\u7684\u65e7\u526f\u672c<\/strong>\uff0c\u4e0d\u540c\u9009\u9879\u7684\u542b\u4e49\u53ef\u4ee5\u81ea\u884c\u5230<a class=\"link\" href=\"https:\/\/docs.syncthing.net\/users\/versioning\"  target=\"_blank\" rel=\"noopener\"\n    >\u6587\u6863<\/a>\u4e2d\u67e5\u770b\uff0c\u6839\u636e\u81ea\u5df1\u7684\u9700\u8981\u8bbe\u7f6e<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/104703-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p><code>\u5ffd\u7565\u6a21\u5f0f<\/code>\u662f\u5f53\u5b58\u5728\u67d0\u4e9b\u6587\u4ef6\u4e0d\u5e94\u4e0e\u5176\u4ed6\u8bbe\u5907\u540c\u6b65\u65f6\u8bbe\u7f6e\uff0c\u53ef\u4ee5\u81ea\u884c\u6839\u636e<a class=\"link\" href=\"https:\/\/docs.syncthing.net\/users\/ignoring.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u6587\u6863<\/a>\u8bbe\u7f6e<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/104824-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p><code>\u9ad8\u7ea7<\/code>\u83dc\u5355\u4e2d\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u8bbe\u5b9a\uff0c\u4f8b\u5982\u6211\u8981\u7528\u4e8e\u76ee\u5f55\u5907\u4efd\u7684\u8bdd\uff0c\u5219\u53ea\u9700\u8981\u8bbe\u7f6e\u4e00\u53f0\u8bbe\u5907\u53d1\u9001\uff0c\u53e6\u4e00\u53f0\u8bbe\u5907\u63a5\u6536\u5373\u53ef\uff0c\u5c31\u9700\u8981\u6839\u636e\u60c5\u51b5\u4fee\u6539\u83dc\u5355\u4e2d\u7684<code>\u6587\u4ef6\u5939\u7c7b\u578b<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/04\/104856-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u9047\u5230\u7684\u95ee\u9898\">\u9047\u5230\u7684\u95ee\u9898\n<\/h2><hr>\n<p>\u5728\u4eceLinux\u5411Windows\u5907\u4efd\u6587\u4ef6\u7684\u65f6\u5019\u53d1\u73b0\uff0c\u7531\u4e8eLinux\u6587\u4ef6\u7cfb\u7edf\u7684\u6587\u4ef6\u540d\u5927\u5c0f\u5199\u654f\u611f\u800cWindows\u6587\u4ef6\u7cfb\u7edf\u5927\u5c0f\u5199\u4e0d\u654f\u611f\uff0c\u5bfc\u81f4Linux\u7cfb\u7edf\u540c\u4e00\u76ee\u5f55\u4e0b\u7684<code>hello.txt<\/code>\u548c<code>Hello.txt<\/code>\u5728\u5411Windows\u7cfb\u7edf\u4f20\u8f93\u65f6\u53d1\u751f\u9519\u8bef\uff08\u4e24\u4e2a\u6587\u4ef6\u540d\u5728Windows\u4e2d\u88ab\u89c6\u4e3a\u540c\u4e00\u6587\u4ef6\uff09\uff0c\u56e0\u6b64\u9700\u8981\u4fee\u6539Windows\u7cfb\u7edf\u7684\u5927\u5c0f\u5199\u654f\u611f\u5c5e\u6027\uff0c\u4fee\u6539\u65b9\u6cd5\u53ef\u53c2\u8003<a class=\"link\" href=\"..\/0-0-0-39\/\" >\u53e6\u4e00\u7bc7\u535a\u5ba2<\/a><\/p>\n<h2 id=\"\u9898\u5916\u8bdd\">\u9898\u5916\u8bdd\n<\/h2><hr>\n<p>\u6211\u4eec\u914d\u7f6e\u548c\u4f7f\u7528\u7684\u65f6\u5019\u4f1a\u53d1\u73b0\uff0cSyncthing\u670d\u52a1\u4ec5\u901a\u8fc7\u4e00\u4e32ID\u5c31\u80fd\u53d1\u73b0\u53cc\u65b9\u4e3b\u673a\uff0c\u90a3\u4e48\u8fd9\u662f\u600e\u4e48\u505a\u5230\u7684\u5462\uff1f<\/p>\n<p>\u5b9e\u9645\u4e0a\uff0cSyncthing\u662f\u901a\u8fc7\u53d1\u73b0\u670d\u52a1\u5668(Discover Server)\u6765\u627e\u5230\u5bf9\u65b9\u4e3b\u673a\uff0c\u7136\u540e\u901a\u8fc7\u4e2d\u7ee7\u670d\u52a1\u5668(Relay Server)\u4f20\u8f93\u6570\u636e\uff0c\u800cSyncthing\u5b98\u65b9\u63d0\u4f9b\u4e86\u5b98\u65b9\u7684\u53d1\u73b0\u670d\u52a1\u5668\u96c6\u7fa4\u548c\u516c\u5171\u4e2d\u7ee7\u670d\u52a1\u5668\uff0c\u6211\u4eec\u642d\u5efa\u597d\u540e\u9ed8\u8ba4\u4f7f\u7528\u7684\u5c31\u662f\u8fd9\u4e9b\u516c\u5171\u670d\u52a1\u5668\uff0c\u6240\u4ee5\u9ed8\u8ba4\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528<\/p>\n<p>\u800c\u5728\u56fd\u5185\u7684\u8bdd\uff0c\u4e00\u822c\u8bbf\u95ee\u56fd\u9645\u7f51\u7edc\u90fd\u6bd4\u8f83\u5dee\uff0c\u6240\u4ee5\u5982\u679c\u81ea\u5df1\u6709\u7f51\u7edc\u597d\u7684\u670d\u52a1\u5668\u7684\u8bdd\uff0c\u4e5f<strong>\u53ef\u4ee5\u5728\u81ea\u5df1\u7684\u670d\u52a1\u5668\u4e0a\u90e8\u7f72\u53d1\u73b0\u670d\u52a1\u5668\u548c\u4e2d\u7ee7\u670d\u52a1\u5668\uff0c\u6765\u4f18\u5316Syncthing\u670d\u52a1\u4e4b\u95f4\u7684\u4f20\u8f93<\/strong>\uff0c\u90e8\u7f72\u65b9\u6cd5\u73b0\u5df2\u5728<a class=\"link\" href=\"..\/0-0-0-46\/\" >\u53e6\u4e00\u7bc7\u535a\u5ba2<\/a>\u4e2d\u4ecb\u7ecd<\/p>\n"},{"title":"Windows10 \u542f\u7528\u6587\u4ef6\u7cfb\u7edf\u5927\u5c0f\u5199\u654f\u611f\u5c5e\u6027","link":"https:\/\/been.ee\/p\/0-0-0-39\/","pubDate":"Sat, 02 Nov 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-39\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>Windows\u7684\u6587\u4ef6\u7cfb\u7edf\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u662f\u4e0d\u533a\u5206\u5927\u5c0f\u5199\u7684\uff0c\u4e5f\u5c31\u662f\u8bf4\u5982\u679c\u5728Windows\u5f53\u524d\u76ee\u5f55\u4e0b\u5b58\u5728\u540d\u4e3a<code>abc<\/code>\u7684\u76ee\u5f55\uff0c\u90a3\u4e48\u518d\u65b0\u5efa\u4e00\u4e2a<code>Abc<\/code>\u76ee\u5f55\u65f6\u4f1a\u63d0\u793a\u76ee\u5f55\u5df2\u5b58\u5728<\/p>\n<p>\u800cLinux\u7684\u6587\u4ef6\u7cfb\u7edf\u662f\u5927\u5c0f\u5199\u654f\u611f\u7684\uff0c\u4e5f\u5c31\u662f<code>abc<\/code>\u76ee\u5f55\u548c<code>Abc<\/code>\u76ee\u5f55\u662f\u4e24\u4e2a\u5b8c\u5168\u4e0d\u540c\u7684\u76ee\u5f55<\/p>\n<p>\u7531\u4e8e\u4e8c\u8005\u7684\u5dee\u5f02\uff0c\u8fd9\u5c31\u4f1a\u5bfc\u81f4\u6211\u4eec\u5982\u679c\u4eceLinux\u7cfb\u7edf\u4e2d\u5411Windows\u7cfb\u7edf\u540c\u6b65\u6587\u4ef6\u65f6\uff0c\u5982\u679c\u540c\u4e00\u7ea7\u76ee\u5f55\u4e2d\u5b58\u5728\u6709\u5927\u5c0f\u5199\u5dee\u5f02\u7684\u6587\u4ef6\u6216\u76ee\u5f55\uff0c\u4f8b\u5982<code>abc.txt<\/code>\u548c<code>Abc.txt<\/code>\u6587\u4ef6\uff0c\u90a3\u4e48\u5411Windows\u4f20\u8f93\u7684\u65f6\u5019\u5c31\u4f1a\u62a5\u9519\uff0c\u56e0\u6b64\u5c31\u9700\u8981\u7edf\u4e00\u533a\u5206\u5927\u5c0f\u5199\u7684\u5c5e\u6027<\/p>\n<p>\u800cWindows10\u7cfb\u7edf\u662f\u53ef\u4ee5\u624b\u52a8\u5f00\u542f\u5927\u5c0f\u5199\u654f\u611f\u5c5e\u6027\u7684\uff0c\u4e0b\u9762\u5c06\u4ecb\u7ecd\u5f00\u542f\u7684\u65b9\u6cd5<\/p>\n<h2 id=\"\u5f00\u542f\u9002\u7528\u4e8elinux\u7684windows\u5b50\u7cfb\u7edf\u529f\u80fd\">\u5f00\u542f\u9002\u7528\u4e8eLinux\u7684Windows\u5b50\u7cfb\u7edf\u529f\u80fd\n<\/h2><hr>\n<p>\u5728\u66f4\u6539\u533a\u5206\u5927\u5c0f\u5199\u5c5e\u6027\u524d\uff0c\u9700\u8981\u5f00\u542f<code>\u9002\u7528\u4e8eLinux\u7684Windows\u5b50\u7cfb\u7edf\u529f\u80fd<\/code><\/p>\n<p>\u5177\u4f53\u64cd\u4f5c\u662f\u5728\u5de6\u4e0b\u641c\u7d22\u680f\u8f93\u5165<code>\u542f\u7528\u6216\u5173\u95edWindows\u529f\u80fd<\/code>\uff0c\u6253\u5f00\u5bf9\u8bdd\u6846\u540e\u52fe\u9009<code>\u9002\u7528\u4e8eLinux\u7684Windows\u5b50\u7cfb\u7edf\u529f\u80fd<\/code>\u9009\u9879\uff0c\u70b9\u51fb\u786e\u5b9a\u540e\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/11\/03\/193207-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u68c0\u67e5\u76ee\u5f55\u662f\u5426\u533a\u5206\u5927\u5c0f\u5199\">\u68c0\u67e5\u76ee\u5f55\u662f\u5426\u533a\u5206\u5927\u5c0f\u5199\n<\/h2><hr>\n<p>\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c<code>PowerShell<\/code>\uff0c\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">fsutil.exe file queryCaseSensitiveInfo &lt;path&gt;\n<\/span><\/span><\/code><\/pre><\/div><p>\u5c06\u00a0<code>&lt;path&gt;<\/code>\u00a0\u66ff\u6362\u4e3a\u6587\u4ef6\u8def\u5f84\uff0c\u8fd0\u884c\u540e\u5c06\u6253\u5370\u8be5\u76ee\u5f55\u662f\u5426\u5f00\u542f\u4e86\u533a\u5206\u5927\u5c0f\u5199\u5c5e\u6027<\/p>\n<h2 id=\"\u542f\u7528\u7981\u7528\u533a\u5206\u5927\u5c0f\u5199\u5c5e\u6027\">\u542f\u7528\/\u7981\u7528\u533a\u5206\u5927\u5c0f\u5199\u5c5e\u6027\n<\/h2><hr>\n<p>\u9700\u8981\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c<code>PowerShell<\/code>\u540e\u6267\u884c\u547d\u4ee4<\/p>\n<ul>\n<li>\u542f\u7528\u533a\u5206\u5927\u5c0f\u5199\u5c5e\u6027<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">fsutil.exe file setCaseSensitiveInfo &lt;path&gt; <span class=\"nb\">enable<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5982\u679c\u6267\u884c\u540e\u63d0\u793a<code>fsutil.exe file setcasesensitiveinfo\u4e0d\u652f\u6301\u8be5\u8bf7\u6c42<\/code>\uff0c\u5219\u8bf4\u660e\u6ca1\u6709<a class=\"link\" href=\"#%e5%bc%80%e5%90%af%e9%80%82%e7%94%a8%e4%ba%8elinux%e7%9a%84windows%e5%ad%90%e7%b3%bb%e7%bb%9f%e5%8a%9f%e8%83%bd\" >\u5f00\u542f\u9002\u7528\u4e8eLinux\u7684Windows\u5b50\u7cfb\u7edf\u529f\u80fd<\/a>\uff0c\u6309\u6b65\u9aa4\u5f00\u542f\u5373\u53ef<\/p>\n<blockquote>\n<p>\u6ce8\uff1a\u5b98\u65b9\u6587\u6863\u6709\u63d0\u5230\u9700\u8981\u76ee\u5f55\u4e3a\u7a7a\u624d\u53ef\u4ee5\u66f4\u6539\u533a\u5206\u5927\u5c0f\u5199\u5c5e\u6027\uff0c\u4f46\u662f\u6211\u5bf9\u975e\u7a7a\u76ee\u5f55\u4ecd\u7136\u6210\u529f\u6267\u884c\u4e86\u8be5\u547d\u4ee4<\/p><\/blockquote>\n<ul>\n<li>\u7981\u7528\u533a\u5206\u5927\u5c0f\u5199\u5c5e\u6027<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">fsutil.exe file setCaseSensitiveInfo &lt;path&gt; disable\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u533a\u5206\u5927\u5c0f\u5199\u5c5e\u6027\u7684\u7ee7\u627f\">\u533a\u5206\u5927\u5c0f\u5199\u5c5e\u6027\u7684\u7ee7\u627f\n<\/h2><hr>\n<p>\u521b\u5efa\u65b0\u76ee\u5f55\u65f6\uff0c\u8fd9\u4e9b\u76ee\u5f55\u5c06\u7ee7\u627f\u5176\u7236\u76ee\u5f55\u7684\u5927\u5c0f\u5199\u533a\u5206\u8bbe\u7f6e<\/p>\n<h2 id=\"\u53c2\u8003\">\u53c2\u8003\n<\/h2><hr>\n<ul>\n<li><a class=\"link\" href=\"https:\/\/learn.microsoft.com\/zh-cn\/windows\/wsl\/case-sensitivity\"  target=\"_blank\" rel=\"noopener\"\n    >Microsoft\u6587\u6863<\/a><\/li>\n<\/ul>\n"},{"title":"iperf3 - \u7f51\u7edc\u5e26\u5bbd\u6d4b\u8bd5\u5de5\u5177","link":"https:\/\/been.ee\/p\/0-0-0-38\/","pubDate":"Wed, 16 Oct 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-38\/","description":"<h2 id=\"\u4ecb\u7ecd\">\u4ecb\u7ecd\n<\/h2><hr>\n<p>\u6839\u636e<a class=\"link\" href=\"https:\/\/iperf.fr\/\"  target=\"_blank\" rel=\"noopener\"\n    >iperf3<\/a>\u5b98\u65b9\u4ecb\u7ecd\uff0ciperf3\u662f\u4e00\u6b3e\u7528\u4e8e\u4e3b\u52a8\u6d4b\u8bd5\u4e00\u6bb5ip\u7f51\u7edc\u4e0a\u6700\u5927\u53ef\u5b9e\u73b0\u5e26\u5bbd\u7684\u5de5\u5177\uff0c\u4f7f\u7528\u4e86C\/S\u67b6\u6784\uff0c\u652f\u6301TCP\u548cUDP<\/p>\n<p>\u7a0b\u5e8f\u53ef\u4ee5\u8de8\u5e73\u53f0\uff08Windows\u3001Linux\u3001Android\u3001MacOS X\u3001FreeBSD\u3001OpenBSD\u3001NetBSD\u3001VxWorks\u3001Solaris\u7b49\uff09\u4f7f\u7528\uff0c\u4e3b\u6d41\u548c\u975e\u4e3b\u6d41\u7cfb\u7edf\u57fa\u672c\u90fd\u6db5\u76d6\u4e86\uff0c\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u4f7f\u7528\u7684\u5e73\u53f0\u53bb<a class=\"link\" href=\"https:\/\/iperf.fr\/iperf-download.php\"  target=\"_blank\" rel=\"noopener\"\n    >\u5bf9\u5e94\u7f51\u7ad9<\/a>\u4e0b\u8f7d<\/p>\n<p>\u6ce8\u610f\uff0c\u4e0eiperf2\u4e0d\u540c\uff0ciperf3\u5728\u540c\u4e00\u65f6\u95f4\u53ea\u5141\u8bb8\u6709\u4e00\u4e2a\u8fde\u63a5<\/p>\n<h2 id=\"\u4f7f\u7528\u8bf4\u660e\">\u4f7f\u7528\u8bf4\u660e\n<\/h2><hr>\n<p>\u8fd9\u91cc\u5c06\u4ecb\u7ecdiperf3\u547d\u4ee4\u5e38\u7528\u53c2\u6570<\/p>\n<h3 id=\"\u670d\u52a1\u7aef\">\u670d\u52a1\u7aef\n<\/h3><hr>\n<p>\u6700\u7b80\u5355\u5730\uff0c\u53ea\u9700\u8981\u5728\u670d\u52a1\u7aef\u673a\u5668\u4e0a\u6267\u884c\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">iperf3 -s\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u6837\u5c31\u542f\u52a8\u4e86<code>iperf3<\/code>\u670d\u52a1\uff0c\u9ed8\u8ba4\u76d1\u542c\u5728<code>5201<\/code>\u7aef\u53e3\uff0c\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6e<code>-p<\/code>\u53c2\u6570\u6765\u6307\u5b9a\u76d1\u542c\u7aef\u53e3\uff0c\u4f8b\u5982\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">iperf3 -s -p <span class=\"m\">5432<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u8868\u793a\u76d1\u542c\u5728<code>5342<\/code>\u7aef\u53e3<\/p>\n<h3 id=\"\u5ba2\u6237\u7aef\">\u5ba2\u6237\u7aef\n<\/h3><hr>\n<p>\u5ba2\u6237\u7aef\u9700\u8981\u8fde\u63a5\u670d\u52a1\u5668\uff0c\u5e76\u53ef\u4ee5\u6307\u5b9a\u6d4b\u91cf\u94fe\u8def\u5e26\u5bbd\u7684\u4e00\u4e9b\u53c2\u6570<\/p>\n<p>\u6700\u7b80\u5355\u5730\uff0c\u53ea\u9700\u8981\u5728\u5ba2\u6237\u7aef\u673a\u5668\u4e0a\u6267\u884c\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">iperf3 -c <span class=\"o\">[<\/span>SERVER_IP<span class=\"o\">]<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u6837\u5c31\u9ed8\u8ba4\u6d4b\u8bd5\u5ba2\u6237\u7aef<strong>\u5355\u7ebf\u7a0b<\/strong>\u4e0b<code>10s<\/code>\u5185\u7684<strong>\u4e0a\u884c\u5e26\u5bbd<\/strong>\uff0c\u8f93\u51fa\u5c06\u663e\u793a\u6bcf<code>1<\/code>\u79d2\u7684\u4f20\u8f93\u901f\u5ea6\u548c<code>10s<\/code>\u7684\u5e73\u5747\u901f\u5ea6\u3002\u6ce8\u610f\uff0c<code>iperf3<\/code>\u9ed8\u8ba4\u4f7f\u7528\u4e0a\u4f20\u6a21\u5f0f\uff08Client sends, Server receives\uff09<\/p>\n<p>\u7136\u800c\u5355\u7ebf\u7a0b\u6709\u4e9b\u65f6\u5019\u4e0d\u80fd\u6d4b\u8bd5\u94fe\u8def\u7684\u6781\u9650\u4f20\u8f93\u5e26\u5bbd\uff0c\u4e3a\u4e86\u5c3d\u53ef\u80fd\u51c6\u786e\u5730\u6d4b\u8bd5\u6700\u5927\u4f20\u8f93\u901f\u7387\uff0c\u53ef\u4ee5\u91c7\u7528\u591a\u7ebf\u7a0b\u7684\u65b9\u5f0f<\/p>\n<p>\u4e0b\u9762\u5c06\u4ecb\u7ecd\u5e38\u7528\u53c2\u6570\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">-t <span class=\"o\">[<\/span>num<span class=\"o\">]<\/span>    \u8bbe\u7f6e\u4f20\u8f93\u6d4b\u8bd5\u65f6\u95f4\uff0c\u9ed8\u8ba4\u4e3a10s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">-P <span class=\"o\">[<\/span>num<span class=\"o\">]<\/span>    \u8bbe\u7f6e\u5e76\u53d1\u8fde\u63a5\u6570\uff08\u7ebf\u7a0b\u6570\uff09\uff0c\u9ed8\u8ba4\u4e3a1\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">-R    \u8f6c\u6362\u6a21\u5f0f\uff08Reverse Mode\uff09\uff0c\u6539\u4e3a\u4e0b\u8f7d\u6a21\u5f0f\uff0c\uff08Server sends, Client receives\uff09\uff0c\u901a\u5e38\u66f4\u591a\u4f7f\u7528\u4e0b\u8f7d\u6a21\u5f0f\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">--bidir    \u53cc\u5411\u6a21\u5f0f\uff08Bidirectional Mode\uff09\uff0c\u4e5f\u5c31\u662f\u670d\u52a1\u5668\u548c\u5ba2\u6237\u7aef\u65e2\u8981\u53d1\u9001\u6570\u636e\u4e5f\u8981\u63a5\u6536\u6570\u636e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">-i <span class=\"o\">[<\/span>num<span class=\"o\">]<\/span>    \u8bbe\u7f6e\u6bcf\u6b21\u663e\u793a\u62a5\u544a\u7684\u65f6\u95f4\u95f4\u9694\uff0c\u4f8b\u5982\uff0c\u8bbe\u7f6e\u4e3a2\u4ee3\u8868\u6bcf\u96942s\u663e\u793a\u8fd92s\u7684\u6d4b\u8bd5\u62a5\u544a\uff0c\u9ed8\u8ba4\u4e3a1\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">-u    \u4f7f\u7528UDP\u534f\u8bae\uff0c\u9ed8\u8ba4\u4e3aTCP\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">-b <span class=\"o\">[<\/span>num<span class=\"o\">]<\/span>   \u8bbe\u7f6e\u76ee\u6807\u4f20\u8f93\u5e26\u5bbd\uff0c\uff08\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cUDP\u4e3a1\u00a0Mbit\/s\uff0cTCP\u4e3a\u65e0\u9650\uff09\uff0c\u4f8b\u5982\u00a0-b 10M\u00a0\u8868\u793a\u8bbe\u7f6e\u5e26\u5bbd\u4e3a <span class=\"m\">10<\/span> Mbps\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">-4    \u4ec5\u4f7f\u7528IPv4\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">-6    \u4ec5\u4f7f\u7528IPv6\n<\/span><\/span><\/code><\/pre><\/div><p>\u5927\u591a\u573a\u666f\u4e0b\uff0c\u4e3b\u8981\u4f7f\u7528<code>TCP<\/code>\u6d4b\u901f\uff0c\u4f8b\u5982\uff1a<\/p>\n<ul>\n<li>\u8bbe\u7f6e<code>5<\/code>\u4e2a\u5e76\u53d1\u8fde\u63a5\uff0c\u6d4b\u8bd5\u5ba2\u6237\u7aef\u5230\u670d\u52a1\u5668<code>1.2.3.4<\/code>\u5728<code>10s<\/code>\u5185\u7684\u4e0b\u884c\u5e26\u5bbd<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">iperf3 -c 1.2.3.4 -t <span class=\"m\">10<\/span> -P <span class=\"m\">5<\/span> -R\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u8bbe\u7f6e<code>5+5<\/code>\u4e2a\u5e76\u53d1\u8fde\u63a5\uff085\u4e2a\u53d1\u9001\u6570\u636e\uff0c5\u4e2a\u63a5\u6536\u6570\u636e\uff09\uff0c\u6d4b\u8bd5\u5ba2\u6237\u7aef\u5230\u670d\u52a1\u5668<code>1.2.3.4<\/code>\u5728<code>10s<\/code>\u5185\u7684\u4e0a\u4e0b\u884c\u5404\u81ea\u5360\u7528\u7684\u5e26\u5bbd<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">iperf3 -c 1.2.3.4 -t <span class=\"m\">10<\/span> -P <span class=\"m\">5<\/span> --bidir\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"iperf3\u516c\u5171\u670d\u52a1\u5668\">iperf3\u516c\u5171\u670d\u52a1\u5668\n<\/h2><hr>\n<p>\u76ee\u524d<a class=\"link\" href=\"https:\/\/iperf.fr\/iperf-servers.php\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u7f51<\/a>\u8fd8\u63d0\u4f9b\u4e86\u4e00\u4e9b\u516c\u5171<code>iperf3<\/code>\u670d\u52a1\u5668\u4f9b\u5927\u5bb6\u4f7f\u7528\uff0c\u4f46\u90fd\u5728\u56fd\u5916<\/p>\n<p>\u8fd9\u91cc\u5c31\u53ea\u653e\u4e24\u4e2a\u7f8e\u56fd\u793a\u4f8b\uff1a<\/p>\n<table>\n  <thead>\n      <tr>\n          <th><a class=\"link\" href=\"https:\/\/iperf.fr\/iperf-servers.php#americas\"  target=\"_blank\" rel=\"noopener\"\n    >Americas<\/a><\/th>\n          <th><\/th>\n          <th><\/th>\n          <th><\/th>\n          <th><\/th>\n          <th><\/th>\n          <th><\/th>\n          <th><\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td>iPerf3 server<\/td>\n          <td>Localization<\/td>\n          <td>Data center<\/td>\n          <td>Hosting<\/td>\n          <td>Speed<\/td>\n          <td>Port<\/td>\n          <td>IP version<\/td>\n          <td>Contact<\/td>\n      <\/tr>\n      <tr>\n          <td><strong>iperf.scottlinux.com<\/strong><\/td>\n          <td>USA  <br>California<\/td>\n          <td><a class=\"link\" href=\"https:\/\/www.google.fr\/maps\/place\/Hurricane&#43;Electric\/@37.4717128,-121.9207521,305m\/data=!3m1!1e3!4m2!3m1!1s0x808fc6197a0be5dd:0x75e712aca8e3ac5e\"  target=\"_blank\" rel=\"noopener\"\n    >Hurricane  <br>Fremont 2<\/a><\/td>\n          <td><a class=\"link\" href=\"https:\/\/scottlinux.com\/\"  target=\"_blank\" rel=\"noopener\"\n    ><img src=\"https:\/\/iperf.fr\/images\/logo_scottlinux.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"scottlinux.com\"\n\t\n\t\n><\/a><\/td>\n          <td>1 Gbit\/s<\/td>\n          <td>5201 TCP\/UDP<\/td>\n          <td>IPv4 and IPv6<\/td>\n          <td><a class=\"link\" href=\"https:\/\/twitter.com\/scottlinux\"  target=\"_blank\" rel=\"noopener\"\n    >@scottlinux<\/a><\/td>\n      <\/tr>\n      <tr>\n          <td><strong>iperf.he.net<\/strong><\/td>\n          <td>USA  <br>California<\/td>\n          <td><a class=\"link\" href=\"https:\/\/www.google.fr\/maps\/place\/Hurricane&#43;Electric\/@37.489826,-121.9309676,128m\/data=!3m1!1e3!4m2!3m1!1s0x808fc644b35fd311:0xee25ef985cd52aef\"  target=\"_blank\" rel=\"noopener\"\n    >Hurricane  <br>Fremont 1<\/a><\/td>\n          <td><a class=\"link\" href=\"https:\/\/he.net\/\"  target=\"_blank\" rel=\"noopener\"\n    ><img src=\"https:\/\/iperf.fr\/images\/logo_hurricane_electric.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"he.net\"\n\t\n\t\n><\/a><\/td>\n          <td><\/td>\n          <td>5201 TCP\/UDP<\/td>\n          <td>IPv4 and IPv6<\/td>\n          <td><a class=\"link\" href=\"https:\/\/forums.he.net\/\"  target=\"_blank\" rel=\"noopener\"\n    >HE forums<\/a><\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n"},{"title":"\u5bf9\u8303\u5fb7\u534e\u529b\u7684\u89e3\u91ca","link":"https:\/\/been.ee\/p\/0-0-0-37\/","pubDate":"Wed, 04 Sep 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-37\/","description":"<h2 id=\"\u8303\u5fb7\u534e\u529b\u7684\u666e\u9002\u63cf\u8ff0\">\u8303\u5fb7\u534e\u529b\u7684\u666e\u9002\u63cf\u8ff0\n<\/h2><hr>\n<p>\u63cf\u8ff0\uff1a\u5206\u5b50\u95f4\u76f8\u4e92\u4f5c\u7528\u79f0\u4e4b\u4e3a\u8303\u5fb7\u534e\u529b<\/p>\n<p>\u4e25\u683c\u6765\u8bf4\uff0c\u4e0a\u8ff0\u63cf\u8ff0\u5e76\u4e0d\u80fd\u7b97\u5f97\u4e0a\u662f\u5b9a\u4e49\uff0c\u66f4\u50cf\u662f\u5c06\u4e24\u4e2a\u76f8\u540c\u610f\u601d\u7684\u540d\u8bcd\u5173\u8054\u5728\u4e00\u8d77\uff0c\u5e76\u6ca1\u6709\u8bf4\u660e\u8fd9\u79cd\u5206\u5b50\u95f4\u76f8\u4e92\u4f5c\u7528\u4ea7\u751f\u7684\u539f\u56e0<\/p>\n<p>\u4ece\u6839\u6e90\u4e0a\u6765\u8bf4\uff0c\u8303\u5fb7\u534e\u529b\u5176\u5b9e\u7b97\u662f\u4e00\u79cd\u7535\u78c1\u76f8\u4e92\u4f5c\u7528\uff0c\u5176\u4ea7\u751f\u7684\u539f\u56e0\u5728\u4e8e\u7535\u5b50\u5206\u5e03\u7684\u6ce2\u52a8\u5f15\u53d1\u7684\u5076\u6781\u76f8\u4e92\u4f5c\u7528\uff0c\u662f\u4e00\u79cd\u91cf\u5b50\u529b\u5b66\u6548\u5e94\uff0c\u901a\u5e38\u53ef\u4ee5\u5206\u4e3a\u4e09\u79cd\u7c7b\u578b<\/p>\n<h2 id=\"\u7c7b\u578b\">\u7c7b\u578b\n<\/h2><hr>\n<h3 id=\"\u8272\u6563\u529b\u4f26\u6566\u8272\u6563\u529b\u4f26\u6566\u529b\">\u8272\u6563\u529b\uff08\u4f26\u6566\u8272\u6563\u529b\u3001\u4f26\u6566\u529b\uff09\n<\/h3><hr>\n<p>\u8272\u6563\u529b\u662f\u8303\u5fb7\u534e\u529b\u7684\u4e3b\u8981\u7ec4\u6210\u90e8\u5206\uff0c<strong>\u53d1\u751f\u5728\u6240\u6709\u539f\u5b50\u548c\u5206\u5b50\u4e4b\u95f4\uff0c\u5305\u62ec\u975e\u6781\u6027\u5206\u5b50<\/strong>\u3002\u5b83\u6765\u6e90\u4e8e\u7535\u5b50\u7684<strong>\u91cf\u5b50\u6da8\u843d<\/strong>\uff0c\u5373\u4f7f\u5728\u975e\u6781\u6027\u5206\u5b50\u4e2d\uff0c\u7535\u5b50\u5728\u8f68\u9053\u4e2d\u8fd0\u52a8\u65f6\u4e5f\u4f1a\u4ea7\u751f\u77ac\u65f6\u7684\u7535\u8377\u5206\u5e03\u4e0d\u5747\uff0c\u4ece\u800c\u5f62\u6210<strong>\u77ac\u65f6\u5076\u6781\u77e9<\/strong>\uff0c\u5e76\u901a\u8fc7\u76f8\u4e92\u611f\u5e94\u5728\u76f8\u90bb\u5206\u5b50\u4e2d\u4ea7\u751f\u8bf1\u5bfc\u5076\u6781\u77e9\uff0c\u6700\u7ec8\u5bfc\u81f4\u5206\u5b50\u4e4b\u95f4\u901a\u8fc7\u7535\u78c1\u76f8\u4e92\u4f5c\u7528\u4ea7\u751f\u5438\u5f15<\/p>\n<h3 id=\"\u53d6\u5411\u529b\u5076\u6781-\u5076\u6781\u76f8\u4e92\u4f5c\u7528\">\u53d6\u5411\u529b\uff08\u5076\u6781-\u5076\u6781\u76f8\u4e92\u4f5c\u7528\uff09\n<\/h3><hr>\n<p>\u53d6\u5411\u529b\u53d1\u751f\u5728\u5177\u6709<strong>\u6c38\u4e45\u5076\u6781\u77e9\u7684\u6781\u6027\u5206\u5b50\u4e4b\u95f4<\/strong>\uff0c\u53ef\u4ee5\u66f4\u76f4\u89c2\u7684\u7406\u89e3\u4e3a\u4e24\u4e2a\u6781\u6027\u5206\u5b50\u4e4b\u95f4\u7684\u7535\u78c1\u76f8\u4e92\u4f5c\u7528<\/p>\n<h3 id=\"\u8bf1\u5bfc\u529b\u5076\u6781-\u8bf1\u5bfc\u5076\u6781\u76f8\u4e92\u4f5c\u7528\">\u8bf1\u5bfc\u529b\uff08\u5076\u6781-\u8bf1\u5bfc\u5076\u6781\u76f8\u4e92\u4f5c\u7528\uff09\n<\/h3><hr>\n<p>\u8bf1\u5bfc\u529b\u53d1\u751f\u5728<strong>\u6781\u6027\u5206\u5b50\u548c\u975e\u6781\u6027\u5206\u5b50\u4e4b\u95f4<\/strong>\u3002\u6781\u6027\u5206\u5b50\u7684\u6c38\u4e45\u5076\u6781\u77e9\u4f1a\u5f71\u54cd\u975e\u6781\u6027\u5206\u5b50\u7684\u7535\u5b50\u5206\u5e03\uff0c\u4f7f\u5176\u4ea7\u751f\u77ac\u65f6\u5076\u6781\u77e9\uff0c\u4ece\u800c\u5f62\u6210\u5206\u5b50\u95f4\u7684\u5438\u5f15\u529b<\/p>\n<h2 id=\"\u603b\u7ed3\">\u603b\u7ed3\n<\/h2><hr>\n<p>\u5728\u91cf\u5b50\u529b\u5b66\u4e2d\uff0c\u7535\u5b50\u5728\u5206\u5b50\u5185\u548c\u539f\u5b50\u5185\u90e8\u5e76\u4e0d\u662f\u786e\u5b9a\u4f4d\u7f6e\u7684\uff0c\u800c\u662f\u5206\u5e03\u5728\u6982\u7387\u4e91\u4e2d\u3002\u8fd9\u79cd\u4e0d\u786e\u5b9a\u6027\u548c\u6da8\u843d\u5bfc\u81f4\u4e86\u8272\u6563\u529b\u7684\u4ea7\u751f\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u7535\u5b50\u5373\u4f7f\u5728\u6ca1\u6709\u5916\u529b\u4f5c\u7528\u65f6\u4e5f\u5728\u4e0d\u65ad\u6ce2\u52a8\u4ea7\u751f\u77ac\u65f6\u5076\u6781\u77e9\u5e76\u8bf1\u5bfc\u76f8\u90bb\u5206\u5b50\u4ea7\u751f\u8bf1\u5bfc\u5076\u6781\u77e9\uff0c\u8fdb\u800c\u53d1\u751f\u76f8\u4e92\u4f5c\u7528<\/p>\n"},{"title":"\u539f\u5b50\u8f68\u9053\u7406\u8bba\u8981\u70b9\u8bb0\u5f55","link":"https:\/\/been.ee\/p\/0-0-0-36\/","pubDate":"Mon, 02 Sep 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-36\/","description":"<h2 id=\"\u91cf\u5b50\u529b\u5b66\u63cf\u8ff0\">\u91cf\u5b50\u529b\u5b66\u63cf\u8ff0\n<\/h2><hr>\n<p>\u5728\u91cf\u5b50\u529b\u5b66\u4e2d\uff0c<strong>\u539f\u5b50\u8f68\u9053<\/strong>\u662f\u63cf\u8ff0\u539f\u5b50\u4e2d\u7535\u5b50\u7684\u4f4d\u7f6e\u548c\u6ce2\u52a8\u884c\u4e3a\u7684\u51fd\u6570\uff08\u6ce2\u51fd\u6570\uff09\u3002\u8be5\u51fd\u6570\u63cf\u8ff0\u4e86\u539f\u5b50\u6838\u5468\u56f4\u7535\u5b50\u7684\u7535\u8377\u5206\u5e03\uff0c\u53ef\u7528\u4e8e\u8ba1\u7b97\u5728\u539f\u5b50\u6838\u5468\u56f4\u7279\u5b9a\u533a\u57df\u627e\u5230\u7535\u5b50\u7684\u6982\u7387<\/p>\n<p><strong>\u539f\u5b50\u4e2d\u7684\u6bcf\u4e2a\u8f68\u9053\u7684\u7279\u6027\u7531\u4e09\u4e2a\u91cf\u5b50\u6570\u51b3\u5b9a<\/strong>\uff0c\u5206\u522b\u662f\u4e3b\u91cf\u5b50\u6570 (n)\u3001\u8f68\u9053\u89d2\u52a8\u91cf\u91cf\u5b50\u6570 (l) \u548c\u78c1\u91cf\u5b50\u6570 (m<sub>l<\/sub>)\u3002\u6b64\u5916\uff0c\u6bcf\u4e2a\u539f\u5b50\u8f68\u9053\u6700\u591a\u5bb9\u7eb3\u4e24\u4e2a\u7535\u5b50\uff0c\u5728\u5b8c\u5168\u5360\u636e\u7684\u539f\u5b50\u8f68\u9053\u4e2d\uff0c\u5373\u5305\u542b\u4e24\u4e2a\u7535\u5b50\u7684\u539f\u5b50\u8f68\u9053\u4e2d\uff0c\u6bcf\u4e2a\u7535\u5b50\u4e0e\u53e6\u4e00\u4e2a\u7535\u5b50\u76f8\u6bd4\u5177\u6709\u76f8\u7b49\u4e14\u76f8\u53cd\u7684\u81ea\u65cb\u3002\u81ea\u65cb\u78c1\u91cf\u5b50\u6570 (m<sub>s<\/sub>) \u7684\u503c\u63d0\u4f9b\u4e86\u5bf9\u7535\u5b50\u81ea\u65cb\u7684\u6d1e\u5bdf<\/p>\n<p>\u56e0\u6b64\uff0c<strong>\u901a\u8fc7\u7ed9\u5b9a\u4e3b\u91cf\u5b50\u6570 (n)\u3001\u8f68\u9053\u89d2\u52a8\u91cf\u91cf\u5b50\u6570 (l) \u3001\u78c1\u91cf\u5b50\u6570 (m<sub>l<\/sub>)\u548c\u81ea\u65cb\u78c1\u91cf\u5b50\u6570 (m<sub>s<\/sub>) \u8fd9\u56db\u4e2a\u91cf\u5b50\u6570\u7684\u503c\u5c31\u53ef\u4ee5\u6d1e\u5bdf\u539f\u5b50\u4e2d\u4efb\u4e00\u539f\u5b50\u8f68\u9053\u4e0a\u7684\u4efb\u4f55\u7535\u5b50<\/strong><\/p>\n<p>\u4e0b\u9762\u5c06\u5bf9\u8fd9\u56db\u4e2a\u91cf\u5b50\u6570\u8fdb\u884c\u89e3\u91ca<\/p>\n<h2 id=\"\u91cf\u5b50\u6570\">\u91cf\u5b50\u6570\n<\/h2><hr>\n<h3 id=\"\u4e3b\u91cf\u5b50\u6570-n\">\u4e3b\u91cf\u5b50\u6570 (n)\n<\/h3><hr>\n<p>\u4e3b\u91cf\u5b50\u6570\u63cf\u8ff0\u7684\u662f<strong>\u7535\u5b50\u7684\u80fd\u91cf\uff08\u4e0e\u6838\u7684\u5e73\u5747\u8ddd\u79bb\uff09<\/strong>\uff0c\u59cb\u7ec8\u4e3a\u6b63\u6574\u6570\uff0c\u4f8b\u5982\uff0c1\uff0c2\uff0c3\uff0c4&hellip;\u5b83\u8868\u793a\u4e86<strong>\u7535\u5b50\u6240\u5904\u7684\u91cf\u5b50\u58f3\u5c42\uff08\u7535\u5b50\u58f3\u5c42\uff09<\/strong>\uff0c\u4e5f\u53ef\u4ee5\u7528<strong>\u5927\u5199\u5b57\u6bcd<\/strong>\u6765\u8868\u793a\uff0c\u4f8b\u5982\uff0cn=1\uff0c2\uff0c3\uff0c4\u5206\u522b\u547d\u540d\u4e3aK\uff0cL\uff0cM\uff0cN\u58f3\u5c42<\/p>\n<p>\u4e3b\u91cf\u5b50\u6570\u8d8a\u5927\uff0c\u7535\u5b50\u79bb\u539f\u5b50\u6838\u8d8a\u8fdc\uff0c\u80fd\u91cf\u4e5f\u8d8a\u9ad8<\/p>\n<h3 id=\"\u8f68\u9053\u89d2\u52a8\u91cf\u91cf\u5b50\u6570-l\">\u8f68\u9053\u89d2\u52a8\u91cf\u91cf\u5b50\u6570 (l)\n<\/h3><hr>\n<p>\u8f68\u9053\u89d2\u52a8\u91cf\u91cf\u5b50\u6570\uff08\u89d2\u91cf\u5b50\u6570\uff09\u63cf\u8ff0\u7684\u662f\u7535\u5b50\u7684\u8f68\u9053\u89d2\u52a8\u91cf\uff08\u8f68\u9053\u7684\u5f62\u72b6\uff09\uff0c\u662f\u4e00\u4e2a\u975e\u8d1f\u6574\u6570\uff0c\u4f8b\u5982\uff0c0\uff0c1\uff0c2\uff0c3\uff0c4&hellip;\u4e5f\u79f0\u4e3a<strong>\u4e9a\u58f3\u5c42\uff08\u7535\u5b50\u4e9a\u5c42\uff09<strong>\u5e38\u7528<\/strong>\u5c0f\u5199\u5b57\u6bcd<\/strong>\u6765\u8868\u793a\uff0c\u4f8b\u5982\uff0cl=0\uff0c1\uff0c2\uff0c3\uff0c4\u5206\u522b\u8bb0\u4e3as\uff0cp\uff0cd\uff0cf\uff0cg<\/p>\n<p>\u5728\u67d0\u4e2a\u4e3b\u91cf\u5b50\u6570\u4e3an\u7684\u7535\u5b50\u58f3\u5c42\u4e2d\uff0c\u89d2\u91cf\u5b50\u6570l\u6db5\u76d6\u6ee1\u8db3\u4ee5\u4e0b\u5173\u7cfb\u7684\u6240\u6709\u6574\u6570\u503c\uff0c$0\\le l\\le n-1$<\/p>\n<p>\u5728\u540c\u4e00\u7535\u5b50\u58f3\u5c42\u4e2d\uff0c\u4e9a\u5c42\u7535\u5b50\u7684\u80fd\u91cf\u6309\u7167s\uff0cp\uff0cd\uff0cf\uff0cg\u987a\u5e8f\u9012\u589e\uff0c\u5e76\u4e14<strong>\u89d2\u91cf\u5b50\u6570\u4e5f\u51b3\u5b9a\u4e86\u7535\u5b50\u4e91\u7684\u5f62\u72b6<\/strong><\/p>\n<h3 id=\"\u78c1\u91cf\u5b50\u6570-ml\">\u78c1\u91cf\u5b50\u6570 (m<sub>l<\/sub>)\n<\/h3><hr>\n<p>\u78c1\u91cf\u5b50\u6570\u63cf\u8ff0\u7684\u662f\u8f68\u9053\u5728\u7a7a\u95f4\u4e2d\u7684\u65b9\u5411<\/p>\n<p>\u5728\u7ed9\u5b9a\u7684\u89d2\u91cf\u5b50\u6570l\u4e0b\uff0c\u78c1\u91cf\u5b50\u6570\u51b3\u5b9a\u4e86\u7535\u5b50\u8f68\u9053\u5728\u5916\u52a0\u78c1\u573a\u4e2d\u7684\u53d6\u5411\u3002\u5728\u67d0\u4e2a\u89d2\u91cf\u5b50\u6570\u4e3al\u7684\u4e9a\u58f3\u5c42\u4e2d\uff0c\u78c1\u91cf\u5b50\u6570m<sub>l<\/sub>\u7684\u53d6\u503c\u6db5\u76d6\u6ee1\u8db3\u4ee5\u4e0b\u5173\u7cfb\u7684\u6240\u6709\u6574\u6570\u503c\uff0c$-l\\le m_l \\le l$<\/p>\n<h3 id=\"\u81ea\u65cb\u78c1\u91cf\u5b50\u6570-ms\">\u81ea\u65cb\u78c1\u91cf\u5b50\u6570 (m<sub>s<\/sub>)\n<\/h3><hr>\n<p>\u81ea\u65cb\u78c1\u91cf\u5b50\u6570\u8868\u793a\u7684\u662f\u7535\u5b50\u7684\u81ea\u65cb\u65b9\u5411\u3002\u81ea\u65cb\u662f\u91cf\u5b50\u529b\u5b66\u4e2d\u7c92\u5b50\u7684\u4e00\u79cd\u5185\u7980\u6027\u8d28\uff0c\u5bf9\u4e8e\u7535\u5b50\u6765\u8bf4\uff0c\u81ea\u65cb\u91cf\u5b50\u6570s\u59cb\u7ec8\u4e3a$\\frac 12$\uff0c\u81ea\u65cb\u78c1\u91cf\u5b50\u6570m<sub>s<\/sub>\u624d\u662f\u63cf\u8ff0\u81ea\u65cb\u65b9\u5411\u7684\u91cf\u5b50\u6570\uff0c\u53d6\u503c\u4e3a$+\\frac 12$\u548c$-\\frac 12$\uff0c\u5206\u522b\u8868\u793a\u81ea\u65cb\u5411\u4e0a\uff08\u987a\u78c1\u573a\u65b9\u5411\uff09\u548c\u81ea\u65cb\u5411\u4e0b\uff08\u9006\u78c1\u573a\u65b9\u5411\uff09<\/p>\n<blockquote>\n<p>\u7535\u5b50\u7684\u81ea\u65cb\u5e76\u4e0d\u610f\u5473\u7740\u5176\u771f\u7684\u5728&quot;\u65cb\u8f6c&quot;\uff0c\u5b83\u662f\u7535\u5b50\u56fa\u6709\u7684\u4e00\u4e2a\u91cf\u5b50\u6027\u8d28\u4e4b\u4e00<\/p><\/blockquote>\n<h3 id=\"\u8865\u5145\u8bf4\u660e\">\u8865\u5145\u8bf4\u660e\n<\/h3><hr>\n<p>\u4e3b\u91cf\u5b50\u6570\u662f\u51b3\u5b9a\u7535\u5b50\u80fd\u7ea7\u7684\u4e3b\u8981\u56e0\u7d20\u3002\u4e3b\u91cf\u5b50\u6570\u8d8a\u5927\uff0c\u80fd\u7ea7\u8d8a\u9ad8\u3002\u80fd\u7ea7\u7684\u589e\u5927\u610f\u5473\u7740\u7535\u5b50\u79bb\u539f\u5b50\u6838\u8d8a\u8fdc\uff0c\u80fd\u91cf\u8d8a\u9ad8<\/p>\n<p>\u5728\u540c\u4e00\u4e2a\u4e3b\u91cf\u5b50\u6570\u4e0b\uff0c\u4e0d\u540c\u7684\u89d2\u91cf\u5b50\u6570\u5bf9\u5e94\u7684\u8f68\u9053\u80fd\u91cf\u4e0d\u540c\u3002\u901a\u5e38\u6765\u8bf4\uff0c\u5bf9\u4e8e\u540c\u4e00\u4e2a\u4e3b\u91cf\u5b50\u6570\u503c\uff0c\u80fd\u91cf\u987a\u5e8f\u662fs&lt;p&lt;d&lt;f<\/p>\n<p>\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u9ad8\u80fd\u7ea7\u7684\u8f68\u9053\uff08\u5982 3d\uff09\u53ef\u80fd\u6bd4\u4f4e\u80fd\u7ea7\u7684\u8f68\u9053\uff08\u5982 4s\uff09\u80fd\u91cf\u66f4\u9ad8\uff0c\u8fd9\u5c31\u662f<strong>\u80fd\u7ea7\u6df7\u53e0\u73b0\u8c61<\/strong>\u3002\u4f8b\u5982\uff0c\u5c3d\u7ba13d\u5c5e\u4e8e\u7b2c3\u80fd\u7ea7\uff0c\u4f46\u5b83\u7684\u80fd\u91cf\u9ad8\u4e8e\u7b2c4\u80fd\u7ea7\u76844s\u8f68\u9053\u3002\u56e0\u6b64\uff0c\u7535\u5b50\u6392\u5e03\u65f6\u5148\u586b\u5145\u80fd\u91cf\u8f83\u4f4e\u76844s\u8f68\u9053\uff0c\u518d\u586b\u51453d\u8f68\u9053\uff0c\u8be6\u89c1<a class=\"link\" href=\"#%e7%94%b5%e5%ad%90%e6%8e%92%e5%b8%83%e8%a7%84%e5%be%8b\" >\u7535\u5b50\u6392\u5e03\u89c4\u5f8b<\/a><\/p>\n<h2 id=\"\u539f\u5b50\u8f68\u9053\u8868\u793a\u65b9\u6cd5\">\u539f\u5b50\u8f68\u9053\u8868\u793a\u65b9\u6cd5\n<\/h2><hr>\n<p>\u901a\u5e38\u7528\u4e3b\u91cf\u5b50\u6570\uff08\u6570\u5b57\uff09\u548c\u89d2\u91cf\u5b50\u6570\uff08\u5b57\u6bcd\uff09\u6765\u8868\u793a\uff0c\u4f8b\u59821s\uff0c2s\uff0c2p&hellip;<\/p>\n<p>\u5982\u679c\u8981\u8868\u793a\u539f\u5b50\u8f68\u9053\u7684\u7535\u5b50\u6392\u5e03\uff0c\u53ef\u4ee5\u5e26\u4e0a\u8be5\u8f68\u9053\u4e0a\u5b9e\u9645\u5b58\u5728\u7684\u7535\u5b50\u6570\u91cf\uff0c\u4f8b\u59821s<sup>2<\/sup>\uff0c2s<sup>2<\/sup>\uff0c2p<sup>6<\/sup>&hellip;<\/p>\n<p>\u4f8b\u5982\uff0c\u94aa (Sc, \u539f\u5b50\u5e8f\u657021) \u7684\u7535\u5b50\u6392\u5e03\u662f1s<sup>2<\/sup>2s<sup>2<\/sup>2p<sup>6<\/sup>3s<sup>2<\/sup>3p<sup>6<\/sup>4s<sup>2<\/sup>3d<sup>1<\/sup> \uff08\u56e0\u4e3a3d\u8f68\u9053\u80fd\u91cf\u9ad8\u4e8e4s\u8f68\u9053\uff0c\u7535\u5b50\u4f1a\u5148\u586b\u5145\u80fd\u91cf\u8f83\u4f4e\u76844s\u8f68\u9053\uff0c\u8be6\u89c1<a class=\"link\" href=\"#%e7%94%b5%e5%ad%90%e6%8e%92%e5%b8%83%e8%a7%84%e5%be%8b\" >\u7535\u5b50\u6392\u5e03\u89c4\u5f8b<\/a>\uff09<\/p>\n<h2 id=\"\u7535\u5b50\u6392\u5e03\u89c4\u5f8b\">\u7535\u5b50\u6392\u5e03\u89c4\u5f8b\n<\/h2><hr>\n<h3 id=\"\u80fd\u91cf\u6700\u4f4e\u539f\u7406\">\u80fd\u91cf\u6700\u4f4e\u539f\u7406\n<\/h3><hr>\n<p>\u7535\u5b50\u4f1a\u4f18\u5148\u5360\u636e\u80fd\u91cf\u8f83\u4f4e\u7684\u8f68\u9053\uff0c\u7136\u540e\u518d\u5360\u636e\u80fd\u91cf\u8f83\u9ad8\u7684\u8f68\u9053\uff0c\u9700\u6ce8\u610f\uff0c\u8f68\u9053\u7684\u80fd\u91cf\u4e0d\u662f\u4e25\u683c\u6309\u7167\u4e3b\u91cf\u5b50\u6570\u9012\u589e\uff0c\u53ef\u53c2\u8003\u4e0b\u56fe<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/09\/05\/181357.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<h3 id=\"\u6ce1\u5229\u4e0d\u76f8\u5bb9\u539f\u7406\">\u6ce1\u5229\u4e0d\u76f8\u5bb9\u539f\u7406\n<\/h3><hr>\n<p>\u5728\u540c\u4e00\u4e2a\u8f68\u9053\uff08\u7531\u4e3b\u91cf\u5b50\u6570\u3001\u89d2\u91cf\u5b50\u6570\u548c\u78c1\u91cf\u5b50\u6570\u51b3\u5b9a\uff09\u4e2d\uff0c\u6700\u591a\u53ea\u80fd\u5bb9\u7eb3\u4e24\u4e2a\u81ea\u65cb\u76f8\u53cd\u7684\u7535\u5b50\u3002\u6bcf\u4e2a\u7535\u5b50\u90fd\u6709\u4e00\u7ec4\u72ec\u7279\u7684\u91cf\u5b50\u6570\uff0c\u56e0\u6b64\u4efb\u4f55\u4e24\u4e2a\u7535\u5b50\u4e0d\u80fd\u6709\u5b8c\u5168\u76f8\u540c\u7684\u56db\u4e2a\u91cf\u5b50\u6570<\/p>\n<p>\u6362\u8a00\u4e4b\uff0c<strong>\u540c\u4e00\u8f68\u9053\u4e0a\u4e0d\u53ef\u80fd\u6709\u8d85\u8fc7\u4e24\u4e2a\u7535\u5b50<\/strong>\u3002\u5e76\u4e14\uff0c<strong>\u540c\u4e00\u8f68\u9053\u4e0a\u7684\u4e24\u4e2a\u7535\u5b50\u5fc5\u987b\u5177\u6709\u76f8\u53cd\u7684\u81ea\u65cb<\/strong><\/p>\n<h3 id=\"\u6d2a\u5fb7\u6cd5\u5219\">\u6d2a\u5fb7\u6cd5\u5219\n<\/h3><hr>\n<p>\u5728\u540c\u4e00\u4e9a\u58f3\u5c42\u4e2d\uff0c\u7535\u5b50\u7684\u6392\u5e03\u5c3d\u53ef\u80fd\u5206\u5360\u4e0d\u540c\u7684\u8f68\u9053\uff0c\u4e14\u4fdd\u6301\u81ea\u65cb\u76f8\u540c\u3002\u8fd9\u610f\u5473\u7740\u5728\u540c\u4e00\u4e9a\u58f3\u5c42\u4e2d\uff0c\u7535\u5b50\u5148\u5206\u5e03\u5230\u6bcf\u4e2a\u8f68\u9053\u540e\uff0c\u624d\u4f1a\u6210\u5bf9\u51fa\u73b0\u3002<\/p>\n<p>\u8fdb\u4e00\u6b65\u89e3\u91ca\u4e00\u4e0b\uff0c\u4f8b\u5982\u5bf9\u4e8ep\u8f68\u9053\uff0c\u5b83\u6709-1\uff0c0\uff0c1\u8fd93\u4e2a\u78c1\u91cf\u5b50\u6570\uff0c\u5bf9\u5e94\u4e09\u6761\u8f68\u9053\uff0c\u90a3\u4e48\u7535\u5b50\u5728\u586b\u5145\u7684\u65f6\u5019\u4f1a\u5148\u5728\u8fd9\u4e09\u6761\u8f68\u9053\u5404\u586b\u5145\u4e00\u4e2a\uff0c\u4e14\u4fdd\u6301\u81ea\u65cb\u76f8\u540c\uff0c\u7136\u540e\u518d\u4ee5\u53e6\u4e00\u4e2a\u65b9\u5411\u7684\u81ea\u65cb\u586b\u5145\u4e00\u904d<\/p>\n<h2 id=\"\u603b\u7ed3\">\u603b\u7ed3\n<\/h2><hr>\n<p>\u5728\u91cf\u5b50\u529b\u5b66\u4e2d\uff0c<strong>\u539f\u5b50\u8f68\u9053<\/strong>\u662f\u63cf\u8ff0\u7535\u5b50\u5728\u539f\u5b50\u6838\u5468\u56f4\u7a7a\u95f4\u5206\u5e03\u7684\u6570\u5b66\u51fd\u6570\uff0c\u901a\u5e38\u901a\u8fc7\u6ce2\u51fd\u6570\uff08$\\left| \\psi \\right|$\uff09\u6765\u8868\u793a\u3002\u5b83\u4ee3\u8868\u4e86\u7535\u5b50\u5b58\u5728\u4e8e\u67d0\u4e00\u7a7a\u95f4\u533a\u57df\u7684\u6982\u7387\u5206\u5e03<\/p>\n<p>\u7cbe\u786e\u5b9a\u4e49\u4e0a\uff0c\u539f\u5b50\u8f68\u9053\u662f\u7531<strong>\u859b\u5b9a\u8c14\u65b9\u7a0b<\/strong>\u7684\u89e3\u5f97\u51fa\u7684\u3002\u901a\u8fc7\u6c42\u89e3\u859b\u5b9a\u8c14\u65b9\u7a0b\uff0c\u53ef\u4ee5\u5f97\u5230\u539f\u5b50\u4e2d\u7535\u5b50\u7684\u6ce2\u51fd\u6570\u3002\u6ce2\u51fd\u6570\u7684\u5e73\u65b9\uff08$\\left| \\psi \\right|^{2}$\uff09\u4ee3\u8868\u7535\u5b50\u5728\u7279\u5b9a\u4f4d\u7f6e\u7684\u6982\u7387\u5bc6\u5ea6\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u539f\u5b50\u8f68\u9053\u53ef\u4ee5\u88ab\u770b\u4f5c\u662f\u63cf\u8ff0\u7535\u5b50\u5728\u7a7a\u95f4\u4e2d\u51fa\u73b0\u7684\u53ef\u80fd\u6027\u7684\u533a\u57df<\/p>\n<h2 id=\"\u53c2\u8003\">\u53c2\u8003\n<\/h2><hr>\n<ul>\n<li><a class=\"link\" href=\"https:\/\/en.wikipedia.org\/wiki\/Atomic_orbital\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/en.wikipedia.org\/wiki\/Atomic_orbital<\/a><\/li>\n<li>\u6750\u6599\u79d1\u5b66\u57fa\u7840\uff08\u7b2c\u4e09\u7248\uff09<\/li>\n<li><a class=\"link\" href=\"https:\/\/en.wikipedia.org\/wiki\/Pauli_exclusion_principle\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/en.wikipedia.org\/wiki\/Pauli_exclusion_principle<\/a><\/li>\n<\/ul>\n"},{"title":"Nextcloud AIO \u642d\u5efa","link":"https:\/\/been.ee\/p\/0-0-0-34\/","pubDate":"Sat, 18 May 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-34\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u65e9\u524d\u66fe\u7ecf\u5199\u8fc7\u4e00\u7bc7<a class=\"link\" href=\"..\/0-0-0-9\/\" >Nextcloud\u642d\u5efa\u8fc7\u7a0b<\/a>\uff0c\u5f53\u65f6\u662f\u5728\u5bbf\u4e3b\u673a\u4e0a\u76f4\u63a5\u90e8\u7f72\uff0c\u9700\u8981\u5b89\u88c5\u5404\u79cd\u7ec4\u4ef6\uff0c\u6700\u540e\u8fd8\u8981\u81ea\u5df1\u8fdb\u884c\u6027\u80fd\u8c03\u4f18\uff0c\u8fc7\u7a0b\u76f8\u5f53\u7e41\u7410<\/p>\n<p>\u9488\u5bf9\u8fd9\u4e9b\u95ee\u9898\uff0c\u5b98\u65b9\u63d0\u4f9b\u4e86<a class=\"link\" href=\"https:\/\/github.com\/nextcloud\/all-in-one\"  target=\"_blank\" rel=\"noopener\"\n    >All-in-One (AIO)<\/a>\u7684docker\u955c\u50cf\uff0c\u96c6\u6210\u4e86\u642d\u5efa\u6240\u9700\u8981\u7684\u6240\u6709\u7ec4\u4ef6\uff0c\u53ef\u4ee5\u5b8c\u5168\u4f7f\u7528docker\u5bb9\u5668\u90e8\u7f72\uff0c\u4e5f\u4e0d\u7528\u518d\u81ea\u5df1\u8fdb\u884c\u5404\u79cd\u4f18\u5316\uff0c\u7701\u53bb\u4e86\u5f88\u591a\u7e41\u7410\u7684\u6b65\u9aa4<\/p>\n<p>\u4f7f\u7528AIO\u8fdb\u884c\u642d\u5efa\u7684\u4e00\u4e2a\u95ee\u9898\u5c31\u662f\u5bf9\u5bbf\u4e3b\u673a\u914d\u7f6e\u8981\u6c42\u7565\u9ad8\uff0c\u5efa\u8bae\u81f3\u5c11\u6709\u4e24\u4e2avCPU\uff0c\u5185\u5b583GB\u4ee5\u4e0a\uff0c\u5f53\u7136\u914d\u7f6e\u8d8a\u9ad8\u4f53\u9a8c\u8d8a\u597d\uff08\u5c24\u5176\u662f\u5185\u5b58\uff09<\/p>\n<h2 id=\"\u642d\u5efa\">\u642d\u5efa\n<\/h2><hr>\n<p>\u9996\u5148\u786e\u4fdd\u7cfb\u7edf\u5df2\u7ecf\u5b89\u88c5\u4e86docker\uff0cdocker-compose\u548cnginx<\/p>\n<h3 id=\"\u542f\u52a8\u4e3b\u5bb9\u5668aio\u63a7\u5236\u9762\u677f\u5bb9\u5668\">\u542f\u52a8\u4e3b\u5bb9\u5668\uff08AIO\u63a7\u5236\u9762\u677f\u5bb9\u5668\uff09\n<\/h3><hr>\n<p>\u65b0\u5efa\u4e00\u4e2a\u76ee\u5f55\u7528\u6765\u914d\u7f6e\u4e3b\u5bb9\u5668\uff0c\u521b\u5efa<code>docker-compose.yml<\/code>\u6587\u4ef6\u5e76\u5199\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">nextcloud-aio-mastercontainer<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">nextcloud\/all-in-one:latest<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">init<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">always<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">nextcloud-aio-mastercontainer<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">nextcloud_aio_mastercontainer:\/mnt\/docker-aio-config<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">\/var\/run\/docker.sock:\/var\/run\/docker.sock:ro<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"m\">8080<\/span><span class=\"p\">:<\/span><span class=\"m\">8080<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">APACHE_PORT=11000<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">APACHE_IP_BINDING=127.0.0.1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">NEXTCLOUD_UPLOAD_LIMIT=100G<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">NEXTCLOUD_MEMORY_LIMIT=1024M<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">nextcloud_aio_mastercontainer<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">nextcloud_aio_mastercontainer<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c<code>docker-compose up -d<\/code>\u542f\u52a8\u5bb9\u5668<\/p>\n<h3 id=\"\u914d\u7f6e\u57df\u540d\u548c\u53cd\u5411\u4ee3\u7406\">\u914d\u7f6e\u57df\u540d\u548c\u53cd\u5411\u4ee3\u7406\n<\/h3><hr>\n<p>\u51c6\u5907\u4e00\u4e2a\u8bbf\u95eenextcloud\u7684\u57df\u540d\uff0c\u4f8b\u5982<code>cloud.example.com<\/code>\uff0c\u7136\u540e\u4f7f\u7528certbot\u7533\u8bf7\u8bc1\u4e66<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">certbot certonly --standalone --agree-tos -d cloud.example.com\n<\/span><\/span><\/code><\/pre><\/div><p>\u65b0\u5efa\u4e00\u4e2anginx\u914d\u7f6e\u6587\u4ef6\u4e3a<code>nextcloud.conf<\/code>\u5e76\u5199\u5165\u4e0b\u9762\u5185\u5bb9\uff08\u6ce8\u610f\u66ff\u6362\u4e3a\u81ea\u5df1\u7684\u57df\u540d\u548c\u8bc1\u4e66\u8def\u5f84\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">map <span class=\"nv\">$http_upgrade<\/span> <span class=\"nv\">$connection_upgrade<\/span> <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    default upgrade<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s1\">&#39;&#39;<\/span> close<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen 80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen <span class=\"o\">[<\/span>::<span class=\"o\">]<\/span>:80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"nv\">$scheme<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;http&#34;<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">return<\/span> <span class=\"m\">301<\/span> https:\/\/<span class=\"nv\">$host$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen <span class=\"m\">443<\/span> ssl http2<span class=\"p\">;<\/span>      <span class=\"c1\"># for nginx versions below v1.25.1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen <span class=\"o\">[<\/span>::<span class=\"o\">]<\/span>:443 ssl http2<span class=\"p\">;<\/span> <span class=\"c1\"># for nginx versions below v1.25.1 - comment to disable IPv6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># listen 443 ssl;      # for nginx v1.25.1+<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># listen [::]:443 ssl; # for nginx v1.25.1+ - keep comment to disable IPv6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># http2 on;                                 # uncomment to enable HTTP\/2        - supported on nginx v1.25.1+<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># http3 on;                                 # uncomment to enable HTTP\/3 \/ QUIC - supported on nginx v1.25.0+<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># quic_retry on;                            # uncomment to enable HTTP\/3 \/ QUIC - supported on nginx v1.25.0+<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># add_header Alt-Svc &#39;h3=&#34;:443&#34;; ma=86400&#39;; # uncomment to enable HTTP\/3 \/ QUIC - supported on nginx v1.25.0+<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># listen 443 quic reuseport;       # uncomment to enable HTTP\/3 \/ QUIC - supported on nginx v1.25.0+ - please remove &#34;reuseport&#34; if there is already another quic listener on port 443 with enabled reuseport<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># listen [::]:443 quic reuseport;  # uncomment to enable HTTP\/3 \/ QUIC - supported on nginx v1.25.0+ - please remove &#34;reuseport&#34; if there is already another quic listener on port 443 with enabled reuseport - keep comment to disable IPv6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server_name cloud.example.com<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    location \/ <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_pass http:\/\/127.0.0.1:11000<span class=\"nv\">$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header X-Forwarded-For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header X-Forwarded-Port <span class=\"nv\">$server_port<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header X-Forwarded-Scheme <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header X-Forwarded-Proto <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header Accept-Encoding <span class=\"s2\">&#34;&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header Host <span class=\"nv\">$host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        client_body_buffer_size 512k<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_read_timeout 86400s<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        client_max_body_size 50000m<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"c1\"># Websocket<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_http_version 1.1<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header Upgrade <span class=\"nv\">$http_upgrade<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header Connection <span class=\"nv\">$connection_upgrade<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># If running nginx on a subdomain (eg. nextcloud.example.com) of a domain that already has an wildcard ssl certificate from certbot on this machine,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># the &lt;your-nc-domain&gt; in the below lines should be replaced with just the domain (eg. example.com), not the subdomain.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># In this case the subdomain should already be secured without additional actions<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate \/etc\/letsencrypt\/live\/cloud.example.com\/fullchain.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate_key \/etc\/letsencrypt\/live\/cloud.example.com\/privkey.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_session_timeout 1d<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_session_cache shared:MozSSL:10m<span class=\"p\">;<\/span> <span class=\"c1\"># about 40000 sessions<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_session_tickets off<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_protocols TLSv1.2 TLSv1.3<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_prefer_server_ciphers on<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c<code>systemctl restart nginx<\/code>\u52a0\u8f7dnginx\u914d\u7f6e<\/p>\n<h3 id=\"\u5b89\u88c5nextcloud-aio\">\u5b89\u88c5Nextcloud AIO\n<\/h3><hr>\n<p>\u5b8c\u6210\u4e0a\u9762\u914d\u7f6e\u540e\uff0c\u8bbf\u95ee<code>https:\/\/ip:8080<\/code>\u5373\u53ef\u8fdb\u5165AIO\u63a7\u5236\u9762\u677f\uff0c\u51c6\u5907\u5b89\u88c5<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/17\/150920-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u590d\u5236\u6700\u4e0b\u9762\u7684\u5bc6\u7801\u540e\uff0c\u8fdb\u5165Open Nextcloud AIO Login<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/17\/151108-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8fdb\u5165\u4e0b\u9762\u9875\u9762\u540e\uff0c\u8f93\u5165\u524d\u9762\u51c6\u5907\u597d\u7684\u57df\u540d\uff0c\u4f8b\u5982<code>cloud.example.com<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/17\/151401-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\uff0c\u9009\u62e9\u8981\u5b89\u88c5\u7684\u5bb9\u5668<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/17\/151517-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u65f6\u533a\u9009\u62e9<code>Asia\/Shanghai<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/17\/151621-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u4e0b\u8f7d\u5b89\u88c5\u5c31\u53ef\u4ee5\u4e86<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/17\/151711-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7a0d\u7b49\u4e00\u4f1a\uff0c\u7b49\u6240\u6709\u5bb9\u5668\u542f\u52a8\u6210\u529f\u540e\u5c31\u5b89\u88c5\u5b8c\u6210\u4e86\uff0c\u4f7f\u7528\u63d0\u4f9b\u7684\u7ba1\u7406\u5458\u7528\u6237\u540d\u548c\u5bc6\u7801\u5c31\u53ef\u4ee5\u767b\u5f55\u4e86<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/17\/152457-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u642d\u5efa\u5b8c\u6210\uff0c\u63a5\u4e0b\u6765\u53ef\u4ee5\u6109\u5feb\u7684\u4f7f\u7528\u4e86<\/p>\n<h2 id=\"\u4e00\u4e9b\u989d\u5916\u7684\u8bf4\u660e\">\u4e00\u4e9b\u989d\u5916\u7684\u8bf4\u660e\n<\/h2><hr>\n<h3 id=\"\u89e3\u51b3security--setup-warnings-displays-the-missing-default-phone-region-after-initial-install\u95ee\u9898\">\u89e3\u51b3&quot;Security &amp; setup warnings displays the &ldquo;missing default phone region&rdquo; after initial install&quot;\u95ee\u9898\n<\/h3><hr>\n<p>\u6267\u884c\u4e0b\u9762\u8fd9\u6761\u6307\u4ee4\u5373\u53ef<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker <span class=\"nb\">exec<\/span> --user www-data nextcloud-aio-nextcloud php occ config:system:set default_phone_region --value<span class=\"o\">=<\/span><span class=\"s2\">&#34;CN&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u5c06CN\u66ff\u6362\u4e3a\u5176\u4ed6\u56fd\u5bb6\u4ee3\u7801<\/p>\n<h3 id=\"\u4f7f\u7528occ\u6307\u4ee4\">\u4f7f\u7528OCC\u6307\u4ee4\n<\/h3><hr>\n<p>\u6267\u884c<code>docker exec --user www-data -it nextcloud-aio-nextcloud php occ your-command<\/code><\/p>\n<p>\u5c06<code>your-command<\/code>\u66ff\u6362\u4e3a\u4f60\u60f3\u6267\u884c\u7684\u547d\u4ee4\u5373\u53ef<\/p>\n<h3 id=\"\u5907\u4efd\u95ee\u9898\">\u5907\u4efd\u95ee\u9898\n<\/h3><hr>\n<p>\u4ee5\u6211\u81ea\u5df1\u4e3a\u4f8b\uff0c\u56e0\u4e3a\u6211\u9700\u8981\u5411Nextcloud\u5907\u4efd\u6570\u636e\uff0c\u5907\u4efd\u811a\u672c\u901a\u5e38\u662f\u4f7f\u7528rclone\u76f4\u63a5\u5229\u7528Nextcloud\u81ea\u5e26\u7684Webdav\u670d\u52a1\u5411\u5176\u62f7\u8d1d\u6570\u636e\uff0c\u4f46\u76f4\u63a5\u62f7\u8d1d\u8fc7\u53bb\u540e\uff0cNextcloud\u5e76\u4e0d\u4f1a\u81ea\u52a8\u7d22\u5f15\u65b0\u7684\u5185\u5bb9\uff0c\u56e0\u6b64\u9700\u8981\u7528<a class=\"link\" href=\"#%e4%b8%80%e4%ba%9b%e9%a2%9d%e5%a4%96%e7%9a%84%e8%af%b4%e6%98%8e\" >OCC<\/a>\u626b\u63cf\u6587\u4ef6\u5e76\u66f4\u65b0\u7d22\u5f15<\/p>\n<p>\u5177\u4f53\u5730\uff0c\u9700\u8981\u5728\u5907\u4efd\u811a\u672c\u6700\u540e\u52a0\u5165\u4e00\u6761\u6307\u4ee4\uff0c\u8ba9\u8fdc\u7a0bNextcloud\u670d\u52a1\u5668\u6267\u884c\u76f8\u5173\u7684OCC\u6307\u4ee4\uff0c\u8fd9\u91cc\u53ef\u4ee5\u4f7f\u7528ssh\u7684\u529f\u80fd\u6765\u5b9e\u73b0\uff08ssh\u53ef\u4ee5\u5b9e\u73b0\u767b\u5f55\u5230\u5bbf\u4e3b\u673a\u5e76\u6267\u884c\u76f8\u5173\u6307\u4ee4\uff09\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">ssh -i \/root\/.ssh\/private.key -p &lt;port&gt; -t root@xx.xx.xx.xx <span class=\"s1\">&#39;docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan --path=admin\/files\/BackupDir&#39;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5173\u4e8eOCC\u626b\u63cf\u6587\u4ef6\u5e76\u540c\u6b65\u6570\u636e\u7684\u4f7f\u7528\u65b9\u6cd5\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"..\/0-0-0-18\/\" >\u8fd9\u91cc<\/a><\/p>\n<h3 id=\"\u79fb\u9664nextcloud-aio\">\u79fb\u9664Nextcloud AIO\n<\/h3><hr>\n<p>\u6ce8\u610f\uff01\u6267\u884c\u4e0b\u9762\u64cd\u4f5c\u5c06\u5f7b\u5e95\u79fb\u9664Nextcloud AIO\u5b9e\u4f8b\u548c\u6240\u6709\u7684\u6570\u636e\uff0c\u4e0d\u8981\u8f7b\u6613\u6267\u884c<\/p>\n<ol>\n<li>\u4ece\u63a7\u5236\u9762\u677f\u505c\u6b62\u6240\u6709\u7684\u5bb9\u5668<\/li>\n<li>\u6267\u884c<code>docker stop nextcloud-aio-mastercontainer<\/code>\u505c\u6b62\u4e3b\u5bb9\u5668<\/li>\n<li>\u5982\u679c<code>nextcloud-aio-domaincheck<\/code>\u5bb9\u5668\u4ecd\u5728\u5141\u8bb8\uff0c\u9700\u8981\u624b\u52a8\u505c\u6b62<code>docker stop nextcloud-aio-domaincheck<\/code><\/li>\n<li>\u6267\u884c<code>docker ps --format {{.Names}}<\/code>\u68c0\u67e5\u662f\u5426\u6240\u6709AIO\u5bb9\u5668\u5747\u5df2\u7ecf\u505c\u6b62\uff0c\u5982\u679c\u4ecd\u6709\uff0c\u5219\u624b\u52a8\u505c\u6b62<\/li>\n<li>\u6267\u884c<code>docker ps --filter &quot;status=exited&quot;<\/code>\u67e5\u770b\u5df2\u505c\u6b62\u7684\u5bb9\u5668<\/li>\n<li>\u6267\u884c<code>docker container prune<\/code>\u79fb\u9664\u6240\u6709\u505c\u6b62\u7684\u5bb9\u5668<\/li>\n<li>\u6267\u884c<code>docker network rm nextcloud-aio<\/code>\u79fb\u9664docker\u7f51\u7edc<\/li>\n<li>\u6267\u884c<code>docker volume ls --filter &quot;dangling=true&quot;<\/code>\u67e5\u770b\u672a\u4f7f\u7528\u7684\u5377<\/li>\n<li>\u6267\u884c<code>docker volume prune --filter all=1<\/code>\u79fb\u9664\u672a\u4f7f\u7528\u7684\u5377\uff0c\u5982\u679c\u4f7f\u7528\u81ea\u5b9a\u8def\u5f84\u4fdd\u5b58\u6570\u636e\u5219\u9700\u8981\u624b\u52a8\u5220\u9664<\/li>\n<li>\u6267\u884c<code>docker volume ls --format {{.Name}}<\/code>\u67e5\u770b\u662f\u5426\u5df2\u5168\u90e8\u5220\u9664AIO\u76f8\u5173\u7684\u5377<\/li>\n<li>\u6267\u884c<code>docker image prune -a<\/code>\u79fb\u9664\u672a\u4f7f\u7528\u7684\u955c\u50cf\uff0c\u5b8c\u6210<\/li>\n<\/ol>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u6574\u4f53\u6765\u8bf4\uff0c\u4f7f\u7528docker\u642d\u5efa\u76f8\u5bf9\u6bd4\u8f83\u65b9\u4fbf\uff0c\u4e2a\u4eba\u4f7f\u7528\u7684\u8bdd\uff0c\u5728\u62113C4G\u7684\u673a\u5668\u4e0a\u8fd0\u884c\u633a\u6d41\u7545\u7684\uff0c\u4e0d\u4f7f\u7528\u60c5\u51b5\u4e0b\u5185\u5b58\u5360\u75282G\u591a\u4e00\u70b9\uff0c\u4f46\u4e2a\u522b\u60c5\u51b5\uff08\u6bd4\u5982\u52a0\u8f7d\u5927\u91cf\u56fe\u7247\u7684\u65f6\u5019\uff09\u4f1a\u6709CPU\u548c\u5185\u5b58\u5168\u90e8\u5403\u6ee1\u7684\u65f6\u5019<\/p>\n"},{"title":"Obsidian \u63d2\u4ef6\u914d\u7f6e\uff1a\u7528\u4e8e\u56fe\u7247\u81ea\u52a8\u4e0a\u4f20\u81f3\u56fe\u5e8a","link":"https:\/\/been.ee\/p\/0-0-0-35\/","pubDate":"Sat, 18 May 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-35\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u9996\u5148\u505a\u4e00\u4e2a\u7b80\u5355\u7684\u4ecb\u7ecd\uff0c<a class=\"link\" href=\"https:\/\/obsidian.md\/\"  target=\"_blank\" rel=\"noopener\"\n    >Obsidian<\/a>\u662f\u4e00\u6b3e\u51fa\u8272\u7684\u7b14\u8bb0\u8f6f\u4ef6\uff0c\u4e5f\u662f\u6211\u957f\u671f\u4ee5\u6765\u4e00\u76f4\u7528\u6765\u8bb0\u7b14\u8bb0\u548c\u5199\u535a\u5ba2\u7684\u8f6f\u4ef6\uff0c\u975e\u5e38\u597d\u7528<\/p>\n<p><a class=\"link\" href=\"https:\/\/github.com\/icret\/EasyImages2.0\"  target=\"_blank\" rel=\"noopener\"\n    >Easyimage<\/a>\u662f\u4e00\u4e2a\u5f00\u6e90\u56fe\u5e8a\u65b9\u6848\uff0c\u53ef\u4ee5\u6258\u7ba1\u5728\u81ea\u5df1\u7684\u670d\u52a1\u5668\u4e0a<\/p>\n<p><a class=\"link\" href=\"https:\/\/picgo.github.io\/PicGo-Doc\/zh\/guide\/#picgo-is-here\"  target=\"_blank\" rel=\"noopener\"\n    >Picgo<\/a>\u662f\u4e00\u4e2a\u7528\u6765\u5c06\u56fe\u7247\u5feb\u901f\u4e0a\u4f20\u5230\u6307\u5b9a\u56fe\u5e8a\u5e76\u83b7\u53d6URL\u94fe\u63a5\u7684\u5de5\u5177<\/p>\n<p>Obsidian\u63d0\u4f9b\u4e86\u4e00\u4e2a\u63d2\u4ef6\uff08Image auto upload\uff09\u53ef\u4ee5\u8ba9\u6211\u4eec\u5728\u7b14\u8bb0\u4e2d\u7c98\u8d34\u56fe\u7247\u7684\u65f6\u5019\u5c06\u56fe\u7247\u4e0a\u4f20\u81f3\u6307\u5b9a\u7684\u56fe\u5e8a\uff0c\u5e76\u5728\u7b14\u8bb0\u4e2d\u66ff\u6362\u4e3a\u5bf9\u5e94\u7684Markdown\u56fe\u7247\u94fe\u63a5\uff0c\u7701\u53bb\u4e86\u5728\u7b14\u8bb0\u4e2d\u5f15\u7528\u56fe\u7247\u65f6\u7684\u7e41\u7410\u8fc7\u7a0b\uff0c\u53ef\u4ee5\u8bf4\u662f\u76f8\u5f53\u65b9\u4fbf\u4e86\uff01<\/p>\n<h2 id=\"\u642d\u5efa\u5e76\u914d\u7f6eeasyimage\">\u642d\u5efa\u5e76\u914d\u7f6eEasyimage\n<\/h2><hr>\n<p>\u4e5f\u53ef\u4ee5\u4f7f\u7528\u5176\u4ed6\u56fe\u5e8a\u65b9\u6848\u6216\u8005\u662f\u516c\u5171\u56fe\u5e8a\uff0c\u6211\u8fd9\u91cc\u7684\u8bdd\u4ee5Easyimage\u4e3a\u4f8b\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b\u81ea\u5efa\u56fe\u5e8a<\/p>\n<p>\u63a8\u8350\u4f7f\u7528docker\u90e8\u7f72\uff0c\u4e0b\u9762\u662f\u8981\u5199\u5165<code>docker-compose.yml<\/code>\u6587\u4ef6\u4e2d\u7684\u5185\u5bb9\uff0c\u6ce8\u610f\u5c06\u4e24\u4e2avolume\u4e2d\u7684\u5de6\u4fa7\u8def\u5f84\u66ff\u6362\u4e3a\u81ea\u5df1\u60f3\u8981\u8bbe\u7f6e\u7684\u914d\u7f6e\u6587\u4ef6\u8def\u5f84\u548c\u6570\u636e\u8def\u5f84<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">easyimage<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">ddsderek\/easyimage:latest<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">easyimage<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"s1\">&#39;127.0.0.1:8082:80&#39;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">TZ=Asia\/Shanghai<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">PUID=1000<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">PGID=1000<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"s1\">&#39;\/docker\/easyimage\/config:\/app\/web\/config&#39;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"s1\">&#39;\/hdd\/easyimage_data:\/app\/web\/i&#39;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">unless-stopped<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c<code>docker-compose up -d<\/code>\u542f\u52a8\u5bb9\u5668<\/p>\n<p>\u51c6\u5907\u4e00\u4e2a\u57df\u540d\uff0c\u4f8b\u5982<code>img.xxx.com<\/code>\uff0c\u5e76\u7528certbot\u7533\u8bf7\u597dSSL\u8bc1\u4e66\uff0c\u8fd9\u91cc\u5c31\u4e0d\u518d\u8d58\u8ff0<\/p>\n<p>\u7136\u540e\u914d\u7f6enginx\u53cd\u4ee3\uff0c\u65b0\u5efa\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6<code>easyimage.conf<\/code>\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9\uff0c\u6ce8\u610f\u5c06\u57df\u540d\u548c\u8bc1\u4e66\u66ff\u6362\u4e3a\u81ea\u5df1\u7684<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen 80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen <span class=\"o\">[<\/span>::<span class=\"o\">]<\/span>:80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  server_name img.xxx.com<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"k\">return<\/span> <span class=\"m\">301<\/span> https:<span class=\"nv\">$server_name$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen <span class=\"m\">443<\/span> ssl http2<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen <span class=\"o\">[<\/span>::<span class=\"o\">]<\/span>:443 ssl http2<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  server_name img.xxx.com<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_certificate     \/etc\/letsencrypt\/live\/img.xxx.com\/fullchain.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_certificate_key \/etc\/letsencrypt\/live\/img.xxx.com\/privkey.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  location \/ <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_pass http:\/\/127.0.0.1:8082<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header Host <span class=\"nv\">$host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header X-Forwarded_For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header X-Forwarded-Proto <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c<code>systemctl restart nginx<\/code>\u52a0\u8f7d\u914d\u7f6e<\/p>\n<p>\u8bbf\u95ee<code>https:\/\/img.xxx.com<\/code>\u5c31\u53ef\u4ee5\u8fdb\u5165\u81ea\u5efa\u56fe\u5e8a\u4e86\uff0c\u540e\u9762\u5c31\u6309\u7167\u8981\u6c42\u521b\u5efa\u7ba1\u7406\u5458\u8d26\u6237\u914d\u7f6e\u4e00\u4e0b\u5c31\u597d\u4e86\uff0c\u4e00\u4e9b\u7ec6\u8282\u5c31\u4e0d\u518d\u8d58\u8ff0\u4e86<\/p>\n<p>\u4e0b\u9762\uff0c\u4e3a\u4e86\u914d\u5408Picgo\u4f7f\u7528\uff0c\u9700\u8981\u767b\u5f55\u7ba1\u7406\u5458\u8d26\u6237\uff0c\u5728<code>\u8bbe\u7f6e-\u56fe\u5e8a\u5b89\u5168<\/code>\u9009\u9879\u91cc\u5f00\u542f<code>API\u4e0a\u4f20<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/18\/224253-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5728<code>\u8bbe\u7f6e-API\u8bbe\u7f6e<\/code>\u4e2d\u627e\u5230<code>API\u8c03\u7528\u5730\u5740<\/code>\u5e76\u6dfb\u52a0\u4e00\u4e2a<code>Token<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/18\/224838-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u5b89\u88c5picgo\">\u5b89\u88c5Picgo\n<\/h2><hr>\n<p>\u9996\u5148\u5230<a class=\"link\" href=\"https:\/\/github.com\/Molunerfinn\/PicGo\/releases\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u91cc\uff08\u9700\u9b54\u6cd5\uff09<\/a>\u4e0b\u8f7d\u5e76\u5b89\u88c5\u6700\u65b0\u7248Picgo<\/p>\n<p>\u5b89\u88c5\u540e\uff0c\u6253\u5f00Picgo\uff0c\u5728<code>\u63d2\u4ef6\u8bbe\u7f6e<\/code>\u4e2d\u641c\u7d22<code>web-uploader<\/code>\uff0c\u627e\u5230<code>web-uploader 1.1.1<\/code>\u4e0b\u8f7d\u5e76\u5b89\u88c5<\/p>\n<blockquote>\n<p>\u6ce8\uff1a\u63d2\u4ef6\u4e0b\u8f7d\u53ef\u80fd\u540c\u6837\u9700\u8981&quot;\u9b54\u6cd5&quot;\uff0c\u5982\u679c\u65e0\u6cd5\u5b89\u88c5\uff0c\u53ef\u4ee5\u8fdb\u5165<code>PicGo\u8bbe\u7f6e<\/code>-<code>\u8bbe\u7f6e\u4ee3\u7406\u548c\u955c\u50cf\u5730\u5740<\/code> \u914d\u7f6e<code>\u63d2\u4ef6\u5b89\u88c5\u4ee3\u7406<\/code><\/p><\/blockquote>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/18\/225142-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u627e\u5230<code>\u56fe\u5e8a\u8bbe\u7f6e-\u81ea\u5b9a\u4e49Web\u56fe\u5e8a<\/code>\uff0c\u65b0\u5efa\u4e00\u4e2a\u914d\u7f6e\uff0c\u586b\u5165\u53c2\u6570\uff1a<\/p>\n<blockquote>\n<ul>\n<li>\n<p>\u56fe\u5e8a\u914d\u7f6e\u540d: \u81ea\u5df1\u968f\u4fbf\u8bbe\u7f6e\uff0c\u4f8b\u5982\uff0c<code>Easyimage<\/code><\/p>\n<\/li>\n<li>\n<p>API\u5730\u5740: \u586b\u5199\u4e0a\u4e00\u6b65\u5728API\u8bbe\u7f6e\u4e2d\u7684API\u8c03\u7528\u5730\u5740\uff0c\u4f8b\u5982\uff0c<code>https:\/\/img.xxx.com\/api\/index.php<\/code><\/p>\n<\/li>\n<li>\n<p>POST\u53c2\u6570\u540d: <code>image<\/code><\/p>\n<\/li>\n<li>\n<p>JSON\u8def\u5f84: <code>url<\/code><\/p>\n<\/li>\n<li>\n<p>\u81ea\u5b9a\u4e49\u8bf7\u6c42\u5934: \u53ef\u4ee5\u7559\u7a7a<\/p>\n<\/li>\n<li>\n<p>\u81ea\u5b9a\u4e49Body: <code>{&quot;token&quot;:&quot;\u8fd9\u91cc\u586b\u5199\u4e0a\u4e00\u6b65\u4e2d\u6dfb\u52a0\u7684Token&quot;}<\/code><\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/18\/225948-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u914d\u7f6e\u597d\u540e\u70b9\u51fb\u786e\u5b9a\uff0c\u5e76\u8bbe\u7f6e\u4e3a\u9ed8\u8ba4\u56fe\u5e8a\u5c31\u5b8c\u6210\u4e86<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/18\/230435-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"obsidian\u63d2\u4ef6\u914d\u7f6e\">Obsidian\u63d2\u4ef6\u914d\u7f6e\n<\/h2><hr>\n<p>\u4e0b\u9762\uff0c\u6211\u4eec\u8981\u6253\u5f00Obsidian\uff0c\u5230<code>\u8bbe\u7f6e-\u7b2c\u4e09\u65b9\u63d2\u4ef6-\u793e\u533a\u63d2\u4ef6\u5e02\u573a<\/code>\u4e2d\u627e\u5230\u5e76\u5b89\u88c5<code>Image auto upload<\/code>\u63d2\u4ef6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/18\/230702-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5f00\u542f\u63d2\u4ef6<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/18\/230811-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6253\u5f00\u63d2\u4ef6\u8bbe\u7f6e\uff0c\u786e\u4fdd\u5f00\u542f\u526a\u5207\u677f\u81ea\u52a8\u4e0a\u4f20\uff0c\u5176\u4ed6\u8bbe\u7f6e\u6839\u636e\u60c5\u51b5\u81ea\u884c\u8c03\u6574\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/05\/18\/230948-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u65b0\u5efa\u4e00\u4e2a\u7b14\u8bb0\uff0c\u7c98\u8d34\u56fe\u7247\u6d4b\u8bd5\u4e00\u4e0b\uff0c\u53ef\u4ee5\u987a\u5229\u4e0a\u4f20\u5e76\u81ea\u52a8\u8d34\u4e0aMarkdown\u56fe\u7247\u94fe\u63a5<\/p>\n"},{"title":"\u8fd1\u4ee3\u9178\u78b1\u7406\u8bba\u7b80\u4ecb","link":"https:\/\/been.ee\/p\/0-0-0-33\/","pubDate":"Wed, 15 May 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-33\/","description":"<p>\u7b80\u5355\u4ecb\u7ecd\u5e76\u603b\u7ed3\u4e00\u4e0b\u76ee\u524d\u5e38\u7528\u7684\u51e0\u79cd\u9178\u78b1\u7406\u8bba\u6a21\u578b<\/p>\n<h2 id=\"\u9178\u78b1\u7535\u79bb\u7406\u8bba\">\u9178\u78b1\u7535\u79bb\u7406\u8bba\n<\/h2><hr>\n<p>1884\u5e74\u7531\u745e\u5178\u5316\u5b66\u5bb6\u65af\u51e1\u7279\u00b7\u5965\u53e4\u65af\u7279\u00b7\u963f\u4f26\u5c3c\u4e4c\u65af\u63d0\u51fa\uff0c\u4e5f\u79f0\u4e3a\u963f\u4f26\u5c3c\u4e4c\u65af\u9178\u78b1\u7406\u8bba<\/p>\n<h3 id=\"\u6982\u5ff5\">\u6982\u5ff5\n<\/h3><hr>\n<p>\u8be5\u7406\u8bba\u8ba4\u4e3a\uff0c\u51e1\u662f\u5728\u6c34\u4e2d\u7535\u79bb\u51fa\u7684\u6b63\u79bb\u5b50\u5b8c\u5168\u662fH<sup>+<\/sup>\u7684\u5316\u5408\u7269\u4e3a\u9178\uff0c\u7535\u79bb\u51fa\u7684\u8d1f\u79bb\u5b50\u5b8c\u5168\u662fOH<sup>-<\/sup>\u7684\u5316\u5408\u7269\u4e3a\u78b1<\/p>\n<h3 id=\"\u9178\u78b1\u4e2d\u548c\u53cd\u5e94\">\u9178\u78b1\u4e2d\u548c\u53cd\u5e94\n<\/h3><hr>\n<p>\u5728\u8be5\u7406\u8bba\u4e0b\uff0c\u9178\u78b1\u53cd\u5e94\u88ab\u89e3\u91ca\u4e3aH<sup>+<\/sup>\u548cOH<sup>-<\/sup>\u53cd\u5e94\u751f\u6210\u6c34\u7684\u8fc7\u7a0b<\/p>\n<p>\u4f8b\u5982\uff0cHCl\u548cNaOH\u7684\u53cd\u5e94\u53ef\u4ee5\u88ab\u8ba4\u4e3a\u662f\u5176\u4e2d\u7684H<sup>+<\/sup>\u548cOH<sup>-<\/sup>\u53cd\u5e94\u751f\u6210\u6c34\u540e\u5f97\u5230\u4e86NaCl\u6eb6\u6db2\uff0c\u5176\u4e2d\u7684Na<sup>+<\/sup>\u548cCl<sup>-<\/sup>\u5e76\u6ca1\u6709\u53d1\u751f\u53cd\u5e94\uff1a<\/p>\n$$HCl + NaOH \\rightarrow NaCl + H_2O$$<p>\u8be5\u7406\u8bba\u4e5f\u662f\u76ee\u524d\u6211\u4eec\u5e7f\u6cdb\u719f\u6089\u548c\u91c7\u7528\u7684\u7406\u8bba\uff0c\u4f46\u8be5\u7406\u8bba\u5c06\u9178\u548c\u78b1\u9650\u5b9a\u5728\u4e86\u6c34\u6eb6\u6db2\u4f53\u7cfb\u4e2d\uff0c\u5b58\u5728\u8f83\u5927\u7684\u5c40\u9650\u6027<\/p>\n<h2 id=\"\u9178\u78b1\u8d28\u5b50\u7406\u8bba\">\u9178\u78b1\u8d28\u5b50\u7406\u8bba\n<\/h2><hr>\n<p>1923\u5e74\u7531\u4e39\u9ea6\u5316\u5b66\u5bb6\u7ea6\u7ff0\u5c3c\u65af\u00b7\u5c3c\u53e4\u52b3\u65af\u00b7\u5e03\u6717\u65af\u53f0\u5fb7\u548c\u82f1\u56fd\u5316\u5b66\u5bb6\u6258\u9a6c\u65af\u00b7\u9a6c\u4e01\u00b7\u6d1b\u745e\u5404\u81ea\u72ec\u7acb\u63d0\u51fa<\/p>\n<h3 id=\"\u6982\u5ff5-1\">\u6982\u5ff5\n<\/h3><hr>\n<p>\u8be5\u7406\u8bba\u8ba4\u4e3a\uff0c\u51e1\u662f\u53ef\u4ee5\u91ca\u653e\u8d28\u5b50\u7684\u7269\u8d28\u79f0\u4e3a\u9178\uff08\u5e03\u6717\u65af\u53f0\u5fb7\u9178\uff09\uff0c\u51e1\u662f\u80fd\u7ed3\u5408\u8d28\u5b50\u7684\u7269\u8d28\u79f0\u4e3a\u78b1\uff08\u5e03\u6717\u65af\u53f0\u5fb7\u78b1\uff09<\/p>\n<p>\u5176\u4e2d\uff0c\u9178\u5931\u53bb\u4e00\u4e2a\u8d28\u5b50\u540e\u5f62\u6210\u7684\u7269\u8d28\u53eb\u505a\u8be5\u9178\u7684\u5171\u8f6d\u78b1\uff0c\u78b1\u7ed3\u5408\u4e00\u4e2a\u8d28\u5b50\u540e\u5f62\u6210\u7684\u7269\u8d28\u53eb\u505a\u8be5\u78b1\u7684\u5171\u8f6d\u9178<\/p>\n<h3 id=\"\u9178\u78b1\u53cd\u5e94\">\u9178\u78b1\u53cd\u5e94\n<\/h3><hr>\n<p>\u8be5\u7406\u8bba\u4e0b\uff0c\u9178\u548c\u78b1\u4e0d\u518d\u53d7\u6eb6\u5242\u9650\u5b9a\uff0c\u9178\u78b1\u53cd\u5e94\u7684\u5b9e\u8d28\u88ab\u63cf\u8ff0\u4e3a\u5171\u8f6d\u9178\u78b1\u5bf9\u4e4b\u95f4\u7684\u8d28\u5b50\u4f20\u9012\u8fc7\u7a0b\uff0c\u6ca1\u6709\u76d0\u7684\u6982\u5ff5<\/p>\n<p>\u5b58\u5728\u4e24\u6027\u7269\u8d28\uff08\u65e2\u53ef\u4ee5\u5145\u5f53\u9178\uff0c\u4e5f\u53ef\u4ee5\u5145\u5f53\u78b1\uff0c\u4f8b\u5982H<sub>2<\/sub>O\uff09<\/p>\n$$acid + base \\rightleftharpoons conjugate base + conjugate acid$$<p>\u4e3e\u4f8b\uff1a<\/p>\n<ul>\n<li>\u6c34\u7684\u4e24\u6027\u6027\u8d28\uff0c\u6c34\u53ef\u4ee5\u5206\u522b\u4f5c\u4e3a\u9178\u548c\u78b1\u8fdb\u884c\u53cd\u5e94\u5f97\u5230\u6c34\u5408\u6c22\u548c\u6c22\u6c27\u6839<\/li>\n<\/ul>\n$$H_2O + H_2O \\rightleftharpoons H_3O^+ + OH^-$$<ul>\n<li>NH<sub>4<\/sub><sup>+<\/sup>\u7684\u6c34\u89e3<\/li>\n<\/ul>\n$$NH_4^+ +H_2O \\rightleftharpoons NH_3 + H_3O^+$$<h2 id=\"\u9178\u78b1\u7535\u5b50\u7406\u8bba\">\u9178\u78b1\u7535\u5b50\u7406\u8bba\n<\/h2><hr>\n<p>1923\u5e74\u7531\u7f8e\u56fd\u5316\u5b66\u5bb6\u5409\u5c14\u4f2f\u7279\u00b7\u725b\u987f\u00b7\u8def\u6613\u65af\u63d0\u51fa\uff0c\u4e5f\u79f0\u4e3a\u8def\u6613\u65af\u9178\u78b1\u7406\u8bba\u6216\u5e7f\u4e49\u9178\u78b1\u7406\u8bba<\/p>\n<h3 id=\"\u6982\u5ff5-2\">\u6982\u5ff5\n<\/h3><hr>\n<p>\u8be5\u7406\u8bba\u8ba4\u4e3a\uff0c\u4efb\u4f55\u80fd\u63a5\u53d7\u5b64\u5bf9\u7535\u5b50\u7684\u7269\u8d28\u79f0\u4e3a\u9178\uff08\u8def\u6613\u65af\u9178\uff09\uff1b\u4efb\u4f55\u80fd\u591f\u63d0\u4f9b\u5b64\u5bf9\u7535\u5b50\u7684\u7269\u8d28\u79f0\u4e3a\u78b1\uff08\u8def\u6613\u65af\u78b1\uff09\uff1b\u6362\u53e5\u8bdd\u8bf4\uff0c\u8def\u6613\u65af\u9178\u662f\u7535\u5b50\u5bf9\u53d7\u4f53\uff0c\u8def\u6613\u65af\u78b1\u662f\u7535\u5b50\u5bf9\u4f9b\u4f53<\/p>\n<ul>\n<li>\u5b64\u5bf9\u7535\u5b50\uff1a\u4e5f\u5c31\u662f\u975e\u952e\u5408\u5bf9\u7535\u5b50\uff0c\u6307\u7684\u662f\u4e0d\u4e0e\u5176\u4ed6\u539f\u5b50\u7ed3\u5408\u6216\u5171\u4eab\u7684<strong>\u6210\u5bf9<\/strong>\u4ef7\u7535\u5b50\u3002\u4f8b\u5982\uff0cOH<sup>-<\/sup>\u67093\u5bf9\u5b64\u5bf9\u7535\u5b50\uff0cNH<sub>3<\/sub>\u67091\u5bf9\u5b64\u5bf9\u7535\u5b50<\/li>\n<\/ul>\n<p>\u6ce8\uff1a\u8def\u6613\u65af\u9178\u6709\u65f6\u4e5f\u88ab\u79f0\u4e3a\u4eb2\u7535\u8bd5\u5242\uff0c\u8def\u6613\u65af\u78b1\u6709\u65f6\u4e5f\u88ab\u79f0\u4e3a\u4eb2\u6838\u8bd5\u5242<\/p>\n<h3 id=\"lewis\u9178\u78b1\u53cd\u5e94\">Lewis\u9178\u78b1\u53cd\u5e94\n<\/h3><hr>\n<p>\u4e3e\u4e24\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\uff1a<\/p>\n<ul>\n<li>H<sup>+<\/sup>\u548cOH<sup>-<\/sup>\u7684\u53cd\u5e94\uff08OH<sup>-<\/sup>\u67093\u5bf9\u5b64\u5bf9\u7535\u5b50\uff09<\/li>\n<\/ul>\n$$ H^+ + OH^- \\rightarrow H_2O $$<ul>\n<li>H<sup>+<\/sup>\u548cH<sub>2<\/sub>O\u7684\u53cd\u5e94\uff08H<sub>2<\/sub>O\u67092\u5bf9\u5b64\u5bf9\u7535\u5b50\uff09<\/li>\n<\/ul>\n$$ H^+ + H_2O \\rightarrow H_3O^+ $$<p>\u6ce8\uff1a\u4e8b\u5b9e\u4e0a\uff0c\u7531\u4e8eH<sup>+<\/sup>\u662f\u4e00\u4e2a\u534a\u5f84\u6781\u5c0f\uff0c\u7535\u8377\u5bc6\u5ea6\u5f88\u5927\u7684\u88f8\u8d28\u5b50\uff0c\u56e0\u6b64\u5176\u5728\u6c34\u6eb6\u6db2\u4e2d\u5e76\u4e0d\u4f1a\u4ee5\u81ea\u7531\u79bb\u5b50\u72ec\u7acb\u5b58\u5728\uff0c\u800c\u662f\u8868\u73b0\u4e3aH<sub>3<\/sub>O<sup>+<\/sup>\uff08\u6c34\u5408\u6c22\uff09\u7684\u5f62\u5f0f<\/p>\n<h2 id=\"\u8f6f\u786c\u9178\u78b1\u7406\u8bba\">\u8f6f\u786c\u9178\u78b1\u7406\u8bba\n<\/h2><hr>\n<p>1963\u5e74\u7531\u7f8e\u56fd\u5316\u5b66\u5bb6\u76ae\u5c14\u900a\u63d0\u51fa\uff0c\u7528\u4e8e\u89e3\u91ca\u548c\u9884\u6d4b\u5316\u5b66\u53cd\u5e94\u4e2d\u9178\u78b1\u76f8\u4e92\u4f5c\u7528\u7684\u7a33\u5b9a\u6027\uff0c\u8f6f\u786c\u9178\u78b1\u7406\u8bba\u53ef\u4ee5\u8ba4\u4e3a\u662f\u9178\u78b1\u7535\u5b50\u7406\u8bba\u7684\u62d3\u5c55<\/p>\n<h3 id=\"\u6982\u5ff5-3\">\u6982\u5ff5\n<\/h3><hr>\n<p>\u8be5\u7406\u8bba\u5c06\u9178\u548c\u78b1\u5206\u4e3a&quot;\u8f6f&quot;\u548c&quot;\u786c&quot;\u4e24\u7c7b\uff0c\u6838\u5fc3\u539f\u5219\u4e3a&quot;\u786c\u4eb2\u786c\uff0c\u8f6f\u4eb2\u8f6f&quot;\uff0c\u6240\u8c13\u4eb2\u7684\u610f\u601d\u6307\u7684\u662f\u53cd\u5e94\u901f\u5ea6\u5feb\uff0c\u4ea7\u7269\u7a33\u5b9a\u6027\u9ad8<\/p>\n<p>\u6ce8\uff1a\u8f6f\u786c\u7684\u6982\u5ff5\u548c\u5f3a\u5f31\u7684\u6982\u5ff5\u5e76\u65e0\u76f4\u63a5\u8054\u7cfb<\/p>\n<ul>\n<li>\u786c\u9178\u548c\u786c\u78b1\uff1a\u8f83\u5c0f\u7684\u539f\u5b50\u534a\u5f84\u3001\u8f83\u9ad8\u7684\u7535\u8377\u5bc6\u5ea6\u3001\u8f83\u9ad8\u7684\u6c27\u5316\u6001\u3001\u8f83\u4f4e\u7684\u53ef\u6781\u5316\u6027\u3001\u8f83\u9ad8\u7684\u7535\u8d1f\u6027\n<ul>\n<li>\u786c\u9178\uff1a\u5f80\u5f80\u5177\u6709\u8f83\u9ad8\u7684LUMO\uff0c\u5178\u578b\u7684\u786c\u9178\u5305\u62ec\u5c0f\u800c\u5e26\u6b63\u7535\u7684\u91d1\u5c5e\u79bb\u5b50\uff0c\u5982H\u207a\u3001Li\u207a\u3001Na\u207a\u3001Mg\u00b2\u207a\u3001Al\u00b3\u207a\u7b49<\/li>\n<li>\u786c\u78b1\uff1a\u5f80\u5f80\u5177\u6709\u8f83\u9ad8\u7684HOMO\uff0c\u5178\u578b\u7684\u786c\u78b1\u5305\u62ec\u5c0f\u800c\u5e26\u8d1f\u7535\u7684\u9634\u79bb\u5b50\u6216\u5206\u5b50\uff0c\u5982OH\u207b\u3001F\u207b\u3001Cl\u207b\u3001NH\u2083\u7b49<\/li>\n<\/ul>\n<\/li>\n<li>\u8f6f\u9178\u548c\u8f6f\u78b1\uff1a\u8f83\u5927\u7684\u539f\u5b50\u534a\u5f84\u3001\u8f83\u4f4e\u7684\u6c27\u5316\u6001(\u4ef7\u6001)\u3001\u8f83\u9ad8\u7684\u53ef\u6781\u5316\u6027\u3001\u8f83\u4f4e\u7684\u7535\u8d1f\u6027\n<ul>\n<li>\u8f6f\u9178\uff1a\u5177\u6709\u6bd4\u786c\u9178\u66f4\u4f4e\u80fd\u91cf\u7684LUMO\uff0c\u5178\u578b\u7684\u8f6f\u9178\u5305\u62ec\u8f83\u5927\u7684\u91d1\u5c5e\u79bb\u5b50\u548c\u4e00\u4e9b\u4e2d\u6027\u5206\u5b50\uff0c\u5982Ag\u207a\u3001Hg\u00b2\u207a\u3001Pd\u00b2\u207a\u3001Pt\u00b2\u207a\u7b49<\/li>\n<li>\u8f6f\u78b1\uff1a\u5177\u6709\u6bd4\u786c\u78b1\u66f4\u9ad8\u80fd\u91cf\u7684HOMO\uff0c\u5178\u578b\u7684\u8f6f\u78b1\u5305\u62ec\u8f83\u5927\u7684\u9634\u79bb\u5b50\u548c\u4e00\u4e9b\u4e2d\u6027\u5206\u5b50\uff0c\u5982I\u207b\u3001Br\u207b\u3001S\u00b2\u207b\u3001PPh\u2083\u7b49<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"\u5c0f\u7ed3\">\u5c0f\u7ed3\n<\/h2><hr>\n<p>\u76ee\u524d\uff0c\u5728\u6211\u770b\u7684\u5927\u90e8\u5206\u5b66\u672f\u8bba\u6587\u4e2d\uff0c\u7535\u5b50\u7406\u8bba\u8f83\u4e3a\u591a\u89c1\uff0c\u5176\u6b21\u662f\u8d28\u5b50\u7406\u8bba\u3002\u603b\u4e4b\uff0c\u8fd9\u4e9b\u7406\u8bba\u5728\u4e0d\u540c\u9886\u57df\u548c\u8303\u56f4\u5185\u90fd\u53ef\u4ee5\u53d1\u6325\u5176\u4f5c\u7528\uff0c\u5177\u4f53\u4f7f\u7528\u54ea\u79cd\u7406\u8bba\u89e3\u91ca\u53ef\u4ee5\u7ed3\u5408\u81ea\u5df1\u7684\u7814\u7a76\u4f53\u7cfb\u53bb\u786e\u5b9a<\/p>\n<h2 id=\"\u53c2\u8003\">\u53c2\u8003\n<\/h2><hr>\n<ul>\n<li><a class=\"link\" href=\"https:\/\/en.wikipedia.org\/wiki\/Lewis_acids_and_bases\"  target=\"_blank\" rel=\"noopener\"\n    >Wikipedia<\/a><\/li>\n<li><a class=\"link\" href=\"https:\/\/chemed.chem.purdue.edu\/genchem\/topicreview\/bp\/ch11\/lewis.php\"  target=\"_blank\" rel=\"noopener\"\n    >The Lewis Definitions of Acids and Bases<\/a><\/li>\n<li><a class=\"link\" href=\"https:\/\/byjus.com\/chemistry\/lewis-acids-and-bases\/\"  target=\"_blank\" rel=\"noopener\"\n    >NYJU&rsquo;S<\/a><\/li>\n<li><a class=\"link\" href=\"https:\/\/www.meta-synthesis.com\/webbook\/43_hsab\/HSAB.php\"  target=\"_blank\" rel=\"noopener\"\n    >Pearson&rsquo;s Hard Soft [Lewis] Acid Base Principle<\/a><\/li>\n<li><a class=\"link\" href=\"https:\/\/blog.wenxuecity.com\/myblog\/79226\/202309\/4853.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u8f6f\u786c\u9178\u78b1\u7406\u8bba\u53ca\u5728\u5408\u6210\u4e2d\u5e94\u7528<\/a><\/li>\n<li><a class=\"link\" href=\"https:\/\/blog.wenxuecity.com\/myblog\/79226\/202206\/20648.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u6709\u673a\u9178\u78b1\u7406\u8bba<\/a><\/li>\n<li><a class=\"link\" href=\".\/%e8%bd%af%e7%a1%ac%e9%85%b8%e7%a2%b1%e7%90%86%e8%ae%ba%e7%9a%84%e5%8f%91%e5%b1%95%e5%92%8c%e5%ba%94%e7%94%a8.pdf\" >\u8f6f\u786c\u9178\u78b1\u7406\u8bba\u7684\u53d1\u5c55\u548c\u5e94\u7528<\/a><\/li>\n<li><a class=\"link\" href=\".\/%e7%95%a5%e8%ae%ba%e7%8e%b0%e4%bb%a3%e9%85%b8%e7%a2%b1%e7%90%86%e8%ae%ba%e7%9a%84%e5%8f%91%e5%b1%95.pdf\" >\u7565\u8bba\u73b0\u4ee3\u9178\u78b1\u7406\u8bba\u7684\u53d1\u5c55<\/a><\/li>\n<li><a class=\"link\" href=\".\/%e9%85%b8%e7%a2%b1%e7%90%86%e8%ae%ba%e5%92%8c%e9%9d%9e%e6%b0%b4%e6%ba%b6%e6%b6%b2%e5%8c%96%e5%ad%a6.pdf\" >\u9178\u78b1\u7406\u8bba\u548c\u975e\u6c34\u6eb6\u6db2\u5316\u5b66<\/a><\/li>\n<li><a class=\"link\" href=\".\/%e6%b5%85%e8%b0%88%e9%85%b8%e7%a2%b1%e7%90%86%e8%ae%ba%e7%9a%84%e5%8f%91%e5%b1%95%e5%8f%8a%e5%85%b6%e6%84%8f%e4%b9%89.pdf\" >\u6d45\u8c08\u9178\u78b1\u7406\u8bba\u7684\u53d1\u5c55\u53ca\u5176\u610f\u4e49<\/a><\/li>\n<\/ul>\n"},{"title":"\u5316\u5b66\u6982\u5ff5\uff1a\u7535\u8d1f\u6027","link":"https:\/\/been.ee\/p\/0-0-0-32\/","pubDate":"Tue, 30 Apr 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-32\/","description":"<h2 id=\"\u6982\u5ff5\">\u6982\u5ff5\n<\/h2><hr>\n<p>\u7535\u8d1f\u6027\u63cf\u8ff0\u7684\u662f\u7ed9\u5b9a\u5316\u5b66\u5143\u7d20\u7684\u539f\u5b50\u5728\u5f62\u6210\u5316\u5b66\u952e\u5438\u5f15\u5171\u4eab\u7535\u5b50\uff08\u6216\u7535\u5b50\u5bc6\u5ea6\uff09\u7684\u8d8b\u52bf\uff0c\u7b80\u5355\u5730\u8bf4\u5c31\u662f\u63cf\u8ff0\u539f\u5b50\u5bf9\u6210\u952e\u7535\u5b50\u7684\u5438\u5f15\u80fd\u529b<\/p>\n<h2 id=\"\u53d8\u5316\u8d8b\u52bf\">\u53d8\u5316\u8d8b\u52bf\n<\/h2><hr>\n<h3 id=\"\u5468\u671f\u6027\u5dee\u5f02\">\u5468\u671f\u6027\u5dee\u5f02\n<\/h3><hr>\n<p>\u5728\u5143\u7d20\u5468\u671f\u8868\u4e2d\uff0c\u540c\u4e00\u4e2a\u5468\u671f\u7684\u5143\u7d20\u4ece\u5de6\u5411\u53f3\uff0c\u6709\u6548\u6838\u7535\u8377\u6570\u589e\u52a0\uff0c\u539f\u5b50\u534a\u5f84\u51cf\u5c0f\uff0c\u5bf9\u7535\u5b50\u7684\u5438\u5f15\u80fd\u529b\u589e\u5f3a\uff0c\u7535\u8d1f\u6027\u5448\u73b0\u589e\u52a0\u8d8b\u52bf\uff1b\u540c\u4e00\u4e3b\u65cf\u7684\u5143\u7d20\u4ece\u4e0a\u5230\u4e0b\uff0c\u539f\u5b50\u534a\u5f84\u589e\u5927\uff0c\u7535\u8d1f\u6027\u5448\u73b0\u51cf\u5c0f\u8d8b\u52bf\uff1b\u56e0\u6b64\uff0c\u5468\u671f\u8868\u53f3\u4e0a\u65b9\u7684\u5143\u7d20\u7535\u8d1f\u6027\u5927\uff0c\u5de6\u4e0b\u65b9\u7684\u5143\u7d20\u7535\u8d1f\u6027\u5c0f<\/p>\n<p>\u76ee\u524d\u5df2\u77e5\uff0c\u94ab\uff08Fr\uff09\u662f\u7535\u8d1f\u6027\u6700\u5c0f\u7684\u5143\u7d20\uff0c\u6c1f\uff08F\uff09\u662f\u7535\u8d1f\u6027\u6700\u5927\u7684\u5143\u7d20<\/p>\n<p>\u4e0d\u540c\u5143\u7d20\u7684\u7535\u8d1f\u6027\u5dee\u5f02\u5982\u4e0b\u8868\u6240\u793a\uff1a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/29\/193913-0.svg\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"electronegativity.svg\"\n\t\n\t\n><\/p>\n<h3 id=\"\u6c27\u5316\u6001\u5dee\u5f02\">\u6c27\u5316\u6001\u5dee\u5f02\n<\/h3><hr>\n<p>\u7535\u8d1f\u6027\u548c\u539f\u5b50\u6240\u5904\u7684\u5316\u5b66\u73af\u5883\u5bc6\u5207\u76f8\u5173\uff0c\u540c\u4e00\u5143\u7d20\u7684\u4e0d\u540c\u6c27\u5316\u6001\u7684\u7535\u8d1f\u6027\u4ea6\u6709\u5dee\u5f02<\/p>\n<p>\u4f8b\u5982Fe<sup>2+<\/sup>\u548cFe<sup>3+<\/sup>\u7684\u7535\u8d1f\u6027\u5206\u522b\u662f1.83\u548c1.96\uff0cCu<sup>+<\/sup>\u548cCu<sup>2+<\/sup>\u7684\u7535\u8d1f\u6027\u5206\u522b\u4e3a1.90\u548c2.00<\/p>\n<p>\u5b9e\u9645\u4e0a\u4e5f\u5c31\u662f\u8bf4\uff0c\u5f53\u88ab\u6c27\u5316\u540e\uff0c\u7531\u4e8e\u5931\u53bb\u7535\u5b50\uff0c\u5bfc\u81f4\u6709\u6548\u6838\u7535\u8377\u6570\uff08\u6b63\u7535\u8377\uff09\u589e\u52a0\uff0c\u6240\u4ee5\u5438\u5f15\u7535\u5b50\u7684\u80fd\u529b\u4e5f\u589e\u5f3a\uff0c\u7535\u8d1f\u6027\u4e5f\u5c31\u589e\u5927<\/p>\n<h3 id=\"\u6742\u5316\u8f68\u9053\u5dee\u5f02\">\u6742\u5316\u8f68\u9053\u5dee\u5f02\n<\/h3><hr>\n<p>\u540c\u79cd\u5143\u7d20\u7531\u4e8e\u6742\u5316\u8f68\u9053\u4e0d\u540c\uff0c\u7535\u8d1f\u6027\u4e5f\u6709\u5dee\u5f02<\/p>\n<p>\u7531\u4e8es\u8f68\u9053\u7535\u5b50\u6bd4p\u8f68\u9053\u7535\u5b50\u53d7\u5230\u539f\u5b50\u6838\u7684\u5438\u5f15\u66f4\u7d27\u5bc6\uff0c\u56e0\u6b64\u968f\u7740\u6742\u5316\u8f68\u9053\u4e2ds\u6210\u5206\u7684\u589e\u5927\uff0c\u7535\u8d1f\u6027\u4e5f\u589e\u5927\uff1a<\/p>\n$$ \\chi (sp^3) < \\chi (sp^2) < \\chi (sp)$$<p>\u4f8b\u5982\uff0c\u5bf9\u4e8eC\u5143\u7d20\uff1a<\/p>\n<table>\n  <thead>\n      <tr>\n          <th><strong>\u6742\u5316\u8f68\u9053<\/strong><\/th>\n          <th><strong>\u7535\u8d1f\u6027\u503c<\/strong><\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td>sp<sup>3<\/sup><\/td>\n          <td>2.45<\/td>\n      <\/tr>\n      <tr>\n          <td>sp<sup>2<\/sup><\/td>\n          <td>2.75<\/td>\n      <\/tr>\n      <tr>\n          <td>sp<\/td>\n          <td>3.29<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h3 id=\"\u57fa\u56e2\u7535\u8d1f\u6027\">\u57fa\u56e2\u7535\u8d1f\u6027\n<\/h3><hr>\n<p>\u5728\u5f88\u591a\u573a\u666f\uff08\u5c24\u5176\u662f\u6709\u673a\u5316\u5b66\u4e2d\uff09\u4e0b\uff0c\u9700\u8981\u8003\u8651\u4e0d\u540c\u5b98\u80fd\u56e2\u6216\u57fa\u56e2\u7684\u7535\u8d1f\u6027\uff0c\u4f8b\u5982\uff0cC\u5143\u7d20\u7684\u7535\u8d1f\u6027\u65e0\u6cd5\u53cd\u6620CH<sub>3<\/sub>\u548cCF<sub>3<\/sub>\u8fd9\u4e24\u4e2a\u57fa\u56e2\u7684\u7535\u8d1f\u6027<\/p>\n<p>\u76ee\u524d\u53ef\u4ee5\u901a\u8fc7\u5e94\u7528\u52a8\u529b\u5b66\u6570\u636e\u3001\u539f\u5b50\u7535\u8d1f\u6027\u503c\u548c\u7269\u7406\u65b9\u6cd5\u7684\u6d4b\u5b9a\u503c\u8fdb\u884c\u8fd0\u7b97\uff0c\u4e00\u4e9b\u5e38\u89c1\u57fa\u56e2\u7684\u7535\u8d1f\u6027\u5982\u4e0b\uff1a<\/p>\n<table>\n  <thead>\n      <tr>\n          <th><strong>\u57fa\u56e2<\/strong><\/th>\n          <th><strong>\u7535\u8d1f\u6027\u503c<\/strong><\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td>CH<sub>3<\/sub><\/td>\n          <td>2.3<\/td>\n      <\/tr>\n      <tr>\n          <td>CF<sub>3<\/sub><\/td>\n          <td>3.35<\/td>\n      <\/tr>\n      <tr>\n          <td>CCl<sub>3<\/sub><\/td>\n          <td>3.0<\/td>\n      <\/tr>\n      <tr>\n          <td>CN<\/td>\n          <td>3.3<\/td>\n      <\/tr>\n      <tr>\n          <td>COOH<\/td>\n          <td>2.85<\/td>\n      <\/tr>\n      <tr>\n          <td>NO<sub>2<\/sub><\/td>\n          <td>3.4<\/td>\n      <\/tr>\n      <tr>\n          <td>C<sub>6<\/sub>H<sub>5<\/sub><\/td>\n          <td>3.0<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"\u4ece\u7535\u8d1f\u6027\u7406\u89e3\u5316\u5b66\u952e\">\u4ece\u7535\u8d1f\u6027\u7406\u89e3\u5316\u5b66\u952e\n<\/h2><hr>\n<p>\u4e24\u4e2a\u539f\u5b50\u7684\u7535\u8d1f\u6027\u5dee\u5f02\u53ef\u4ee5\u7528\u4e8e\u5224\u65ad\u5176\u6210\u952e\u7684\u79bb\u5b50\u6027\u548c\u5171\u4ef7\u6027\u7684\u5f3a\u5f31<\/p>\n<p>\u5982\u679c\u4e24\u4e2a\u76f8\u540c\u7684\u539f\u5b50\u6210\u952e\uff0c\u7531\u4e8e\u7535\u8d1f\u6027\u76f8\u540c\uff0c\u952e\u5408\u7535\u5b50\u5bf9\u5230\u4e24\u4e2a\u4e24\u4e2a\u539f\u5b50\u6838\u7684\u8ddd\u79bb\u7406\u8bba\u4e0a\u5e94\u8be5\u662f\u51e0\u4e4e\u7b49\u8ddd\u7684\uff0c\u56e0\u6b64\u8868\u73b0\u4e3a\u5171\u4ef7\u6027<\/p>\n<p>\u800c\u5bf9\u4e8e\u4e24\u4e2a\u4e0d\u540c\u7684\u539f\u5b50\u6210\u952e\uff0c\u5728\u7535\u8d1f\u6027\u5dee\u5f02\u4e0d\u5927\u7684\u65f6\u5019\uff0c\u7535\u8d1f\u6027\u66f4\u5927\u7684\u539f\u5b50\u4f1a\u5c06\u952e\u5408\u7535\u5b50\u5bf9\u62c9\u5411\u81ea\u5df1\uff0c\u4ece\u800c\u4f7f\u5171\u4ef7\u952e\u8868\u73b0\u51fa\u4e00\u5b9a\u6781\u6027\uff0c\u8fd9\u4e2a\u8fc7\u7a0b\u4f1a\u4f7f\u5f97\u4e24\u4e2a\u539f\u5b50\u5404\u81ea\u5e26\u6709\u76f8\u53cd\u7535\u8377\uff1b\u5982\u679c\u7535\u8d1f\u6027\u5dee\u5f02\u7279\u522b\u5927\uff0c\u90a3\u4e48\u7535\u8d1f\u6027\u66f4\u5927\u7684\u539f\u5b50\u5c31\u53ef\u4ee5\u5c06\u6210\u952e\u7535\u5b50\u5b8c\u5168\u62c9\u7ed9\u81ea\u5df1\uff0c\u5f62\u6210\u4e24\u4e2a\u79bb\u5b50\uff0c\u5b9e\u9645\u4e0a\u4e5f\u5c31\u662f\u8868\u73b0\u4e3a\u79bb\u5b50\u6027<\/p>\n<h2 id=\"\u7535\u8d1f\u6027\u5bf9xps\u5143\u7d20\u7ed3\u5408\u80fd\u7684\u5f71\u54cd\">\u7535\u8d1f\u6027\u5bf9XPS\u5143\u7d20\u7ed3\u5408\u80fd\u7684\u5f71\u54cd\n<\/h2><hr>\n<p>\u901a\u5e38\u6765\u8bf4\uff0c\u5f53\u4e00\u4e2a\u5143\u7d20\u4e0e\u76f8\u8f83\u4e8e\u5176\u7535\u8d1f\u6027\u66f4\u5927\u7684\u5143\u7d20\u6210\u952e\u540e\uff0c\u7ed3\u5408\u80fd\u4f1a\u589e\u5927\uff0c\u8fd9\u662f\u7531\u4e8e\u7535\u8d1f\u6027\u5f3a\u7684\u5143\u7d20\u5c06\u6210\u952e\u7535\u5b50\u5438\u5230\u81ea\u5df1\u8fd9\u8fb9\uff0c\u8fd9\u4f1a\u8ba9\u53e6\u4e00\u4e2a\u5143\u7d20\u5448\u73b0\u4e00\u5b9a\u7684\u6b63\u7535\u6027\uff0c\u4ece\u800c\u8ba9\u5176\u7535\u5b50\u66f4\u7d27\u5bc6\u5730\u9760\u8fd1\u81ea\u5df1\uff0c\u4e5f\u5c31\u4f7f\u5f97\u9700\u8981\u6fc0\u53d1\u5176\u5185\u5c42\u7535\u5b50\u6240\u9700\u7684\u80fd\u91cf\u66f4\u5927\uff0c\u56e0\u800c\u5728XPS\u4e2d\u8868\u73b0\u4e3a\u7ed3\u5408\u80fd\u589e\u5927<\/p>\n<p>\u4e0b\u8868\u662f\u4ee5C1s\u4e3a\u4f8b\uff0c\u4e0e\u4e0d\u540c\u5143\u7d20\u6210\u952e\u540e\u5f62\u6210\u4e0d\u540c\u5316\u5b66\u73af\u5883\u7684\u7ed3\u5408\u80fd\uff1a<\/p>\n<table>\n  <thead>\n      <tr>\n          <th><strong>\u5316\u5b66\u73af\u5883<\/strong><\/th>\n          <th><strong>\u7ed3\u5408\u80fd(eV)<\/strong><\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td>C-C or C=C<\/td>\n          <td>~ 285.0<\/td>\n      <\/tr>\n      <tr>\n          <td>C-N<\/td>\n          <td>~ 286.0<\/td>\n      <\/tr>\n      <tr>\n          <td>C-O<\/td>\n          <td>~ 286.5<\/td>\n      <\/tr>\n      <tr>\n          <td>C=O<\/td>\n          <td>~ 288.0<\/td>\n      <\/tr>\n      <tr>\n          <td>O-C=O<\/td>\n          <td>~ 289.0<\/td>\n      <\/tr>\n      <tr>\n          <td>CF<sub>2<\/sub><\/td>\n          <td>~ 292.0<\/td>\n      <\/tr>\n      <tr>\n          <td>CF<sub>3<\/sub><\/td>\n          <td>293-294<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"\u53c2\u8003\">\u53c2\u8003\n<\/h2><hr>\n<ul>\n<li><a class=\"link\" href=\"https:\/\/en.wikipedia.org\/wiki\/Electronegativity#Bibliography\"  target=\"_blank\" rel=\"noopener\"\n    >Wikipedia<\/a><\/li>\n<li><a class=\"link\" href=\"https:\/\/sciencenotes.org\/list-of-electronegativity-values-of-the-elements\/\"  target=\"_blank\" rel=\"noopener\"\n    >Science Notes<\/a><\/li>\n<li><a class=\"link\" href=\".\/%e6%b5%85%e8%b0%88%e7%94%b5%e8%b4%9f%e6%80%a7.pdf\" >\u6b66\u6c38\u5174. \u6d45\u8c08\u7535\u8d1f\u6027[J]. \u5927\u5b66\u5316\u5b66, 1998, 13(3): 46-49.<\/a><\/li>\n<li><a class=\"link\" href=\"https:\/\/byjus.com\/chemistry\/electronegativity\/\"  target=\"_blank\" rel=\"noopener\"\n    >BYJU&rsquo;S<\/a><\/li>\n<li><a class=\"link\" href=\"https:\/\/www.eag.com\/app-note\/xps-provides-chemical-bond-information\/#:~:text=Oxygen%20having%20a%20higher%20electronegativity,charge%20on%20the%20carbon%20atom.&amp;text=The%20slight%20positive%20charge%20on,have%20a%20higher%20binding%20energy.\"  target=\"_blank\" rel=\"noopener\"\n    >EAG Laboratories<\/a><\/li>\n<li><a class=\"link\" href=\".\/Intro_to_XPS.pdf\" >Fred A. Stevie,\u00a0Carrie L. Donley; Introduction to x-ray photoelectron spectroscopy.\u00a0J. Vac. Sci. Technol. A\u00a01 December 2020; 38 (6): 063204.<\/a><\/li>\n<\/ul>\n"},{"title":"\u81ea\u6258\u7ba1\u90ae\u5c40\u670d\u52a1 Mailcow","link":"https:\/\/been.ee\/p\/0-0-0-31\/","pubDate":"Sun, 21 Apr 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-31\/","description":"<p>\u524d\u4e0d\u4e45\u5176\u5b9e\u5df2\u7ecf\u5728\u53e6\u4e00\u53f0\u673a\u5668\u642d\u5efa\u8fc7\uff0c\u4f46\u662f\u5f53\u65f6\u6ca1\u6709\u8bb0\u5f55\uff0c\u8fd9\u6b21\u521a\u597d\u90a3\u53f0\u673a\u5668\u5230\u671f\u4e5f\u4e0d\u7eed\u8d39\u4e86\uff0c\u7d22\u6027\u91cd\u65b0\u642d\u5efa\u4e00\u904d\u5e76\u8bb0\u5f55\u4e0b\u6765<\/p>\n<h2 id=\"mailcow\u4ecb\u7ecd\u548c\u642d\u5efa\u51c6\u5907\">Mailcow\u4ecb\u7ecd\u548c\u642d\u5efa\u51c6\u5907\n<\/h2><hr>\n<p><a class=\"link\" href=\"https:\/\/mailcow.email\/\"  target=\"_blank\" rel=\"noopener\"\n    >Mailcow<\/a>\u662f\u4e00\u4e2a\u529f\u80fd\u5f88\u9f50\u5168\uff0c\u4f53\u91cf\u4e5f\u76f8\u5bf9\u8f83\u5927\u7684\u90ae\u5c40\u670d\u52a1\uff0c\u652f\u6301Docker\u81ea\u6258\u7ba1<\/p>\n<blockquote>\n<p>\u670d\u52a1\u5668\u8981\u6c42\uff08\u5b98\u65b9\uff09\uff1a<\/p>\n<ul>\n<li>\n<p>\u652f\u6301<strong>KVM\u3001ESX\u3001Hyper-V<\/strong>\u7b49\u5168\u865a\u62df\u5316\u5e73\u53f0\uff0c\u4e0d\u652f\u6301<strong>OpenVZ\u3001Virtuozzo\u548cLXC<\/strong><\/p>\n<\/li>\n<li>\n<p>\u5f00\u653e25\u53f7\u7aef\u53e3<\/p>\n<\/li>\n<li>\n<p>\u5904\u7406\u5668\uff1a1Ghz<\/p>\n<\/li>\n<li>\n<p>\u5185\u5b58\uff1a\u6700\u5c0f6G+1G Swap\uff08\u90e8\u7f72\u5b8c\u540e\u5b9e\u9645\u5927\u6982\u5360\u75284G\u5de6\u53f3\u5185\u5b58\uff0c\u8d8a\u5927\u8d8a\u597d\uff09<\/p>\n<\/li>\n<li>\n<p>\u78c1\u76d8\uff1a20G\uff08\u8d8a\u5927\u8d8a\u597d\uff09<\/p>\n<\/li>\n<li>\n<p>\u67b6\u6784\uff1ax86_64, ARM64\uff08\u65b0\u53d1\u5e03\uff0c\u53ef\u80fd\u5b58\u5728\u95ee\u9898\uff09<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>Mailcow\u4e3b\u8981\u662f\u6bd4\u8f83\u5403\u5185\u5b58\uff0c\u6700\u597d\u90e8\u7f72\u5728\u5185\u5b58\u8f83\u5927\u7684\u670d\u52a1\u5668\u4e0a\uff0c\u5982\u679c\u4f60\u60f3\u51cf\u5c11\u5bf9\u5185\u5b58\u7684\u5360\u7528\u53ef\u4ee5\u5c1d\u8bd5\u901a\u8fc7\u5728<code>mailcow.conf<\/code>\u4e2d\u8bbe\u7f6e<code>SKIP_CLAMD=y<\/code>\u548c<code>SKIP_SOLR=y<\/code>\u6765\u7981\u7528\u8fd9\u4e24\u4e2a\u6bd4\u8f83\u5403\u5185\u5b58\u7684\u670d\u52a1<\/p>\n<p>Mailcow\u4f7f\u7528\u7684TCP\u7aef\u53e3\uff1a<code>25|80|110|143|443|465|587|993|995|4190<\/code><\/p>\n<p>\u5728\u642d\u5efa\u524d\u5c24\u5176\u8981\u6d4b\u8bd5\u81ea\u5df1\u670d\u52a1\u5668\u768425\u53f7\u7aef\u53e3\u7684\u6d41\u91cf\u662f\u5426\u80fd\u591f\u51fa\u7ad9\uff0c\u56e0\u4e3a\u76ee\u524d\u8bb8\u591aIDC\u9ed8\u8ba4\u662f\u5c4f\u853d\u4e8625\u7aef\u53e3\u7684\u51fa\u7ad9\u6d41\u91cf\uff0c\u5982\u679c\u88ab\u5c4f\u853d\u4e86\u53ef\u4ee5\u53d1\u5de5\u5355\u8be2\u95ee\u662f\u5426\u53ef\u4ee5\u89e3\u9664\u9650\u5236\uff08PS\uff1a\u6709\u4e9bIDC\u5c31\u662f\u4e0d\u5141\u8bb8\uff0c\u53d1\u5de5\u5355\u4e5f\u6ca1\u7528\uff09<\/p>\n<p>\u53ef\u4ee5\u4f7f\u7528<code>telnet smtp.outlook.com 25<\/code>\u6d4b\u8bd525\u7aef\u53e3\u6d41\u91cf\u662f\u5426\u80fd\u987a\u5229\u51fa\u7ad9\uff0c\u4e00\u822c\u8fd4\u56de<code>220<\/code>\u5c31\u8868\u793a\u6ca1\u6709\u95ee\u9898\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ telnet smtp.outlook.com <span class=\"m\">25<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Trying 52.98.252.98...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Connected to smtp.outlook.com.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Escape character is <span class=\"s1\">&#39;^]&#39;<\/span>.\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">220<\/span> FR4P281CA0131.outlook.office365.com Microsoft ESMTP MAIL Service ready at Sun, <span class=\"m\">21<\/span> Apr <span class=\"m\">2024<\/span> 08:42:46 +0000\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"mailcow\u642d\u5efa\">Mailcow\u642d\u5efa\n<\/h2><hr>\n<h3 id=\"ntp\u65f6\u95f4\u540c\u6b65\">NTP\u65f6\u95f4\u540c\u6b65\n<\/h3><hr>\n<p>\u6267\u884c<code>timedatectl status<\/code>\u67e5\u770b\u670d\u52a1\u5668\u662f\u5426\u542f\u52a8\u4e86NTP\u670d\u52a1\uff0c\u663e\u793a\u5982\u4e0b\u7684\u8bdd\u5c31\u8bc1\u660e\u5df2\u542f\u52a8\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">System clock synchronized: yes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">              NTP service: active\n<\/span><\/span><\/code><\/pre><\/div><p>\u5982\u679c\u6ca1\u6709\u542f\u52a8NTP\u670d\u52a1\uff0c\u5219\u9700\u8981\u6267\u884c<code>timedatectl set-ntp true<\/code>\u6765\u542f\u52a8\uff0c\u82e5\u63d0\u793a<code>Failed to set ntp: NTP not supported<\/code>\u7684\u8bdd\u5219\u9700\u8981\u5148\u5b89\u88c5<code>chrony<\/code>\u8fd9\u4e2aNTP\u670d\u52a1<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">$ apt install chrony\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ systemctl status chrony <span class=\"c1\"># \u68c0\u67e5\u4e00\u4e0b\u670d\u52a1\u662f\u5426\u6b63\u5e38\u542f\u52a8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ systemctl <span class=\"nb\">enable<\/span> chrony <span class=\"c1\"># \u8bbe\u7f6e\u81ea\u542f\u52a8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ timedatectl set-ntp <span class=\"nb\">true<\/span> <span class=\"c1\"># \u542f\u7528NTP<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5b89\u88c5\u540e\u518d\u6267\u884c<code>timedatectl status<\/code>\u68c0\u67e5\u4e00\u4e0b\uff0c\u4e00\u822c\u5c31\u6ca1\u95ee\u9898\u4e86<\/p>\n<h3 id=\"rdns\">rDNS\n<\/h3><hr>\n<p>reverse DNS\uff08rDNS\uff09\uff0c\u6307\u7684\u662f\u53cd\u5411DNS\uff0c\u5c31\u662f\u8ba9\u4f60\u7684ip\u89e3\u6790\u5230\u90ae\u4ef6\u670d\u52a1\u5668\u7684\u57df\u540d\uff08\u4f8b\u5982<code>mail.example.com<\/code>\uff09\uff0c\u8bbe\u7f6e\u8fd9\u4e2a\u80fd\u63d0\u9ad8\u4f60\u7684\u53ef\u4fe1\u5ea6\uff0c\u8ba9\u4f60\u53d1\u7684\u90ae\u4ef6\u6709\u66f4\u5927\u7684\u6982\u7387\u8fdb\u5165\u6536\u4ef6\u7bb1\u800c\u4e0d\u662f\u5783\u573e\u6876<\/p>\n<p>rDNS\u662f\u7531\u4f60\u7684VPS\u63d0\u4f9b\u5546\u63d0\u4f9b\u7684\uff0c\u4e00\u822c\u5728\u63a7\u5236\u9762\u677f\u91cc\u8bbe\u7f6e\uff0c\u4ee5Netcup\u4e3a\u4f8b\uff1a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/21\/223820-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8bbe\u7f6e\u5b8c\u540e\u53ef\u4ee5\u901a\u8fc7<code>nslookup server_ip<\/code>\u6765\u67e5\u770b\u662f\u5426\u751f\u6548\uff08\u53ef\u80fd\u9700\u8981\u70b9\u65f6\u95f4\uff09<\/p>\n<h3 id=\"dns\u8bb0\u5f55\">DNS\u8bb0\u5f55\n<\/h3><hr>\n<p>\u6309\u4e0b\u9762\u6240\u793a\u8bbe\u7f6e\u597dDNS\u8bb0\u5f55\uff1a<\/p>\n<table>\n  <thead>\n      <tr>\n          <th>\u540d\u79f0<\/th>\n          <th>\u7c7b\u578b<\/th>\n          <th>\u503c<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td>@<\/td>\n          <td>A<\/td>\n          <td>server_ip<\/td>\n      <\/tr>\n      <tr>\n          <td>mail<\/td>\n          <td>A<\/td>\n          <td>server_ip<\/td>\n      <\/tr>\n      <tr>\n          <td>autodiscover<\/td>\n          <td>CNAME<\/td>\n          <td>mail.example.com<\/td>\n      <\/tr>\n      <tr>\n          <td>autoconfig<\/td>\n          <td>CNAME<\/td>\n          <td>mail.example.com<\/td>\n      <\/tr>\n      <tr>\n          <td>@<\/td>\n          <td>MX 10<\/td>\n          <td>mail.example.com<\/td>\n      <\/tr>\n      <tr>\n          <td>@<\/td>\n          <td>TXT<\/td>\n          <td>&ldquo;v=spf1 mx a -all&rdquo;<\/td>\n      <\/tr>\n      <tr>\n          <td>dkim._domainkey<\/td>\n          <td>TXT<\/td>\n          <td>&ldquo;v=DKIM1; k=rsa; t=s; s=email; p=&hellip;&rdquo;<\/td>\n      <\/tr>\n      <tr>\n          <td>_dmarc<\/td>\n          <td>TXT<\/td>\n          <td>&ldquo;v=DMARC1; p=none; rua=mailto:mailauth-reports@example.org&rdquo;<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<ul>\n<li>\n<p>\u6ce8\u610f\u6211\u4eec\u90ae\u4ef6\u670d\u52a1\u5668\u7684\u57df\u540d\u662f<code>mail.example.com<\/code>\uff0c\u4f46\u662f\u4e5f\u8981\u5c06<code>example.com<\/code>\uff08<code>@<\/code>\uff09\u89e3\u6790\u5230\u90ae\u4ef6\u670d\u52a1\u5668\u7684<code>ip<\/code><\/p>\n<\/li>\n<li>\n<p><code>dkim._domainkey<\/code>\u503c\u4e2d\u7684<code>p<\/code>\u9700\u8981\u6211\u4eec\u90e8\u7f72\u5b8c\u540e\u518d\u586b\u5199<\/p>\n<\/li>\n<li>\n<p><code>_dmarc<\/code>\u503c<\/p>\n<ul>\n<li>\n<p><code>p<\/code> \u53c2\u6570\u8868\u793a\u5bf9\u4e8e\u5931\u8d25\u7684DMARC\u68c0\u67e5\u5e94\u8be5\u91c7\u53d6\u4ec0\u4e48\u63aa\u65bd\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u4e3a\u4ee5\u4e0b\u4e09\u4e2a\u503c\u4e4b\u4e00:<\/p>\n<ol>\n<li>\n<p><code>none<\/code>: \u4ec5\u53d1\u9001DMARC\u62a5\u544a,\u4e0d\u6267\u884c\u4efb\u4f55\u5176\u4ed6\u64cd\u4f5c\uff08\u5bbd\u677e\uff09<\/p>\n<\/li>\n<li>\n<p><code>quarantine<\/code>: \u5c06\u5931\u8d25\u7684\u90ae\u4ef6\u53d1\u9001\u5230\u5783\u573e\u90ae\u4ef6\u6587\u4ef6\u5939<\/p>\n<\/li>\n<li>\n<p><code>reject<\/code>: \u76f4\u63a5\u62d2\u7edd\u5e76\u4e22\u5f03\u5931\u8d25\u7684\u90ae\u4ef6\uff08\u4e25\u683c\uff09<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><code>mailto:mailauth-reports@example.org<\/code>\u53ef\u4ee5\u586b\u5199\u4e00\u4e2a\u6211\u4eec\u81ea\u5df1\u7684\u5e38\u7528\u90ae\u7bb1\u5373\u53ef<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 id=\"docker-compose\u90e8\u7f72\u670d\u52a1\u7aef\">docker-compose\u90e8\u7f72\u670d\u52a1\u7aef\n<\/h3><hr>\n<p><strong>\u9700\u8981\u786e\u4fdd\u670d\u52a1\u5668\u5df2\u7ecf\u5b89\u88c5\u4e86<code>docker<\/code>\u548c<code>docker-compose<\/code><\/strong><\/p>\n<p>\u6267\u884c<code>umask<\/code>\u547d\u4ee4\u786e\u4fdd\u8f93\u51fa<code>0022<\/code>\uff08\u9ed8\u8ba4\u4e00\u822c\u90fd\u662f\u8fd9\u4e2a\u503c\uff09<\/p>\n<p>\u521b\u5efa\u5b58\u653e\u5bb9\u5668\u7684\u76ee\u5f55\uff0c\u7136\u540e\u62c9\u53d6\u5b98\u65b9\u9879\u76ee\u76ee\u5f55\u5e76\u8fdb\u5165<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">$ mkdir \/docker\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">cd<\/span> \/docker\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git clone https:\/\/github.com\/mailcow\/mailcow-dockerized\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">cd<\/span> mailcow-dockerized\n<\/span><\/span><\/code><\/pre><\/div><p>\u6267\u884c<code>.\/generate_config.sh<\/code>\u811a\u672c\u521d\u59cb\u5316Mailcow\u5e76\u751f\u6210\u914d\u7f6e\u6587\u4ef6\uff0c\u6267\u884c\u540e\u4f1a\u8981\u6c42\u6211\u4eec\u586b\u5199\u90ae\u4ef6\u670d\u52a1\u5668\u57df\u540d\uff0c\u4e5f\u5c31\u662f\u4e4b\u524dA\u8bb0\u5f55\u8bbe\u7f6e\u7684<code>mail.example.com<\/code>\uff0c\u65f6\u533a\u7684\u8bdd\u5c31\u9009\u62e9<code>Asia\/Shanghai<\/code>\uff0c\u5206\u652f\u7684\u8bdd\u9009\u62e9\u4e3b\u5206\u652f<code>master branch<\/code><\/p>\n<p>\u6267\u884c\u811a\u672c\u540e\u751f\u6210\u7684<code>mailcow.conf<\/code>\u5c31\u662f\u914d\u7f6e\u6587\u4ef6\uff0c\u6211\u4eec\u53ef\u4ee5\u6253\u5f00\u6309\u7167\u81ea\u5df1\u9700\u8981\u4fee\u6539\u4e00\u4e9b\u914d\u7f6e\uff0c\u5982\u679c\u6211\u4eec\u4f7f\u7528\u53cd\u5411\u4ee3\u7406\u7684\u8bdd\u53ef\u4ee5\u4fee\u6539\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"nv\">HTTP_PORT<\/span><span class=\"o\">=<\/span><span class=\"m\">8080<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">HTTP_BIND<\/span><span class=\"o\">=<\/span>127.0.0.1\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">HTTPS_PORT<\/span><span class=\"o\">=<\/span><span class=\"m\">8443<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">HTTPS_BIND<\/span><span class=\"o\">=<\/span> 127.0.0.1\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">HTTP_REDIRECT<\/span><span class=\"o\">=<\/span>n\n<\/span><\/span><\/code><\/pre><\/div><blockquote>\n<p>PS: \u53e6\u5916\u9700\u8981\u6ce8\u610f\u8bbe\u7f6eDOCKER_COMPOSE_VERSION=native\uff08\u5982\u679c\u9ed8\u8ba4\u6ca1\u6709\u503c\u7684\u8bdd\uff09<\/p><\/blockquote>\n<p>\u7136\u540e\u4f9d\u6b21\u6267\u884c<code>docker-compose pull<\/code>\u548c<code>docker-compose up -d<\/code>\u5c31\u642d\u5efa\u597d\u4e86<\/p>\n<h3 id=\"nginx\u53cd\u4ee3\">Nginx\u53cd\u4ee3\n<\/h3><hr>\n<p>\u5148\u4e3a\u6211\u4eec\u7684\u670d\u52a1\u5668\u7533\u8bf7\u4e00\u4e2aSSL\u8bc1\u4e66\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">$ certbot certonly --standalone --agree-tos -d mail.example.com\n<\/span><\/span><\/code><\/pre><\/div><p>\u786e\u4fdd\u7cfb\u7edf\u5df2\u7ecf\u5b89\u88c5\u4e86Nginx\uff0c\u7136\u540e\u8fdb\u5165\u914d\u7f6e\u6587\u4ef6\u76ee\u5f55<code>\/etc\/nginx\/conf.d<\/code>\u65b0\u5efa\u4e00\u4e2a\u914d\u7f6e\u4e3a<code>mailcow.conf<\/code>\uff0c\u5199\u5165\u4e0b\u9762\u5185\u5bb9\uff0c\u6ce8\u610f\u628a\u57df\u540d\u6539\u4e3a\u81ea\u5df1\u7684\u90ae\u4ef6\u670d\u52a1\u5668\u57df\u540d\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen 80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen <span class=\"o\">[<\/span>::<span class=\"o\">]<\/span>:80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  server_name mail.example.com autodiscover.* autoconfig.*<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"k\">return<\/span> <span class=\"m\">301<\/span> https:\/\/<span class=\"nv\">$host$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen <span class=\"m\">443<\/span> ssl http2<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen <span class=\"o\">[<\/span>::<span class=\"o\">]<\/span>:443 ssl http2<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  server_name mail.example.com autodiscover.* autoconfig.*<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_certificate \/etc\/letsencrypt\/live\/mail.example.com\/fullchain.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_certificate_key \/etc\/letsencrypt\/live\/mail.example.com\/privkey.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_session_timeout 1d<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_session_cache shared:SSL:50m<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_session_tickets off<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"c1\"># See https:\/\/ssl-config.mozilla.org\/#server=nginx for the latest ssl settings recommendations<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"c1\"># An example config is given below<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_protocols TLSv1.2<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_ciphers HIGH:!aNULL:!MD5:!SHA1:!kRSA<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_prefer_server_ciphers off<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  location \/Microsoft-Server-ActiveSync <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_pass http:\/\/127.0.0.1:8080\/Microsoft-Server-ActiveSync<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header Host <span class=\"nv\">$http_host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header X-Forwarded-For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header X-Forwarded-Proto <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_connect_timeout 75<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_send_timeout 3650<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_read_timeout 3650<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_buffers <span class=\"m\">64<\/span> 512k<span class=\"p\">;<\/span> <span class=\"c1\"># Needed since the 2022-04 Update for SOGo<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    client_body_buffer_size 512k<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    client_max_body_size 0<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  location \/ <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_pass http:\/\/127.0.0.1:8080\/<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header Host <span class=\"nv\">$http_host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header X-Forwarded-For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header X-Forwarded-Proto <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    client_max_body_size 0<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"c1\"># The following Proxy Buffers has to be set if you want to use SOGo after the 2022-04 (April 2022) Update<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"c1\"># Otherwise a Login will fail like this: https:\/\/github.com\/mailcow\/mailcow-dockerized\/issues\/4537<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_buffer_size 128k<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_buffers <span class=\"m\">64<\/span> 512k<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_busy_buffers_size 512k<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e<code>systemctl start nginx<\/code>\u5c31\u5b8c\u6210\u4e86<\/p>\n<h3 id=\"\u767b\u5f55\u5e76\u914d\u7f6e\u670d\u52a1\u7aef\u7ba1\u7406\u9762\u677f\">\u767b\u5f55\u5e76\u914d\u7f6e\u670d\u52a1\u7aef\u7ba1\u7406\u9762\u677f\n<\/h3><hr>\n<p>\u767b\u5f55<code>https:\/\/mail.example.com<\/code>\u8fdb\u5165\u7ba1\u7406\u9875\u9762\uff08\u6ce8\u610f\uff1a\u65b0\u7248\u672c\u7684\u8bdd\u9700\u8981\u8bbf\u95ee<code>https:\/\/mail.example.com\/admin<\/code>\uff09\uff0c\u9ed8\u8ba4\u7528\u6237\u540d\u4e3a<code>admin<\/code>\uff0c\u5bc6\u7801\u4e3a<code>moohoo<\/code><\/p>\n<p>\u767b\u9646\u540e\u6700\u597d\u8d76\u7d27\u4fee\u6539\u5bc6\u7801\u4ee5\u53ca\u6dfb\u52a0\u4e24\u6b65\u9a8c\u8bc1\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2<code>System<\/code>-<code>Configuration<\/code>\uff0c\u6211\u8fd9\u91cc\u5df2\u7ecf\u4fee\u6539\u597d\u4e86<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/21\/235206-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u70b9\u51fb\u53f3\u4e0a\u89d2<code>E-Mail<\/code>-<code>Configuration<\/code>\uff0c\u627e\u5230<code>Add Domain<\/code>\u6dfb\u52a0\u57df\uff0cDomain\u8bbe\u7f6e\u4e3a<code>example.com<\/code>\uff08\u6ce8\u610f\u4e0d\u662f<code>mail.example.com<\/code>\uff09\uff0c\u7136\u540e\u70b9\u51fb\u6700\u4e0b\u9762<code>Add domain and restart SOGo<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/22\/000236-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u70b9\u51fb\u53f3\u4e0a\u89d2<code>System<\/code>-<code>Configuration<\/code>\uff0c\u627e\u5230<code>Options<\/code>-<code>ARC\/DKIM keys<\/code>\u70b9\u51fb\u8fdb\u5165\uff0c\u590d\u5236\u53f3\u9762\u7684<code>Private Key<\/code>\uff0c\u586b\u5165\u6211\u4eec<a class=\"link\" href=\"#dns%e8%ae%b0%e5%bd%95\" >\u524d\u9762\u914d\u7f6eDNS\u8bb0\u5f55<\/a>\u65f6<code>dkim._domainkey<\/code>\u7684\u503c<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/22\/001109-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u81f3\u6b64\uff0cMailcow\u670d\u52a1\u7aef\u57fa\u672c\u914d\u7f6e\u5c31\u5b8c\u6210\u4e86<\/p>\n<p>\u6700\u540e\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2<code>E-Mail<\/code>-<code>Configuration<\/code>\uff0c\u70b9\u51fb\u9875\u9762\u7684<code>Mailboxes<\/code>\u627e\u5230<code>Add mailbox<\/code>\u5c31\u53ef\u4ee5\u6dfb\u52a0\u8d26\u6237\u4e86\uff0c\u767b\u9646\u7684\u8bdd\u53ef\u4ee5\u76f4\u63a5\u8bbf\u95ee<code>https:\/\/mail.example.com<\/code>\u627e\u5230<code>Webmail<\/code>\u70b9\u8fdb\u53bb\u767b\u5f55\u5373\u53ef\uff08\u6ce8\u610f\uff1a\u65b0\u7248\u672c\u7684\u8bdd\u76f4\u63a5\u8bbf\u95ee<code>https:\/\/mail.example.com<\/code>\u5373\u53ef\u767b\u5f55\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/22\/001754-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h3 id=\"\u53bbmail-tester\u6d4b\u8bd5\u4e00\u4e0b\">\u53bbMail-tester\u6d4b\u8bd5\u4e00\u4e0b\n<\/h3><hr>\n<p>\u53ef\u4ee5\u53bb<a class=\"link\" href=\"https:\/\/www.mail-tester.com\/\"  target=\"_blank\" rel=\"noopener\"\n    >Mail-tester<\/a>\u8fd9\u4e2a\u7f51\u7ad9\u6d4b\u8bd5\u4e00\u4e0b\uff0c\u6211\u7684\u663e\u793a7.9\/10\u5206\uff0c\u4e3b\u8981\u6263\u5206\u662f\u56e0\u4e3a\u57df\u540d\u6ce8\u518c\u65f6\u95f4\u592a\u77ed\uff0c\u4e0d\u662f\u5927\u95ee\u9898<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/22\/004739-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u5ba2\u6237\u7aef\u914d\u7f6e\">\u5ba2\u6237\u7aef\u914d\u7f6e\n<\/h2><hr>\n<p>\u5982\u679c\u60f3\u5728\u5176\u4ed6\u5ba2\u6237\u7aef\u767b\u5f55\u90ae\u7bb1\u53ef\u4ee5\u6309\u7167\u4e0b\u9762\u534f\u8bae\u548c\u5bf9\u5e94\u7aef\u53e3\u914d\u7f6e\u5373\u53ef\uff1a<\/p>\n<table>\n  <thead>\n      <tr>\n          <th>\u534f\u8bae<\/th>\n          <th>\u52a0\u5bc6<\/th>\n          <th>\u4e3b\u673a\u540d<\/th>\n          <th>\u7aef\u53e3<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td>IMAP<\/td>\n          <td>STARTTLS<\/td>\n          <td>mail.example.com<\/td>\n          <td>143<\/td>\n      <\/tr>\n      <tr>\n          <td>IMAPS<\/td>\n          <td>SSL<\/td>\n          <td>mail.example.com<\/td>\n          <td>993<\/td>\n      <\/tr>\n      <tr>\n          <td>POP3<\/td>\n          <td>STARTTLS<\/td>\n          <td>mail.example.com<\/td>\n          <td>110<\/td>\n      <\/tr>\n      <tr>\n          <td>POP3S<\/td>\n          <td>SSL<\/td>\n          <td>mail.example.com<\/td>\n          <td>995<\/td>\n      <\/tr>\n      <tr>\n          <td>SMTP<\/td>\n          <td>STARTTLS<\/td>\n          <td>mail.example.com<\/td>\n          <td>587<\/td>\n      <\/tr>\n      <tr>\n          <td>SMTPS<\/td>\n          <td>SSL<\/td>\n          <td>mail.example.com<\/td>\n          <td>465<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"\u89e3\u51b3\u65e0\u6cd5\u6536\u4fe1\u7684\u95ee\u9898\">\u89e3\u51b3\u65e0\u6cd5\u6536\u4fe1\u7684\u95ee\u9898\n<\/h2><hr>\n<p>\u7ecf\u6d4b\u8bd5\u53d1\u73b0\u53d1\u90ae\u4ef6\u6ca1\u592a\u5927\u95ee\u9898\uff0c\u4f46\u662f\u7ecf\u5e38\u6536\u4e0d\u5230\u90ae\u4ef6\uff0c\u6700\u540e\u53d1\u73b0\u662f\u88abRSPAMD\u8fd9\u4e2a\u670d\u52a1\u8ba4\u4e3a\u662f\u5783\u573e\u90ae\u4ef6\u7ed9\u62d2\u6536\u4e86<\/p>\n<p>\u89e3\u51b3\u65b9\u6cd5\u662f\u9996\u5148\u767b\u5f55\u7ba1\u7406\u9762\u677f\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2<code>System<\/code>-<code>Configuration<\/code>\uff0c\u627e\u5230<code>Access<\/code>-<code>Rspamd UI<\/code>\u70b9\u51fb\u8fdb\u5165<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/22\/010233-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8fdb\u5165<code>Rspamd UI<\/code>\u9762\u677f\u540e\uff0c\u70b9\u51fb<code>History<\/code>\u5c31\u53ef\u4ee5\u770b\u5230\u6240\u6709\u7684\u6536\u53d1\u90ae\u4ef6\u8bb0\u5f55<\/p>\n<p>\u6211\u4eec\u9700\u8981\u70b9\u51fb<code>Configuration<\/code>\uff0c\u628a<code>greylist<\/code>\u3001<code>addheader<\/code>\u3001<code>reject<\/code>\u8fd9\u4e09\u4e2a\u503c\u8bbe\u7f6e\u5927\u4e00\u70b9\uff0c\u4fdd\u5b58\u518d\u6d4b\u8bd5\u4e00\u4e0b\u57fa\u672c\u5c31\u6ca1\u95ee\u9898\u4e86<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/22\/010530-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h2 id=\"\u6570\u636e\u5907\u4efd\">\u6570\u636e\u5907\u4efd\n<\/h2><hr>\n<p>Mailcow\u63d0\u4f9b\u4e86\u81ea\u5df1\u7684\u5907\u4efd\u811a\u672c\uff08<code>\/docker\/mailcow-dockerized\/helper-scripts\/backup_and_restore.sh<\/code>\uff09\uff0c\u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Syntax:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\/docker\/mailcow-dockerized\/helper-scripts\/backup_and_restore.sh backup <span class=\"o\">(<\/span>vmail<span class=\"p\">|<\/span>crypt<span class=\"p\">|<\/span>redis<span class=\"p\">|<\/span>rspamd<span class=\"p\">|<\/span>postfix<span class=\"p\">|<\/span>mysql<span class=\"p\">|<\/span>all<span class=\"p\">|<\/span>--delete-days<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Backup all, delete backups older than 3 days<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\/docker\/mailcow-dockerized\/helper-scripts\/backup_and_restore.sh backup all --delete-days <span class=\"m\">3<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Backup vmail, crypt and mysql data, delete backups older than 30 days<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\/docker\/mailcow-dockerized\/helper-scripts\/backup_and_restore.sh backup vmail crypt mysql --delete-days <span class=\"m\">30<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Backup vmail<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\/docker\/mailcow-dockerized\/helper-scripts\/backup_and_restore.sh backup vmail\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># MULTITHREADING<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">THREADS<\/span><span class=\"o\">=<\/span><span class=\"m\">14<\/span> \/docker\/mailcow-dockerized\/helper-scripts\/backup_and_restore.sh backup all\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># BACKUP PATH<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">MAILCOW_BACKUP_LOCATION<\/span><span class=\"o\">=<\/span>\/tmp \/docker\/mailcow-dockerized\/helper-scripts\/backup_and_restore.sh backup all\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># MULTITHREADING + BACKUP PATH<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">MAILCOW_BACKUP_LOCATION<\/span><span class=\"o\">=<\/span>\/opt\/backup <span class=\"nv\">THREADS<\/span><span class=\"o\">=<\/span><span class=\"m\">14<\/span> \/opt\/mailcow-dockerized\/helper-scripts\/backup_and_restore.sh backup all\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u91cc\u6211\u662f\u8bbe\u7f6e\u5b9a\u65f6\u4efb\u52a1\u6267\u884c\u811a\u672c\u5e76\u4f7f\u7528<code>rclone<\/code>\u4e0a\u4f20\u5230\u6211\u7684\u7f51\u76d8\uff0c<code>rclone<\/code>\u7684\u914d\u7f6e\u8fd8\u662f\u6bd4\u8f83\u7b80\u5355\u7684\u5c31\u4e0d\u5728\u8fd9\u91cc\u8bb2\u4e86\uff0c\u4ee5\u4e0b\u662f\u6211\u7684\u914d\u7f6e<code>mail_backup.sh<\/code>\uff0c\u8be5\u5907\u4efd\u5c06\u4e0a\u4f20\u5230\u6211\u7684\u4e24\u4e2a\u7f51\u76d8\u4e2d\uff0c\u5e76\u6700\u591a\u53ea\u4fdd\u7559\u4e24\u4e2a\u6700\u8fd1\u7684\u5907\u4efd\u6587\u4ef6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"cp\">#!\/bin\/bash\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"cp\"><\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">delete_mail_files<span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;\u5f00\u59cb\u5220\u9664 \/tmp \u4e0b\u6240\u6709\u4ee5 mailcow \u5f00\u5934\u7684\u6587\u4ef6\u548c\u76ee\u5f55...&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">for<\/span> item in \/tmp\/mailcow*<span class=\"p\">;<\/span> <span class=\"k\">do<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">if<\/span> <span class=\"o\">[<\/span> -f <span class=\"s2\">&#34;<\/span><span class=\"nv\">$item<\/span><span class=\"s2\">&#34;<\/span> <span class=\"o\">]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;\u6b63\u5728\u5220\u9664\u6587\u4ef6: <\/span><span class=\"nv\">$item<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            rm -f <span class=\"s2\">&#34;<\/span><span class=\"nv\">$item<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">elif<\/span> <span class=\"o\">[<\/span> -d <span class=\"s2\">&#34;<\/span><span class=\"nv\">$item<\/span><span class=\"s2\">&#34;<\/span> <span class=\"o\">]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;\u6b63\u5728\u5220\u9664\u76ee\u5f55: <\/span><span class=\"nv\">$item<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            rm -rf <span class=\"s2\">&#34;<\/span><span class=\"nv\">$item<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">fi<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">done<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;\u5220\u9664\u64cd\u4f5c\u5b8c\u6210\u3002&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">SOURCE_DIR<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;\/tmp&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">DEST_DIR1<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;DEST_DIR1:\/LocalStorage\/Backups\/MailData\/&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">DEST_DIR2<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;DEST_DIR2:\/LocalStorage\/Backups\/MailData\/&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">CURRENT_DATE<\/span><span class=\"o\">=<\/span><span class=\"k\">$(<\/span>date +<span class=\"s2\">&#34;%Y-%m-%d&#34;<\/span><span class=\"k\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">delete_mail_files\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">THREADS<\/span><span class=\"o\">=<\/span><span class=\"m\">3<\/span> <span class=\"nv\">MAILCOW_BACKUP_LOCATION<\/span><span class=\"o\">=<\/span>\/tmp \/docker\/mailcow-dockerized\/helper-scripts\/backup_and_restore.sh backup all\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">TARGET<\/span><span class=\"o\">=<\/span><span class=\"k\">$(<\/span>find \/tmp -maxdepth <span class=\"m\">1<\/span> -type d -name <span class=\"s2\">&#34;mailcow*&#34;<\/span> -print -quit<span class=\"k\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">tar -zcf <span class=\"s2\">&#34;\/tmp\/mailcow_backup_<\/span><span class=\"nv\">$CURRENT_DATE<\/span><span class=\"s2\">.tar.gz&#34;<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$TARGET<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rclone copy <span class=\"s2\">&#34;\/tmp\/mailcow_backup_<\/span><span class=\"nv\">$CURRENT_DATE<\/span><span class=\"s2\">.tar.gz&#34;<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR1<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rclone copy <span class=\"s2\">&#34;\/tmp\/mailcow_backup_<\/span><span class=\"nv\">$CURRENT_DATE<\/span><span class=\"s2\">.tar.gz&#34;<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR2<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5220\u9664\u4e34\u65f6\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">delete_mail_files\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u53ea\u4fdd\u7559\u6700\u8fd1\u7684\u4e24\u4e2a\u5907\u4efd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rclone lsf --format tp --separator <span class=\"s2\">&#34; &#34;<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR1<\/span><span class=\"s2\">&#34;<\/span> <span class=\"p\">|<\/span> sort -rk1 <span class=\"p\">|<\/span> awk <span class=\"s1\">&#39;NR&gt;2 {print $NF}&#39;<\/span> <span class=\"p\">|<\/span> <span class=\"k\">while<\/span> <span class=\"nb\">read<\/span> -r file<span class=\"p\">;<\/span> <span class=\"k\">do<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    rclone deletefile <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR1<\/span><span class=\"s2\">\/<\/span><span class=\"si\">${<\/span><span class=\"nv\">file<\/span><span class=\"si\">}<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">done<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rclone lsf --format tp --separator <span class=\"s2\">&#34; &#34;<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR2<\/span><span class=\"s2\">&#34;<\/span> <span class=\"p\">|<\/span> sort -rk1 <span class=\"p\">|<\/span> awk <span class=\"s1\">&#39;NR&gt;2 {print $NF}&#39;<\/span> <span class=\"p\">|<\/span> <span class=\"k\">while<\/span> <span class=\"nb\">read<\/span> -r file<span class=\"p\">;<\/span> <span class=\"k\">do<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    rclone deletefile <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR2<\/span><span class=\"s2\">\/<\/span><span class=\"si\">${<\/span><span class=\"nv\">file<\/span><span class=\"si\">}<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">done<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c<code>crontab -e<\/code>\uff0c\u8bbe\u7f6e\u6bcf\u59290\u70b9\u5907\u4efd\u4e00\u6b21<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"m\">0<\/span> <span class=\"m\">0<\/span> * * * \/root\/scripts\/mail_backup.sh &gt;&gt; \/root\/scripts\/mail_backup.log 2&gt;<span class=\"p\">&amp;<\/span><span class=\"m\">1<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>Mailcow\u603b\u7684\u6765\u8bf4\u4f53\u9a8c\u8fd8\u662f\u4e0d\u9519\u7684\uff08\u53ea\u8981\u4f60\u7684\u670d\u52a1\u5668\u6027\u80fd\u591f\u9876\uff01\uff09\uff0c\u6211\u6d4b\u8bd5\u4e86\u4e00\u4e0bGmail\u548cQQ\u90fd\u80fd\u987a\u5229\u6536\u5230\u90ae\u4ef6\uff0c\u53ea\u6709Outlook\u4f1a\u8fdb\u5783\u573e\u6876\uff0c\u4e0d\u8fc7\u542c\u8bf4Outlook\u662f\u767d\u540d\u5355\u6a21\u5f0f\uff0c\u8fdb\u5783\u573e\u6876\u662f\u6ca1\u529e\u6cd5\u7684\u4e8b<\/p>\n"},{"title":"\u5728 Stack \u4e3b\u9898\u4e0a\u6dfb\u52a0 Waline \u8bc4\u8bba\u7cfb\u7edf","link":"https:\/\/been.ee\/p\/0-0-0-30\/","pubDate":"Sat, 13 Apr 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-30\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u672c\u535a\u5ba2\u57fa\u4e8eHugo\u7684<a class=\"link\" href=\"https:\/\/stack.jimmycai.com\/\"  target=\"_blank\" rel=\"noopener\"\n    >Stack\u4e3b\u9898<\/a>\u642d\u5efa\uff0cStack\u4e3b\u9898\u652f\u6301\u591a\u79cd\u8bc4\u8bba\u7cfb\u7edf\uff0c\u5177\u4f53\u53ef\u4ee5\u53c2\u8003\u5176<a class=\"link\" href=\"https:\/\/stack.jimmycai.com\/config\/comments\"  target=\"_blank\" rel=\"noopener\"\n    >\u6587\u6863<\/a>\uff0c\u672c\u6587\u5c06\u8bb0\u5f55\u4f7f\u7528Waline\u642d\u5efa\u8bc4\u8bba\u7cfb\u7edf\u7684\u65b9\u6cd5<\/p>\n<p>\u7531\u4e8e\u8bc4\u8bba\u7cfb\u7edf\u7684\u670d\u52a1\u7aef\u642d\u5efa\u65b9\u6cd5\u4e0e\u5b98\u7f51\u76f8\u540c\uff0c\u53ef\u4ee5\u76f4\u63a5\u53c2\u8003\u5b98\u65b9\u6587\u6863\u642d\u5efa\uff0c\u5982\u679c\u4f60\u5df2\u6309\u5b98\u65b9\u6587\u6863\u642d\u5efa\u597d\u4e86\u670d\u52a1\u7aef\uff0c\u53ef\u4ee5\u76f4\u63a5\u8df3\u5230<a class=\"link\" href=\"#%e5%9c%a8stack%e4%b8%bb%e9%a2%98%e4%b8%ad%e9%85%8d%e7%bd%aewaline\" >\u8fd9\u91cc<\/a><\/p>\n<h2 id=\"waline\u8bc4\u8bba\u7cfb\u7edf\u670d\u52a1\u7aef\u642d\u5efa\">Waline\u8bc4\u8bba\u7cfb\u7edf\u670d\u52a1\u7aef\u642d\u5efa\n<\/h2><hr>\n<p><a class=\"link\" href=\"https:\/\/waline.js.org\/\"  target=\"_blank\" rel=\"noopener\"\n    >Waline\u5b98\u7f51<\/a>\u63d0\u4f9b\u4e86\u5f88\u8be6\u7ec6\u7684\u90e8\u7f72\u65b9\u6cd5\uff0c\u4e0b\u9762\u5c06\u4ecb\u7ecd\u6309\u7167<a class=\"link\" href=\"https:\/\/waline.js.org\/guide\/get-started\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\u63d0\u4f9b\u7684\u65b9\u6cd5\u642d\u5efaWaline\u670d\u52a1\u7aef<\/p>\n<h3 id=\"leancloud\u8bbe\u7f6e\u6570\u636e\u5e93\">LeanCloud\u8bbe\u7f6e\uff08\u6570\u636e\u5e93\uff09\n<\/h3><hr>\n<p><a class=\"link\" href=\"https:\/\/console.leancloud.app\/login\"  target=\"_blank\" rel=\"noopener\"\n    >\u767b\u5f55<\/a>\u6216<a class=\"link\" href=\"https:\/\/console.leancloud.app\/register\"  target=\"_blank\" rel=\"noopener\"\n    >\u6ce8\u518c<\/a>LeanCloud\u56fd\u9645\u7248\u5e76\u8fdb\u5165<a class=\"link\" href=\"https:\/\/console.leancloud.app\/apps\"  target=\"_blank\" rel=\"noopener\"\n    >\u63a7\u5236\u53f0<\/a><\/p>\n<p>\u70b9\u51fb\u5de6\u4e0a\u89d2<code>\u521b\u5efa\u5e94\u7528<\/code>\u5e76\u8d77\u4e00\u4e2a\u4f60\u559c\u6b22\u7684\u540d\u5b57 (\u8bf7\u9009\u62e9\u514d\u8d39\u7684\u5f00\u53d1\u7248):<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/13\/235322.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u8fdb\u5165\u5e94\u7528\uff0c\u9009\u62e9\u5de6\u4e0b\u89d2\u7684\u00a0<code>\u8bbe\u7f6e<\/code>\u00a0&gt;\u00a0<code>\u5e94\u7528\u51ed\u8bc1<\/code>\uff0c\u627e\u5230\u00a0<code>APP ID<\/code>\uff0c<code>APP Key<\/code>\u00a0\u548c\u00a0<code>Master Key<\/code>\uff0c\u8fc7\u4e00\u4f1a\u8981\u7528<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/13\/235322_1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<h3 id=\"vercel\u90e8\u7f72\u670d\u52a1\u7aef\">Vercel\u90e8\u7f72\uff08\u670d\u52a1\u7aef\uff09\n<\/h3><hr>\n<p>\u70b9\u51fb<a class=\"link\" href=\"https:\/\/vercel.com\/new\/clone?repository-url=https%3A%2F%2Fgithub.com%2Fwalinejs%2Fwaline%2Ftree%2Fmain%2Fexample\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u91cc<\/a>\u8df3\u8f6c\u81f3Vercel\u8fdb\u884cServer\u7aef\u90e8\u7f72<\/p>\n<blockquote>\n<p>\u5982\u679c\u4f60\u672a\u767b\u5f55\u7684\u8bdd\uff0cVercel\u4f1a\u8ba9\u4f60\u6ce8\u518c\u6216\u767b\u5f55\uff0c\u8bf7\u4f7f\u7528GitHub\u8d26\u6237\u8fdb\u884c\u5feb\u6377\u767b\u5f55<\/p><\/blockquote>\n<p>\u8f93\u5165\u4e00\u4e2a\u4f60\u559c\u6b22\u7684Vercel\u9879\u76ee\u540d\u79f0\u5e76\u70b9\u51fb<code>Create<\/code>\u7ee7\u7eed:<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/14\/000104-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u6b64\u65f6Vercel\u4f1a\u57fa\u4e8eWaline\u6a21\u677f\u5e2e\u52a9\u4f60\u65b0\u5efa\u5e76\u521d\u59cb\u5316\u4ed3\u5e93\uff0c\u4ed3\u5e93\u540d\u4e3a\u4f60\u4e4b\u524d\u8f93\u5165\u7684\u9879\u76ee\u540d<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/14\/000148-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\n><\/p>\n<p>\u4e00\u4e24\u5206\u949f\u540e\uff0c\u6ee1\u5c4f\u7684\u70df\u82b1\u4f1a\u5e86\u795d\u4f60\u90e8\u7f72\u6210\u529f\u3002\u6b64\u65f6\u70b9\u51fb<code>Go to Dashboard<\/code>\u53ef\u4ee5\u8df3\u8f6c\u5230\u5e94\u7528\u7684\u63a7\u5236\u53f0<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/14\/000359-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u70b9\u51fb\u9876\u90e8\u7684\u00a0<code>Settings<\/code>\u00a0-\u00a0<code>Environment Variables<\/code>\u00a0\u8fdb\u5165\u73af\u5883\u53d8\u91cf\u914d\u7f6e\u9875\uff0c\u5e76\u914d\u7f6e\u4e09\u4e2a\u73af\u5883\u53d8\u91cf<code>LEAN_ID<\/code>\uff0c<code>LEAN_KEY<\/code>\u548c<code>LEAN_MASTER_KEY<\/code>\u3002\u5b83\u4eec\u7684\u503c\u5206\u522b\u5bf9\u5e94\u4e0a\u4e00\u6b65\u5728LeanCloud\u4e2d\u83b7\u5f97\u7684\u00a0<code>APP ID<\/code>\uff0c<code>APP KEY<\/code>\uff0c<code>Master Key<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/14\/000608-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u73af\u5883\u53d8\u91cf\u914d\u7f6e\u5b8c\u6210\u4e4b\u540e\u70b9\u51fb\u9876\u90e8\u7684<code>Deployments<\/code>\u70b9\u51fb\u9876\u90e8\u6700\u65b0\u7684\u4e00\u6b21\u90e8\u7f72\u53f3\u4fa7\u7684<code>Redeploy<\/code>\u6309\u94ae\u8fdb\u884c\u91cd\u65b0\u90e8\u7f72\u3002\u8be5\u6b65\u9aa4\u662f\u4e3a\u4e86\u8ba9\u521a\u624d\u8bbe\u7f6e\u7684\u73af\u5883\u53d8\u91cf\u751f\u6548<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/14\/000620-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6b64\u65f6\u4f1a\u8df3\u8f6c\u5230<code>Overview<\/code>\u754c\u9762\u5f00\u59cb\u90e8\u7f72\uff0c\u7b49\u5f85\u7247\u523b\u540e<code>STATUS<\/code>\u4f1a\u53d8\u6210<code>Ready<\/code>\u3002\u6b64\u65f6\u8bf7\u70b9\u51fb<code>Visit<\/code>\uff0c\u5373\u53ef\u8df3\u8f6c\u5230\u90e8\u7f72\u597d\u7684\u7f51\u7ad9\u5730\u5740\uff0c\u6b64\u5730\u5740\u5373\u4e3a\u4f60\u7684\u670d\u52a1\u7aef\u5730\u5740<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/14\/000652-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h3 id=\"\u7ed1\u5b9a\u81ea\u5df1\u7684\u57df\u540d\">\u7ed1\u5b9a\u81ea\u5df1\u7684\u57df\u540d\n<\/h3><hr>\n<p>\u70b9\u51fb\u9876\u90e8\u7684<code>Settings<\/code>\u00a0-\u00a0<code>Domains<\/code>\u8fdb\u5165\u57df\u540d\u914d\u7f6e\u9875<\/p>\n<p>\u8f93\u5165\u9700\u8981\u7ed1\u5b9a\u7684\u57df\u540d\u5e76\u70b9\u51fb<code>Add<\/code><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/14\/000743-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5728\u81ea\u5df1\u57df\u540d\u6258\u7ba1\u7684\u670d\u52a1\u5668\u5546\u5904\uff08\u6211\u7684\u5728Cloudflare\uff09\u6dfb\u52a0\u65b0\u7684<code>CNAME<\/code>\u89e3\u6790\u8bb0\u5f55<\/p>\n<table>\n  <thead>\n      <tr>\n          <th>Type<\/th>\n          <th>Name<\/th>\n          <th>Value<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td>CNAME<\/td>\n          <td>example<\/td>\n          <td>cname.vercel-dns.com<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>\u7b49\u5f85\u751f\u6548\u540e\u5c31\u53ef\u4ee5\u901a\u8fc7\u81ea\u5df1\u7684\u57df\u540d\u6765\u8bbf\u95ee\u4e86\ud83c\udf89<\/p>\n<ul>\n<li>\u8bc4\u8bba\u7cfb\u7edf\uff1aexample.yourdomain.com<\/li>\n<li>\u8bc4\u8bba\u7ba1\u7406\uff1aexample.yourdomain.com\/ui<\/li>\n<\/ul>\n<p>\u7136\u540e\u6211\u4eec\u9700\u8981\u767b\u5f55\u8bc4\u8bba\u7ba1\u7406\u754c\u9762\u6ce8\u518c\u4e00\u4e2a\u8d26\u6237\uff0c\u7b2c\u4e00\u4e2a\u6ce8\u518c\u7684\u8d26\u6237\u5373\u4e3a\u7ba1\u7406\u5458\u8d26\u6237\uff0c\u7ba1\u7406\u5458\u8d26\u6237\u53ef\u4ee5\u5728\u7ba1\u7406\u9875\u9762\u67e5\u770b\u3001\u4fee\u6539\u3001\u6807\u8bb0\u3001\u56de\u590d\u6216\u5220\u9664\u8bc4\u8bba<\/p>\n<h2 id=\"\u5728stack\u4e3b\u9898\u4e2d\u914d\u7f6ewaline\">\u5728Stack\u4e3b\u9898\u4e2d\u914d\u7f6eWaline\n<\/h2><hr>\n<h3 id=\"\u57fa\u7840\u914d\u7f6e\">\u57fa\u7840\u914d\u7f6e\n<\/h3><hr>\n<p>\u9996\u5148\u6253\u5f00\u914d\u7f6e\u6587\u4ef6<code>config.yaml<\/code>\uff0c\u627e\u5230<code>[Params.Comments]<\/code>\u90e8\u5206\uff0c\u4fee\u6539\u4e3a\u5982\u4e0b\u914d\u7f6e\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">params<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">comments<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">        <\/span><span class=\"nt\">enabled<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">        <\/span><span class=\"nt\">provider<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">waline<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">        <\/span><span class=\"nt\">waline<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">serverURL<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">https:\/\/example.yourdomain.com<\/span><span class=\"w\"> <\/span><span class=\"c\"># \u586b\u5199\u8bc4\u8bba\u7cfb\u7edf\u7684\u57df\u540d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">lang<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">zh-CN<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">pageview<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">  <\/span><span class=\"c\"># \u5f00\u542f\u6d4f\u89c8\u91cf\u7edf\u8ba1\u529f\u80fd<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">emoji<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.0.1\/weibo<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/alus<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/bilibili<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/bmoji<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/qq<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/tieba<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/soul-emoji<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">https:\/\/unpkg.com\/@waline\/emojis@1.2.0\/tw-emoji<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">requiredMeta<\/span><span class=\"p\">:<\/span><span class=\"w\">   <\/span><span class=\"c\"># \u8bc4\u8bba\u65f6\u9700\u8981\u586b\u7684\u5757<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">nick<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span>- <span class=\"l\">mail<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">locale<\/span><span class=\"p\">:<\/span><span class=\"w\">   <\/span><span class=\"c\"># \u81ea\u5b9a\u4e49\u8bed\u8a00\uff0c\u6216\u8005\u8bbe\u7f6e\u5176\u4e2d\u7684\u51e0\u9879\u5bf9\u73b0\u6709\u7684UI\u6587\u5b57\u8fdb\u884c\u8986\u76d6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">admin<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u535a\u4e3b <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u8fd9\u91cc\u662f\u4f60\u56de\u590d\u8bc4\u8bba\u65f6\u663e\u793a\u7684\u6807\u7b7e<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">placeholder<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u7559\u4e0b\u4f60\u7684\u8db3\u8ff9\u5427\uff01<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">link<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u7f51\u5740<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">mail<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u90ae\u7bb1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">                <\/span><span class=\"nt\">nick<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u6635\u79f0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">reaction<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">  <\/span><span class=\"c\"># \u5bf9\u6587\u7ae0\u5185\u5bb9\u7684\u53cd\u5e94\uff0c\u53ef\u4ee5\u5f00\u542f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">            <\/span><span class=\"nt\">comment<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">  <\/span><span class=\"c\"># \u5f00\u542f\u8bc4\u8bba\u6570\u7edf\u8ba1<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d<code>locale<\/code>\u90e8\u5206\u7684\u8be6\u7ec6\u914d\u7f6e\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/waline.js.org\/cookbook\/customize\/locale.html#%E7%AE%80%E4%BB%8B\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u7f51<\/a><\/p>\n<h3 id=\"\u914d\u7f6e\u90ae\u4ef6\u901a\u77e5\">\u914d\u7f6e\u90ae\u4ef6\u901a\u77e5\n<\/h3><hr>\n<p>\u5b8c\u6210\u4ee5\u4e0a\u914d\u7f6e\u540e\uff0cWaline\u5c31\u5df2\u7ecf\u53ef\u4ee5\u5de5\u4f5c\u4e86\uff0c\u63a5\u4e0b\u6765\u5c06\u4ecb\u7ecd\u914d\u7f6e\u90ae\u4ef6\u901a\u77e5\u8ba9\u6211\u4eec\u80fd\u591f\u53ca\u65f6\u6536\u5230\u8bc4\u8bba\u5e76\u56de\u590d<\/p>\n<p>\u9996\u5148\uff0c\u9700\u8981\u5728\u670d\u52a1\u7aef\uff08Vercel\uff09\u914d\u7f6e\u73af\u5883\u53d8\u91cf\uff0c\u6253\u5f00\u6211\u4eec\u5728Vercel\u914d\u7f6e\u7684\u670d\u52a1\u7aef\uff0c\u627e\u5230<code>Settings<\/code>\u00a0-\u00a0<code>Environment Variables<\/code>\u914d\u7f6e\u4ee5\u4e0b\u53d8\u91cf\uff1a<\/p>\n<blockquote>\n<ul>\n<li>\n<p><code>SMTP_HOST<\/code>: SMTP \u670d\u52a1\u5668\u5730\u5740<\/p>\n<\/li>\n<li>\n<p><code>SMTP_PORT<\/code>: SMTP \u670d\u52a1\u5668\u7aef\u53e3<\/p>\n<\/li>\n<li>\n<p><code>SMTP_USER<\/code>: SMTP \u90ae\u4ef6\u53d1\u9001\u670d\u52a1\u7684\u7528\u6237\u540d\uff0c\u4e00\u822c\u4e3a\u767b\u5f55\u90ae\u7bb1<\/p>\n<\/li>\n<li>\n<p><code>SMTP_PASS<\/code>: SMTP \u90ae\u4ef6\u53d1\u9001\u670d\u52a1\u7684\u5bc6\u7801\uff0c\u4e00\u822c\u4e3a\u90ae\u7bb1\u767b\u5f55\u5bc6\u7801<\/p>\n<\/li>\n<li>\n<p><code>SMTP_SECURE<\/code>: \u662f\u5426\u4f7f\u7528 SSL \u8fde\u63a5 SMTP\uff0c\u8bbe\u4e3a<code>true<\/code><\/p>\n<\/li>\n<li>\n<p><code>SITE_NAME<\/code>: \u7f51\u7ad9\u540d\u79f0\uff0c\u7528\u4e8e\u5728\u6d88\u606f\u4e2d\u663e\u793a<\/p>\n<\/li>\n<li>\n<p><code>SITE_URL<\/code>: \u7f51\u7ad9\u5730\u5740\uff0c\u7528\u4e8e\u5728\u6d88\u606f\u4e2d\u663e\u793a<\/p>\n<\/li>\n<li>\n<p><code>AUTHOR_EMAIL<\/code>: \u535a\u4e3b\u90ae\u7bb1\uff0c\u7528\u6765\u63a5\u6536\u65b0\u8bc4\u8bba\u901a\u77e5\u3002\u5982\u679c\u662f\u535a\u4e3b\u53d1\u5e03\u7684\u8bc4\u8bba\u5219\u4e0d\u8fdb\u884c\u63d0\u9192\u901a\u77e5<\/p>\n<\/li>\n<li>\n<p><code>SENDER_NAME<\/code>: \u81ea\u5b9a\u4e49\u53d1\u9001\u90ae\u4ef6\u7684\u53d1\u4ef6\u4eba<\/p>\n<\/li>\n<li>\n<p><code>SENDER_EMAIL<\/code>: \u81ea\u5b9a\u4e49\u53d1\u9001\u90ae\u4ef6\u7684\u53d1\u4ef6\u5730\u5740<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u7136\u540e\uff0c\u6211\u4eec\u518d\u914d\u7f6e\u4e00\u4e0b\u90ae\u4ef6\u5185\u5bb9\uff0c\u6211\u4eec\u9700\u8981\u5230\u4e4b\u524d\u6ce8\u518cVercel\u7684GitHub\u8d26\u53f7\u4e2d\u627e\u5230\u8fd9\u4e2a\u670d\u52a1\u7aef\u9879\u76ee\u5185\u5bb9\uff0c\u7136\u540e\u627e\u5230<code>index.js<\/code>\u6587\u4ef6\uff0c\u5c06\u5176\u4fee\u6539\u4e3a\u5982\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-javascript\" data-lang=\"javascript\"><span class=\"line\"><span class=\"cl\"><span class=\"kr\">const<\/span> <span class=\"nx\">Application<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">require<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;@waline\/vercel&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">exports<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Application<\/span><span class=\"p\">({<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nx\">mailSubjectAdmin<\/span><span class=\"o\">:<\/span> <span class=\"s1\">&#39;\u60a8\u7684\u535a\u5ba2\u300c{{site.name | safe}}\u300d\u4e0a\u6709\u65b0\u8bc4\u8bba\u4e86&#39;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nx\">mailTemplateAdmin<\/span><span class=\"o\">:<\/span> <span class=\"sb\">`&lt;div style=&#34;border-radius: 10px 10px 10px 10px;font-size:14px;color: #555555;width: 666px;font-family:&#39;Century Gothic&#39;,&#39;Trebuchet MS&#39;,&#39;Hiragino Sans GB&#39;,\u5fae\u8f6f\u96c5\u9ed1,&#39;Microsoft Yahei&#39;,Tahoma,Helvetica,Arial,&#39;SimSun&#39;,sans-serif;margin:50px auto;border:1px solid #eee;max-width:100%;background: #ffffff repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);&#34;&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t&lt;div style=&#34;width:100%;background:#49BDAD;color:#ffffff;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));background-image: -webkit-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;&#34;&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t&lt;p style=&#34;font-size:15px;word-break:break-all;padding: 23px 32px;margin:0;background-color: hsla(0,0%,100%,.4);border-radius: 10px 10px 0 0;&#34;&gt;\u6709\u4eba\u5728\u60a8\u7684\u535a\u5ba2&lt;a style=&#34;text-decoration:none;color: #ffffff;&#34; href=&#34;{{site.url}}&#34; target=&#34;_blank&#34;&gt;\u300c{{site.name}}\u300d&lt;\/a&gt;\u4e0a\u53d1\u8868\u4e86\u65b0\u7684\u8bc4\u8bba\uff01&lt;\/p&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t&lt;\/div&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;div style=&#34;margin:40px auto;width:90%&#34;&gt;&lt;p&gt;{{self.nick}} \u56de\u590d\u8bf4\uff1a&lt;\/p&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;div style=&#34;background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;&#34;&gt;{{self.comment | safe}}&lt;\/div&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;p&gt;\u60a8\u53ef\u4ee5\u70b9\u51fb&lt;a style=&#34;text-decoration:none; color:#12addb&#34; href=&#34;{{site.postUrl}}&#34; target=&#34;_blank&#34;&gt;\u67e5\u770b\u56de\u590d\u7684\u5b8c\u6574\u5185\u5bb9&lt;\/a&gt;\u3002&lt;hr \/&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;\/p&gt;&lt;style type=&#34;text\/css&#34;&gt;a:link{text-decoration:none}a:visited{text-decoration:none}a:hover{text-decoration:none}a:active{text-decoration:none}&lt;\/style&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;\/div&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t&lt;\/div&gt;`<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nx\">mailSubject<\/span><span class=\"o\">:<\/span> <span class=\"s1\">&#39;{{parent.nick | safe}}\uff0c\u60a8\u5728\u300c{{site.name | safe}}\u300d\u4e0a\u7684\u8bc4\u8bba\u6536\u5230\u4e86\u65b0\u7684\u56de\u590d&#39;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nx\">mailTemplate<\/span><span class=\"o\">:<\/span> <span class=\"sb\">`&lt;div style=&#34;border-radius: 10px 10px 10px 10px;font-size:14px;color: #555555;width: 666px;font-family:&#39;Century Gothic&#39;,&#39;Trebuchet MS&#39;,&#39;Hiragino Sans GB&#39;,\u5fae\u8f6f\u96c5\u9ed1,&#39;Microsoft Yahei&#39;,Tahoma,Helvetica,Arial,&#39;SimSun&#39;,sans-serif;margin:50px auto;border:1px solid #eee;max-width:100%;background: #ffffff repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);&#34;&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t&lt;div style=&#34;width:100%;background:#49BDAD;color:#ffffff;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));background-image: -webkit-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;&#34;&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t&lt;p style=&#34;font-size:15px;word-break:break-all;padding: 23px 32px;margin:0;background-color: hsla(0,0%,100%,.4);border-radius: 10px 10px 0 0;&#34;&gt;\u60a8\u5728&lt;a style=&#34;text-decoration:none;color: #ffffff;&#34; href=&#34;{{site.url}}&#34; target=&#34;_blank&#34;&gt;{{site.name}}&lt;\/a&gt;\u4e0a\u7684\u8bc4\u8bba\u6709\u65b0\u56de\u590d\u5566\uff01&lt;\/p&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t&lt;\/div&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;div style=&#34;margin:40px auto;width:90%&#34;&gt;&lt;p&gt;Hi, {{parent.nick}}\uff0c\u60a8\u66fe\u5728\u6587\u7ae0\u4e0a\u53d1\u8868\u8bc4\u8bba\uff1a&lt;\/p&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;div style=&#34;background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;&#34;&gt;{{self.comment | safe}}&lt;\/div&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;p&gt;&lt;strong&gt;{{self.nick}}&lt;\/strong&gt; \u7ed9\u60a8\u7684\u56de\u590d\u5982\u4e0b\uff1a&lt;\/p&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;div style=&#34;background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;&#34;&gt;{{self.comment | safe}}&lt;\/div&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;p&gt;\u60a8\u53ef\u4ee5\u70b9\u51fb&lt;a style=&#34;text-decoration:none; color:#12addb&#34; href=&#34;{{site.postUrl}}&#34; target=&#34;_blank&#34;&gt;\u67e5\u770b\u56de\u590d\u7684\u5b8c\u6574\u5185\u5bb9&lt;\/a&gt;\uff0c\u6b22\u8fce\u518d\u6b21\u5149\u4e34&lt;a style=&#34;text-decoration:none; color:#12addb&#34; href=&#34;{{site.url}}&#34; target=&#34;_blank&#34;&gt;{{site.name}}&lt;\/a&gt;\u3002&lt;hr \/&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;p style=&#34;font-size:12px;color:#b7adad&#34;&gt;\u672c\u90ae\u4ef6\u4e3a\u7cfb\u7edf\u81ea\u52a8\u53d1\u9001\uff0c\u8bf7\u52ff\u76f4\u63a5\u56de\u590d\u90ae\u4ef6\u54e6\uff0c\u53ef\u5230\u535a\u6587\u5185\u5bb9\u56de\u590d\u3002&lt;\/p&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;\/p&gt;&lt;style type=&#34;text\/css&#34;&gt;a:link{text-decoration:none}a:visited{text-decoration:none}a:hover{text-decoration:none}a:active{text-decoration:none}&lt;\/style&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t\t&lt;\/div&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"sb\">\t&lt;\/div&gt;`<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">});<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d<code>mailSubject<\/code>\u3001<code>mailTemplate<\/code>\u3001<code>mailSubjectAdmin<\/code>\u548c<code>mailTemplateAdmin<\/code>\u5206\u522b\u4e3a\u8bc4\u8bba\u8005\u548c\u7ba1\u7406\u5458\u6536\u5230\u7684\u90ae\u4ef6\u6807\u9898\u548c\u5185\u5bb9\u7684\u6a21\u677f\uff0c\u53ef\u4ee5\u81ea\u884c\u4fee\u6539\uff0c<code>{{site.name}}<\/code>\u548c<code>{{site.postUrl}}<\/code>\u5206\u522b\u4e3a\u4e4b\u524d\u5728\u73af\u5883\u53d8\u91cf\u4e2d\u8bbe\u7f6e\u7684<code>SITE_NAME<\/code>\u548c<code>SITE_URL<\/code><\/p>\n<blockquote>\n<p>\u672c\u6a21\u677f\u53c2\u8003\u4e86<a class=\"link\" href=\"https:\/\/sarakale.top\/blog\/posts\/537344b2\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u7bc7\u6587\u7ae0<\/a>\u4e2d\u7684\u5f69\u8679\u6e10\u53d8\u6a21\u677f\uff0c\u5e76\u8fdb\u884c\u4e86\u4fee\u6539\uff08\u539f\u6587\u6a21\u677f\u5b58\u5728\u4e00\u70b9\u8bed\u6cd5\u9519\u8bef\uff09<\/p><\/blockquote>\n<p>\u5728\u4fee\u6539\u5b8cGitHub\u4e2d\u7684\u6587\u4ef6\u540e\uff0cVercel\u670d\u52a1\u7aef\u4f1a\u81ea\u52a8\u91cd\u65b0\u90e8\u7f72\uff0c\u91cd\u65b0\u90e8\u7f72\u7684\u540c\u65f6\u4f1a\u52a0\u8f7d\u6211\u4eec\u524d\u9762\u8bbe\u7f6e\u7684\u73af\u5883\u53d8\u91cf\uff08\u5982\u679c\u6ca1\u6709\u91cd\u65b0\u90e8\u7f72\uff0c\u6211\u4eec\u9700\u8981\u81ea\u5df1\u5230<code>Deployments<\/code>\uff0c\u70b9\u51fb\u9876\u90e8\u6700\u65b0\u7684\u4e00\u6b21\u90e8\u7f72\u53f3\u4fa7\u7684<code>Redeploy<\/code>\u624b\u52a8\u91cd\u65b0\u90e8\u7f72\uff09\uff0c\u5f85\u90e8\u7f72\u5b8c\u6210\u540e\u5c31\u53ef\u4ee5\u8bc4\u8bba\u6d4b\u8bd5\u4e00\u4e0b\u6548\u679c\uff1a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2024\/04\/14\/005924-0.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5230\u6b64\u4e3a\u6b62\uff0c\u90ae\u4ef6\u901a\u77e5\u642d\u5efa\u5b8c\u6bd5\u3002\u9664\u4e86\u90ae\u4ef6\u901a\u77e5\u5916\uff0cWaline\u8fd8\u652f\u6301\u5fae\u4fe1\u3001QQ\u3001Telegram\u548cDiscord\u7b49\u901a\u77e5\uff0c\u611f\u5174\u8da3\u7684\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/waline.js.org\/guide\/features\/notification.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u91cc<\/a><\/p>\n<h3 id=\"\u8bbe\u7f6e\u8bc4\u8bba\u95f4\u9694\u65f6\u95f4\">\u8bbe\u7f6e\u8bc4\u8bba\u95f4\u9694\u65f6\u95f4\n<\/h3><hr>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cWaline\u540c\u4e00\u4e2aip\u7684\u8bc4\u8bba\u95f4\u9694\u65f6\u95f4\u4e3a<code>60s<\/code>\uff0c\u6211\u4eec\u53ef\u4ee5\u5230Vercel\u4e2d\u7684Waline\u670d\u52a1\u7aef\u6dfb\u52a0\u4e00\u4e2a\u73af\u5883\u53d8\u91cf<code>IPQPS<\/code>\u5e76\u8bbe\u7f6e\u4e3a<code>0<\/code>\uff0c\u4e5f\u5c31\u662f\u5c06\u8bc4\u8bba\u95f4\u9694\u65f6\u95f4\u8bbe\u4e3a<code>0<\/code>\uff08\u5f53\u7136\u8fd9\u53ef\u80fd\u5b58\u5728\u4e00\u4e9b\u98ce\u9669\uff0c\u5927\u5bb6\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u8c03\u6574\uff09\uff0c\u7136\u540e\u91cd\u65b0\u90e8\u7f72\u4e00\u4e0b\u5c31\u53ef\u4ee5\u4e86<\/p>\n<blockquote>\n<p>\u6ce8\u610f\uff0c\u6bcf\u6b21\u4fee\u6539\u73af\u5883\u53d8\u91cf\u540e\u90fd\u9700\u8981\u91cd\u65b0\u90e8\u7f72\u624d\u80fd\u52a0\u8f7d<\/p><\/blockquote>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u4ee5\u4e0a\u5c31\u662fWaline\u8bc4\u8bba\u7cfb\u7edf\u90e8\u7f72\u7684\u5168\u8fc7\u7a0b\u4e86\uff0c\u5728\u914d\u7f6e\u90ae\u4ef6\u7684\u65f6\u5019\u8e29\u4e86\u4e00\u4e9b\u5751\uff0c\u4f46\u6574\u4f53\u90e8\u7f72\u5e76\u4e0d\u9ebb\u70e6\uff0c\u800c\u4e14\u90e8\u7f72\u540e\u754c\u9762\u5f88\u7b80\u6d01\uff0c\u76ee\u524d\u4f53\u9a8c\u5f88\u4e0d\u9519\uff0c\u503c\u5f97\u63a8\u8350<\/p>\n"},{"title":"Windows Server \u4fee\u6539 RDP \u7aef\u53e3\u7684\u65b9\u6cd5","link":"https:\/\/been.ee\/p\/0-0-0-29\/","pubDate":"Sat, 16 Mar 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-29\/","description":"<h2 id=\"\u6ce8\u518c\u8868\u4fee\u6539\u7aef\u53e3\">\u6ce8\u518c\u8868\u4fee\u6539\u7aef\u53e3\n<\/h2><hr>\n<p>\u9996\u5148Win+R\u8fd0\u884c<code>regedit<\/code>\u6253\u5f00\u6ce8\u518c\u8868<\/p>\n<p>\u627e\u5230<code>HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp<\/code>\uff0c\u628a<code>PortNumber<\/code>\u6539\u4e3a\u8981\u4fee\u6539\u7684\u7aef\u53e3\u53f7<\/p>\n<p>\u627e\u5230<code>HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\Wds\\rdpwd\\Tds\\tcp<\/code>\uff0c\u540c\u6837\u628a<code>PortNumber<\/code>\u6539\u4e3a\u8981\u4fee\u6539\u7684\u7aef\u53e3\u53f7<\/p>\n<h2 id=\"\u9632\u706b\u5899\u653e\u884c\u7aef\u53e3\">\u9632\u706b\u5899\u653e\u884c\u7aef\u53e3\n<\/h2><hr>\n<p>\u6253\u5f00<code>Control Panel<\/code>\uff0c\u8fdb\u5165<code>System and Security<\/code>\uff0c\u627e\u5230<code>Windows Defender Firewall<\/code>\u5e76\u70b9\u51fb\u8fdb\u5165\uff0c\u70b9\u51fb\u5de6\u4fa7<code>Advanced Settings<\/code>\u8fdb\u5165\u9ad8\u7ea7\u8bbe\u7f6e\u9875\u9762\uff0c\u6253\u5f00\u5de6\u4fa7<code>Inbound Rules<\/code>\uff0c\u53f3\u4fa7\u627e\u5230<code>New Rule<\/code>\u6253\u5f00\u8fdb\u884c\u4fee\u6539<\/p>\n<p>\u7136\u540e\u5c31\u6839\u636e\u63d0\u793a\u6dfb\u52a0\u4e00\u4e2a\u7aef\u53e3\u7684\u5165\u7ad9\u89c4\u5219\u5c31\u53ef\u4ee5\u4e86<\/p>\n<h2 id=\"\u91cd\u542frdp\u767b\u5f55\u670d\u52a1\">\u91cd\u542fRDP\u767b\u5f55\u670d\u52a1\n<\/h2><hr>\n<p>\u9996\u5148Win+R\u8fd0\u884c<code>services.msc<\/code>\uff0c\u6253\u5f00\u670d\u52a1\u5217\u8868<\/p>\n<p>\u627e\u5230<code>Remote Desktop Services<\/code>\u670d\u52a1\uff0c\u53f3\u952e\u91cd\u542f\u5373\u53ef\uff08\u91cd\u542f\u4f1a\u65ad\u5f00\u8fde\u63a5\uff0c\u7136\u540e\u7528\u65b0\u7aef\u53e3\u767b\u5f55\u5c31\u597d\uff09<\/p>\n<p><strong>PS\uff1a\u4e00\u5b9a\u8981\u5148\u5728\u5165\u7ad9\u91cc\u653e\u884c\u7aef\u53e3\u518d\u91cd\u542f\u670d\u52a1\uff0c\u5982\u679c\u76f4\u63a5\u91cd\u542f\u800c\u6ca1\u6709\u653e\u884c\u7aef\u53e3\uff0c\u4f1a\u5bfc\u81f4\u8fde\u63a5\u65ad\u5f00\u540e\u65e0\u6cd5\u767b\u5f55\uff01\uff01\uff01<\/strong><\/p>\n"},{"title":"\u53bb\u4e2d\u5fc3\u5316\u901a\u4fe1\u670d\u52a1 Matrix Synapse","link":"https:\/\/been.ee\/p\/0-0-0-28\/","pubDate":"Wed, 17 Jan 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-28\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u9996\u5148\uff0cMatrix\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u901a\u4fe1\u534f\u8bae\uff0c\u53ef\u4ee5\u5b9e\u73b0\u5b89\u5168\u548c\u53bb\u4e2d\u5fc3\u5316\u7684\u5f00\u653e\u7f51\u7edc\uff0c\u5b83\u88ab\u8bbe\u8ba1\u7528\u6765\u5904\u7406\u5373\u65f6\u6d88\u606f\u3001\u8bed\u97f3\u548c\u89c6\u9891\u901a\u8bdd\u7b49\u901a\u4fe1\u65b9\u5f0f\uff0c\u4ee5\u53ca\u8fdb\u884c\u5b9e\u65f6\u6570\u636e\u7684\u4f20\u8f93<\/p>\n<p>\u800cSynapse\u662f\u4e00\u4e2a\u7528Python\u5199\u7684\u57fa\u4e8eMatrix\u534f\u8bae\u7684\u670d\u52a1\u5668\u5b9e\u73b0\uff0c\u5141\u8bb8\u7528\u6237\u548c\u7ec4\u7ec7\u90e8\u7f72\u81ea\u5df1\u7684Matrix\u8282\u70b9\uff0c\u8fd9\u4f7f\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7Synapse\u6765\u6258\u7ba1\u81ea\u5df1\u7684\u804a\u5929\u670d\u52a1\uff0c\u4fdd\u6301\u5bf9\u6570\u636e\u7684\u5b8c\u5168\u63a7\u5236<\/p>\n<p>\u9664\u4e86Synapse\uff0cMatrix\u5b98\u65b9\u8fd8\u63d0\u4f9b\u4e86go\u8bed\u8a00\u5199\u7684\u7b2c\u4e8c\u4ee3\u670d\u52a1\u7aef\uff0c\u6027\u80fd\u4f1a\u66f4\u597d\uff0c\u4f46\u76ee\u524d\u529f\u80fd\u53ef\u80fd\u4e0d\u591f\u5b8c\u5584\uff0c\u4e5f\u4e0d\u53caSynapse\u7a33\u5b9a\uff0c\u6b64\u5916<a class=\"link\" href=\"https:\/\/matrix.org\/ecosystem\/servers\/\"  target=\"_blank\" rel=\"noopener\"\n    >Matrix\u5b98\u65b9<\/a>\u8fd8\u63d0\u4f9b\u4e86\u4e00\u4e9b\u4f7f\u7528\u5176\u5b83\u8bed\u8a00\u7f16\u5199\u7684\u7b2c\u4e09\u65b9\u7248\u672c<\/p>\n<p>\u8fd9\u7bc7\u6587\u7ae0\u5c06\u4f1a\u8bb0\u5f55\u5b8c\u5168\u4f7f\u7528Docker Compose\u6765\u90e8\u7f72Synapse\u670d\u52a1\u7aef\uff0c\u540c\u65f6\u4f7f\u7528Postgresql\u4f5c\u4e3a\u6570\u636e\u5e93\uff08\u9ed8\u8ba4\u4f7f\u7528Sqlite\u6570\u636e\u5e93\uff09<\/p>\n<h2 id=\"\u51c6\u5907\u6570\u636e\u5e93\u670d\u52a1\">\u51c6\u5907\u6570\u636e\u5e93\u670d\u52a1\n<\/h2><hr>\n<p>\u8fd9\u91cc\u6211\u7684\u6570\u636e\u5e93\u4f7f\u7528\u7684\u662fPostgresql\uff0c\u5e76\u4e14\u662f\u5355\u72ec\u4f5c\u4e3a\u4e00\u4e2a\u670d\u52a1\u542f\u52a8\u7684<\/p>\n<p>\u9996\u5148\u5728\u5bbf\u4e3b\u673a\u521b\u5efa\u4e00\u4e2aPostgresql\u6570\u636e\u76ee\u5f55<code>\/docker\/postgresql\/data<\/code>\uff0c\u7136\u540e\u5728<code>\/docker\/postgresql\/<\/code>\u4e0b\u9762\u65b0\u5efa\u4e00\u4e2a<code>docker-compose.yml<\/code>\uff0c\u5199\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yml\" data-lang=\"yml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">version<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;3.4&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">postgresql<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">postgres:latest<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">postgresql<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">always<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">POSTGRES_PASSWORD<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">your_password<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"s2\">&#34;\/docker\/postgresql\/data:\/var\/lib\/postgresql\/data&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">networks<\/span><span class=\"p\">:<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">psqlnet<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"m\">127.0.0.1<\/span><span class=\"p\">:<\/span><span class=\"m\">5432<\/span><span class=\"p\">:<\/span><span class=\"m\">5432<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">networks<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">psqlnet<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">psqlnet<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">driver<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">bridge<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u4f7f\u7528<code>docker-compose up -d<\/code>\u542f\u52a8\uff0c\u7136\u540e<code>docker exec -it postgresql bash<\/code>\u8fdb\u5165\u5bb9\u5668\u521b\u5efa<code>synapse<\/code>\u7528\u6237\u548c\u6570\u636e\u5e93<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">$ docker <span class=\"nb\">exec<\/span> -it postgresql bash\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ su postgres\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ createuser --pwprompt synapse\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Enter password <span class=\"k\">for<\/span> new role:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Enter it again:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ createdb --encoding<span class=\"o\">=<\/span>UTF8 --locale<span class=\"o\">=<\/span>C --template<span class=\"o\">=<\/span>template0 --owner<span class=\"o\">=<\/span>synapse synapse\n<\/span><\/span><\/code><\/pre><\/div><p>\u73b0\u5728\uff0c\u6570\u636e\u5e93\u670d\u52a1\u5c31\u6682\u65f6\u914d\u7f6e\u597d\u4e86<\/p>\n<h2 id=\"\u51c6\u5907synapse\u670d\u52a1\">\u51c6\u5907Synapse\u670d\u52a1\n<\/h2><hr>\n<p>\u9996\u5148\u521b\u5efa\u4e00\u4e2aSynapse\u7684\u6570\u636e\u76ee\u5f55<code>\/docker\/synapse\/data<\/code>\uff0c\u7136\u540e\u5728<code>\/docker\/synapse\/<\/code>\u4e0b\u65b0\u5efa\u4e00\u4e2a<code>docker-compose.yml<\/code>\uff0c\u5199\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">version<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;3.4&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">synapse<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;matrixdotorg\/synapse:latest&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"m\">127.0.0.1<\/span><span class=\"p\">:<\/span><span class=\"m\">8008<\/span><span class=\"p\">:<\/span><span class=\"m\">8008<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;synapse&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">unless-stopped<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"s2\">&#34;\/docker\/synapse\/data:\/data&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">SYNAPSE_SERVER_NAME<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;domain.name&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"nt\">SYNAPSE_REPORT_STATS<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;yes&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">networks<\/span><span class=\"p\">:<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">psqlnet<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">networks<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">psqlnet<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">external<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c<code>docker-compose run --rm synapse generate<\/code>\u5728<code>\/docker\/synapse\/data<\/code>\u4e0b\u751f\u6210\u914d\u7f6e\u6587\u4ef6<code>homeserver.yaml<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">$ docker-compose run --rm synapse generate\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>+<span class=\"o\">]<\/span> Running 10\/10\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> \u2714 synapse <span class=\"m\">9<\/span> layers <span class=\"o\">[<\/span>\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff<span class=\"o\">]<\/span>      0B\/0B      Pulled                                                                10.8s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   \u2714 1f7ce2fa46ab Pull <span class=\"nb\">complete<\/span>                                                                                        0.7s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   \u2714 f66cb2ec4ca8 Pull <span class=\"nb\">complete<\/span>                                                                                        0.6s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   \u2714 9e3072bcfe9d Pull <span class=\"nb\">complete<\/span>                                                                                        0.6s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   \u2714 4a2b4836be3f Pull <span class=\"nb\">complete<\/span>                                                                                        0.9s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   \u2714 312d1214a5ea Pull <span class=\"nb\">complete<\/span>                                                                                        1.0s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   \u2714 e6b2655a9dba Pull <span class=\"nb\">complete<\/span>                                                                                        1.3s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   \u2714 0883e5ecbae6 Pull <span class=\"nb\">complete<\/span>                                                                                        2.2s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   \u2714 fa50c4c6e4c8 Pull <span class=\"nb\">complete<\/span>                                                                                        1.3s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   \u2714 082df609d7e6 Pull <span class=\"nb\">complete<\/span>                                                                                        1.6s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Setting ownership on \/data to 991:991\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Creating log config \/data\/evergarden.ee.log.config\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Generating config file \/data\/homeserver.yaml\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Generating signing key file \/data\/evergarden.ee.signing.key\n<\/span><\/span><span class=\"line\"><span class=\"cl\">A config file has been generated in <span class=\"s1\">&#39;\/data\/homeserver.yaml&#39;<\/span> <span class=\"k\">for<\/span> server name <span class=\"s1\">&#39;domain.name&#39;<\/span>. Please review this file and customise it to your needs.\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6211\u4eec\u6253\u5f00<code>homeserver.yaml<\/code>\u6587\u4ef6\uff0c\u5c06\u6570\u636e\u5e93\u90e8\u5206\u9ed8\u8ba4\u7684Sqlite3\u6539\u4e3a\u6211\u4eec\u51c6\u5907\u597d\u7684Postgresql\uff0c\u4e5f\u5c31\u662f\u66ff\u6362\u4e3a\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">database<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">psycopg2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">args<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">user<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">synapse<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">password<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">your_password<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">dbname<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">synapse<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">host<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">postgresql<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">cp_min<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">5<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">cp_max<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">10<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">keepalives_idle<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">10<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">keepalives_interval<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">10<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">keepalives_count<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">3<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u5728\u914d\u7f6e\u6587\u4ef6\u6700\u540e\u52a0\u5165\u4e0b\u9762\u4e24\u884c\u5185\u5bb9\u53ef\u4ee5\u5f00\u653e\u6ce8\u518c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">enable_registration<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">  \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">enable_registration_without_verification<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6267\u884c<code>docker compose up -d<\/code>\u542f\u52a8\u670d\u52a1\u5c31\u53ef\u4ee5\u4e86<\/p>\n<p>\u4e0d\u8fc7\u81ea\u5df1\u7528\u7684\u8bdd\u5982\u679c\u7528\u6237\u4e0d\u591a\uff0c\u6700\u597d\u8fd8\u662f\u5173\u95ed\u6ce8\u518c\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\u670d\u52a1\u5668\u624b\u52a8\u7ed9\u7528\u6237\u6ce8\u518c\u597d<\/p>\n<p>\u5728\u542f\u52a8\u670d\u52a1\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528<code>docker exec -it synapse register_new_matrix_user -c \/data\/homeserver.yaml -u username -p xxxxxxxxxx -a http:\/\/localhost:8008<\/code>\u6765\u521b\u5efa\u4e00\u4e2a\u7ba1\u7406\u5458\u7528\u6237<\/p>\n<p>\u6216\u8005\u4f7f\u7528<code>docker exec -it synapse register_new_matrix_user -c \/data\/homeserver.yaml http:\/\/localhost:8008<\/code>\u6765\u6839\u636e\u63d0\u793a\u521b\u5efa\u4e00\u4e2a\u666e\u901a\u7528\u6237\u6216\u7ba1\u7406\u5458\u7528\u6237<\/p>\n<p>\u5230\u6b64\u4e3a\u6b62\uff0c\u5df2\u7ecf\u5b8c\u6210\u4e86Synapse\u7684\u521d\u6b65\u914d\u7f6e\uff0c\u5b8c\u6574\u914d\u7f6e\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">server_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;your.domain&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">pid_file<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\/data\/homeserver.pid<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">listeners<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span>- <span class=\"nt\">port<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">8008<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">tls<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">type<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">http<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">x_forwarded<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">resources<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"nt\">names<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"l\">client, federation]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">        <\/span><span class=\"nt\">compress<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">database<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">psycopg2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">args<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">user<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">synapse<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">password<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">synapse_password<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">dbname<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">synapse<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">host<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">postgresql<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">cp_min<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">5<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">cp_max<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">10<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">keepalives_idle<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">10<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">keepalives_interval<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">10<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">keepalives_count<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">3<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">log_config<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;\/data\/your.domain.log.config&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">media_store_path<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\/data\/media_store<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">registration_shared_secret<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;......&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">report_stats<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">macaroon_secret_key<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;......&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">form_secret<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;......&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">signing_key_path<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;\/data\/your.domain.signing.key&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">trusted_key_servers<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span>- <span class=\"nt\">server_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;matrix.org&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">enable_registration<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">enable_registration_without_verification<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u4e9b\u914d\u7f6e\u5b9e\u9645\u4e0a\u5df2\u7ecf\u53ef\u4ee5\u591f\u6211\u4eec\u542f\u52a8\u670d\u52a1\u8fdb\u884c\u4f7f\u7528\u4e86\uff0c\u4f46Synapse\u7684\u914d\u7f6e\u5176\u5b9e\u8fdc\u4e0d\u6b62\u8fd9\u4e9b\uff0c\u5173\u4e8e\u4e00\u4e9b\u8fdb\u9636\u914d\u7f6e\u5c06\u4f1a\u653e\u5728<a class=\"link\" href=\"#synapse%e8%bf%9b%e9%98%b6%e9%85%8d%e7%bd%ae\" >\u6700\u540e<\/a>\u4ecb\u7ecd<\/p>\n<h2 id=\"\u53cd\u5411\u4ee3\u7406\">\u53cd\u5411\u4ee3\u7406\n<\/h2><hr>\n<p>\u6700\u540e\u6765\u914d\u7f6e\u4e00\u4e0bnginx\u7684\u53cd\u5411\u4ee3\u7406<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">server {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen 80;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  server_name domain.name;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  return 301 https:\/\/$server_name$request_uri;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  listen 443 ssl http2;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  server_name domain.name;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_certificate \/etc\/letsencrypt\/live\/domain.name\/fullchain.pem;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ssl_certificate_key \/etc\/letsencrypt\/live\/domain.name\/privkey.pem;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  location \/ {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_pass http:\/\/127.0.0.1:8008;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\tproxy_redirect off;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header Host $host;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header X-Real-IP $remote_addr;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_set_header X-Forwarded-Proto $scheme;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">  }\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><\/code><\/pre><\/div><p>\u6267\u884c<code>systemctl restart nginx<\/code>\u52a0\u8f7d\u914d\u7f6e\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u7528\u57df\u540d\u8bbf\u95ee\u53ef\u4ee5\u770b\u5230Synapse\u670d\u52a1\u5df2\u542f\u52a8<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-28\/synapse.png\"\n\twidth=\"1303\"\n\theight=\"794\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-28\/synapse_hu_989ec4e791fcdc44.png 480w, https:\/\/been.ee\/p\/0-0-0-28\/synapse_hu_9564c34af41c67f.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"164\"\n\t\tdata-flex-basis=\"393px\"\n\t\n><\/p>\n<p>\u542f\u52a8\u540e\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u4f7f\u7528\u652f\u6301Matrix\u7684\u5ba2\u6237\u7aef\uff08\u4f8b\u5982element\uff09\u8fdb\u884c\u767b\u5f55\u4e86<\/p>\n<h2 id=\"synapse\u8fdb\u9636\u914d\u7f6e\">Synapse\u8fdb\u9636\u914d\u7f6e\n<\/h2><hr>\n<p>Synapse\u7684\u5168\u90e8\u914d\u7f6e\u4ecb\u7ecd\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/matrix-org.github.io\/synapse\/latest\/welcome_and_overview.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\uff0c\u6709\u5f88\u8be6\u7ec6\u7684\u8bf4\u660e\uff0c\u540c\u65f6\u5185\u5bb9\u771f\u7684\u975e\u5e38\u591a\uff01<\/p>\n<p>\u53e6\u5916\u6240\u6709\u7684\u914d\u7f6e\u9009\u9879\u51e0\u4e4e\u90fd\u662f\u5728homeserver.yml\u4e2d\u8bbe\u7f6e<\/p>\n<h3 id=\"email\">email\n<\/h3><hr>\n<p>\u914d\u7f6eemail\u8bf4\u767d\u4e86\u5c31\u662f\u8bbe\u7f6e\u4e00\u4e2a\u81ea\u5df1\u7684\u90ae\u7bb1\u7528\u6765\u7ed9\u7528\u6237\u53d1\u9001\u901a\u77e5\u548c\u9a8c\u8bc1\u90ae\u4ef6\u7684<\/p>\n<p>\u6211\u7528\u7684\u662f\u81ea\u5df1\u7684Gmail\u90ae\u7bb1\uff0c\u4ee5\u4e0b\u662f\u9488\u5bf9Gmail\u90ae\u7bb1\u7684\u8bbe\u7f6e\uff0c\u4f7f\u7528\u5176\u4ed6\u90ae\u7bb1\u6216\u8bb8\u9700\u8981\u4fee\u6539smtp\u670d\u52a1\u5668\u548c\u7aef\u53e3<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">email<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">smtp_host<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">smtp.gmail.com<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">smtp_port<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">587<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">smtp_user<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">example@gmail.com<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">smtp_pass<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">your_pass<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">require_transport_security<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">notif_from<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;Synapse@your.domain&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">enable_notifs<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">notif_for_new_users<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">client_base_url<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">https:\/\/app.element.io\/<\/span><span class=\"w\"> <\/span><span class=\"c\">#\u4fee\u6539\u4e3a\u4f60\u7684\u5ba2\u6237\u7aef\u57df\u540d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">validation_token_lifetime<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">15m<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">invite_client_location<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">https:\/\/app.element.io\/<\/span><span class=\"w\"> <\/span><span class=\"c\">#\u4fee\u6539\u4e3a\u4f60\u7684\u5ba2\u6237\u7aef\u57df\u540d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">subjects<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">message_from_person_in_room<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;[%(app)s] You have a message on %(app)s from %(person)s in the %(room)s room...&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">message_from_person<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;[%(app)s] You have a message on %(app)s from %(person)s...&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">messages_from_person<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;[%(app)s] You have messages on %(app)s from %(person)s...&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">messages_in_room<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;[%(app)s] You have messages on %(app)s in the %(room)s room...&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">messages_in_room_and_others<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;[%(app)s] You have messages on %(app)s in the %(room)s room and others...&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">messages_from_person_and_others<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;[%(app)s] You have messages on %(app)s from %(person)s and others...&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">invite_from_person_to_room<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;[%(app)s] %(person)s has invited you to join the %(room)s room on %(app)s...&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">invite_from_person<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;[%(app)s] %(person)s has invited you to chat on %(app)s...&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">password_reset<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;[Synapse@your.domain] Password reset&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">email_validation<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;[Synapse@your.domain] Validate your email&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d<code>smtp_pass<\/code>\u53ef\u4ee5\u53bb<a class=\"link\" href=\"https:\/\/myaccount.google.com\/apppasswords\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u91cc<\/a>\u7533\u8bf7\u8c37\u6b4c\u5e94\u7528\u670d\u52a1\u5bc6\u7801\uff0c\u4e0d\u8fc7\u7528\u81ea\u5df1\u7684\u5bc6\u7801\u53ef\u80fd\u4e5f\u884c\uff0c\u6211\u6ca1\u8bd5<\/p>\n<p><code>subjects<\/code>\u90e8\u5206\u5b9a\u4e49\u4e86\u90ae\u7bb1\u7684\u5185\u5bb9\u683c\u5f0f\u4e4b\u7c7b\u7684\uff0c\u53ef\u4ee5\u81ea\u884c\u4fee\u6539<\/p>\n<h3 id=\"turn\">turn\n<\/h3><hr>\n<p>\u9700\u8981\u914d\u7f6e\u4e00\u53f0TURN\u670d\u52a1\u5668\u8fdb\u884c\u8bed\u97f3\u548c\u89c6\u9891\u901a\u8bdd\uff0cTURN\u670d\u52a1\u5668\u662f\u7528\u4e8e\u89e3\u51b3\u4f4d\u4e8eNAT\u6216\u9632\u706b\u5899\u540e\u9762\u7684\u8bbe\u5907\u4e4b\u95f4\u7684\u901a\u4fe1\u95ee\u9898<\/p>\n<p>Linux\u4e0b\u53ef\u4ee5\u4f7f\u7528\u6bd4\u8f83\u6d41\u884c\u7684\u5f00\u6e90TURN\u670d\u52a1\u5668CoTURN\u6765\u642d\u5efa\uff0c\u642d\u5efa\u65b9\u6cd5\u5c31\u4e0d\u5728\u8fd9\u91cc\u4ecb\u7ecd\u4e86\uff0c\u5177\u4f53\u53ef\u4ee5\u53c2\u8003\u6211\u7684<a class=\"link\" href=\"..\/0-0-0-27\/\" >\u53e6\u4e00\u7bc7\u6587\u7ae0<\/a><\/p>\n<p>\u4e0b\u9762\u662f\u5728Synapse\u4e2d\u914d\u7f6eTURN\u670d\u52a1\u7684\u90e8\u5206<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">turn_uris<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;turn:your.turn.service:3478?transport=udp&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;turns:your.turn.service:5349?transport=udp&#34;<\/span><span class=\"w\"> <\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">turn_shared_secret<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;your_secret&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">turn_user_lifetime<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">86400000<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">turn_allow_guests<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"user_directory\">user_directory\n<\/h3><hr>\n<p>\u8bbe\u7f6e\u7528\u6237\u76ee\u5f55\u7684\u9009\u9879\uff0c\u6211\u8fd9\u91cc\u5f00\u542f\u4e86\u53ef\u4ee5\u641c\u7d22\u5168\u90e8\u7528\u6237<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">user_directory<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">enabled<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">search_all_users<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">prefer_local_users<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">show_locked_users<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"federation\">federation\n<\/h3><hr>\n<p>\u8054\u90a6\u5c31\u662f\u8ba9Matrix\u670d\u52a1\u5668\u4e4b\u95f4\u80fd\u591f\u76f8\u4e92\u8fde\u901a\uff0cMatrix\u670d\u52a1\u5668\u4e4b\u95f4\u7684\u901a\u4fe1\u9ed8\u8ba4\u662f\u901a\u8fc78448\u7aef\u53e3\u7684TLS\u8fde\u63a5\u5b8c\u6210<\/p>\n<p>\u4e5f\u5c31\u662f\u8bf4\u6211\u4eec\u9700\u8981\u76d1\u542c8448\u7aef\u53e3\u7684TLS\u8fde\u63a5\uff0c\u9700\u8981\u505a\u7684\u5c31\u662f\u5728Nginx\u53cd\u5411\u4ee3\u7406\u4e2dSSL\u5757\uff08\u76d1\u542c443\u7aef\u53e3\u7684\u5757\uff09\u4e2d\u6dfb\u52a0\u76d1\u542c8448\u7aef\u53e3\u5373\u53ef<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">listen 8448 ssl http2;\n<\/span><\/span><\/code><\/pre><\/div><p>\u6b64\u5916\uff0c\u53ef\u80fd\u8fd8\u9700\u8981\u914d\u7f6e\u4e00\u6761DNS SRV\u8bb0\u5f55\uff0c\u5176\u4e2d\u4e3b\u673a\u540d\u4e3a\u81ea\u5df1\u7684Matrix\u57df\u540d\uff0c\u670d\u52a1\u4e3a_matrix\uff0c\u534f\u8bae\u4e3a_tcp\uff0c\u4f18\u5148\u7ea7\u548c\u6743\u91cd\u901a\u5e38\u8bbe\u7f6e\u4e3a10\u548c5\uff0c\u7aef\u53e3\u4e3a\u8054\u90a6\u7aef\u53e38448\uff0c\u76ee\u6807\u4e3a\u6307\u5411Matrix\u670d\u52a1\u5668\u7684\u5b8c\u6574\u57df\u540d<\/p>\n<p>\u6700\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u53bb<a class=\"link\" href=\"https:\/\/federationtester.matrix.org\/\"  target=\"_blank\" rel=\"noopener\"\n    >Matrix Federation Tester<\/a>\u6d4b\u8bd5\u4e00\u4e0b\uff0c\u4e0d\u51fa\u610f\u5916\u7684\u8bdd\u5c31\u53ef\u4ee5\u5b9e\u73b0\u8054\u90a6\u901a\u4fe1\u4e86<\/p>\n<h3 id=\"recapture\">recapture\n<\/h3><hr>\n<p>reCAPTURE\u53ef\u4ee5\u7528\u6765\u9632\u6b62\u673a\u5668\u4eba\u6ce8\u518c\u8d26\u6237\uff0c\u5982\u679c\u5f00\u653e\u4e86\u6ce8\u518c\u6700\u597d\u914d\u7f6e\u4e00\u4e0b<\/p>\n<p>Matrix Synapse\u4f7f\u7528\u4e86Google\u7684reCAPTURE\u670d\u52a1\uff0c\u6211\u4eec\u9700\u8981\u4eceGoogle\u83b7\u53d6API\u5bc6\u94a5\uff0c\u83b7\u53d6\u65b9\u6cd5\u53ef\u4ee5\u770b<a class=\"link\" href=\"https:\/\/matrix-org.github.io\/synapse\/latest\/CAPTCHA_SETUP.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u91cc<\/a>\uff0c\u7136\u540e\u5728<code>homeserver.yaml<\/code>\u4e2d\u914d\u7f6e\u4ee5\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">recaptcha_public_key<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">YOUR_SITE_KEY<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">recaptcha_private_key<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">YOUR_SECRET_KEY<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">enable_registration_captcha<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"other\">other\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">max_upload_size<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">1024M <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u5141\u8bb8\u6700\u5927\u7684\u4e0a\u4f20\u5927\u5c0f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">allow_guest_access<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">  <\/span><span class=\"c\"># \u62d2\u7edd\u8bbf\u5ba2\u767b\u5f55<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">enable_3pid_changes<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">  <\/span><span class=\"c\"># \u5141\u8bb8\u7528\u6237\u4fee\u6539\u5173\u8054\u7684\u7b2c\u4e09\u65b9ID\uff08\u4f8b\u5982\u90ae\u7bb1\u7b49\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u6709\u5173Synapse\u7684\u914d\u7f6e\u5b9e\u5728\u592a\u591a\uff0c\u4f46\u672c\u6587\u6240\u8ff0\u7684\u914d\u7f6e\u5df2\u7ecf\u662f\u5b8c\u5168\u591f\u7528\u4e86<\/p>\n<p>\u5173\u4e8e\u5ba2\u6237\u7aef\u7684\u9009\u62e9\uff0c\u76ee\u524d\u6700\u6210\u719f\u7684\u5e94\u8be5\u662f\u5b98\u65b9\u7684<a class=\"link\" href=\"https:\/\/element.io\/\"  target=\"_blank\" rel=\"noopener\"\n    >element.io<\/a>\uff0c\u6709\u5168\u5e73\u53f0\u5ba2\u6237\u7aef\uff0c\u4f46\u9057\u61be\u7684\u662f\u5176\u7f51\u7ad9\u5728\u56fd\u5185\u88ab\u5899\uff0c\u5bf9\u4e8e\u624b\u673aAPP\u5728\u7b2c\u4e00\u6b21\u767b\u9646\u7684\u65f6\u5019\u9700\u8981\u7528\u4ee3\u7406\uff0c\u767b\u9646\u540e\u53ea\u8981\u4e0d\u9000\u51fa\u5c31\u53ef\u4ee5\u957f\u671f\u4f7f\u7528\u56fd\u5185\u7684\u7f51\u7edc\u901a\u4fe1\uff08\u524d\u63d0\u662f\u767b\u5f55\u7684Synapse\u670d\u52a1\u5668\u6ca1\u88ab\u5899\uff09\uff1b\u5bf9\u4e8e\u7f51\u9875\u7248\uff0c\u53ef\u4ee5\u8003\u8651\u81ea\u884c\u642d\u5efa\u4e00\u4e2a<a class=\"link\" href=\"https:\/\/github.com\/element-hq\/element-web\"  target=\"_blank\" rel=\"noopener\"\n    >element-web\u767b\u9646\u7f51\u7ad9<\/a>\uff0c\u603b\u4e4b\u56fd\u5185\u4f7f\u7528\u76f8\u5bf9\u9ebb\u70e6\u70b9<\/p>\n<p>\u5f53\u7136\uff0c\u5982\u679c\u4f60\u6709\u4ee3\u7406\u7684\u8bdd\uff0c\u4ee5\u4e0a\u90fd\u4e0d\u662f\u95ee\u9898<\/p>\n"},{"title":"CoTURN \u670d\u52a1\u914d\u7f6e\u8bb0\u5f55","link":"https:\/\/been.ee\/p\/0-0-0-27\/","pubDate":"Mon, 15 Jan 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-27\/","description":"<h2 id=\"\u7b80\u5355\u4ecb\u7ecd\">\u7b80\u5355\u4ecb\u7ecd\n<\/h2><hr>\n<p>CoTURN\u662f\u4e00\u79cd\u6d41\u884c\u7684\u5f00\u6e90TURN\u670d\u52a1\u5668\uff0c\u800cTURN\uff08Traversal Using Relays around NAT\uff09\u534f\u8bae\u662f\u7528\u4e8e\u5e2e\u52a9\u4f4d\u4e8eNAT\u6216\u9632\u706b\u5899\u540e\u9762\u7684\u8bbe\u5907\u5efa\u7acb\u901a\u4fe1\u8fde\u63a5<\/p>\n<p>\u5728WebRTC\u548c\u67d0\u4e9bVoIP\u573a\u666f\u4e2d\uff0c\u5f53\u76f4\u63a5\u5bf9\u7b49\u8fde\u63a5\uff08P2P\uff09\u7531\u4e8e\u7f51\u7edc\u9650\u5236\u65e0\u6cd5\u5efa\u7acb\u65f6\uff0cCoTURN\u670d\u52a1\u5668\u5c31\u53ef\u4ee5\u5145\u5f53\u4e2d\u7ee7\u670d\u52a1\u5668\uff0c\u5e2e\u52a9\u6570\u636e\u5728\u4e0d\u540c\u7f51\u7edc\u4e4b\u95f4\u4f20\u8f93<\/p>\n<p>\u4e0b\u9762\u5206\u522b\u4ecb\u7ecd\u4f7f\u7528Docker\u5b89\u88c5\u548c\u76f4\u63a5\u5b89\u88c5\u7684\u4e24\u79cd\u65b9\u5f0f<\/p>\n<h2 id=\"\u4f7f\u7528docker\u642d\u5efacoturn\">\u4f7f\u7528Docker\u642d\u5efaCoTURN\n<\/h2><hr>\n<h3 id=\"\u914d\u7f6edocker-composeyml\">\u914d\u7f6edocker-compose.yml\n<\/h3><hr>\n<p>\u76f4\u63a5\u4f7f\u7528docker compose\u90e8\u7f72\u542f\u52a8\uff0c\u4e0b\u9762\u662f<code>docker-compose.yml<\/code>\u6587\u4ef6\u7684\u5185\u5bb9<\/p>\n<p>\u6ce8\u610f\uff1a\u63d0\u524d\u7533\u8bf7\u597dSSL\u8bc1\u4e66\u5e76\u6302\u8f7d\u5230\u5bb9\u5668\u91cc<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">version<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;3.4&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">coturn_server<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">coturn\/coturn:latest<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">always<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">coturn<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">network_mode<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">host<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">\/docker\/coturn\/turnserver.conf:\/etc\/coturn\/turnserver.conf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">\/etc\/letsencrypt\/live\/your.domain\/fullchain.pem:\/etc\/letsencrypt\/live\/your.domain\/fullchain.pem<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">\/etc\/letsencrypt\/live\/your.domain\/privkey.pem:\/etc\/letsencrypt\/live\/your.domain\/privkey.pem<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d\u7f51\u7edc\u6a21\u5f0f\u8bbe\u7f6e\u4e3ahost\uff0c\u662f\u56e0\u4e3a\u8003\u8651\u5230CoTURN\u670d\u52a1\u9700\u8981\u5360\u7528\u5f88\u591a\u7aef\u53e3\uff0c\u9700\u8981\u8fdb\u884c\u8f83\u591a\u7684\u6620\u5c04\uff0chost\u6a21\u5f0f\u8ba9\u5bb9\u5668\u670d\u52a1\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u5bbf\u4e3b\u673a\u7684\u7f51\u7edc\uff0c\u8fd9\u4e5f\u662f\u5b98\u65b9\u63a8\u8350\u7684\u505a\u6cd5<\/p>\n<h3 id=\"\u914d\u7f6eturnserverconf\">\u914d\u7f6eturnserver.conf\n<\/h3><hr>\n<p><code>turnserver.conf<\/code>\u5305\u542b\u4e86CoTURN\u670d\u52a1\u5668\u6240\u9700\u7684\u5168\u90e8\u914d\u7f6e\uff0c\u8be6\u7ec6\u7684\u914d\u7f6e\u9009\u9879\u53ef\u4ee5\u53c2\u8003\u5b98\u65b9Github\u63d0\u4f9b\u7684<a class=\"link\" href=\"https:\/\/github.com\/coturn\/coturn\/blob\/master\/examples\/etc\/turnserver.conf\"  target=\"_blank\" rel=\"noopener\"\n    >\u793a\u4f8b\u5185\u5bb9<\/a><\/p>\n<p>\u4e0b\u9762\u662f\u6211\u76ee\u524d\u4f7f\u7528\u7684\u914d\u7f6e\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">listening<\/span><span class=\"o\">-<\/span><span class=\"n\">port<\/span><span class=\"o\">=<\/span><span class=\"mi\">3478<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">tls<\/span><span class=\"o\">-<\/span><span class=\"n\">listening<\/span><span class=\"o\">-<\/span><span class=\"n\">port<\/span><span class=\"o\">=<\/span><span class=\"mi\">5349<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">listening<\/span><span class=\"o\">-<\/span><span class=\"n\">ip<\/span><span class=\"o\">=<\/span><span class=\"mf\">0.0<\/span><span class=\"o\">.<\/span><span class=\"mf\">0.0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">external<\/span><span class=\"o\">-<\/span><span class=\"n\">ip<\/span><span class=\"o\">=<\/span><span class=\"n\">your_public_ip<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">server<\/span><span class=\"o\">-<\/span><span class=\"n\">name<\/span><span class=\"o\">=<\/span><span class=\"n\">your<\/span><span class=\"o\">.<\/span><span class=\"n\">domain<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">realm<\/span><span class=\"o\">=<\/span><span class=\"n\">your<\/span><span class=\"o\">.<\/span><span class=\"n\">domain<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">fingerprint<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">use<\/span><span class=\"o\">-<\/span><span class=\"n\">auth<\/span><span class=\"o\">-<\/span><span class=\"n\">secret<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">static<\/span><span class=\"o\">-<\/span><span class=\"n\">auth<\/span><span class=\"o\">-<\/span><span class=\"n\">secret<\/span><span class=\"o\">=<\/span><span class=\"n\">your_secret<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">cert<\/span><span class=\"o\">=\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">letsencrypt<\/span><span class=\"o\">\/<\/span><span class=\"n\">live<\/span><span class=\"o\">\/<\/span><span class=\"n\">your<\/span><span class=\"o\">.<\/span><span class=\"n\">domain<\/span><span class=\"o\">\/<\/span><span class=\"n\">fullchain<\/span><span class=\"o\">.<\/span><span class=\"n\">pem<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">pkey<\/span><span class=\"o\">=\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">letsencrypt<\/span><span class=\"o\">\/<\/span><span class=\"n\">live<\/span><span class=\"o\">\/<\/span><span class=\"n\">your<\/span><span class=\"o\">.<\/span><span class=\"n\">domain<\/span><span class=\"o\">\/<\/span><span class=\"n\">privkey<\/span><span class=\"o\">.<\/span><span class=\"n\">pem<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">log<\/span><span class=\"o\">-<\/span><span class=\"n\">file<\/span><span class=\"o\">=\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">tmp<\/span><span class=\"o\">\/<\/span><span class=\"n\">turnserver<\/span><span class=\"o\">.<\/span><span class=\"n\">log<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">min<\/span><span class=\"o\">-<\/span><span class=\"n\">port<\/span><span class=\"o\">=<\/span><span class=\"mi\">49152<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">max<\/span><span class=\"o\">-<\/span><span class=\"n\">port<\/span><span class=\"o\">=<\/span><span class=\"mi\">65535<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">total<\/span><span class=\"o\">-<\/span><span class=\"n\">quota<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">bps<\/span><span class=\"o\">-<\/span><span class=\"n\">capacity<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">stale<\/span><span class=\"o\">-<\/span><span class=\"n\">nonce<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">no<\/span><span class=\"o\">-<\/span><span class=\"n\">multicast<\/span><span class=\"o\">-<\/span><span class=\"n\">peers<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u91cc\u9762<code>cert<\/code>\u548c<code>pkey<\/code>\u8bbe\u4e3a\u81ea\u5df1\u7684\u8bc1\u4e66\u548c\u79c1\u94a5\uff0c\u8fd9\u91cc\u6211\u662f\u7528<code>certbot<\/code>\u7533\u8bf7\u540e\u6302\u8f7d\u5230\u5bb9\u5668\u91cc\u7684\uff0c\u5e94\u8be5\u4e5f\u53ef\u4ee5\u4f7f\u7528<code>openssl req -x509 -newkey rsa:2048 -keyout \/docker\/coturn\/turnserver_pkey.pem -out \/docker\/coturn\/turnserver_cert.pem -days 99999 -nodes<\/code>\u751f\u6210\u81ea\u7b7e\u540d\u8bc1\u4e66\u548c\u79c1\u94a5\u3002PS\uff1a\u8fd9\u91cc\u6709\u4e00\u70b9\u5f88\u5751\uff0c\u5c31\u662f\u4e00\u5b9a\u8981\u786e\u4fdd\u8bc1\u4e66\u548c\u79c1\u94a5\u5bf9\u6240\u6709\u4eba\u90fd\u6709\u53ef\u8bfb\u7684\u6743\u9650\uff08<code>chmod 644 xxx.pem<\/code>\uff09\uff0c\u4e0d\u7136CoTURN\u65e0\u6cd5\u8bfb\u53d6\u5c31\u4e0d\u4f1a\u76d1\u542cTLS\u7aef\u53e3<\/p>\n<p><code>static-auth-secret<\/code>\u5efa\u8bae\u4f7f\u7528<code>pwgen -s 64 1<\/code>\u6216<code>openssl rand -hex 32<\/code>\u751f\u6210\u8ba4\u8bc1\u5bc6\u7801<\/p>\n<h3 id=\"\u542f\u52a8coturn\u670d\u52a1\">\u542f\u52a8CoTURN\u670d\u52a1\n<\/h3><hr>\n<p>\u6267\u884c<code>docker-compose up -d<\/code>\u542f\u52a8\u670d\u52a1\uff0c\u987a\u5229\u7684\u8bdd\u53ef\u4ee5\u901a\u8fc7<code>netstat -antp<\/code>\u770b\u52303478\u548c5349\u7aef\u53e3\u90fd\u5df2\u88ab\u76d1\u542c<\/p>\n<p>\u53ef\u4ee5\u4f7f\u7528<code>turn:your.domain<\/code>\u6216<code>turns:your.domain<\/code>\u6765\u8fde\u63a5CoTURN\u670d\u52a1\u5668<\/p>\n<h3 id=\"\u5c0f\u7ed3\">\u5c0f\u7ed3\n<\/h3><hr>\n<p>\u4e0d\u51fa\u610f\u5916\u7684\u8bdd\uff0c\u8fd9\u5957<code>turnserver.conf<\/code>\u914d\u7f6e\u662f\u6ca1\u6709\u95ee\u9898\u7684\uff0c\u6211\u5728\u914d\u7f6e\u597d\u540e\u7b2c\u4e00\u65f6\u95f4\u7528Matrix Synapse\u8fde\u63a5\u8fdb\u884c\u8bed\u97f3\u548c\u89c6\u9891\u901a\u8bdd\u6d4b\u8bd5\u662f\u5f88\u987a\u5229\u7684\uff0c\u4f46\u662f\u540e\u6765\u6709\u4e00\u6b21\u53d1\u73b0\u83ab\u540d\u5176\u5999\u7684\u8fde\u63a5\u4e0d\u4e0a\u4e86\uff0c\u6298\u817e\u4e86\u534a\u5929\u6700\u540e\u653e\u5f03\u4e86Docker\u76f4\u63a5\u5728\u670d\u52a1\u5668\u4e0a\u88c5\u4e86CoTURN\uff0c\u5e76\u8c03\u6574\u4e86\u914d\u7f6e\uff0c\u4e00\u5f00\u59cb\u4e5f\u662f\u65e0\u6cd5\u8fde\u63a5\uff0c\u6700\u540e\u9000\u51fa\u91cd\u65b0\u767b\u5f55\u4e86\u4e00\u4e0bMatrix\u7528\u6237\u540e\u53d1\u73b0\u7adf\u7136\u53c8\u884c\u4e86<\/p>\n<p>\u6240\u4ee5\u8fd9\u5957Docker\u65b9\u6848\u5e94\u8be5\u8fd8\u662f\u53ef\u4ee5\u4f7f\u7528\u7684\uff0c\u5982\u679c\u51fa\u73b0\u50cf\u6211\u4e00\u6837\u7684\u95ee\u9898\u53ef\u4ee5\u5148\u5c1d\u8bd5\u91cd\u65b0\u767b\u9646\u4e00\u4e0bMatrix<\/p>\n<p>\u6b63\u662f\u56e0\u4e3a\u8fd9\u6837\uff0c\u6240\u4ee5\u6709\u4e86\u4e0b\u9762\u8fd9\u5957\u76f4\u63a5\u5728\u670d\u52a1\u5668\u5b89\u88c5\u7684\u65b9\u6848\uff0c\u540c\u6837\u662f\u53ef\u884c\u7684<\/p>\n<h2 id=\"\u76f4\u63a5\u5728\u670d\u52a1\u5668\u642d\u5efacoturn\">\u76f4\u63a5\u5728\u670d\u52a1\u5668\u642d\u5efaCoTURN\n<\/h2><hr>\n<h3 id=\"\u5b89\u88c5\">\u5b89\u88c5\n<\/h3><hr>\n<p>Debian\u7cfb\u7edf\u76f4\u63a5<code>apt install coturn<\/code>\u5c31\u5b8c\u6210\u4e86<\/p>\n<p>\u7136\u540e\u901a\u8fc7<code>systemctl status coturn<\/code>\u53ef\u4ee5\u67e5\u770b\u5230coturn\u670d\u52a1\u5df2\u7ecf\u542f\u52a8\u4e86\uff0c\u4f46\u662f\u9ed8\u8ba4\u60c5\u51b5\u4e0bcoturn\u670d\u52a1\u662f\u7531\u5b89\u88c5\u65f6\u521b\u5efa\u7684turnserver\u7528\u6237\u8fd0\u884c\u7684\uff0c\u5982\u679c\u540e\u9762\u8981\u914d\u7f6eSSL\u8bc1\u4e66\u548c\u5bc6\u94a5\uff0c\u90a3\u4e48turnserver\u7528\u6237\u53ef\u80fd\u7531\u4e8e\u65e0\u6cd5\u8bfb\u53d6\u5bfc\u81f4TLS\u65e0\u6cd5\u542f\u52a8<\/p>\n<p>\u6240\u4ee5\u53ef\u4ee5\u8003\u8651\u4fee\u6539coturn\u670d\u52a1\u914d\u7f6e\u4e3aroot\u7528\u6237\uff0c\u4e5f\u5c31\u662f\u4fee\u6539<code>\/lib\/systemd\/system\/coturn.service<\/code>\u4e2d\u7684\u7528\u6237\u548c\u7ec4\u4e3aroot<\/p>\n<h3 id=\"\u914d\u7f6eturnserverconf-1\">\u914d\u7f6eturnserver.conf\n<\/h3><hr>\n<p>\u8fd9\u91cc\u7684\u914d\u7f6e\u662f\u91c7\u7528\u4e86Matrix\u5b98\u65b9\u7684\u5efa\u8bae\uff0c\u4e0e\u4e4b\u524dDocker\u90e8\u7f72\u65f6\u7684\u914d\u7f6e\u4e0d\u540c\uff0c\u4f46\u5e94\u8be5\u90fd\u53ef\u4ee5\u4f7f\u7528<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"l\">use-auth-secret<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">static-auth-secret=your_secret<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">realm=your.domain<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">syslog<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"kc\">no<\/span>-<span class=\"l\">tcp-relay<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"kc\">no<\/span>-<span class=\"l\">multicast-peers<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">user-quota=12<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">total-quota=1200<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">cert=\/etc\/letsencrypt\/live\/your.domain\/fullchain.pem<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"l\">pkey=\/etc\/letsencrypt\/live\/your.domain\/privkey.pem<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u91cd\u542f\u670d\u52a1\">\u91cd\u542f\u670d\u52a1\n<\/h3><hr>\n<p>\u6267\u884c<code>systemctl restart coturn<\/code>\uff0c\u4e0d\u51fa\u610f\u5916\u7684\u8bdd\u5c31\u53ef\u4ee5\u987a\u5229\u8fde\u901a\u4e86<\/p>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>TURN\u670d\u52a1\u5668\u5efa\u8bae\u4f7f\u7528\u4e00\u53f0\u7ebf\u8def\u597d\u7684\u673a\u5668\uff0c\u56e0\u4e3a\u8981\u5c3d\u53ef\u80fd\u4fdd\u8bc1\u8bed\u97f3\u548c\u89c6\u9891\u901a\u8bdd\u7684\u8d28\u91cf<\/p>\n<p>\u6211\u76ee\u524d\u4f7f\u7528\u7684\u662f\u4e00\u53f0\u4e09\u7f51\u4f18\u5316\u7684\u9999\u6e2f\u670d\u52a1\u5668\uff0c\u6d4b\u8bd5\u8fde\u901a\u6027\u548c\u901a\u8bdd\u8d28\u91cf\u90fd\u8f83\u597d<\/p>\n"},{"title":"Docker Compose","link":"https:\/\/been.ee\/p\/0-0-0-26\/","pubDate":"Sat, 06 Jan 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-26\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u6839\u636e<a class=\"link\" href=\"https:\/\/docs.docker.com\/compose\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\u7684\u4ecb\u7ecd\uff0cDocker Compose\u662f\u4e00\u4e2a\u7528\u4e8e\u5b9a\u4e49\u548c\u8fd0\u884c\u591a\u5bb9\u5668Docker\u5e94\u7528\u7a0b\u5e8f\u7684\u5de5\u5177\uff0c\u5b83\u5141\u8bb8\u4f7f\u7528\u4e00\u4e2a<code>docker-compose.yml<\/code>\u6587\u4ef6\u6765\u914d\u7f6e\u8981\u542f\u52a8\u7684\u591a\u5bb9\u5668\u5e94\u7528\u670d\u52a1\uff0c\u7136\u540e\u4f7f\u7528\u4e00\u6761\u547d\u4ee4<code>docker-compose up -d<\/code>\u5c31\u53ef\u4ee5\u542f\u52a8\u6240\u6709\u914d\u7f6e\u7684\u670d\u52a1<\/p>\n<p>\u600e\u4e48\u8bf4\u5462\uff0c\u5b83\u5b9e\u9645\u4e0a\u662f\u65b9\u4fbf\u4e86\u53bb\u914d\u7f6e\u5bb9\u5668\u4e4b\u95f4\u7684\u901a\u4fe1\uff0c\u540c\u65f6\u907f\u514d\u4e86\u5728\u547d\u4ee4\u884c\u8f93\u5165\u5197\u957f\u7684\u547d\u4ee4\uff0c\u901a\u8fc7<code>docker-compose.yml<\/code>\u6587\u4ef6\u8ba9\u5e94\u7528\u670d\u52a1\u7684\u914d\u7f6e\u66f4\u4e00\u76ee\u4e86\u7136<\/p>\n<p>\u6211\u89c9\u5f97\u8fd8\u662f\u6bd4\u8f83\u63a8\u8350\u7528Docker Compose\u66ff\u4ee3\u547d\u4ee4\u884c\u7684<code>docker run<\/code>\uff0c\u603b\u4e4b\u4e5f\u770b\u4e2a\u4eba\u4e60\u60ef\u5427<\/p>\n<h2 id=\"\u5b89\u88c5\">\u5b89\u88c5\n<\/h2><hr>\n<p>\u901a\u5e38\u5b89\u88c5Docker Engine\u7684\u65f6\u5019\u4f1a\u9ed8\u8ba4\u5b89\u88c5Docker Compose\uff0c\u53ef\u4ee5\u6267\u884c<code>docker compose version<\/code>\u67e5\u770b\u662f\u5426\u5df2\u7ecf\u5b89\u88c5\u4e86Docker Compose\u5e76\u67e5\u770b\u5bf9\u5e94\u7248\u672c<\/p>\n<p>\u5982\u679c\u60f3\u8981\u5b89\u88c5\u6700\u65b0\u7248\u7684Docker Compose\uff0c\u53ea\u9700\u8981\u5230Github\u4e0a\u4e0b\u8f7d\u5bf9\u5e94\u81ea\u5df1\u64cd\u4f5c\u7cfb\u7edf\u7684\u6700\u65b0\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6<\/p>\n<p>\u7136\u540e\u628a\u5b83\u91cd\u547d\u540d\u4e3a<code>docker-compose<\/code>\uff08\u6dfb\u52a0<code>-<\/code>\u4e3a\u4e86\u4e0e\u9ed8\u8ba4\u7684Docker Compose\u533a\u5206\uff09\uff0c\u5e76\u6dfb\u52a0\u53ef\u6267\u884c\u6743\u9650(<code>chmod +x docker-compose<\/code>)<\/p>\n<p>\u6700\u540e\u5c06\u5b83\u590d\u5236\u5230\u73af\u5883\u53d8\u91cf\u4e0b\u7684\u4efb\u610f\u8def\u5f84\u5373\u53ef\uff0c\u4e00\u822c\u53ef\u4ee5\u590d\u5236\u5230<code>\/usr\/local\/bin\/<\/code>\u76ee\u5f55\u4e0b\uff0c\u7136\u540e\u6267\u884c<code>docker-compose version<\/code>\uff0c\u68c0\u67e5\u662f\u5426\u5b89\u88c5\u6210\u529f<\/p>\n<h2 id=\"\u4f7f\u7528\">\u4f7f\u7528\n<\/h2><hr>\n<p>Docker Compose\u7684\u4f7f\u7528\u4e3b\u8981\u5728\u4e8e\u7f16\u5199<code>docker-compose.yml<\/code>\u6587\u4ef6\uff0c\u7136\u540e\u6267\u884cDocker Compose\u76f8\u5173\u547d\u4ee4\u63a7\u5236<code>docker-compose.yml<\/code>\u6587\u4ef6\u4e2d\u7684\u914d\u7f6e\u7684\u5e94\u7528\u670d\u52a1\u7684\u542f\u52a8\u7b49\u64cd\u4f5c<\/p>\n<h3 id=\"docker-composeyml\">docker-compose.yml\n<\/h3><hr>\n<p>\u770b\u540e\u7f00\u5c31\u77e5\u9053\u8fd9\u663e\u7136\u662f\u4e00\u4e2aYAML\u6587\u4ef6\uff0c\u5f53\u7136\u5c31\u9700\u8981\u6309\u7167YAML\u7684\u8bed\u6cd5\u7f16\u5199<\/p>\n<p>\u4e0b\u9762\u662f\u4e00\u4e2a<code>docker-compose.yml<\/code>\u7684\u7f16\u5199\u793a\u4f8b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">version<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;3.4&#34;<\/span><span class=\"w\">   <\/span><span class=\"c\"># \u4f7f\u7528\u7684Docker Compose\u6587\u4ef6\u7248\u672c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">web<\/span><span class=\"p\">:<\/span><span class=\"w\">   <\/span><span class=\"c\"># \u5b9a\u4e49web\u670d\u52a1\uff0c\u8fd9\u4e2a\u540d\u5b57\u53ef\u4ee5\u968f\u4fbf\u53d6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;nginx:latest&#34;<\/span><span class=\"w\">   <\/span><span class=\"c\"># \u4f7f\u7528nginx\u7684\u6700\u65b0\u7248\u955c\u50cf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;nginx&#34;<\/span><span class=\"w\">   <\/span><span class=\"c\"># \u8fd9\u91cc\u662f\u6307\u5b9a\u521b\u5efa\u5bb9\u5668\u7684\u540d\u5b57<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;unless-stopped&#34;<\/span><span class=\"w\">   <\/span><span class=\"c\"># \u91cd\u542f\u7b56\u7565\uff1a\u975e\u6b63\u5e38\u9000\u51fa\u65f6\u91cd\u542f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"s2\">&#34;\/docker\/vaultwarden\/data:\/data&#34;<\/span><span class=\"w\">   <\/span><span class=\"c\"># \u6302\u8f7d\u5bbf\u4e3b\u673a\u76ee\u5f55<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"s2\">&#34;127.0.0.1:8000:80&#34;<\/span><span class=\"w\">   <\/span><span class=\"c\"># \u7aef\u53e3\u6620\u5c04<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">TZ=Asia\/Shanghai  <\/span><span class=\"w\"> <\/span><span class=\"c\"># \u8fd9\u90e8\u5206\u7528\u6765\u8bbe\u7f6e\u591a\u4e2a\u73af\u5883\u53d8\u91cf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">db<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;mysql:5.7&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"l\">...<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"><\/span><span class=\"nn\">...<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p><code>docker-compose.yml<\/code>\u6587\u4ef6\u4e2d\u7528\u6765\u914d\u7f6e\u670d\u52a1\u7684\u5173\u952e\u8bcd\u9664\u4e86\u5b9e\u4f8b\u4e2d\u63d0\u4f9b\u7684\u4e4b\u5916\u8fd8\u6709\u5f88\u591a\uff0c\u9700\u8981\u6839\u636e\u4e0d\u540c\u573a\u666f\u914d\u7f6e\uff0c\u901a\u5e38\u53ef\u4ee5\u53c2\u8003\u5b98\u65b9\u7684\u8bf4\u660e\u6765\u7f16\u5199<\/p>\n<h3 id=\"\u547d\u4ee4\u6267\u884c\">\u547d\u4ee4\u6267\u884c\n<\/h3><hr>\n<p>\u5728\u7f16\u5199\u5b8c<code>docker-compose.yml<\/code>\u540e\u5c31\u53ef\u4ee5\u4f7f\u7528<code>docker-compose up -d<\/code>\u542f\u52a8\u914d\u7f6e\u4e2d\u7684\u5bb9\u5668\u5e76\u5728\u540e\u53f0\u8fd0\u884c<\/p>\n<blockquote>\n<p><strong>\u5e38\u7528\u7684\u5176\u4ed6\u547d\u4ee4\uff1a<\/strong><\/p>\n<ul>\n<li>\n<p><code>docker-compose stop<\/code>\uff1a\u505c\u6b62\u670d\u52a1\uff0c\u4f46\u4e0d\u5220\u9664<\/p>\n<\/li>\n<li>\n<p><code>docker-compose down<\/code>\uff1a\u505c\u6b62\u5e76\u5220\u9664\u6240\u6709\u670d\u52a1\u53ca\u5176\u76f8\u5173\u7f51\u7edc\uff0c\u4f46\u4e0d\u5220\u9664\u6570\u636e<\/p>\n<\/li>\n<li>\n<p><code>docker compose down --volumes<\/code>\uff1a\u505c\u6b62\u5e76\u5220\u9664\u6240\u6709\u670d\u52a1\u53ca\u5176\u76f8\u5173\u7f51\u7edc\uff0c\u540c\u65f6\u5220\u9664\u6570\u636e\u5377<\/p>\n<\/li>\n<li>\n<p><code>docker-compose ps<\/code>\uff1a\u5217\u51fa\u5f53\u524d\u76ee\u5f55\u7684\u6240\u6709\u670d\u52a1\u53ca\u5176\u72b6\u6001<\/p>\n<\/li>\n<li>\n<p><code>docker compose logs<\/code>\uff1a\u67e5\u770b\u670d\u52a1\u7684\u65e5\u5fd7\u8f93\u51fa\u3002\u6dfb\u52a0<code>-f<\/code>\u53c2\u6570\u53ef\u8ddf\u8e2a\u5b9e\u65f6\u65e5\u5fd7<\/p>\n<\/li>\n<li>\n<p><code>docker compose run<\/code>\uff1a\u8fd0\u884c\u4e00\u4e2a\u5355\u72ec\u7684\u670d\u52a1\uff0c\u4f8b\u5982\uff0c<code>docker compose run &lt;service_name&gt; &lt;command&gt;<\/code>\u4f1a\u5728\u6307\u5b9a\u7684\u670d\u52a1\u4e2d\u8fd0\u884c\u4e00\u4e2a\u547d\u4ee4<\/p>\n<\/li>\n<li>\n<p><code>docker compose exec<\/code>\uff1a\u5728\u8fd0\u884c\u7684\u5bb9\u5668\u4e2d\u6267\u884c\u547d\u4ee4\uff0c\u4f8b\u5982\uff0c<code>docker compose exec &lt;service_name&gt; &lt;command&gt;<\/code><\/p>\n<\/li>\n<li>\n<p><code>docker compose config<\/code>\uff1a\u67e5\u770b\u914d\u7f6e\uff0c\u8fd9\u4e2a\u547d\u4ee4\u4f1a\u663e\u793a\u6700\u7ec8\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u5408\u5e76\u5e76\u5e94\u7528\u4e86\u6240\u6709\u914d\u7f6e\u6587\u4ef6<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u6ce8\u610f\uff0c<code>docker compose<\/code>\u547d\u4ee4\u9700\u8981\u5728\u5305\u542b<code>docker-compose.yml<\/code>\uff08\u6216<code>docker-compose.yaml<\/code>\uff09\u6587\u4ef6\u7684\u76ee\u5f55\u4e2d\u8fd0\u884c<\/p>\n<p>\u5173\u4e8e<code>docker-compose.yml<\/code>\u6587\u4ef6\u7684\u8be6\u7ec6\u8bf4\u660e\u4ee5\u53ca\u66f4\u591a<code>docker compose<\/code>\u547d\u4ee4\u7684\u4f7f\u7528\u65b9\u6cd5\u53ef\u4ee5\u63a8\u8350\u770b\u4e00\u4e0b\u8fd9\u7bc7<a class=\"link\" href=\"https:\/\/www.cnblogs.com\/crazymakercircle\/p\/15505199.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u535a\u5ba2<\/a>\uff0c\u4ecb\u7ecd\u7684\u975e\u5e38\u8be6\u7ec6<\/p>\n<h2 id=\"\u540e\u8bb0\">\u540e\u8bb0\n<\/h2><hr>\n<p>\u5982\u679c\u56e0\u4e3a\u67d0\u4e9b\u539f\u56e0\u9700\u8981\u4fee\u6539<code>docker-compose.yml<\/code>\u6587\u4ef6\uff0c\u90a3\u4e48\u4fee\u6539\u540e\u53ef\u4ee5\u76f4\u63a5\u6267\u884c<code>docker-compose up -d<\/code>\u6765\u5e94\u7528\u4fee\u6539\u540e\u7684\u914d\u7f6e\uff0c\u4f46\u8981\u6ce8\u610f\u7684\u662f\u5982\u679c\u53ea\u662f\u4fee\u6539\u4e86\u73af\u5883\u53d8\u91cf\u6216\u8005\u7aef\u53e3\u6620\u5c04\u7b49\u53c2\u6570\u901a\u5e38\u4e0d\u4f1a\u91cd\u65b0\u6784\u5efa\u670d\u52a1\uff0c\u4e5f\u5c31\u662f\u5bb9\u5668\u4e2d\u7684\u6570\u636e\u4f1a\u4fdd\u7559\uff1b\u4f46\u5982\u679c\u4fee\u6539\u4e86\u955c\u50cf\uff0c\u90a3\u4e48\u5c31\u4f1a\u91cd\u6784\u670d\u52a1\uff0c\u539f\u5148\u7684\u6570\u636e\u4e5f\u4f1a\u4e22\u5931<\/p>\n<p>\u6240\u4ee5\u8fd8\u662f\u5efa\u8bae\u5c3d\u53ef\u80fd\u4f7f\u7528volume\uff08\u76ee\u5f55\u6302\u8f7d\uff09\u6765\u8fdb\u884c\u6570\u636e\u6301\u4e45\u5316\uff0c\u5e76\u6839\u636e\u60c5\u51b5\u505a\u597d\u6570\u636e\u5907\u4efd<\/p>\n"},{"title":"\u4e00\u6b3e\u5f88\u597d\u7528\u7684\u6587\u732e\u7ba1\u7406 - Zotero","link":"https:\/\/been.ee\/p\/0-0-0-25\/","pubDate":"Wed, 03 Jan 2024 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-25\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u6700\u5f00\u59cb\u63a5\u89e6\u7684\u6587\u732e\u7ba1\u7406\u8f6f\u4ef6\u5c31\u662f\u6bd4\u8f83\u77e5\u540d\u7684Endnote\uff0c\u90a3\u65f6\u5019\u521a\u4e0a\u7814\u4e00\uff0c\u521a\u5f00\u59cb\u4ec0\u4e48\u90fd\u4e0d\u4f1a\u7684\u65f6\u5019\u5c31\u5148\u5b66\u7528\u4e00\u4e9b\u5e38\u7528\u7684\u8f6f\u4ef6\uff0cEndnote\u5c31\u662f\u5176\u4e2d\u4e4b\u4e00<\/p>\n<p>\u4f46\u662fEndnote\u540e\u9762\u7528\u7684\u65f6\u5019\u53d1\u73b0\u4fdd\u5b58\u7684\u6587\u732e\u6761\u76ee\u591a\u4e86\u4e4b\u540e\u4f1a\u53d8\u5361\uff0c\u800c\u4e14\u7528\u4e45\u4e86\u53d1\u73b0\u7528\u5b83\u6253\u5f00\u6587\u732e\u8fd8\u4e0d\u5982\u76f4\u63a5\u4ece\u8c37\u6b4c\u5b66\u672f\u6253\u5f00\u6765\u7684\u65b9\u4fbf\uff0c\u6211\u8fd8\u80fd\u76f4\u63a5\u7528\u7f51\u9875\u7ffb\u8bd1\u529f\u80fd\uff0c\u6240\u4ee5\u540e\u6765\u7528Endnote\u5176\u5b9e\u4e3b\u8981\u5c31\u662f\u5199\u8bba\u6587\u7684\u65f6\u5019\u63d2\u5165\u6587\u732e\u7528\uff0c\u8fd9\u4e2a\u529f\u80fd\u8fd8\u662f\u6bd4\u8f83\u5b9e\u7528\u7684\uff08\u5728\u81ea\u5b9a\u4e49\u6587\u732e\u63d2\u5165\u6837\u5f0f\u65b9\u9762Endnote\u76f8\u8f83\u4e8eZotero\u8fd8\u662f\u66f4\u65b9\u4fbf\u7684\uff0c\u56e0\u4e3aZotero\u60f3\u81ea\u5b9a\u4e49\u6837\u5f0f\u9700\u8981\u5199\uff08\u6539\uff09XML\u6587\u672c\uff0c\u4ee5\u524dZotero\u662f\u652f\u6301\u76f4\u63a5\u7528Endnote\u7684\u6837\u5f0f\u7684\uff0c\u597d\u50cf\u5c31\u88abEndnote\u7ed9\u544a\u4e86\uff0c\u53ef\u6076\u554a\uff09<\/p>\n<h2 id=\"\u4ecb\u7ecd\">\u4ecb\u7ecd\n<\/h2><hr>\n<p>Zotero\u662f\u6211\u6700\u8fd1\u624d\u77e5\u9053\u7684\uff0c\u76ee\u524d\u6211\u8fd8\u6ca1\u6709\u53d1\u73b0\u5468\u56f4\u6709\u5176\u4ed6\u4eba\u5728\u7528\uff0c\u5b83\u662f\u4e00\u6b3e\u514d\u8d39\u5f00\u6e90\u7684\u53c2\u8003\u6587\u732e\u7ba1\u7406\u8f6f\u4ef6\uff0c\u6700\u65e9\u7531\u4e54\u6cbb\u6885\u68ee\u5927\u5b66\u5f00\u53d1\uff0c\u5927\u5bb6\u53ef\u4ee5\u5230<a class=\"link\" href=\"https:\/\/www.zotero.org\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u7f51<\/a>\u76f4\u63a5\u4e0b\u8f7d<\/p>\n<p>\u96c6\u6210\u4e86\u6d4f\u89c8\u5668\u63d2\u4ef6\u53ef\u4ee5\u76f4\u63a5\u5bfc\u5165\u6587\u732e\u5e93\uff0c\u751a\u81f3\u80fd\u81ea\u52a8\u4ece\u7f51\u9875\u5bfc\u5165\u6587\u732e\u7684PDF\uff08\u5982\u679c\u53ef\u4ee5\u514d\u8d39\u83b7\u53d6\u7684\u8bdd\uff0c\u4e0d\u8fc7\u76ee\u524d\u5bfc\u5165\u7231\u601d\u7ef4\u5c14\u7684PDF\u597d\u50cf\u6709\u70b9\u95ee\u9898\uff09\uff0c\u652f\u6301\u5728\u7ebf\u540c\u6b65\uff0c\u6587\u732e\u63d2\u5165\uff0c\u540c\u65f6\u96c6\u6210\u4e86PDF\u548c\u7b14\u8bb0\u7f16\u8f91\u5668\u7b49\u529f\u80fd\uff0c\u53ef\u4ee5\u8bf4\u662f\u5f88\u65b9\u4fbf\u5b9e\u7528\u4e86<\/p>\n<h2 id=\"\u4f7f\u7528\">\u4f7f\u7528\n<\/h2><hr>\n<p>\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cZotero\u4e00\u5b9a\u8981\u914d\u5408\u6d4f\u89c8\u5668\u63d2\u4ef6\u4f7f\u7528\uff0c\u4e3b\u6d41\u6d4f\u89c8\u5668\u53ef\u4ee5\u76f4\u63a5\u5728\u4ed3\u5e93\u641c\u7d22Zotero\u5c31\u80fd\u627e\u5230\uff0c\u5e73\u65f6\u6d4f\u89c8\u6587\u732e\u7684\u65f6\u5019\u60f3\u8981\u4fdd\u5b58\u4e0b\u6765\u53ea\u9700\u8981\u70b9\u4e00\u4e0b\u63d2\u4ef6\u5c31\u53ef\u4ee5\u4e00\u6b65\u5230\u4f4d\uff0c\u975e\u5e38\u65b9\u4fbf<\/p>\n<p>\u5982\u679cPDF\u6ca1\u80fd\u81ea\u52a8\u4fdd\u5b58\u4e0b\u6765\u4e5f\u53ef\u4ee5\u624b\u52a8\u4e0b\u8f7d\u540e\uff0c\u76f4\u63a5\u62d6\u5230\u5bf9\u5e94\u7684\u6587\u732e\u6761\u76ee\u5373\u53ef<\/p>\n<p>\u5728\u8f6f\u4ef6\u4e2d\u7ba1\u7406\u6587\u732e\u7684\u65b9\u6cd5\u5927\u5bb6\u53ef\u4ee5\u81ea\u5df1\u8bbe\u7f6e\u6587\u732e\u5e93\u6761\u76ee\u3001\u5206\u7c7b\u548c\u6807\u7b7e\u7b49\uff0c\u6839\u636e\u9700\u8981\u5c06\u6587\u732e\u5bfc\u5165\u5bf9\u5e94\u7684\u76ee\u5f55\u5c31\u597d\u4e86\uff0c\u56de\u770b\u7684\u65f6\u5019\u53ea\u9700\u8981\u53cc\u51fb\u5c31\u80fd\u5728Zotero\u4e2d\u76f4\u63a5\u6253\u5f00PDF\uff0c\u5e76\u63d0\u4f9b\u4e86\u6807\u8bb0\u548c\u7ffb\u8bd1\uff08\u5b89\u88c5\u63d2\u4ef6\uff09\u7b49\u529f\u80fd\uff0c\u5e38\u89c4\u4f7f\u7528\u8fd9\u91cc\u5c31\u4e0d\u8fc7\u591a\u4ecb\u7ecd\u4e86<\/p>\n<h3 id=\"\u63d2\u4ef6\">\u63d2\u4ef6\n<\/h3><hr>\n<p>Zotero\u63d0\u4f9b\u4e86\u4e30\u5bcc\u7684\u63d2\u4ef6\u529f\u80fd\uff0c\u63a8\u8350\u5927\u5bb6\u53bb<a class=\"link\" href=\"https:\/\/plugins.zotero-chinese.com\/#\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u4e2d\u6587\u63d2\u4ef6\u5b98\u7f51<\/a>\u67e5\u770b\uff0c\u5b89\u88c5\u65b9\u6cd5\u5f88\u7b80\u5355\uff0c\u53ea\u9700\u8981\u5230\u5b98\u7f51\u4e0b\u8f7d\u63d2\u4ef6\u540e\uff0c\u6253\u5f00Zotero\u5e94\u7528\uff0c\u6253\u5f00&quot;\u5de5\u5177&quot;\u2014&ldquo;\u6dfb\u52a0\u9644\u4ef6&rdquo;\uff0c\u7136\u540e\u5c06\u4e0b\u8f7d\u597d\u7684\u63d2\u4ef6\u62d6\u8fdb\u53bb\u5c31\u53ef\u4ee5\u4e86<\/p>\n<p>\u6211\u81ea\u5df1\u4e5f\u521a\u5f00\u59cb\u4f7f\u7528\uff0c\u76ee\u524d\u53ea\u5b89\u88c5\u4e86\u4e00\u4e2a\u7ffb\u8bd1\u63d2\u4ef6\uff08Zotero PDF Translate\uff09\uff0c\u5927\u5bb6\u53ef\u4ee5\u53bb\u5b98\u7f51\u6839\u636e\u9700\u8981\u4e0b\u8f7d<\/p>\n<h3 id=\"\u540c\u6b65\">\u540c\u6b65\n<\/h3><hr>\n<p>\u4e0b\u8f7d\u5b89\u88c5\u597d\u540e\u9700\u8981\u6ce8\u518c\u4e00\u4e2a\u8d26\u53f7\uff0c\u7528\u6765\u540c\u6b65\u4fe1\u606f\uff0c\u9700\u8981\u6ce8\u610f\u7684\u4e00\u70b9\u662f\uff0cZotero\u7684\u9644\u4ef6\u540c\u6b65\u9ed8\u8ba4\u662f\u7528\u7684\u5b98\u65b9\u7684\u4e91\u5b58\u50a8\uff0c\u9ed8\u8ba4\u63d0\u4f9b300MB\u7684\u514d\u8d39\u7a7a\u95f4\uff0c\u8fd9\u901a\u5e38\u662f\u4e0d\u591f\u7528\u7684\uff0c\u989d\u5916\u7684\u7a7a\u95f4\u9700\u8981<a class=\"link\" href=\"https:\/\/www.zotero.org\/storage\"  target=\"_blank\" rel=\"noopener\"\n    >\u4ed8\u8d39<\/a>\u8d2d\u4e70\u3002\u53e6\u4e00\u79cd\u65b9\u5f0f\u5c31\u662f\u540c\u6b65\u5230\u6211\u4eec\u81ea\u5df1\u7684\u4e91\u5b58\u50a8\uff0c\u4f46\u662f\u9700\u8981\u652f\u6301WebDAV\u534f\u8bae\uff0c\u8fd9\u91cc\u6211\u7528\u7684\u662f\u81ea\u5df1\u7684Nextcloud\u7f51\u76d8\u6765\u8fdb\u884c\u7684\u540c\u6b65\uff0c\u5927\u5bb6\u4e5f\u53ef\u4ee5\u7528\u5176\u4ed6\u652f\u6301WebDAV\u7684\u5546\u4e1a\u7f51\u76d8<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-25\/pic1.png\"\n\twidth=\"1014\"\n\theight=\"1125\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-25\/pic1_hu_f5a6e7d37534c501.png 480w, https:\/\/been.ee\/p\/0-0-0-25\/pic1_hu_8512506d13008e3e.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"90\"\n\t\tdata-flex-basis=\"216px\"\n\t\n><\/p>\n<h3 id=\"\u8bbe\u7f6e\u5230sci-hub\u4e0b\u8f7d\u6587\u732e\">\u8bbe\u7f6e\u5230SCI-HUB\u4e0b\u8f7d\u6587\u732e\n<\/h3><hr>\n<p>\u6709\u65f6\u5019Zotero\u65e0\u6cd5\u76f4\u63a5\u4ece\u7f51\u9875\u83b7\u53d6PDF\uff0c\u8fd9\u65f6\u6211\u4eec\u53ef\u4ee5\u8bbe\u7f6e\u8ba9\u5b83\u5728\u65e0\u6cd5\u83b7\u53d6\u7684\u65f6\u5019\u81ea\u52a8\u5230SCI-HUB\u4e2d\u67e5\u627e\uff0c\u7701\u53bb\u4e86\u6211\u4eec\u81ea\u5df1\u67e5\u627e\u5e76\u624b\u52a8\u63d2\u5165\u7684\u65f6\u95f4<\/p>\n<p>\u65b9\u6cd5\u662f\u6253\u5f00&quot;Zotero\u9996\u9009\u9879&quot;\u2014&ldquo;\u9ad8\u7ea7&rdquo;\u2014&ldquo;\u9ad8\u7ea7\u8bbe\u7f6e&rdquo;\u2014&ldquo;\u7f16\u8f91\u5668&rdquo;\uff0c\u641c\u7d22findPDF\u627e\u5230<code>extensions.zotero.findPDFs.resolvers<\/code>\uff0c\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">{     &#34;name&#34;:&#34;Sci-Hub&#34;,     &#34;method&#34;:&#34;GET&#34;,     &#34;url&#34;:&#34;https:\/\/sci-hub.se\/{doi}&#34;,     &#34;mode&#34;:&#34;html&#34;,     &#34;selector&#34;:&#34;#pdf&#34;,     &#34;attribute&#34;:&#34;src&#34;,     &#34;automatic&#34;:true }\n<\/span><\/span><\/code><\/pre><\/div><p><img src=\"https:\/\/been.ee\/p\/0-0-0-25\/pic2.png\"\n\twidth=\"1196\"\n\theight=\"892\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-25\/pic2_hu_cc941a28dcdfb309.png 480w, https:\/\/been.ee\/p\/0-0-0-25\/pic2_hu_4351be3ee45c8474.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"134\"\n\t\tdata-flex-basis=\"321px\"\n\t\n><\/p>\n<h3 id=\"\u6587\u732e\u5f15\u7528\">\u6587\u732e\u5f15\u7528\n<\/h3><hr>\n<p>Zotero\u63d0\u4f9b\u4e86Word\u7b49\u5e38\u7528\u7f16\u8f91\u8f6f\u4ef6\u7684\u63d2\u4ef6\uff0c\u7c7b\u4f3cEndnote\u4e00\u6837\u53ef\u4ee5\u76f4\u63a5\u901a\u8fc7\u63d2\u4ef6\u5728Word\u4e2d\u63d2\u5165\u6587\u732e\uff0c\u6bd4\u8f83\u5934\u75bc\u7684\u662f\u81ea\u5b9a\u4e49\u6837\u5f0f\u6bd4\u8f83\u9ebb\u70e6\uff0c\u9700\u8981\u7f16\u5199XML\u6587\u672c\uff0c\u6709\u9700\u8981\u7684\u8bdd\u53ef\u4ee5\u627e\u4e00\u4e2a\u7c7b\u4f3c\u7684\u6a21\u677f\uff0c\u5728\u6a21\u677f\u4e0a\u8fdb\u884c\u4fee\u6539\u4f1a\u65b9\u4fbf\u4e00\u4e9b<\/p>\n<p>\u597d\u5728Zotero\u63d0\u4f9b\u4e86\u6bd4\u8f83\u591a\u7684\u6587\u732e\u6837\u5f0f\u6a21\u677f\uff0c\u76ee\u524d\u6211\u9700\u8981\u7684\u51e0\u4e2a\u90fd\u80fd\u627e\u5230\uff0c\u5927\u5bb6\u4e5f\u53ef\u4ee5\u5148\u8bd5\u7740\u5728\u5b83\u63d0\u4f9b\u7684\u6a21\u677f\u5e93\u91cc\u627e\u4e00\u4e0b\u770b\u770b\uff0c\u5b9e\u5728\u4e0d\u884c\u8fd8\u6709Endnote<\/p>\n<h3 id=\"\u8bbe\u7f6e\u4ee3\u7406\u670d\u52a1\u5668\">\u8bbe\u7f6e\u4ee3\u7406\u670d\u52a1\u5668\n<\/h3><hr>\n<p>\u6253\u5f00&quot;Zotero\u9996\u9009\u9879&quot;\u2014&ldquo;\u9ad8\u7ea7&rdquo;\u2014&ldquo;\u9ad8\u7ea7\u8bbe\u7f6e&rdquo;\u2014&ldquo;\u7f16\u8f91\u5668&rdquo;\uff0c\u641c\u7d22<code>network.proxy<\/code>\uff0c\u7136\u540e\uff1a<\/p>\n<ul>\n<li>\n<p>\u5c06<code>network.proxy.socks<\/code>\u4fee\u6539\u4e3asocks\u4ee3\u7406\u670d\u52a1\u5668\u5730\u5740\uff08<code>127.0.0.1<\/code>\uff09<\/p>\n<\/li>\n<li>\n<p>\u5c06<code>network.proxy.socks_port<\/code>\u4fee\u6539\u4e3asocks\u4ee3\u7406\u670d\u52a1\u5668\u7aef\u53e3<\/p>\n<\/li>\n<li>\n<p>\u5c06<code>network.proxy.socks_remote_dns<\/code>\u8bbe\u4e3a<code>true<\/code>\u6765\u4f7f\u7528\u4ee3\u7406\u670d\u52a1\u5668\u7684DNS<\/p>\n<\/li>\n<li>\n<p>\u5c06<code>network.proxy.type<\/code>\u8bbe\u7f6e\u4e3a<code>1<\/code>\uff0c\u5373\u53ef<\/p>\n<\/li>\n<\/ul>\n<p>\u8bbe\u7f6e\u5b8c\u540eZotero\u4f1a\u5c06\u6240\u6709\u8bf7\u6c42\uff08\u5305\u62ec\u63d2\u4ef6\uff09\u90fd\u91cd\u5b9a\u5411\u5230\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u65b9\u4fbf\u6211\u4eec\u8bbf\u95eeSCI-HUB\uff0c\u540c\u6b65\u670d\u52a1\u5668\u7b49<\/p>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u603b\u7684\u6765\u8bf4\uff0cZotero\u76ee\u524d\u7684\u4f7f\u7528\u4f53\u9a8c\u8fd8\u662f\u975e\u5e38\u597d\u7684\uff0c\u611f\u89c9\u6bd4Endnote\u66f4\u52a0\u6d41\u7545\uff0c\u5b83\u96c6\u6210\u7684\u8bb8\u591a\u529f\u80fd\u548c\u63d2\u4ef6\u90fd\u8fd8\u662f\u6bd4\u8f83\u5b9e\u7528\u7684\uff0c\u6bd4\u8f83\u63a8\u8350\u4f7f\u7528<\/p>\n<p>\u53e6\u5916\uff0cZotero\u597d\u50cf\u63d0\u4f9b\u4e86IOS\u7684APP\uff0c\u4e0d\u8fc7\u6211\u8fd8\u6ca1\u4e0b\u8f7d\u8bd5\u8fc7\uff0c\u800c\u4e14\u611f\u89c9\u7528\u5904\u4e5f\u4e0d\u5927\uff0c\u6bd5\u7adf\u8c01\u6bcf\u5929\u7528\u6252\u62c9\u624b\u673a\u770b\u6587\u732e\u5bf9\u5427<\/p>\n"},{"title":"\u90e8\u7f72 Vaultwarden \u5bc6\u7801\u7ba1\u7406\u5668","link":"https:\/\/been.ee\/p\/0-0-0-24\/","pubDate":"Sun, 31 Dec 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-24\/","description":"<h2 id=\"vaultwarden\u4ecb\u7ecd\">Vaultwarden\u4ecb\u7ecd\n<\/h2><hr>\n<p>Vaultwarden\u662f\u4e00\u4e2a\u4f7f\u7528Rust\u7f16\u5199\u7684\u53ef\u4ee5\u4e0eBitwarden\u517c\u5bb9\u7684<a class=\"link\" href=\"https:\/\/github.com\/dani-garcia\/vaultwarden\"  target=\"_blank\" rel=\"noopener\"\n    >\u5f00\u6e90\u9879\u76ee<\/a>\uff0c\u53ef\u4ee5\u7528\u6765\u7ba1\u7406\u5404\u79cd\u767b\u9646\u5bc6\u7801\u548c\u8eab\u4efd\u4fe1\u606f\u7b49\u5404\u79cd\u9690\u79c1\u654f\u611f\u5185\u5bb9<\/p>\n<p>\u5c3d\u7ba1Bitwarden\u4e5f\u5f00\u6e90\uff0c\u4f46\u5b83\u5bf9\u670d\u52a1\u5668\u7684\u8981\u6c42\u6bd4\u8f83\u9ad8\uff0c\u4e00\u822c\u9700\u89812GB\u4ee5\u4e0a\u7684\u5185\u5b58\uff0c\u800cVaultwarden\u8fd0\u884c\u65f6\u53ea\u9700\u898110MB\u5185\u5b58\uff0c\u56e0\u6b64\u66f4\u9002\u5408\u79c1\u4eba\u5c0f\u670d\u52a1\u5668\u90e8\u7f72<\/p>\n<h2 id=\"\u642d\u5efa\">\u642d\u5efa\n<\/h2><hr>\n<p>\u9700\u8981\u4f7f\u7528Docker\u90e8\u7f72Vaultwarden\uff0c\u9996\u5148\u786e\u4fdd\u670d\u52a1\u5668\u5df2\u7ecf\u5b89\u88c5\u4e86Docker\u548cDocker Compose\uff0c\u5177\u4f53\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/dockerdocs.cn\/engine\/install\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b89\u88c5Docker<\/a>\u548c<a class=\"link\" href=\"https:\/\/dockerdocs.cn\/compose\/install\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b89\u88c5Docker Compose<\/a><\/p>\n<p>\u9996\u5148\u65b0\u5efa\u4e00\u4e2a\u7528\u6765\u6302\u8f7d\u5bb9\u5668\u91cd\u8981\u6570\u636e\u7684\u76ee\u5f55<code>\/docker\/vaultwarden\/data\/<\/code>\uff0c\u7136\u540e\u5728<code>\/docker\/vaultwarden\/<\/code>\u76ee\u5f55\u4e0b\u7f16\u5199\u4e00\u4e2a<code>docker-compose.yml<\/code>\u6587\u4ef6\uff0c\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span><span class=\"nt\">VaultWarden<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;vaultwarden\/server:latest&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;vaultwarden&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">restart<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;unless-stopped&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"s2\">&#34;\/docker\/vaultwarden\/data:\/data&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"s2\">&#34;127.0.0.1:8000:80&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">    <\/span><span class=\"nt\">environment<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">TZ=Asia\/Shanghai<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">ADMIN_TOKEN=YourStrongToken<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">DOMAIN=YourDomain<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">SIGNUPS_ALLOWED=true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">WEB_VAULT_ENABLED=true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">LOG_FILE=\/data\/vaultwarden.log<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">SHOW_PASSWORD_HINT=false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span><span class=\"c\"># SMTP CONFIG<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">SMTP_HOST=mail.xxx.com<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">SMTP_PORT=465<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">SMTP_SECURITY=force_tls<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">SMTP_USERNAME=notify@xxx.com<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">SMTP_PASSWORD=Password<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">      <\/span>- <span class=\"l\">SMTP_FROM=notify@xxx.com<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u4e0b\u9762\u5bf9\u4e3b\u8981\u7684\u73af\u5883\u53d8\u91cf\u8fdb\u884c\u8bf4\u660e\uff1a<\/p>\n<blockquote>\n<ul>\n<li>\n<p><code>SIGNUPS_ALLOWED<\/code>\uff1a\u8fd9\u4e2a\u53d8\u91cf\u4e00\u5b9a\u8981\u8bbe\u4e3a<code>true<\/code>\uff0c\u4e0d\u7136\u6ca1\u6709\u529e\u6cd5\u6ce8\u518c\u7528\u6237\uff0c\u5982\u679c\u60f3\u8981\u81ea\u7528\u5e76\u9632\u6b62\u522b\u4eba\u6ce8\u518c\uff0c\u53ef\u4ee5\u5728\u6ce8\u518c\u540e\u5173\u6389<\/p>\n<\/li>\n<li>\n<p><code>ADMIN_TOKEN<\/code>\uff1a\u8fd9\u4e2a\u53d8\u91cf\u975e\u5e38\u91cd\u8981\uff0c\u53ef\u4ee5\u7528\u6765\u8fdb\u5165\u7ba1\u7406\u754c\u9762\uff08<code>\/admin<\/code>\uff09\u4fee\u6539\u914d\u7f6e\uff0c\u5efa\u8bae\u4f7f\u7528<code>openssl rand -base64 48<\/code>\u751f\u6210\uff0c\u7136\u540e\u4f7f\u7528\u8fd9\u4e2a\u5bc6\u7801\u751f\u6210PHC\u5b57\u7b26\u4e32\u8bb0\u5f55\u5728\u8fd9\u91cc\uff0c\u53e6\u5916\u8981\u6ce8\u610f\u5982\u679c\u4f7f\u7528Docker Compose\u542f\u52a8\u5bb9\u5668\uff0c\u90a3\u4e48\u751f\u6210\u7684PHC\u5b57\u7b26\u4e32\u4e2d\u7684<code>$<\/code>\u7b26\u53f7\u9700\u8981\u66ff\u6362\u4e3a<code>$$<\/code>\u5177\u4f53\u53ef\u4ee5\u53c2\u8003\u8fd9\u7bc7<a class=\"link\" href=\"https:\/\/github.com\/dani-garcia\/vaultwarden\/wiki\/Enabling-admin-page\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a><\/p>\n<\/li>\n<li>\n<p><code>SHOW_PASSWORD_HINT<\/code>\uff1a\u7528\u4e8e\u663e\u793a\u5bc6\u7801\u63d0\u793a\uff0c\u56e0\u4e3a\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5728\u767b\u9646\u7684\u65f6\u5019\u4f1a\u81ea\u52a8\u663e\u793a\uff0c\u4e0d\u5e0c\u671b\u663e\u793a\u7684\u8bdd\u5c31\u5173\u6389<\/p>\n<\/li>\n<li>\n<p><code>WEB_VAULT_ENABLED<\/code>\uff1a\u662f\u7528\u4e8e\u542f\u7528Web\u7aef\u8bbf\u95ee<\/p>\n<\/li>\n<li>\n<p>\u6700\u540e\u5173\u4e8e<code>SMTP<\/code>\u90e8\u5206\u7684\u8bbe\u7f6e\u9700\u8981\u6839\u636e\u81ea\u5df1\u7528\u7684\u90ae\u7bb1\u8bbe\u7f6e\uff0c\u5177\u4f53\u53ef\u4ee5\u53c2\u8003\u8fd9\u7bc7<a class=\"link\" href=\"https:\/\/rs.ppgg.in\/configuration\/smtp-configuration\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\uff1b\u53e6\u5916\u9700\u8981\u6ce8\u610f\uff0c\u914d\u7f6e\u90ae\u7bb1\u5e76\u4e0d\u80fd\u5e2e\u4f60\u627e\u56de\u5bc6\u7801\uff0c\u53ea\u80fd\u7ed9\u4f60\u53d1\u9001\u8bbe\u7f6e\u7684\u63d0\u793a\u8bcd\uff0c\u4e00\u65e6\u5fd8\u8bb0\u4e3b\u5bc6\u7801\u5c31\u65e0\u6cd5\u627e\u56de\uff0c\u6240\u4ee5\u4e3b\u5bc6\u7801\u975e\u5e38\u91cd\u8981\uff01\u5207\u8bb0\uff01\uff01\uff01<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u7136\u540e\uff0c\u6267\u884c<code>docker-compose up -d<\/code>\u542f\u52a8\u5bb9\u5668\uff0c\u6b64\u65f6\u670d\u52a1\u5df2\u7ecf\u642d\u5efa\u5728\u4e86\u670d\u52a1\u5668\u672c\u5730\uff0c\u7136\u540e\u9700\u8981\u914d\u7f6eNginx\u8fdb\u884c\u53cd\u5411\u4ee3\u7406\uff0c\u914d\u7f6e\u5982\u4e0b\uff08\u9700\u8981\u5c06\u57df\u540d\u548c\u8bc1\u4e66\u66ff\u6362\u4e3a\u81ea\u5df1\u7684\uff09\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># &#39;upstream&#39; \u6307\u4ee4\u786e\u4fdd\u4f60\u6709\u4e00\u4e2a http\/1.1 \u8fde\u63a5<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u8fd9\u91cc\u542f\u7528\u4e86 keepalive \u9009\u9879\u5e76\u62e5\u6709\u66f4\u597d\u7684\u6027\u80fd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6b64\u5904\u5b9a\u4e49\u670d\u52a1\u5668\u7684 IP \u548c\u7aef\u53e3\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">upstream vaultwarden-default <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  zone vaultwarden-default 64k<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  server 127.0.0.1:8000<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  keepalive 2<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u8981\u652f\u6301 websocket \u8fde\u63a5\u7684\u8bdd\u624d\u9700\u8981<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u53c2\u9605\uff1ahttps:\/\/nginx.org\/en\/docs\/http\/websocket.html<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6211\u4eec\u4e0d\u53d1\u9001\u4e0a\u8ff0\u94fe\u63a5\u4e2d\u6240\u8bf4\u7684 &#34;close&#34;\uff0c\u800c\u662f\u53d1\u9001\u4e00\u4e2a\u7a7a\u503c\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5426\u5219\u6240\u6709\u7684 keepalive \u8fde\u63a5\u90fd\u5c06\u65e0\u6cd5\u5de5\u4f5c\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">map <span class=\"nv\">$http_upgrade<\/span> <span class=\"nv\">$connection_upgrade<\/span> <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    default upgrade<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s1\">&#39;&#39;<\/span>      <span class=\"s2\">&#34;&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5c06 HTTP \u91cd\u5b9a\u5411\u5230 HTTPS<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen 80<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server_name YourDomain<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">return<\/span> <span class=\"m\">301<\/span> https:\/\/<span class=\"nv\">$server_name$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># \u5bf9\u4e8e\u65e7\u7248\u672c\u7684 nginx\uff0c\u5728 ssl \u540e\u9762\u7684 listen \u884c\u4e2d\u52a0\u5165 http2\uff0c\u5e76\u79fb\u9664 &#39;http2 on;&#39;\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen <span class=\"m\">443<\/span> ssl<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    http2 on<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server_name YourDomain<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># \u6839\u636e\u9700\u8981\u6307\u5b9a SSL \u914d\u7f6e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate \/etc\/letsencrypt\/live\/YourDomain\/fullchain.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate_key \/etc\/letsencrypt\/live\/YourDomain\/privkey.pem<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#ssl_trusted_certificate \/path\/to\/certificate\/letsencrypt\/live\/vaultwarden.example.tld\/fullchain.pem;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    client_max_body_size 525M<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    location \/ <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_http_version 1.1<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header Upgrade <span class=\"nv\">$http_upgrade<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header Connection <span class=\"nv\">$connection_upgrade<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header Host <span class=\"nv\">$host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Real-IP <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Forwarded-For <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_set_header X-Forwarded-Proto <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      proxy_pass http:\/\/vaultwarden-default<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"o\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># \u9664\u4e86 ADMIN_TOKEN \u4e4b\u5916\uff0c\u8fd8\u53ef\u4ee5\u9009\u62e9\u6dfb\u52a0\u989d\u5916\u7684\u8eab\u4efd\u9a8c\u8bc1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># \u5220\u9664\u4e0b\u9762\u7684 &#39;#&#39; \u6ce8\u91ca\u5e76\u521b\u5efa htpasswd_file \u4ee5\u4f7f\u5176\u5904\u4e8e\u6d3b\u52a8\u72b6\u6001<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#location \/admin {<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#  # \u53c2\u9605\uff1ahttps:\/\/docs.nginx.com\/nginx\/admin-guide\/security-controls\/configuring-http-basic-authentication\/<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#  auth_basic &#34;Private&#34;;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#  auth_basic_user_file \/path\/to\/htpasswd_file;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#  proxy_http_version 1.1;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#  proxy_set_header Upgrade $http_upgrade;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#  proxy_set_header Connection $connection_upgrade;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#  proxy_set_header Host $host;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#  proxy_set_header X-Real-IP $remote_addr;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#  proxy_set_header X-Forwarded-Proto $scheme;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#  proxy_pass http:\/\/vaultwarden-default;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u542f\u52a8Nginx\u540e\uff0c\u5c31\u53ef\u4ee5\u7528\u57df\u540d\u8bbf\u95ee\u670d\u52a1\uff0c\u6ce8\u518c\u8d26\u6237\u8fdb\u884c\u4f7f\u7528<\/p>\n<p>\u6ce8\u518c\u5b8c\u8d26\u6237\u540e\uff0c\u5982\u679c\u60f3\u7981\u7528\u6389\u6ce8\u518c\u529f\u80fd\u81ea\u5df1\u4f7f\u7528\uff0c\u4fee\u6539<code>docker-compose.yml<\/code>\u6587\u4ef6\u4e2d\u7684<code>SIGNUPS_ALLOWED<\/code>\uff0c\u5c06\u503c\u6539\u4e3a<code>false<\/code>\uff0c\u7136\u540e\u91cd\u65b0\u6267\u884c<code>docker-compose up -d<\/code>\u5373\u53ef<\/p>\n<h2 id=\"\u914d\u7f6e\u548c\u4f7f\u7528\">\u914d\u7f6e\u548c\u4f7f\u7528\n<\/h2><hr>\n<p>\u6309\u7167\u4e0a\u9762\u90e8\u7f72\u5b8c\u540e\u53ef\u4ee5\u76f4\u63a5\u901a\u8fc7\u7f51\u9875\u6253\u5f00\u767b\u9646\u5c31\u53ef\u4ee5\u81ea\u884c\u4f7f\u7528\uff0c\u5982\u679c\u60f3\u4fee\u6539\u914d\u7f6e\u53ef\u4ee5\u901a\u8fc7<code>docker-compose.yml<\/code>\u4e2d\u4fee\u6539\u73af\u5883\u53d8\u91cf\u6765\u5b9e\u73b0\uff08\u53ef\u4ee5\u5230<a class=\"link\" href=\"https:\/\/github.com\/dani-garcia\/vaultwarden\/blob\/main\/.env.template\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u91cc<\/a>\u67e5\u770b\u53ef\u4fee\u6539\u7684\u73af\u5883\u53d8\u91cf\u5217\u8868\uff09\uff0c\u4e5f\u53ef\u4ee5\u76f4\u63a5\u8bbf\u95ee<code>https:\/\/your_domain\/admin<\/code>\u8fd9\u4e2a\u7ba1\u7406\u9875\u9762\u8fdb\u884c\u4fee\u6539\uff08\u4f46\u4e0d\u63a8\u8350\uff09<\/p>\n<p>\u7531\u4e8eVaultwarden\u517c\u5bb9Bitwarden\uff0c\u53ef\u4ee5\u4f7f\u7528Bitwarden\u5b98\u65b9\u63d0\u4f9b\u7684<a class=\"link\" href=\"https:\/\/bitwarden.com\/download\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5404\u4e2a\u5e73\u53f0\u5ba2\u6237\u7aef<\/a>\u6765\u767b\u5f55\u81ea\u5df1\u90e8\u7f72\u7684Vaultwarden\u670d\u52a1\u3002\u6b64\u5916\uff0c\u8fd8\u53ef\u4ee5\u4f7f\u7528Bitwarden\u6d4f\u89c8\u5668\u63d2\u4ef6\u8fdb\u884c\u7f51\u9875\u5bc6\u7801\u586b\u5145<\/p>\n<h2 id=\"\u5907\u4efd\">\u5907\u4efd\n<\/h2><hr>\n<p>\u7531\u4e8e\u5bc6\u7801\u672c\u8eab\u662f\u975e\u5e38\u91cd\u8981\u7684\u654f\u611f\u5185\u5bb9\uff0c\u4e3a\u4e86\u9632\u6b62\u670d\u52a1\u5668\u51fa\u73b0\u610f\u5916\u60c5\u51b5\uff0c\u6700\u597d\u5bf9\u8fd9\u4e9b\u654f\u611f\u5185\u5bb9\u505a\u597d\u5907\u4efd<\/p>\n<p>Vaultwarden\u4e2d\u5305\u542b\u5bc6\u7801\u5728\u5185\u7684\u6240\u6709\u91cd\u8981\u6587\u4ef6\u90fd\u653e\u5728<code>\/data<\/code>\u76ee\u5f55\u4e0b\uff0c\u4e5f\u5c31\u662f\u6211\u4eec\u6302\u5728\u5230\u5bbf\u4e3b\u673a\u4e2d\u7684\u76ee\u5f55\uff0c\u56e0\u6b64\u53ea\u9700\u8981\u5c06\u8fd9\u4e2a\u76ee\u5f55\u5b9a\u65f6\u5907\u4efd\u5373\u53ef<\/p>\n<p>\u8fd9\u91cc\u4ec5\u4ecb\u7ecd\u76ee\u524d\u81ea\u5df1\u7528\u7684\u65b9\u6848\uff0c\u4e5f\u5c31\u662f\u4f7f\u7528<code>rclone<\/code>\u5c06\u6253\u5305\u597d\u7684\u6570\u636e\u5b9a\u65f6\u4e0a\u4f20\u5230\u6211\u81ea\u5df1\u7684\u4e00\u53f0Nextcloud\u7f51\u76d8\u4e2d\uff0c\u6709\u5173<code>rclone<\/code>\u7684\u5b89\u88c5\u65b9\u6cd5\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/rclone.org\/install\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u8fd9\u91cc<\/a>\uff0c\u4f7f\u7528\u65b9\u6cd5\u4e5f\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/rclone.org\/docs\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\uff0c\u5b89\u88c5\u597d\u540e\u5148\u914d\u7f6e\u597d\u81ea\u5df1\u7684\u4e91\u7aef\u786c\u76d8<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">$ rclone config\n<\/span><\/span><span class=\"line\"><span class=\"cl\">2023\/12\/31 19:28:56 NOTICE: Config file <span class=\"s2\">&#34;\/root\/.config\/rclone\/rclone.conf&#34;<\/span> not found - using defaults\n<\/span><\/span><span class=\"line\"><span class=\"cl\">No remotes found, make a new one?\n<\/span><\/span><span class=\"line\"><span class=\"cl\">n<span class=\"o\">)<\/span> New remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">s<span class=\"o\">)<\/span> Set configuration password\n<\/span><\/span><span class=\"line\"><span class=\"cl\">q<span class=\"o\">)<\/span> Quit config\n<\/span><\/span><span class=\"line\"><span class=\"cl\">n\/s\/q&gt; n\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Enter name <span class=\"k\">for<\/span> new remote.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">name&gt; nextcloud\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Option Storage.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Type of storage to configure.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Choose a number from below, or <span class=\"nb\">type<\/span> in your own value.\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">1<\/span> \/ 1Fichier\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>fichier<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">2<\/span> \/ Akamai NetStorage\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>netstorage<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">3<\/span> \/ Alias <span class=\"k\">for<\/span> an existing remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span><span class=\"nb\">alias<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">4<\/span> \/ Amazon Drive\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>amazon cloud drive<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">5<\/span> \/ Amazon S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Minio, Netease, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>s3<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">6<\/span> \/ Backblaze B2\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>b2<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">7<\/span> \/ Better checksums <span class=\"k\">for<\/span> other remotes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>hasher<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">8<\/span> \/ Box\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>box<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">9<\/span> \/ Cache a remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>cache<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">10<\/span> \/ Citrix Sharefile\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>sharefile<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">11<\/span> \/ Combine several remotes into one\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>combine<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">12<\/span> \/ Compress a remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>compress<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">13<\/span> \/ Dropbox\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>dropbox<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">14<\/span> \/ Encrypt\/Decrypt a remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>crypt<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">15<\/span> \/ Enterprise File Fabric\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>filefabric<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">16<\/span> \/ FTP\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>ftp<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">17<\/span> \/ Google Cloud Storage <span class=\"o\">(<\/span>this is not Google Drive<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>google cloud storage<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">18<\/span> \/ Google Drive\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>drive<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">19<\/span> \/ Google Photos\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>google photos<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">20<\/span> \/ HTTP\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>http<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">21<\/span> \/ Hadoop distributed file system\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>hdfs<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">22<\/span> \/ HiDrive\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>hidrive<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">23<\/span> \/ ImageKit.io\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>imagekit<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">24<\/span> \/ In memory object storage system.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>memory<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">25<\/span> \/ Internet Archive\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>internetarchive<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">26<\/span> \/ Jottacloud\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>jottacloud<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">27<\/span> \/ Koofr, Digi Storage and other Koofr-compatible storage providers\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>koofr<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">28<\/span> \/ Linkbox\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>linkbox<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">29<\/span> \/ Local Disk\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span><span class=\"nb\">local<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">30<\/span> \/ Mail.ru Cloud\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>mailru<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">31<\/span> \/ Mega\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>mega<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">32<\/span> \/ Microsoft Azure Blob Storage\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>azureblob<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">33<\/span> \/ Microsoft Azure Files\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>azurefiles<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">34<\/span> \/ Microsoft OneDrive\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>onedrive<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">35<\/span> \/ OpenDrive\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>opendrive<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">36<\/span> \/ OpenStack Swift <span class=\"o\">(<\/span>Rackspace Cloud Files, Blomp Cloud Storage, Memset Memstore, OVH<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>swift<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">37<\/span> \/ Oracle Cloud Infrastructure Object Storage\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>oracleobjectstorage<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">38<\/span> \/ Pcloud\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>pcloud<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">39<\/span> \/ PikPak\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>pikpak<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">40<\/span> \/ Proton Drive\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>protondrive<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">41<\/span> \/ Put.io\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>putio<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">42<\/span> \/ QingCloud Object Storage\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>qingstor<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">43<\/span> \/ Quatrix by Maytech\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>quatrix<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">44<\/span> \/ SMB \/ CIFS\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>smb<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">45<\/span> \/ SSH\/SFTP\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>sftp<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">46<\/span> \/ Sia Decentralized Cloud\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>sia<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">47<\/span> \/ Storj Decentralized Cloud Storage\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>storj<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">48<\/span> \/ Sugarsync\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>sugarsync<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">49<\/span> \/ Transparently chunk\/split large files\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>chunker<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">50<\/span> \/ Union merges the contents of several upstream fs\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>union<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">51<\/span> \/ Uptobox\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>uptobox<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">52<\/span> \/ WebDAV\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>webdav<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">53<\/span> \/ Yandex Disk\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>yandex<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">54<\/span> \/ Zoho\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>zoho<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">55<\/span> \/ premiumize.me\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>premiumizeme<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"m\">56<\/span> \/ seafile\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>seafile<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Storage&gt; <span class=\"m\">52<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Option url.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">URL of http host to connect to.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">E.g. https:\/\/example.com.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Enter a value.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">url&gt; https:\/\/you_domain\/remote.php\/dav\/files\/user_name\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Option vendor.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Name of the WebDAV site\/service\/software you are using.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Choose a number from below, or <span class=\"nb\">type<\/span> in your own value.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Press Enter to leave empty.\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">1<\/span> \/ Fastmail Files\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>fastmail<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">2<\/span> \/ Nextcloud\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>nextcloud<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">3<\/span> \/ Owncloud\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>owncloud<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">4<\/span> \/ Sharepoint Online, authenticated by Microsoft account\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>sharepoint<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">5<\/span> \/ Sharepoint with NTLM authentication, usually self-hosted or on-premises\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>sharepoint-ntlm<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">6<\/span> \/ rclone WebDAV server to serve a remote over HTTP via the WebDAV protocol\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>rclone<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">7<\/span> \/ Other site\/service or software\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"se\">\\ <\/span><span class=\"o\">(<\/span>other<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">vendor&gt; <span class=\"m\">2<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Option user.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">User name.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">In <span class=\"k\">case<\/span> NTLM authentication is used, the username should be in the format <span class=\"s1\">&#39;Domain\\User&#39;<\/span>.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Enter a value. Press Enter to leave empty.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">user&gt; user_name\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Option pass.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Password.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Choose an alternative below. Press Enter <span class=\"k\">for<\/span> the default <span class=\"o\">(<\/span>n<span class=\"o\">)<\/span>.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">y<span class=\"o\">)<\/span> Yes, <span class=\"nb\">type<\/span> in my own password\n<\/span><\/span><span class=\"line\"><span class=\"cl\">g<span class=\"o\">)<\/span> Generate random password\n<\/span><\/span><span class=\"line\"><span class=\"cl\">n<span class=\"o\">)<\/span> No, leave this optional password blank <span class=\"o\">(<\/span>default<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">y\/g\/n&gt; y\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Enter the password:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">password:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Confirm the password:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">password:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Option bearer_token.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Bearer token instead of user\/pass <span class=\"o\">(<\/span>e.g. a Macaroon<span class=\"o\">)<\/span>.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Enter a value. Press Enter to leave empty.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">bearer_token&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Edit advanced config?\n<\/span><\/span><span class=\"line\"><span class=\"cl\">y<span class=\"o\">)<\/span> Yes\n<\/span><\/span><span class=\"line\"><span class=\"cl\">n<span class=\"o\">)<\/span> No <span class=\"o\">(<\/span>default<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">y\/n&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Configuration complete.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Options:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">- type: webdav\n<\/span><\/span><span class=\"line\"><span class=\"cl\">- url: https:\/\/your_domain\/remote.php\/dav\/files\/user_name\n<\/span><\/span><span class=\"line\"><span class=\"cl\">- vendor: nextcloud\n<\/span><\/span><span class=\"line\"><span class=\"cl\">- user: user_name\n<\/span><\/span><span class=\"line\"><span class=\"cl\">- pass: *** ENCRYPTED ***\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Keep this <span class=\"s2\">&#34;nextcloud&#34;<\/span> remote?\n<\/span><\/span><span class=\"line\"><span class=\"cl\">y<span class=\"o\">)<\/span> Yes this is OK <span class=\"o\">(<\/span>default<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">e<span class=\"o\">)<\/span> Edit this remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">d<span class=\"o\">)<\/span> Delete this remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">y\/e\/d&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Current remotes:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Name                 <span class=\"nv\">Type<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">====<\/span>                 <span class=\"o\">====<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nextcloud           webdav\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">e<span class=\"o\">)<\/span> Edit existing remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">n<span class=\"o\">)<\/span> New remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">d<span class=\"o\">)<\/span> Delete remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">r<span class=\"o\">)<\/span> Rename remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">c<span class=\"o\">)<\/span> Copy remote\n<\/span><\/span><span class=\"line\"><span class=\"cl\">s<span class=\"o\">)<\/span> Set configuration password\n<\/span><\/span><span class=\"line\"><span class=\"cl\">q<span class=\"o\">)<\/span> Quit config\n<\/span><\/span><span class=\"line\"><span class=\"cl\">e\/n\/d\/r\/c\/s\/q&gt; q\n<\/span><\/span><\/code><\/pre><\/div><p>\u914d\u7f6e\u597d\u540e\u53ef\u4ee5\u6d4b\u8bd5\u4e00\u4e0b\u662f\u5426\u80fd\u591f\u8fde\u901a\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">rclone lsd nextcloud:  <span class=\"c1\"># \u5217\u51fa\u6839\u8def\u5f84\u4e0b\u7684\u6240\u6709\u76ee\u5f55\uff0c\u5176\u4e2dnextcloud\u662f\u6211\u5728rclone config\u7684\u65f6\u5019\u7ed9\u6211\u81ea\u5df1\u7684Nextcloud\u8d77\u7684\u540d\u5b57<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6d4b\u8bd5\u6210\u529f\u540e\u6211\u4eec\u53ef\u4ee5\u5199\u4e00\u4e2a<code>vaultwarden_backup.sh<\/code>\u811a\u672c\u6765\u8fdb\u884c\u5907\u4efd\uff08\u672c\u811a\u672c\u505a\u4e86\u4e24\u4efd\u5907\u4efd\uff09\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"cp\">#!\/bin\/bash\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"cp\"><\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">SOURCE_DIR<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;\/docker\/vaultwarden\/data\/&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">DEST_DIR1<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;nextcloud1:\/dav\/Local Storage\/Backups\/Vaultwarden\/&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">DEST_DIR2<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;nextcloud2:\/dav\/Local Storage\/Backups\/Vaultwarden\/&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">CURRENT_DATE<\/span><span class=\"o\">=<\/span><span class=\"k\">$(<\/span>date +<span class=\"s2\">&#34;%Y-%m-%d&#34;<\/span><span class=\"k\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">tar -zcf <span class=\"s2\">&#34;\/tmp\/Vaultwarden_data_<\/span><span class=\"nv\">$CURRENT_DATE<\/span><span class=\"s2\">.tar.gz&#34;<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$SOURCE_DIR<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rclone copy <span class=\"s2\">&#34;\/tmp\/Vaultwarden_data_<\/span><span class=\"nv\">$CURRENT_DATE<\/span><span class=\"s2\">.tar.gz&#34;<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR1<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rclone copy <span class=\"s2\">&#34;\/tmp\/Vaultwarden_data_<\/span><span class=\"nv\">$CURRENT_DATE<\/span><span class=\"s2\">.tar.gz&#34;<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR2<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rm <span class=\"s2\">&#34;\/tmp\/Vaultwarden_data_<\/span><span class=\"nv\">$CURRENT_DATE<\/span><span class=\"s2\">.tar.gz&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u53ea\u4fdd\u7559\u6700\u8fd1\u7684\u4e24\u4e2a\u5907\u4efd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rclone lsf --format tp --separator <span class=\"s2\">&#34; &#34;<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR1<\/span><span class=\"s2\">&#34;<\/span> <span class=\"p\">|<\/span> sort -rk1 <span class=\"p\">|<\/span> awk <span class=\"s1\">&#39;NR&gt;2 {print $NF}&#39;<\/span> <span class=\"p\">|<\/span> <span class=\"k\">while<\/span> <span class=\"nb\">read<\/span> -r file<span class=\"p\">;<\/span> <span class=\"k\">do<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    rclone deletefile <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR1<\/span><span class=\"s2\">\/<\/span><span class=\"si\">${<\/span><span class=\"nv\">file<\/span><span class=\"si\">}<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">done<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rclone lsf --format tp --separator <span class=\"s2\">&#34; &#34;<\/span> <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR2<\/span><span class=\"s2\">&#34;<\/span> <span class=\"p\">|<\/span> sort -rk1 <span class=\"p\">|<\/span> awk <span class=\"s1\">&#39;NR&gt;2 {print $NF}&#39;<\/span> <span class=\"p\">|<\/span> <span class=\"k\">while<\/span> <span class=\"nb\">read<\/span> -r file<span class=\"p\">;<\/span> <span class=\"k\">do<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    rclone deletefile <span class=\"s2\">&#34;<\/span><span class=\"nv\">$DEST_DIR2<\/span><span class=\"s2\">\/<\/span><span class=\"si\">${<\/span><span class=\"nv\">file<\/span><span class=\"si\">}<\/span><span class=\"s2\">&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">done<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u8bbe\u7f6e\u6bcf\u59290\u70b9\u5b9a\u65f6\u6267\u884c\u8fd9\u4e2a\u7a0b\u5e8f\uff0c\u6267\u884c<code>crontab -e<\/code>\uff0c\u7136\u540e\u5728\u6700\u4e0b\u9762\u6dfb\u52a0\u4e0b\u9762\u4e00\u884c\u5185\u5bb9\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"m\">0<\/span> <span class=\"m\">0<\/span> * * * \/root\/vaultwarden_backup.sh &gt; \/root\/vaultwarden_backup.log 2&gt;<span class=\"p\">&amp;<\/span><span class=\"m\">1<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u4fdd\u5b58\u540e\uff0c\u5b9a\u65f6\u5907\u4efd\u5c31\u8bbe\u7f6e\u597d\u4e86<\/p>\n<hr>\n<p>\u9664\u4e0a\u8ff0\u65b9\u6cd5\u5916\uff0c\u4e5f\u53ef\u4ee5\u90e8\u7f72Syncthing\u8fdb\u884c\u540c\u6b65\uff0c\u5177\u4f53\u53c2\u8003<a class=\"link\" href=\"..\/0-0-0-40\/\" >\u8fd9\u7bc7\u6587\u7ae0<\/a><\/p>\n"},{"title":"Linux \u6dfb\u52a0 SWAP \u865a\u62df\u5185\u5b58","link":"https:\/\/been.ee\/p\/0-0-0-23\/","pubDate":"Thu, 28 Dec 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-23\/","description":"<h2 id=\"swap\u4ecb\u7ecd\">SWAP\u4ecb\u7ecd\n<\/h2><hr>\n<p>SWAP\u6307\u7684\u662fLinux\u7cfb\u7edf\u4e2d\u7684\u865a\u62df\u5185\u5b58\uff0c\u865a\u62df\u7684\u610f\u601d\u5c31\u662f&quot;\u5047\u7684&quot;\uff0c\u5b83\u5b9e\u9645\u4e0a\u5e76\u4e0d\u662f\u5185\u5b58\uff0c\u800c\u5b9e\u9645\u4e0a\u662f\u4e00\u5757\u786c\u76d8\u4e0a\u7684\u7a7a\u95f4\u3002\u5f53\u5185\u5b58\u4e0d\u8db3\u7684\u65f6\u5019\uff0c\u628a\u8fd9\u5757\u786c\u76d8\u7a7a\u95f4\u62ff\u6765&quot;\u6551\u6025&quot;<\/p>\n<p>\u6240\u4ee5SWAP\u7684\u6548\u7387\u5c31\u4f9d\u8d56\u786c\u76d8\u7684\u8bfb\u5199\u901f\u5ea6\uff0c\u80af\u5b9a\u6bd4\u4e0d\u4e0a\u5185\u5b58\uff0c\u6240\u4ee5\u5982\u679c\u8fc7\u5ea6\u4f7f\u7528\u7684\u8bdd\u53ef\u80fd\u4f1a\u964d\u4f4e\u5e94\u7528\u6548\u7387\uff0c\u6bd5\u7adf\u4e0d\u80fd\u628a\u5185\u5b58\u7684\u6d3b\u90fd\u4e22\u7ed9\u786c\u76d8\u53bb\u5e72\u5427<\/p>\n<h2 id=\"\u589e\u52a0swap\u865a\u62df\u5185\u5b58\">\u589e\u52a0SWAP\u865a\u62df\u5185\u5b58\n<\/h2><hr>\n<p>\u9996\u5148\u53ef\u4ee5\u5728\u7cfb\u7edf\u4e2d\u6267\u884c<code>free -m<\/code>\u67e5\u770b\u5f53\u524d\u7cfb\u7edf\u7684\u865a\u62df\u5185\u5b58\uff0c\u6211\u8bd5\u4e86\u4e00\u4e0b\u6211\u7684\u51e0\u53f0VPS\u90fd\u6ca1\u6709\u9884\u8bbeSWAP<\/p>\n<p>\u63a5\u4e0b\u6765\u8981\u8bbe\u7f6e\u865a\u62df\u5185\u5b58\uff0c\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cLinux\u7cfb\u7edf\u4e0b\u7684\u865a\u62df\u5185\u5b58\u5b9e\u9645\u4e0a\u662f\u53bb\u6784\u5efa\u4e00\u4e2a\u8db3\u591f\u5927\u7684\u6587\u4ef6\uff08\u5206\u533a\uff09\uff0c\u7136\u540e\u5c06\u8fd9\u4e2a\u6587\u4ef6\u6807\u8bc6\u4e3aSWAP\uff0c\u7136\u540e\u5c31\u5b8c\u6210\u5566\uff0c\u5f88\u7b80\u5355\u5427\uff01<\/p>\n<p>\u4e0b\u9762\u8981\u505a\u7684\u5c31\u662f\u6784\u5efa\u8fd9\u4e2a\u6587\u4ef6\uff0c\u8981\u6784\u5efa\u4e00\u4e2a\u5177\u6709\u4e00\u5b9a\u5927\u5c0f\u7684\u6587\u4ef6\u9996\u5148\u60f3\u5230\u7684\u5f53\u7136\u5c31\u662f<code>dd<\/code>\u5566\uff0c\u8fd9\u91cc\u6211\u4f7f\u7528<code>dd if=\/dev\/zero of=\/var\/swap\/swapfile bs=1M count=2048<\/code>\u521b\u5efa\u4e00\u4e2a2GB\u7684SWAP\u5185\u5b58\uff0c\u5176\u4e2d<code>if<\/code>\u548c<code>of<\/code>\u5206\u522b\u8868\u793a\u8f93\u5165\u6587\u4ef6\u548c\u8f93\u51fa\u6587\u4ef6\uff0c<code>\/dev\/zero<\/code>\u662f\u4e00\u4e2a\u7279\u6b8a\u6587\u4ef6\uff0c\u5b83\u63d0\u4f9b\u4e86\u65e0\u9650\u7684\u96f6\u503c\uff080x00\uff09\u5b57\u8282\u6d41\uff0c<code>bs<\/code>\u8868\u793a\u5199\u5165\u7684\u5757\u5927\u5c0f\uff0c<code>count<\/code>\u8868\u793a\u5757\u7684\u4e2a\u6570<\/p>\n<p><code>dd<\/code>\u5b8c\u4e4b\u540e\u53ef\u4ee5\u4f7f\u7528<code>ls -alh<\/code>\u6216<code>du -sh swapfile<\/code>\u67e5\u770b\u6784\u5efa\u7684\u6587\u4ef6\u5927\u5c0f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6784\u5efaSWAP\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mkdir \/var\/swap\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">cd<\/span> \/var\/swap\n<\/span><\/span><span class=\"line\"><span class=\"cl\">dd <span class=\"k\">if<\/span><span class=\"o\">=<\/span>\/dev\/zero <span class=\"nv\">of<\/span><span class=\"o\">=<\/span>\/var\/swap\/swapfile <span class=\"nv\">bs<\/span><span class=\"o\">=<\/span>1M <span class=\"nv\">count<\/span><span class=\"o\">=<\/span><span class=\"m\">2048<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u67e5\u770b\u6784\u5efa\u7684\u6587\u4ef6\u5927\u5c0f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ls -alh \/var\/swap\n<\/span><\/span><span class=\"line\"><span class=\"cl\">du -sh \/var\/swap\/swapfile\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u9700\u8981\u4f7f\u7528<code>mkswap<\/code>\u548c<code>swapon<\/code>\u5c06\u521b\u5efa\u597d\u7684\u76ee\u6807\u6587\u4ef6\u6807\u8bc6\u4e3aSWAP\u6587\u4ef6\u5e76\u6fc0\u6d3b\uff0c\u9700\u6ce8\u610f\u5728\u6fc0\u6d3b\u524d\u6700\u597d\u5c06SWAP\u6587\u4ef6\u7684\u6743\u9650\u8bbe\u4e3a<code>600<\/code>\uff0c\u53ef\u4ee5\u4f7f\u7528<code>swapon -s<\/code>\u6216<code>free -m<\/code>\u67e5\u770bSWAP\u662f\u5426\u5df2\u7ecf\u542f\u7528<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4fee\u6539\u6743\u9650\u5e76\u6fc0\u6d3bSWAP<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">chmod <span class=\"m\">600<\/span> \/var\/swap\/swapfile\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mkswap \/var\/swap\/swapfile\n<\/span><\/span><span class=\"line\"><span class=\"cl\">swapon \/var\/swap\/swapfile\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u67e5\u770bSWAP\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">swapon -s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">free -m\n<\/span><\/span><\/code><\/pre><\/div><p>\u6700\u540e\u6267\u884c\u4e0b\u9762\u4ee3\u7801\uff0c\u5728<code>\/etc\/fstab<\/code>\u4e2d\u6dfb\u52a0SWAP\u81ea\u542f\u52a8\u914d\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> &gt;&gt; \/etc\/fstab <span class=\"s2\">&#34;\/var\/swap\/swapfile  swap  swap  defaults  0  0&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5220\u9664swap\u865a\u62df\u5185\u5b58\">\u5220\u9664SWAP\u865a\u62df\u5185\u5b58\n<\/h2><hr>\n<p>\u9996\u5148\u9700\u8981\u7528<code>swapoff<\/code>\u505c\u7528\u865a\u62df\u5185\u5b58<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">swapoff \/var\/swap\/swapfile\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5c06<code>\/etc\/fstab<\/code>\u4e2d\u6dfb\u52a0\u7684\u865a\u62df\u5185\u5b58\u6761\u76ee\uff08<code>\/var\/swap\/swapfile  swap  swap  defaults  0  0<\/code>\uff09\u5220\u9664\u6389<\/p>\n<p>\u6700\u540e\u76f4\u63a5\u5220\u9664\u6389SWAP\u6587\u4ef6\u5373\u53ef<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">rm \/var\/swap\/swapfile\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u67e5\u770b\u5e76\u8bbe\u7f6eswap\u7684\u4f7f\u7528\u65f6\u673a\">\u67e5\u770b\u5e76\u8bbe\u7f6eSWAP\u7684\u4f7f\u7528\u65f6\u673a\n<\/h2><hr>\n<p>\u5728Linux\u7cfb\u7edf\u4e2d\uff0c\u67e5\u770b\u548c\u8bbe\u7f6eSWAP\u7684\u4f7f\u7528\u65f6\u673a\u4e3b\u8981\u6d89\u53ca\u5230 <code>vm.swappiness<\/code> \u53c2\u6570\u7684\u4f7f\u7528\u3002<code>vm.swappiness<\/code> \u662f\u4e00\u4e2a\u5185\u6838\u53c2\u6570\uff0c\u5b83\u63a7\u5236\u7740\u64cd\u4f5c\u7cfb\u7edf\u5c06\u5185\u5b58\u6570\u636e\u6362\u5165SWAP\u7a7a\u95f4\u7684\u503e\u5411\u3002\u5176\u503c\u53ef\u4ee5\u4ece<code>0<\/code>\u5230<code>100<\/code>\uff0c\u4e0d\u540c\u7684\u503c\u4f1a\u5f71\u54cd\u7cfb\u7edf\u5982\u4f55\u4f7f\u7528SWAP\u7a7a\u95f4<\/p>\n<blockquote>\n<p><code>vm.swappiness<\/code>\u503c\u7684\u9009\u62e9\uff08\u9ed8\u8ba4\u901a\u5e38\u4e3a<code>60<\/code>\uff09\uff1a<\/p>\n<p><code>0<\/code>\uff1a\u610f\u5473\u7740\u5185\u6838\u4f1a\u5c3d\u91cf\u4e0d\u4f7f\u7528SWAP\u7a7a\u95f4\uff0c\u9664\u975e\u7edd\u5bf9\u5fc5\u8981<\/p>\n<p><code>100<\/code>\uff1a\u610f\u5473\u7740\u5185\u6838\u4f1a\u66f4\u79ef\u6781\u5730\u4f7f\u7528SWAP\u7a7a\u95f4\uff0c\u5e76\u66f4\u9891\u7e41\u5730\u5c06\u6570\u636e\u79fb\u52a8\u5230SWAP<\/p><\/blockquote>\n<p>\u8981\u60f3\u67e5\u770b<code>vm.swappiness<\/code>\u7684\u503c\u53ef\u4ee5\u4f7f\u7528<code>sysctl<\/code>\u547d\u4ee4\u6216\u76f4\u63a5<code>cat<\/code>\u5185\u6838\u6587\u4ef6<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">cat \/proc\/sys\/vm\/swappiness\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sysctl vm.swappiness\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u8981\u60f3\u4e34\u65f6\u66f4\u6539<code>vm.swappiness<\/code>\u7684\u503c\uff0c\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">sysctl vm.swappiness<span class=\"o\">=<\/span><span class=\"m\">20<\/span>  <span class=\"c1\"># \u91cd\u542f\u540e\u5931\u6548<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u8981\u6c38\u4e45\u66f4\u6539 <code>vm.swappiness<\/code> \u7684\u503c\uff0c\u9700\u8981\u7f16\u8f91 <code>\/etc\/sysctl.conf<\/code> \u6587\u4ef6\uff0c\u5e76\u5728\u672b\u5c3e\u6dfb\u52a0\u4e00\u884c\u6dfb\u52a0\u6216\u4fee\u6539\u4e0b\u9762\u7684\u4e00\u884c\u5185\u5bb9\uff0c\u7136\u540e\u91cd\u542f\u6216\u6267\u884c<code>sysctl -p<\/code>\u547d\u4ee4\u540e\u751f\u6548<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">vm.swappiness<span class=\"o\">=<\/span><span class=\"m\">20<\/span>  \n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u603b\u4e4b\uff0cSWAP\u5bf9\u4e8e\u5185\u5b58\u6bd4\u8f83\u5c0f\u7684\u673a\u5668\u8fd8\u662f\u5f88\u6709\u7528\u7684\uff0c\u9075\u5faa\u5c0f\u5185\u5b58\u53ef\u4ee5\u591a\u8bbe\u7f6e\u70b9\uff0c\u5927\u5185\u5b58\u5c11\u8bbe\u7f6e\u70b9\uff0c2G\u5185\u5b58\u4ee5\u4e0b\u7684\u8bdd\u53ef\u4ee5\u8bbe\u4e3a\u5185\u5b58\u76841-2\u500d\uff0c8G\u5185\u5b58\u4ee5\u4e0a\u7684\u8bdd\u53ef\u4ee5\u6700\u597d\u4e5f\u4e0d\u8981\u8bbe\u7f6e\u8d85\u8fc74-8G<\/p>\n"},{"title":"\u501f\u52a9\u4ee3\u7406\u4e0e Git \u8fdc\u7a0b\u4ed3\u5e93\u901a\u4fe1","link":"https:\/\/been.ee\/p\/0-0-0-22\/","pubDate":"Sun, 24 Dec 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-22\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<p>\u8d77\u56e0\u662f\u6700\u8fd1\u4e00\u53f0\u673a\u5668\u7684IP\u88abblock\u4e86&#x1f47f;\uff0c\u7531\u4e8eGit\u8fdc\u7a0b\u4ed3\u5e93\u653e\u5728\u4e0a\u9762\uff0c\u6240\u4ee5\u6682\u65f6\u65e0\u6cd5\u76f4\u63a5\u8bbf\u95ee\u4e86\uff0c\u4e3b\u8981\u662f\u4e5f\u4e0d\u60f3\u8fc1\u79fb\uff0c\u6240\u4ee5\u60f3\u5148\u7ed9\u5b83\u6dfb\u52a0\u4e0a\u4ee3\u7406\u8bbf\u95ee\u7684\u65b9\u5f0f\u8fdb\u884c\u901a\u4fe1<\/p>\n<p>\u6211\u662f\u7528SSH\u65b9\u5f0f\u8fdb\u884c\u8fde\u63a5\u540c\u6b65\u7684\uff0c\u4f7f\u7528<code>SSH<\/code>\u642d\u5efa\u7684\u65b9\u6cd5\u53ef\u4ee5\u770b<a class=\"link\" href=\"..\/0-0-0-19\/\" >\u8fd9\u91cc<\/a><\/p>\n<h2 id=\"\u914d\u7f6egit\u4ee3\u7406\">\u914d\u7f6eGit\u4ee3\u7406\n<\/h2><hr>\n<p>\u5176\u5b9e\u65b9\u6cd5\u5f88\u7b80\u5355\uff0c\u7531\u4e8e\u6211\u662f\u7528\u7684<code>SSH<\/code>\uff0c\u6240\u4ee5\u53ea\u9700\u8981\u5728<code>.ssh<\/code>\u76ee\u5f55\u4e0b\u9762\u65b0\u5efa\u4e00\u4e2a<code>config<\/code>\u914d\u7f6e\u6587\u4ef6\uff0c\u5728\u91cc\u9762\u5199\u5165\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">Host my-remote-repo\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  HostName \u8fdc\u7a0b\u4ed3\u5e93\u670d\u52a1\u5668\u5730\u5740\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  User \u7528\u6237\u540d  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">  Port <span class=\"m\">2222<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">  ProxyCommand nc -x \u4ee3\u7406\u5730\u5740:\u7aef\u53e3 %h %p\n<\/span><\/span><\/code><\/pre><\/div><blockquote>\n<p>\u4e0a\u9762\u7684\u914d\u7f6e\u4e2d<\/p>\n<ul>\n<li>\n<p><code>Host<\/code>\u6307\u5b9a\u4e86\u4e00\u4e2aSSH\u94fe\u63a5\u7684\u522b\u540d\uff0c\u53ef\u4ee5\u81ea\u884c\u66f4\u6539<\/p>\n<\/li>\n<li>\n<p><code>HostName<\/code>\u6307\u5b9a\u8fdc\u7a0b\u4e3b\u673a<\/p>\n<\/li>\n<li>\n<p><code>User<\/code>\u6307\u5b9a\u8981\u767b\u9646\u7684\u7528\u6237<\/p>\n<\/li>\n<li>\n<p><code>Port<\/code>\u6307\u5b9a\u8fdc\u7a0b\u4e3b\u673a\u7684SSH\u7aef\u53e3<\/p>\n<\/li>\n<li>\n<p><code>ProxyCommand<\/code>\u6307\u5b9a\u8fdb\u884cSSH\u8fde\u63a5\u65f6\u8981\u4f7f\u7528\u7684\u4ee3\u7406\uff0c\u8fd9\u91cc\u4f7f\u7528\u4e86<code>nc<\/code>\u901a\u8fc7\u4ee3\u7406\u8fde\u63a5\u4e0a \u8fdc\u7a0b\u4e3b\u673a\uff0c\u5176\u4e2d<code>-x<\/code>\u53c2\u6570\u6307\u5b9a\u4ee3\u7406\u670d\u52a1\u5668\u5730\u5740\u548c\u7aef\u53e3\uff0c<code>%h<\/code>\u548c<code>%p<\/code>\u4ee3\u8868\u7684\u662f\u4e0a\u6587\u6307\u5b9a\u7684<code>HostName<\/code>\u548c<code>Port<\/code>\u5b57\u6bb5\uff08\u8fd9\u91cc\u6211\u7684\u7406\u89e3\u662f<code>ProxyCommand<\/code>\u5c06\u672c\u5730SSH\u5ba2\u6237\u7aef\u7684\u6807\u51c6\u8f93\u51fa\u548c<code>nc<\/code>\u7684\u6807\u51c6\u8f93\u5165\u8fde\u5230\u4e86\u4e00\u8d77\uff09<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u4fdd\u5b58\u540e\u5c31\u5b8c\u6210\u4e86\uff0c\u53ef\u4ee5\u56de\u5230\u672c\u5730Git\u4ed3\u5e93\uff0c\u7528<code>git remote show origin<\/code>\u6d4b\u8bd5\u4e00\u4e0b\u662f\u5426\u53ef\u4ee5\u901a\u4fe1<\/p>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p><del>\u6700\u540e\uff0c\u5c31\u5e0c\u671b\u6211\u7684IP\u80fd\u88ab\u5c3d\u5feb\u91ca\u653e\u5427<\/del>&#x1f97a;<\/p>\n<p>IP\u88abblock\u4e86\u4e0d\u5230\u4e00\u5468\u5df2\u7ecf\u653e\u51fa\u6765\u4e86<\/p>\n"},{"title":"Nginx \u4e2d\u5173\u4e8e proxy_set_header \u5b57\u6bb5\u7684\u89e3\u91ca","link":"https:\/\/been.ee\/p\/0-0-0-21\/","pubDate":"Sat, 23 Dec 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-21\/","description":"<p>\u5728\u53cd\u5411\u4ee3\u7406\u65f6\uff0c\u914d\u7f6e\u6587\u4ef6\u4e2d\u7ecf\u5e38\u8981\u7528\u5230<code>proxy_set_header<\/code>\uff0c\u8fd9\u6761\u6307\u4ee4\u9002\u7528\u4e8e\u8bbe\u7f6e\u5411\u53cd\u4ee3\u7684\u540e\u7aef\u670d\u52a1\u5668\u91cd\u65b0\u8bbe\u7f6e\u53d1\u9001\u7ed9\u4ee3\u7406\u670d\u52a1\u5668\u7684<code>http<\/code>\u8bf7\u6c42\u5934\uff0c\u4f8b\u5982\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">location \/ {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_pass http:\/\/127.0.0.1:8000\/;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_redirect off;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header Host $host;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header X-Real-IP $remote_addr;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        proxy_set_header X-Forwarded-Proto $scheme;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"host\">Host\n<\/h2><hr>\n<p>\u6307\u7684\u662fNginx\u5411\u540e\u7aef\u670d\u52a1\u5668\u53d1\u9001\u7684\u8bf7\u6c42\u5934\u4e2d\u7684<code>HOST<\/code>\u5b57\u6bb5<\/p>\n<blockquote>\n<ul>\n<li><code>$proxy_host<\/code><\/li>\n<\/ul>\n<p>\u9ed8\u8ba4\u503c\u4e3a<code>$proxy_host<\/code>\uff0c\u8868\u793a\u7684\u662f\u53cd\u4ee3\u76ee\u6807\u7684\u540e\u7aef\u670d\u52a1\u5668\u7684\u57df\u540d\u6216IP\uff0c\u4e0a\u9762\u7684\u4f8b\u5b50\u6307\u7684\u662f<code>127.0.0.1:8000<\/code>\uff1b<\/p>\n<p>\u800c<code>$http_host<\/code>\u548c<code>$host<\/code>\uff0c\u8868\u793a\u7684Nginx\u4ee3\u7406\u670d\u52a1\u5668\u7684\u5730\u5740\u4f46\u53c8\u6709\u6240\u4e0d\u540c<\/p>\n<ul>\n<li><code>$host<\/code><\/li>\n<\/ul>\n<p>\u5f53\u53d1\u9001\u6765\u7684HTTP\u8bf7\u6c42\u4e2d\u4e0d\u5b58\u5728<code>HOST<\/code>\u5b57\u6bb5\uff0c\u6216\u8005<code>HOST<\/code>\u5b57\u6bb5\u7684\u503c\u4e3a\u7a7a\uff0c\u90a3\u4e48<code>$host<\/code>\u5c31\u7b49\u4e8e<code>server_name<\/code>\uff08\u5728\u5f53\u524dNginx\u914d\u7f6e\u4e2d\u5b9a\u4e49\u7684\uff09<\/p>\n<p>\u5f53\u53d1\u9001\u6765\u7684<code>HTTP<\/code>\u8bf7\u6c42\u4e2d<code>HOST<\/code>\u5b57\u6bb5\u7684\u503c\u5b58\u5728\uff0c\u90a3\u4e48<code>$host<\/code>\u7b49\u4e8e<code>HOST<\/code>\u5b57\u6bb5\u7684\u503c\u4e2d\u9664\u53bb\u7aef\u53e3\u597d\u7684\u90e8\u5206<\/p>\n<p>\u4e5f\u5c31\u662f\u8bf4\uff0c\u4e0d\u7ba1<code>HOST<\/code>\u5b57\u6bb5\u4e3a<code>xxx.xxx.com<\/code>\u8fd8\u662f<code>xxx.xxx.com:8080<\/code>\uff0c<code>$host<\/code>\u90fd\u7b49\u4e8e<code>xxx.xxx.com<\/code><\/p>\n<ul>\n<li><code>$http_host<\/code><\/li>\n<\/ul>\n<p>\u8fd9\u4e2a\u53d8\u91cf\u5b9e\u9645\u4e0a\u662f\u88ab\u5b9a\u4e49\u4e3a<code>$http_HEADER<\/code>\uff0c\u5176\u4e2d<code>HEADER<\/code>\u53ef\u4ee5\u66f4\u6539\u4e3a<code>HTTP<\/code>\u8bf7\u6c42\u5934\u4e2d\u7684\u4efb\u610f\u5b57\u6bb5\uff0c\u5e76\u7528\u6765\u83b7\u5f97\u8fd9\u4e2a\u5b57\u6bb5\u7684\u503c<\/p>\n<p>\u6240\u4ee5<code>$http_host<\/code>\u4e5f\u5c31\u662f\u5c06<code>HEADER<\/code>\u6539\u4e3a<code>host<\/code>\uff0c\u5b83\u4f1a\u76f4\u63a5\u53bb\u5339\u914d<code>HTTP<\/code>\u8bf7\u6c42\u4e2d<code>HOST<\/code>\u5b57\u6bb5\u7684\u503c\uff0c\u5982\u679c\u6709\u7684\u8bdd\u5c31\u83b7\u5f97\u8fd9\u4e2a\u503c\uff0c\u5982\u679c\u6ca1\u6709\u5c31\u7559\u7a7a\uff08\u8fd9\u4e2a\u5730\u65b9\u5c31\u662f\u548c<code>$host<\/code>\u4e4b\u95f4\u7684\u5dee\u5f02\uff09<\/p><\/blockquote>\n<h2 id=\"x-real-ip\">X-Real-IP\n<\/h2><hr>\n<p>\u6307\u5ba2\u6237\u7aef\u7684\u771f\u5b9eIP\uff0c\u8bbe\u7f6e<code>$remote_addr<\/code>\u8868\u793a\u5ba2\u6237\u7aef\u7684\u771f\u5b9eIP\uff0c\u8fd9\u6837\u540e\u7aef\u670d\u52a1\u5668\u77e5\u9053\u771f\u5b9e\u7684\u5ba2\u6237\u7aef\u662f\u8c01\u3002<\/p>\n<p>\u53e6\u5916\uff0c<code>X-Real-IP<\/code> \u662f\u4e00\u4e2a\u975e\u6807\u51c6\u7684<code>HTTP<\/code>\u5934\uff0c\u5982\u679c\u4e0d\u8bbe\u7f6e\uff0c\u6b64\u5934\u4e0d\u4f1a\u88ab\u81ea\u52a8\u6dfb\u52a0<\/p>\n<h2 id=\"x-forwarded-for\">X-Forwarded-For\n<\/h2><hr>\n<p><code>X-Forwarded-For<\/code>\u540c\u6837\u662f\u4e00\u4e2a\u975e\u6807\u51c6\u7684<code>HTTP<\/code>\u5934\uff0c\u5982\u679c\u6ca1\u6709\u660e\u786e\u8bbe\u7f6e\uff0c\u5b83\u4e5f\u4e0d\u4f1a\u88ab\u81ea\u52a8\u6dfb\u52a0\u5230\u8bf7\u6c42\u4e2d<\/p>\n<p>\u8fd9\u4e2a\u53d8\u91cf\u7684\u503c\u53ef\u4ee5\u8bbe\u7f6e\u4e3a<code>$proxy_add_x_forwarded_for<\/code>\uff0c\u7528\u4e8e\u5728\u73b0\u6709\u7684<code>X-Forwarded-For<\/code>\u8bf7\u6c42\u5934\u5185\u5bb9\u4e2d<strong>\u6dfb\u52a0<\/strong>\u5f53\u524d\u5ba2\u6237\u7aef\u7684IP\u5730\u5740\uff0c\u4e5f\u5c31\u662f\u8bf4<code>X-Forwarded-For<\/code>\u8fd9\u4e2a\u5934\u90e8\u503c\u8bb0\u5f55\u4e86\u7ecf\u8fc7\u591a\u4e2a\u53cd\u5411\u4ee3\u7406\u7684<code>HTTP<\/code>\u8bf7\u6c42\u7684\u5ba2\u6237\u7aefIP\u5730\u5740\u94fe<\/p>\n<p>\u5982\u679c\u8bf4\u4e00\u4e2a<code>HTTP<\/code>\u8bf7\u6c42\u7ecf\u8fc7\u4e86\u591a\u4e2a\u53cd\u4ee3\u670d\u52a1\u5668\uff0c\u5e76\u4e14\u6bcf\u4e2a\u53cd\u4ee3\u670d\u52a1\u5668\u90fd\u5c06<code>X-Forwarded-For<\/code>\u8bbe\u7f6e\u4e3a<code>$proxy_add_x_forwarded_for<\/code>\uff0c\u90a3\u4e48<code>X-Forwarded-For<\/code>\u8fd9\u4e2a\u5934\u90e8\u5185\u5bb9\u5c06\u4f1a\u8bb0\u5f55\u4ece\u539f\u59cb\u5ba2\u6237\u7aef\u5230\u6bcf\u4e00\u5c42\u53cd\u4ee3\u670d\u52a1\u5668\u7684\u6240\u6709IP\u5730\u5740<\/p>\n<h2 id=\"x-forwarded-proto\">X-Forwarded-Proto\n<\/h2><hr>\n<p><code>X-Forwarded-Proto<\/code> \u901a\u5e38\u7528\u4e8e\u6307\u793a\u539f\u59cb\u8bf7\u6c42\u4f7f\u7528\u7684\u534f\u8bae\uff08<code>HTTP<\/code> \u6216 <code>HTTPS<\/code>\uff09\u3002\u8fd9\u4e2a\u5934\u90e8\u5728\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4e0d\u4f1a\u6dfb\u52a0\uff0c\u53ef\u4ee5\u901a\u8fc7 <code>proxy_set_header X-Forwarded-Proto $scheme;<\/code> \u663e\u5f0f\u8bbe\u7f6e<\/p>\n<h2 id=\"upgrade--connection-\u5347\u7ea7websocket\">Upgrade &amp; Connection \uff08\u5347\u7ea7WebSocket\uff09\n<\/h2><hr>\n<p>Upgrade\u548cConnection\u662f\u4e24\u4e2a\u7279\u6b8a\u7684\u8bf7\u6c42\u5934\u90e8\uff0c\u901a\u5e38\u4e00\u8d77\u4f7f\u7528\uff0c\u8fd9\u4e24\u4e2a\u5934\u90e8\u5b57\u6bb5\u901a\u5e38\u7528\u5728\u534f\u8bae\u5347\u7ea7\u7684\u573a\u666f\u4e2d\uff0c\u4f8b\u5982\u4eceHTTP\u5347\u7ea7\u81f3WebSocket<\/p>\n<p>\u5177\u4f53\u4f7f\u7528\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">proxy_http_version 1.1;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">proxy_set_header Upgrade $http_upgrade;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">proxy_set_header Connection &#34;upgrade&#34;;\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Batch \u811a\u672c\u4e2d\u53d8\u91cf\u7684\u5404\u79cd\u8868\u793a\u5f62\u5f0f","link":"https:\/\/been.ee\/p\/0-0-0-20\/","pubDate":"Wed, 20 Dec 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-20\/","description":"<h2 id=\"0-1-2-num\">%0, %1, %2&hellip;, %[num]\n<\/h2><hr>\n<p>\u4f7f\u7528\u767e\u5206\u53f7\u540e\u9762\u52a0\u4e00\u4e2a\u6570\u5b57\uff08<code>%[num]<\/code>\uff09\u8fd9\u79cd\u5f62\u5f0f\u662f\u6279\u5904\u7406\u811a\u672c\u4e2d\u7684\u56fa\u5b9a\u7528\u6cd5\uff0c\u7c7b\u4f3c\u4e8eC\u548cC++\u4e2d\u7684<code>argv[]<\/code>\u6570\u7ec4\uff0c\u5b83\u5411\u7a0b\u5e8f\u4f20\u9012\u6267\u884c\u8fd9\u4e2a\u6279\u5904\u7406\u7a0b\u5e8f\u65f6\u7684\u7a0b\u5e8f\u540d\u548c\u53c2\u6570\u3002<\/p>\n<p>\u5176\u4e2d<code>%0<\/code>\u8868\u793a\u8fd9\u4e2a\u6279\u5904\u7406\u7a0b\u5e8f\u7684\u6587\u4ef6\u540d\uff0c<code>%1<\/code>\u8868\u793a\u8c03\u7528\u8fd9\u4e2a\u6279\u5904\u7406\u65f6\u4f20\u5165\u7684\u7b2c1\u4e2a\u53c2\u6570\uff0c<code>%2<\/code>\u8868\u793a\u8c03\u7528\u8fd9\u4e2a\u6279\u5904\u7406\u65f6\u4f20\u5165\u7684\u7b2c2\u4e2a\u53c2\u6570\uff0c\u6700\u5927\u53ef\u4ee5\u5230<code>%9<\/code><\/p>\n<p>\u4f8b\u5982\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">@echo off\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"nv\">script_name<\/span><span class=\"o\">=<\/span>%0\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"nv\">param1<\/span><span class=\"o\">=<\/span>%1\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"i-j-n-char\">%i, %j, %n&hellip;, %[char]\n<\/h2><hr>\n<p>\u4f7f\u7528\u767e\u5206\u53f7\u540e\u9762\u52a0\u4e00\u4e2a\u5b57\u6bcd<code>%[char]<\/code>\uff08\u53ef\u4ee5\u4f7f\u7528\u4efb\u610f\u5b57\u6bcd\uff09\u8868\u793a\u4e00\u79cd\u7279\u6b8a\u53d8\u91cf\u5f62\u5f0f\uff0c\u5b83<strong>\u53ea\u80fd\u7528\u5728for\u5faa\u73af\u8bed\u53e5\u4e2d<\/strong>\u8868\u793a\u5faa\u73af\u7684\u53d8\u91cf\uff0c\u5e76\u4e14<strong>\u53ea\u80fd\u7528\u5728\u547d\u4ee4\u884c\u4e2d<\/strong>\uff0c\u5728\u6279\u5904\u7406\u811a\u672c\u4e2d\u9700\u8981\u4f7f\u7528<code>%%[char]<\/code>\u7684\u5f62\u5f0f<\/p>\n<p>\u4f8b\u5982\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-powershell\" data-lang=\"powershell\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">for<\/span> <span class=\"k\">%<\/span><span class=\"n\">i<\/span> <span class=\"k\">in<\/span> <span class=\"p\">(<\/span><span class=\"mf\">1<\/span><span class=\"p\">,<\/span><span class=\"mf\">2<\/span><span class=\"p\">,<\/span><span class=\"mf\">3<\/span><span class=\"p\">)<\/span> <span class=\"k\">do<\/span> <span class=\"nb\">echo <\/span><span class=\"k\">%<\/span><span class=\"n\">i<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"i-j-n-char-1\">%%i, %%j, %%n&hellip;, %%[char]\n<\/h2><hr>\n<p>\u4e0e\u4e0a\u9762%[char]\u7c7b\u4f3c\uff0c\u4e5f\u662f<strong>\u53ea\u80fd\u7528\u5728for\u5faa\u73af\u8bed\u53e5\u4e2d<\/strong>\u8868\u793a\u5faa\u73af\u7684\u53d8\u91cf\uff0c\u4f46\u662f\u5b83\u7528\u4e8e\u6279\u5904\u7406\u811a\u672c\u6587\u4ef6\u4e2d<\/p>\n<p>\u4f8b\u5982\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">@echo off\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">for<\/span> \/l %%i in <span class=\"o\">(<\/span>1,1,10<span class=\"o\">)<\/span> <span class=\"k\">do<\/span> <span class=\"nb\">echo<\/span> %%i\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pause\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"var\">var\n<\/h2><hr>\n<p>\u901a\u5e38\u53ea\u6709\u5728\u7ed9\u53d8\u91cf\u8d4b\u503c\u7684\u65f6\u5019\u4f1a\u76f4\u63a5\u4f7f\u7528\u53d8\u91cf\u540d\uff0c\u8981\u5f97\u5230\u53d8\u91cf\u7684\u503c\u5219\u9700\u8981\u4e0b\u9762\u8981\u8bb2\u7684<code>%var%<\/code>\u548c<code>!var!<\/code><\/p>\n<p>\u4f8b\u5982\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">@echo off\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> <span class=\"nv\">var1<\/span><span class=\"o\">=<\/span><span class=\"m\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> <span class=\"nv\">var2<\/span><span class=\"o\">=<\/span><span class=\"m\">2<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> var1  <span class=\"c1\"># \u6253\u5370var1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> var2  <span class=\"c1\"># \u6253\u5370var2<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> %var1%  <span class=\"c1\"># \u6253\u53701<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> %var2%  <span class=\"c1\"># \u6253\u53702<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pause\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"var-1\">%var%\n<\/h2><hr>\n<p>\u5982\u679c\u60f3\u8981\u5f15\u7528\u53d8\u91cf\u7684\u503c\u5219\u9700\u8981\u7528\u4e24\u4e2a\u767e\u5206\u53f7\u5c06\u53d8\u91cf\u62ec\u8d77\u6765\uff08<code>%var%<\/code>\uff09<\/p>\n<p>\u4f8b\u5982\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">@echo off\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> <span class=\"nv\">var1<\/span><span class=\"o\">=<\/span><span class=\"m\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> \/a <span class=\"nv\">var2<\/span><span class=\"o\">=<\/span>%var1%+2\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> <span class=\"nv\">var3<\/span><span class=\"o\">=<\/span>%var2%\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"nv\">var1<\/span><span class=\"o\">=<\/span>%var1%\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"nv\">var2<\/span><span class=\"o\">=<\/span>%var2%\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"nv\">var3<\/span><span class=\"o\">=<\/span>%var3%\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pause\n<\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d<code>set<\/code>\u6307\u4ee4\u7684<code>\/a<\/code>\u53c2\u6570\u8868\u793a\u53f3\u8fb9\u662f\u4e00\u4e2a\u7b97\u672f\u8fd0\u7b97\uff0c\u800c\u4e0d\u662f\u8fdb\u884c\u5b57\u7b26\u4e32\u66ff\u6362\u3002\u4e5f\u5c31\u662f\u8bf4<code>set \/a var2=%var1%+2<\/code>\u662f\u5c06<code>var1<\/code>\u7684\u503c\u548c<code>2<\/code>\u76f8\u52a0\u540e\u5f97\u5230\u7684\u7ed3\u679c\u8d4b\u503c\u7ed9<code>var2<\/code>\uff0c\u800c<code>set var2=%var1%+2<\/code>\u5219\u662f\u5c06<code>1+2<\/code>\u8fd9\u4e2a\u5b57\u7b26\u4e32\u8d4b\u503c\u7ed9<code>var2<\/code><\/p>\n<h2 id=\"var-2\">!var!\n<\/h2><hr>\n<p>\u5728Windows \u6279\u5904\u7406\u811a\u672c\u4e2d\uff0c<code>!var!<\/code> \u7684\u8bed\u6cd5\u7528\u4e8e\u8bbf\u95ee\u5728\u5ef6\u8fdf\u53d8\u91cf\u6269\u5c55\u6a21\u5f0f\u4e0b\u7684\u53d8\u91cf\u503c\u3002\u800c\u5ef6\u8fdf\u53d8\u91cf\u6269\u5c55\u662f\u4e00\u79cd\u7279\u6b8a\u7684\u5904\u7406\u65b9\u5f0f\uff0c\u5b83\u5141\u8bb8\u5728\u4e00\u4e2a\u4ee3\u7801\u5757\uff08\u5982 <code>for<\/code> \u5faa\u73af\u6216 <code>if<\/code> \u8bed\u53e5\u5757\uff09\u5185\u90e8\u52a8\u6001\u5730\u83b7\u53d6\u548c\u66f4\u65b0\u53d8\u91cf\u7684\u503c\uff0c\u8981\u60f3\u4f7f\u7528\u5ef6\u8fdf\u53d8\u91cf\u6269\u5c55\uff0c\u5219\u9700\u8981\u5728\u811a\u672c\u4e2d\u58f0\u660e\u542f\u7528\u5ef6\u8fdf\u53d8\u91cf\u6269\u5c55<code>setlocal enabledelayedexpansion<\/code><\/p>\n<p>\u6240\u8c13\u5ef6\u8fdf\u53d8\u91cf\u6269\u5c55\uff0c\u5c31\u662f\u6307\u8fd9\u4e2a\u53d8\u91cf\u7684\u503c\u5728\u4f7f\u7528\u7684\u65f6\u5019\u624d\u88ab\u786e\u5b9a\u3002\u800c\u5728Windows\u7684\u6279\u5904\u7406\u4e2d\uff0c\u9ed8\u8ba4\u7684\u53d8\u91cf\u6269\u5c55\uff08\u4e5f\u5c31\u662f<code>%var%<\/code>\uff09\u7684\u503c\u662f\u5728\u4e00\u884c\u4ee3\u7801\uff08\u4ee3\u7801\u5757\uff09\u88ab\u6267\u884c\u4e4b\u524d\u786e\u5b9a\u7684\u3002\u8fd9\u610f\u5473\u7740\uff0c\u5728\u4e00\u4e2a\u5faa\u73af\u6216\u6761\u4ef6\u5757\u5185\u90e8\u6539\u53d8\u4e00\u4e2a\u53d8\u91cf\u7684\u503c\uff0c\u5e76\u4e0d\u80fd\u7acb\u5373\u53cd\u6620\u5728\u540c\u4e00\u4e2a\u5757\u5185\u7684\u540e\u7eed\u547d\u4ee4\u4e2d<\/p>\n<p>\u4f8b\u5982\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">@echo off\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> <span class=\"nv\">test<\/span><span class=\"o\">=<\/span><span class=\"m\">123<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> <span class=\"nv\">test2<\/span><span class=\"o\">=<\/span><span class=\"m\">234<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">for<\/span> \/l %%i in <span class=\"o\">(<\/span>1,1,10<span class=\"o\">)<\/span> <span class=\"k\">do<\/span> <span class=\"o\">(<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> \/a <span class=\"nv\">test2<\/span><span class=\"o\">=<\/span>%test%+%%i\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> %test2%\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pause\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u4e2a\u811a\u672c\u88ab\u6267\u884c\u540e\uff0c\u5c06\u4f1a\u6253\u537010\u6b21234\uff08test2\u7684\u521d\u59cb\u503c\uff09\uff0c\u4e5f\u5c31\u662f\u8bf4\u5728\u5faa\u73af\u5f00\u59cb\u524d\uff0c\u4f7f\u7528<code>%var%<\/code>\u8868\u793a\u7684\u53d8\u91cf\u503c\u5c31\u5df2\u7ecf\u88ab\u786e\u5b9a\u5e76\u4e0d\u4f1a\u88ab\u66f4\u6539\uff0c\u5982\u679c\u60f3\u52a8\u6001\u66f4\u65b0test2\u7684\u503c\u5219\u9700\u8981\u50cf\u4e0b\u9762\u4e00\u6837\u542f\u7528\u5ef6\u8fdf\u53d8\u91cf\u6269\u5c55\uff0c\u5e76\u4f7f\u7528<code>!var!<\/code>\u5f15\u7528\u53d8\u91cf\u503c\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">@echo off\n<\/span><\/span><span class=\"line\"><span class=\"cl\">setlocal enabledelayedexpansion\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> <span class=\"nv\">test<\/span><span class=\"o\">=<\/span><span class=\"m\">123<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> <span class=\"nv\">test2<\/span><span class=\"o\">=<\/span><span class=\"m\">234<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">for<\/span> \/l %%i in <span class=\"o\">(<\/span>1,1,10<span class=\"o\">)<\/span> <span class=\"k\">do<\/span> <span class=\"o\">(<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">set<\/span> \/a <span class=\"nv\">test2<\/span><span class=\"o\">=<\/span>!test!+%%i\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> !test2!\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pause\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"\u4e00\u4efd Git \u7684\u4f7f\u7528\u8bf4\u660e","link":"https:\/\/been.ee\/p\/0-0-0-19\/","pubDate":"Fri, 08 Dec 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-19\/","description":"<blockquote>\n<p>\u672c\u7bc7\u5185\u5bb9\u53c2\u8003<a class=\"link\" href=\"https:\/\/www.liaoxuefeng.com\/wiki\/896043488029600\"  target=\"_blank\" rel=\"noopener\"\n    >\u5ed6\u96ea\u5cf0\u5927\u4f6c\u7684\u535a\u5ba2\u6559\u7a0b<\/a>\u8fdb\u884c\u5b66\u4e60\uff0c\u521d\u5b66\u8005\u5f3a\u70c8\u63a8\u8350\u9605\u8bfb\uff01\uff01\uff01<\/p><\/blockquote>\n<hr>\n<h2 id=\"git\u7b80\u4ecb\">Git\u7b80\u4ecb\n<\/h2><hr>\n<p>\u7b80\u5355\u7684\u8bf4\uff0cGit\u5c31\u662f\u4e00\u4e2a\u7248\u672c\u63a7\u5236\u7cfb\u7edf\uff0c\u4f46\u5982\u679c\u7b2c\u4e00\u6b21\u542c\u5230\u8fd9\u4e2a\u540d\u8bcd\u53ef\u80fd\u5e76\u4e0d\u7406\u89e3\u5b83\u5230\u5e95\u662f\u4ec0\u4e48\uff1f\u4ec0\u4e48\u53eb\u7248\u672c\u63a7\u5236\uff1f<\/p>\n<p>\u5c31\u62ff\u5199\u8bba\u6587\u6765\u4e3e\u4f8b\uff0c\u6211\u4eec\u5728\u5199\u8bba\u6587\u7684\u65f6\u5019\u901a\u5e38\u4f1a\u7ecf\u5386\u591a\u6b21\u4fee\u6539\uff0c\u4f8b\u5982\u9996\u5148\u662f<strong>\u521d\u7a3f<\/strong>\uff0c\u7136\u540e\u8981\u7ecf\u8fc7<strong>\u4fee\u65391<\/strong>\u3001<strong>\u4fee\u65392<\/strong>\u3001<strong>\u4fee\u6539n<\/strong>\u3001<strong>\u6700\u540e\u4e00\u6b21\u4fee\u6539<\/strong>\u3001<strong>\u6700\u7ec8\u7248<\/strong>\u3001<strong>\u6700\u7ec8\u7248\u4fee\u65391<\/strong>\u3001<strong>&hellip;\u9057\u4e66\uff01<\/strong>\u3002\u603b\u4e4b\u8981\u7ecf\u5386\u65e0\u6570\u6b21\u4fee\u6539\uff0c\u65e0\u7a77\u65e0\u5c3d\uff0c\u56de\u5fc6\u8d77\u6765\u90fd\u662f\u6cea&#x1f607;\u3002<\/p>\n<p>\u5176\u5b9e\u8fd9\u91cc\u6bcf\u4e00\u6b21\u4fee\u6539\u540e\u7684\u6587\u4ef6\u5c31\u662f\u6240\u8c13\u7684\u7248\u672c\uff0c\u800c\u7248\u672c\u63a7\u5236\u7684\u610f\u601d\u5176\u5b9e\u5c31\u662f\u6709\u8fd9\u4e48\u4e00\u4e2a\u8f6f\u4ef6\u53ef\u4ee5\u81ea\u59cb\u81f3\u7ec8\u76d1\u63a7\u5e76\u8bb0\u5f55\u6bcf\u4e2a\u4eba\u6240\u505a\u7684\u6bcf\u4e00\u6b21\u4fee\u6539\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u66f4\u597d\u5730\u53bb\u7ba1\u7406\u3002<\/p>\n<h2 id=\"git\u5b89\u88c5\">Git\u5b89\u88c5\n<\/h2><hr>\n<p>Git\u6700\u65e9\u662f\u5728Linux\u4e2d\u5f00\u53d1\u7684\uff0c\u76ee\u524d\u5df2\u7ecf\u88ab\u79fb\u690d\u5230\u4e86Windows\u548cMac OS\u5e73\u53f0<\/p>\n<p>\u5b89\u88c5\u5f88\u7b80\u5355\uff0c\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/git-scm.com\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u7f51<\/a>\uff0c\u8fd9\u91cc\u4e0d\u518d\u8d58\u8ff0<\/p>\n<h2 id=\"git\u7528\u6cd5\u603b\u7ed3\">Git\u7528\u6cd5\u603b\u7ed3\n<\/h2><hr>\n<h3 id=\"\u521b\u5efa\u7248\u672c\u5e93\">\u521b\u5efa\u7248\u672c\u5e93\n<\/h3><hr>\n<p>\u7248\u672c\u5e93\uff0c\u4e5f\u5c31\u662f\u8981\u8ba9Git\u8ffd\u8e2a\u7ba1\u7406\u7684\u4ed3\u5e93\uff0c\u5b9e\u9645\u4e0a\u5c31\u662f\u4e00\u4e2a\u76ee\u5f55<\/p>\n<p>\u9996\u5148\u6211\u4eec\u8981\u521b\u5efa\u4e00\u4e2a\u76ee\u5f55\uff08\u4f7f\u7528\u5df2\u7ecf\u5b58\u5728\u7684\u76ee\u5f55\u4e5f\u53ef\u4ee5\uff09\uff0c\u7136\u540e\u5728\u8be5\u76ee\u5f55\u4e0b\u6267\u884c<code>git init<\/code>\uff0c\u8fd9\u8868\u793a\u4ece\u73b0\u5728\u5f00\u59cb\uff0c\u8fd9\u4e2a\u76ee\u5f55\u4e0b\u53d1\u751f\u7684\u6240\u6709\u64cd\u4f5c\u884c\u4e3a\u5c06\u7531Git\u8fdb\u884c\u76d1\u63a7<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git init\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Initialized empty Git repository in C:\/Users\/iniduoH\/Desktop\/git-test\/.git\/\n<\/span><\/span><\/code><\/pre><\/div><p>\u6267\u884c<code>git init<\/code>\u540e\u4f1a\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u751f\u6210\u4e00\u4e2a<code>.git<\/code>\u76ee\u5f55\uff0c\u8fd9\u4e2a\u76ee\u5f55\u662f\u7528\u6765\u8ffd\u8e2a\u7248\u672c\u5e93\u7684\uff0c\u4e0d\u8981\u968f\u610f\u6539\u52a8<\/p>\n<h3 id=\"\u6dfb\u52a0\u6587\u4ef6\u5230\u4ed3\u5e93\">\u6dfb\u52a0\u6587\u4ef6\u5230\u4ed3\u5e93\n<\/h3><hr>\n<p>\u521b\u5efa\u7248\u672c\u5e93\u540e\uff0c\u53ef\u4ee5\u5728\u8be5\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\uff0c\u7136\u540e\u4f7f\u7528<code>git add<\/code>\u547d\u4ee4\u5c06\u6587\u4ef6\u5148\u6dfb\u52a0\u5230\u6682\u5b58\u533a\uff0c\u7136\u540e\u4f7f\u7528<code>git commit -m &quot;\u63d0\u4ea4\u8bf4\u660e&quot;<\/code>\uff0c\u5c06\u6587\u4ef6\u63d0\u4ea4\u5230\u4ed3\u5e93\uff0c\u4f5c\u4e3a\u4e00\u4e2a\u7248\u672c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ touch readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;This is a readme file.&#34;<\/span> &gt; readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git add readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit -m <span class=\"s2\">&#34;First create readme.txt.&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>master <span class=\"o\">(<\/span>root-commit<span class=\"o\">)<\/span> 18a9b90<span class=\"o\">]<\/span> First create readme.txt.\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">1<\/span> file changed, <span class=\"m\">1<\/span> insertion<span class=\"o\">(<\/span>+<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> create mode <span class=\"m\">100644<\/span> readme.txt\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u67e5\u770b\u5f53\u524d\u7248\u672c\u5e93\u72b6\u6001\u548c\u6587\u4ef6\u53d8\u5316\">\u67e5\u770b\u5f53\u524d\u7248\u672c\u5e93\u72b6\u6001\u548c\u6587\u4ef6\u53d8\u5316\n<\/h3><hr>\n<p>\u6267\u884c<code>git status<\/code>\u547d\u4ee4\u53ef\u4ee5\u8ba9\u6211\u4eec\u65f6\u523b\u638c\u63e1\u4ed3\u5e93\u5f53\u524d\u7684\u72b6\u6001\uff0c\u6bd4\u5982\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u662f\u5426\u662f\u6700\u65b0\u7684\u7248\u672c\uff1f\u662f\u5426\u6709\u51c6\u5907\u63d0\u4ea4\u7684\u4fee\u6539\uff1f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nothing to commit, working tree clean\n<\/span><\/span><\/code><\/pre><\/div><p>\u6b64\u65f6\uff0c\u5982\u679c\u6211\u4eec\u4fee\u6539\u4e00\u4e0b<code>readme.txt<\/code>\u6587\u4ef6\uff0c\u518d\u6267\u884c<code>git status<\/code>\uff0c\u53ef\u4ee5\u770b\u5230\u72b6\u6001\u53d1\u751f\u4e86\u53d8\u5316<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;add some content&#34;<\/span> &gt; readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Changes not staged <span class=\"k\">for<\/span> commit:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git add &lt;file&gt;...&#34;<\/span> to update what will be committed<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git restore &lt;file&gt;...&#34;<\/span> to discard changes in working directory<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        modified:   readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">no changes added to commit <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git add&#34;<\/span> and\/or <span class=\"s2\">&#34;git commit -a&#34;<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6b64\u65f6\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528<code>git diff<\/code>\u67e5\u770b\u505a\u4e86\u4ec0\u4e48\u4fee\u6539<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git diff readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">diff --git a\/readme.txt b\/readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">index d344129..eaada2c <span class=\"m\">100644<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">--- a\/readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">+++ b\/readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">@@ -1 +1 @@\n<\/span><\/span><span class=\"line\"><span class=\"cl\">-This is a readme file.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">+add some content\n<\/span><\/span><\/code><\/pre><\/div><p>\u6700\u540e\uff0c\u518d\u6b21\u8fdb\u884c\u63d0\u4ea4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git add readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit -m <span class=\"s2\">&#34;first revise&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nothing to commit, working tree clean\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u7248\u672c\u66f4\u65b0\u65e5\u5fd7\u548c\u7248\u672c\u56de\u9000\">\u7248\u672c\u66f4\u65b0\u65e5\u5fd7\u548c\u7248\u672c\u56de\u9000\n<\/h3><hr>\n<h4 id=\"\u7248\u672c\u66f4\u65b0\u65e5\u5fd7\">\u7248\u672c\u66f4\u65b0\u65e5\u5fd7\n<\/h4><hr>\n<p>\u53ea\u8981\u6211\u4eec\u4f7f\u7528<code>git commit<\/code>\u8fdb\u884c\u63d0\u4ea4\uff0c\u90a3\u4e48\u6bcf\u4e00\u6b21\u63d0\u4ea4\u540e\u7684\u7248\u672c\u90fd\u4f1a\u88abgit\u8bb0\u5f55\u4e0b\u6765<\/p>\n<p>\u53ef\u4ee5\u901a\u8fc7<code>git log<\/code>\u547d\u4ee4\u67e5\u770b\u7248\u672c\u5386\u53f2\u8bb0\u5f55\uff0c\u663e\u793a\u6700\u8fdc\u5230\u6700\u8fd1\u7684\u63d0\u4ea4\u65e5\u5fd7\uff0c\u53ef\u4ee5\u4f7f\u7528<code>--pretty=oneline<\/code>\u7cbe\u7b80\u8f93\u51fa\uff1b\u65e5\u5fd7\u4e2d\u663e\u793a\u7684\u5f88\u957f\u7684\u4e00\u4e32\u7c7b\u4f3c<code>d38970...<\/code>\u7684\u5b57\u6bcd\u548c\u6570\u5b57\u7ec4\u5408\u5c31\u662f<code>commit id<\/code>\uff08\u7248\u672c\u53f7\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git log\n<\/span><\/span><span class=\"line\"><span class=\"cl\">commit d389705e7e7f9972c428c5b93b8d2f75e564c774 <span class=\"o\">(<\/span>HEAD -&gt; master<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Author: Kaiyuan &lt;mghtdyx@gmail.com&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Date:   Wed Dec <span class=\"m\">6<\/span> 09:15:50 <span class=\"m\">2023<\/span> +0800\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    first revise\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">commit 18a9b90252b13afe49d65b9cfccfb473bf88ad61\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Author: Kaiyuan &lt;mghtdyx@gmail.com&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Date:   Wed Dec <span class=\"m\">6<\/span> 09:07:42 <span class=\"m\">2023<\/span> +0800\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    First create readme.txt.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log --pretty<span class=\"o\">=<\/span>oneline\n<\/span><\/span><span class=\"line\"><span class=\"cl\">d389705e7e7f9972c428c5b93b8d2f75e564c774 <span class=\"o\">(<\/span>HEAD -&gt; master<span class=\"o\">)<\/span> first revise\n<\/span><\/span><span class=\"line\"><span class=\"cl\">18a9b90252b13afe49d65b9cfccfb473bf88ad61 First create readme.txt.\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u7248\u672c\u56de\u9000\">\u7248\u672c\u56de\u9000\n<\/h4><hr>\n<p>\u73b0\u5728\uff0c\u5982\u679c\u6211\u4eec\u60f3\u56de\u9000\u5230\u4e4b\u524d\u7684\u67d0\u4e2a\u7248\u672c\u53ef\u4ee5\u4f7f\u7528<code>git reset<\/code>\u6307\u4ee4\uff0c\u4f46\u662f\u6211\u4eec\u9700\u8981\u6307\u5b9a\u8981\u56de\u9000\u7684\u7248\u672c\u3002<\/p>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u7248\u672c\u53f7\u56de\u9000\uff1b\u5176\u6b21\uff0c\u5728git\u4e2d\u7528HEAD\u8868\u793a\u5f53\u524d\u7248\u672c\uff0c\u4e5f\u5c31\u662f\u6700\u65b0\u7684\u63d0\u4ea4\uff0c\u4e0a\u4e00\u4e2a\u7248\u672c\u8bb0\u4f5c<code>HEAD^<\/code>\uff0c\u4e0a\u4e0a\u4e00\u4e2a\u7248\u672c\u8bb0\u4f5c<code>HEAD^^<\/code>\uff0c\u5f53\u7136\u5f80\u4e0a100\u4e2a\u7248\u672c\u5199100\u4e2a<code>^<\/code>\u6bd4\u8f83\u5bb9\u6613\u6570\u4e0d\u8fc7\u6765\uff0c\u6240\u4ee5\u5199\u6210<code>HEAD~100<\/code>\uff0c\u6240\u4ee5\u4e5f\u53ef\u4ee5\u7528HEAD\u6807\u8bb0\u56de\u9000<\/p>\n<ol>\n<li>\u7248\u672c\u53f7\u56de\u9000<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git reset --hard 18a9\n<\/span><\/span><span class=\"line\"><span class=\"cl\">HEAD is now at 18a9b90 First create readme.txt.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log\n<\/span><\/span><span class=\"line\"><span class=\"cl\">commit 18a9b90252b13afe49d65b9cfccfb473bf88ad61 <span class=\"o\">(<\/span>HEAD -&gt; master<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Author: Kaiyuan &lt;mghtdyx@gmail.com&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Date:   Wed Dec <span class=\"m\">6<\/span> 09:07:42 <span class=\"m\">2023<\/span> +0800\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    First create readme.txt.\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"2\">\n<li>HEAD\u6807\u8bb0\u56de\u9000<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git reset --hard HEAD^\n<\/span><\/span><span class=\"line\"><span class=\"cl\">HEAD is now at 18a9b90 First create readme.txt.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log\n<\/span><\/span><span class=\"line\"><span class=\"cl\">commit 18a9b90252b13afe49d65b9cfccfb473bf88ad61 <span class=\"o\">(<\/span>HEAD -&gt; master<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Author: Kaiyuan &lt;mghtdyx@gmail.com&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Date:   Wed Dec <span class=\"m\">6<\/span> 09:07:42 <span class=\"m\">2023<\/span> +0800\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    First create readme.txt.\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u6062\u590d\u672a\u6765\u7684\u7248\u672c\">\u6062\u590d\u672a\u6765\u7684\u7248\u672c\n<\/h4><hr>\n<p>\u7531\u4e8e\u56de\u9000\u7248\u672c\u540e\uff0c<code>git log<\/code>\u53ea\u4f1a\u663e\u793a\u5f53\u524d\u7248\u672c\u548c\u4e4b\u524d\u7684\u7248\u672c<\/p>\n<p>\u5982\u679c\u56de\u9000\u540e\u60f3\u6062\u590d\u81f3\u672a\u6765\u7684\u67d0\u4e2a\u7248\u672c\uff0c\u5219\u9996\u5148\u9700\u8981\u4f7f\u7528<code>git reflog<\/code>\u67e5\u770b\u672a\u6765\u67d0\u4e2a\u7248\u672c\u7684\u7248\u672c\u53f7\uff0c\u7136\u540e\u4f7f\u7528<code>git reset<\/code>\u6062\u590d\uff08\u5b9e\u9645\u4e0a<code>git reflog<\/code>\u4f1a\u8bb0\u5f55\u6bcf\u6b21\u5bf9\u7248\u672c\u7684\u64cd\u4f5c\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git reflog\n<\/span><\/span><span class=\"line\"><span class=\"cl\">18a9b90 <span class=\"o\">(<\/span>HEAD -&gt; master<span class=\"o\">)<\/span> HEAD@<span class=\"o\">{<\/span>0<span class=\"o\">}<\/span>: reset: moving to HEAD^\n<\/span><\/span><span class=\"line\"><span class=\"cl\">d389705 HEAD@<span class=\"o\">{<\/span>1<span class=\"o\">}<\/span>: reset: moving to d389\n<\/span><\/span><span class=\"line\"><span class=\"cl\">18a9b90 <span class=\"o\">(<\/span>HEAD -&gt; master<span class=\"o\">)<\/span> HEAD@<span class=\"o\">{<\/span>2<span class=\"o\">}<\/span>: reset: moving to 18a9\n<\/span><\/span><span class=\"line\"><span class=\"cl\">d389705 HEAD@<span class=\"o\">{<\/span>3<span class=\"o\">}<\/span>: commit: first revise\n<\/span><\/span><span class=\"line\"><span class=\"cl\">18a9b90 <span class=\"o\">(<\/span>HEAD -&gt; master<span class=\"o\">)<\/span> HEAD@<span class=\"o\">{<\/span>4<span class=\"o\">}<\/span>: commit <span class=\"o\">(<\/span>initial<span class=\"o\">)<\/span>: First create readme.txt.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git reset --hard d389\n<\/span><\/span><span class=\"line\"><span class=\"cl\">HEAD is now at d389705 first revise\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log\n<\/span><\/span><span class=\"line\"><span class=\"cl\">commit d389705e7e7f9972c428c5b93b8d2f75e564c774 <span class=\"o\">(<\/span>HEAD -&gt; master<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Author: Kaiyuan &lt;mghtdyx@gmail.com&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Date:   Wed Dec <span class=\"m\">6<\/span> 09:15:50 <span class=\"m\">2023<\/span> +0800\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    first revise\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">commit 18a9b90252b13afe49d65b9cfccfb473bf88ad61\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Author: Kaiyuan &lt;mghtdyx@gmail.com&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Date:   Wed Dec <span class=\"m\">6<\/span> 09:07:42 <span class=\"m\">2023<\/span> +0800\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    First create readme.txt.\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u5de5\u4f5c\u533a\u548c\u6682\u5b58\u533a\">\u5de5\u4f5c\u533a\u548c\u6682\u5b58\u533a\n<\/h3><hr>\n<h4 id=\"\u5de5\u4f5c\u533aworkspace\">\u5de5\u4f5c\u533a\uff08Workspace\uff09\n<\/h4><hr>\n<p>\u4e5f\u5c31\u662f\u5f53\u524d\u80fd\u770b\u5230\u7684\u76ee\u5f55\uff0c\u4f7f\u7528git init\u521d\u59cb\u5316\u7684\u76ee\u5f55\uff0c\u5176\u4e2d\u7684<code>.git<\/code>\u76ee\u5f55\u4e0d\u5c5e\u4e8e\u5de5\u4f5c\u533a\uff0c\u800c\u662fgit\u7684\u7248\u672c\u5e93<\/p>\n<p>\u6211\u4eec\u6b63\u662f\u5728\u5de5\u4f5c\u533a\u4e2d\u5bf9\u5185\u5bb9\u8fdb\u884c\u589e\u5220\u6539\u4e4b\u7c7b\u7684\u64cd\u4f5c<\/p>\n<h4 id=\"\u6682\u5b58\u533astage\">\u6682\u5b58\u533a\uff08Stage\uff09\n<\/h4><hr>\n<p>\u5728git\u7684\u7248\u672c\u5e93\u4e2d\uff0c\u5305\u542b\u4e86\u6682\u5b58\u533a\u3001\u5206\u652f\u7b49\u8bf8\u591a\u5185\u5bb9\uff0c\u9ed8\u8ba4git\u4f1a\u4e3a\u6211\u4eec\u521b\u5efa\u7b2c\u4e00\u4e2a\u5206\u652f<code>master<\/code>\u548c\u4e00\u4e2a\u6307\u5411<code>master<\/code>\u7684\u6307\u9488<code>HEAD<\/code><\/p>\n<p>\u5f53\u6211\u4eec\u6267\u884c<code>git add<\/code>\u6307\u4ee4\u7684\u65f6\u5019\u5c31\u662f\u628a\u6587\u4ef6\u4fee\u6539\u6dfb\u52a0\u5230\u6682\u5b58\u533a<\/p>\n<p>\u7136\u540e\u6267\u884c<code>git commit<\/code>\u6307\u4ee4\u5c06\u6682\u5b58\u533a\u7684\u5185\u5bb9\u63d0\u4ea4\u5230\u5f53\u524d\u5206\u652f\uff0c\u540c\u65f6<code>HEAD<\/code>\u6267\u884c\u5f53\u524d\u5206\u652f\u7684\u6700\u65b0\u63d0\u4ea4\u7248\u672c<\/p>\n<h3 id=\"\u64a4\u9500\u4fee\u6539\">\u64a4\u9500\u4fee\u6539\n<\/h3><hr>\n<h4 id=\"\u64a4\u9500\u5bf9\u5de5\u4f5c\u533a\u5185\u5bb9\u7684\u6539\u52a8\">\u64a4\u9500\u5bf9\u5de5\u4f5c\u533a\u5185\u5bb9\u7684\u6539\u52a8\n<\/h4><hr>\n<p>\u6709\u4e24\u79cd\u6307\u4ee4\u53ef\u4ee5\u4e22\u5f03\u5de5\u4f5c\u533a\u7684\u6539\u52a8\uff1a<code>git checkout -- &lt;filename&gt;<\/code> \u6216 <code>git restore &lt;filename&gt;<\/code><\/p>\n<p>\u5176\u4e2d\uff0c<code>git checkout<\/code>\u5176\u5b9e\u662f\u7528\u7248\u672c\u5e93\u91cc\u7684\u7248\u672c\u66ff\u6362\u5de5\u4f5c\u533a\u7684\u7248\u672c\uff0c\u65e0\u8bba\u5de5\u4f5c\u533a\u662f\u4fee\u6539\u8fd8\u662f\u5220\u9664\uff0c\u90fd\u53ef\u4ee5\u201c\u4e00\u952e\u8fd8\u539f\u201d<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;add more content&#34;<\/span> &gt;&gt; readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Changes not staged <span class=\"k\">for<\/span> commit:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git add &lt;file&gt;...&#34;<\/span> to update what will be committed<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git restore &lt;file&gt;...&#34;<\/span> to discard changes in working directory<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        modified:   readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">no changes added to commit <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git add&#34;<\/span> and\/or <span class=\"s2\">&#34;git commit -a&#34;<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git checkout -- readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nothing to commit, working tree clean\n<\/span><\/span><\/code><\/pre><\/div><p>\u5982\u679c\u662f\u5df2\u7ecf\u6dfb\u52a0\u81f3\u6682\u5b58\u533a\u540e\u53c8\u505a\u4e86\u4fee\u6539\uff0c\u540c\u6837\u64a4\u9500\u7684\u662f\u5bf9\u5de5\u4f5c\u533a\u7684\u4fee\u6539\uff0c\u6682\u5b58\u533a\u4e0d\u53d8<\/p>\n<h4 id=\"\u64a4\u9500\u6dfb\u52a0\u81f3\u6682\u5b58\u533a\u7684\u5185\u5bb9\">\u64a4\u9500\u6dfb\u52a0\u81f3\u6682\u5b58\u533a\u7684\u5185\u5bb9\n<\/h4><hr>\n<p>\u4f7f\u7528<code>git restore --staged &lt;filename&gt;<\/code> \u6216 <code>git reset HEAD &lt;filename&gt;<\/code>\u53ef\u4ee5\u64a4\u9500\u6dfb\u52a0\u81f3\u6682\u5b58\u533a\u7684\u8fd9\u9879\u64cd\u4f5c\uff0c\u4f46\u662f\u5e76\u6ca1\u6709\u64a4\u9500\u5de5\u4f5c\u533a\u7684\u6539\u52a8\uff08<strong>\u4e5f\u5c31\u662f\u56de\u5230\u5de5\u4f5c\u533a\u4fee\u6539\u5b8c\u8fd8\u6ca1\u6dfb\u52a0\u81f3\u6682\u5b58\u533a\u7684\u72b6\u6001<\/strong>\uff09\uff0c\u5982\u679c\u60f3\u7ee7\u7eed\u64a4\u9500\u5de5\u4f5c\u533a\u7684\u4fee\u6539\u5219\u9700\u8981\u518d\u6267\u884c<a class=\"link\" href=\"#%e6%92%a4%e9%94%80%e5%af%b9%e5%b7%a5%e4%bd%9c%e5%8c%ba%e5%86%85%e5%ae%b9%e7%9a%84%e6%94%b9%e5%8a%a8\" >\u4e0a\u4e00\u5c0f\u8282<\/a>\u7684\u6307\u4ee4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;add more content&#34;<\/span> &gt;&gt; readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git add readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Changes to be committed:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git restore --staged &lt;file&gt;...&#34;<\/span> to unstage<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        modified:   readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git restore --staged readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Changes not staged <span class=\"k\">for<\/span> commit:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git add &lt;file&gt;...&#34;<\/span> to update what will be committed<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git restore &lt;file&gt;...&#34;<\/span> to discard changes in working directory<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        modified:   readme.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">no changes added to commit <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git add&#34;<\/span> and\/or <span class=\"s2\">&#34;git commit -a&#34;<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u5220\u9664\u6587\u4ef6\">\u5220\u9664\u6587\u4ef6\n<\/h3><hr>\n<p>\u5728\u5de5\u4f5c\u76ee\u5f55\u5220\u9664\u6587\u4ef6\u540e\uff0c\u5982\u679c\u8981\u63d0\u4ea4\u5220\u9664\u540e\u7684\u7248\u672c\uff0c\u4f7f\u7528<code>git rm &lt;filename&gt;<\/code>\u786e\u5b9a\u8981\u5220\u9664\u7684\u6587\u4ef6\uff08\u4e5f\u53ef\u4ee5\u4f7f\u7528<code>git add &lt;filename&gt;<\/code>\uff0c\u6548\u679c\u76f8\u540c\uff09\uff0c\u7136\u540e\u4f7f\u7528<code>git commit -m &quot;message&quot;<\/code>\u8fdb\u884c\u63d0\u4ea4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ touch test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git add test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Changes to be committed:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git restore --staged &lt;file&gt;...&#34;<\/span> to unstage<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        new file:   test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit -m <span class=\"s2\">&#34;add a new file&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>master b5a9f5b<span class=\"o\">]<\/span> add a new file\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">1<\/span> file changed, <span class=\"m\">0<\/span> insertions<span class=\"o\">(<\/span>+<span class=\"o\">)<\/span>, <span class=\"m\">0<\/span> deletions<span class=\"o\">(<\/span>-<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> create mode <span class=\"m\">100644<\/span> test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nothing to commit, working tree clean\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ rm test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Changes not staged <span class=\"k\">for<\/span> commit:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git add\/rm &lt;file&gt;...&#34;<\/span> to update what will be committed<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git restore &lt;file&gt;...&#34;<\/span> to discard changes in working directory<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        deleted:    test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">no changes added to commit <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git add&#34;<\/span> and\/or <span class=\"s2\">&#34;git commit -a&#34;<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git rm test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rm <span class=\"s1\">&#39;test.txt&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Changes to be committed:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git restore --staged &lt;file&gt;...&#34;<\/span> to unstage<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        deleted:    test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit -m <span class=\"s2\">&#34;delete test.txt&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>master c502366<span class=\"o\">]<\/span> delete test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">1<\/span> file changed, <span class=\"m\">0<\/span> insertions<span class=\"o\">(<\/span>+<span class=\"o\">)<\/span>, <span class=\"m\">0<\/span> deletions<span class=\"o\">(<\/span>-<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> delete mode <span class=\"m\">100644<\/span> test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log --pretty<span class=\"o\">=<\/span>oneline\n<\/span><\/span><span class=\"line\"><span class=\"cl\">c502366af0b3d6ad17053a7734d05a1e88ac0f3b <span class=\"o\">(<\/span>HEAD -&gt; master<span class=\"o\">)<\/span> delete test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">b5a9f5bdd1b1d8357aa08fbba10fb26364329a0d add a new file\n<\/span><\/span><span class=\"line\"><span class=\"cl\">d389705e7e7f9972c428c5b93b8d2f75e564c774 first revise\n<\/span><\/span><span class=\"line\"><span class=\"cl\">18a9b90252b13afe49d65b9cfccfb473bf88ad61 First create readme.txt.\n<\/span><\/span><\/code><\/pre><\/div><p>\u5982\u679c\u5220\u9519\u4e86\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u4e0a\u9762\u7684<a class=\"link\" href=\"#%e6%92%a4%e9%94%80%e4%bf%ae%e6%94%b9\" >\u64a4\u9500\u4fee\u6539<\/a>\u6765\u8fdb\u884c\u6062\u590d<\/p>\n<p>\u4f7f\u7528<code>git rm<\/code>\u53ef\u4ee5\u5220\u9664\u4e00\u4e2a\u6587\u4ef6\uff0c\u7531\u4e8egit\u7684\u56de\u9000\u673a\u5236\u6240\u4ee5\u6c38\u8fdc\u4e0d\u7528\u62c5\u5fc3\u8bef\u5220\uff0c\u4f46\u8981\u6ce8\u610f<strong>\u4ece\u6765\u6ca1\u6709\u88ab\u6dfb\u52a0\u5230\u7248\u672c\u5e93\u7684\u6587\u4ef6\u662f\u65e0\u6cd5\u88ab\u6062\u590d\u7684<\/strong><\/p>\n<h3 id=\"\u5206\u652f\u7ba1\u7406\">\u5206\u652f\u7ba1\u7406\n<\/h3><hr>\n<p>\u6240\u8c13\u5206\u652f\uff0c\u53ef\u4ee5\u5927\u6982\u7406\u89e3\u4e3a\u5728\u5f53\u524d\u7248\u672c\u5e93\u4e0b\uff08\u5047\u8bbe\u662f<code>master<\/code>\uff09\u5206\u53c9\u51fa\u4e00\u6761\u7ebf\uff0c\u6709\u70b9\u7c7b\u4f3c\u4e16\u754c\u7ebf\u548c\u5e73\u884c\u4e16\u754c\u7684\u6982\u5ff5\uff0c\u8fd9\u6761\u72ec\u7acb\u7684\u7ebf\u7ee7\u627f\u4e86\u5f53\u524d\u7248\u672c\u5e93\u7684\u5168\u90e8\u5185\u5bb9\uff0c\u5e76\u4e14\u4e4b\u540e\u5728\u8fd9\u6761\u72ec\u7acb\u7684\u7ebf\u4e0a\u8fdb\u884c\u4fee\u6539\u548c\u63d0\u4ea4\u7b49\u4e00\u7cfb\u5217\u64cd\u4f5c\u5747\u4e0d\u4f1a\u5f71\u54cd\u6b64\u524d\u7684<code>master<\/code>\u5206\u652f<\/p>\n<p>Git\u5728\u521d\u59cb\u5316\u540e\u4f1a\u9ed8\u8ba4\u751f\u6210\u4e00\u4e2a<code>master<\/code>\u5206\u652f\uff0c\u5e76\u4e14\u53ea\u6709\u8fd9\u4e00\u6761\u5206\u652f\uff0c\u6211\u4eec\u4e00\u5f00\u59cb\u5bf9\u7248\u672c\u5e93\u8fdb\u884c\u7684\u64cd\u4f5c\u5747\u662f\u5728\u8fd9\u6761\u5206\u652f\u4e0a\u8fdb\u884c<\/p>\n<p>\u5176\u5b9e\u5728\u524d\u9762<a class=\"link\" href=\"#%e7%89%88%e6%9c%ac%e5%9b%9e%e9%80%80\" >\u7248\u672c\u56de\u9000<\/a>\u90e8\u5206\u63d0\u5230\u7684<code>HEAD<\/code>\u6307\u9488\u4e25\u683c\u610f\u4e49\u4e0a\u5c31\u662f\u6307\u5411\u7684\u5f53\u524d\u5206\u652f\u7684\u6700\u65b0\u63d0\u4ea4<\/p>\n<h4 id=\"\u521b\u5efa\u5207\u6362\u5206\u652f\">\u521b\u5efa\/\u5207\u6362\u5206\u652f\n<\/h4><hr>\n<p>\u9996\u5148\u53ef\u4ee5\u4f7f\u7528<code>git branch &lt;branch_name&gt;<\/code>\u521b\u5efa\u4e00\u4e2a\u5206\u652f\uff0c\u521b\u5efa\u540e\u53ef\u4ee5\u76f4\u63a5\u6267\u884c<code>git branch<\/code>\u67e5\u770b\u6240\u6709\u5206\u652f\u548c\u5f53\u524d\u5206\u652f\uff08\u5f53\u524d\u5206\u652f\u524d\u6709<code>*<\/code>\u6807\u6ce8\uff09\uff0c\u7136\u540e\u4f7f\u7528<code>git checkout &lt;branch_name&gt; <\/code>\u6216 <code>git switch &lt;branch_name&gt;<\/code>\u5207\u6362\u5206\u652f<\/p>\n<p>\u53e6\u5916\u4e5f\u53ef\u4ee5\u901a\u8fc7<code>git checkout -b &lt;branch_name&gt;<\/code> \u6216 <code>git switch -c &lt;branch_name&gt;<\/code>\u521b\u5efa\u5e76\u5207\u6362\u5230\u5206\u652f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git branch <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git switch <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Switched to branch <span class=\"s1\">&#39;test&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* <span class=\"nb\">test<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u5408\u5e76\u5206\u652f\">\u5408\u5e76\u5206\u652f\n<\/h4><hr>\n<p>\u9996\u5148\u5728\u65b0\u5206\u652f\u4e0a\u5bf9\u6587\u4ef6\u8fdb\u884c\u4e00\u4e9b\u4fee\u6539\u5e76\u63d0\u4ea4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git branch\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;add some contents&#34;<\/span> &gt;&gt; file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git add file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit -m <span class=\"s2\">&#34;add contents in test branch&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span><span class=\"nb\">test<\/span> 6a02dba<span class=\"o\">]<\/span> add contents in <span class=\"nb\">test<\/span> branch\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">1<\/span> file changed, <span class=\"m\">1<\/span> insertion<span class=\"o\">(<\/span>+<span class=\"o\">)<\/span>, <span class=\"m\">1<\/span> deletion<span class=\"o\">(<\/span>-<span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5728\u5206\u652f\u4e0a\u5b8c\u6210\u4fee\u6539\u5de5\u4f5c\u540e\u53ef\u4ee5\u5c06\u5176\u5408\u5e76\u5230\u4e3b\u5206\u652f\uff08<code>master<\/code>\uff09\u4e0a\uff0c\u9996\u5148\u8981\u5148\u5207\u6362\u5230<code>master<\/code>\u5206\u652f\uff0c\u518d\u6267\u884c<code>git merge &lt;branch_name&gt;<\/code>\u5c06\u5176\u4ed6\u5206\u652f\u5408\u5e76\u5230\u5f53\u524d\u5206\u652f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git switch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Switched to branch <span class=\"s1\">&#39;master&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git merge <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Updating d038d5e..6a02dba\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Fast-forward\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> file1.txt <span class=\"p\">|<\/span> <span class=\"m\">2<\/span> +-\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">1<\/span> file changed, <span class=\"m\">1<\/span> insertion<span class=\"o\">(<\/span>+<span class=\"o\">)<\/span>, <span class=\"m\">1<\/span> deletion<span class=\"o\">(<\/span>-<span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ea\u8981\u4e24\u4e2a\u5206\u652f\u6ca1\u6709\u5bf9\u540c\u4e00\u90e8\u5206\u5185\u5bb9\u8fdb\u884c\u4fee\u6539\uff0c\u90a3\u4e48\u4e0a\u9762\u7684\u64cd\u4f5c\u901a\u5e38\u5c31\u53ef\u4ee5\u987a\u5229\u5408\u5e76\u5206\u652f\uff0c\u5426\u5219\u7684\u8bdd\u5c31\u4f1a\u56e0\u4e3a\u51b2\u7a81\u5bfc\u81f4\u5408\u5e76\u5931\u8d25\uff0c\u56e0\u4e3agit\u4e0d\u77e5\u9053\u8be5\u4fdd\u5b58\u54ea\u4e2a\u5206\u652f\u7684\u4fee\u6539\uff0c\u7136\u540e\u5c31\u9700\u8981<a class=\"link\" href=\"#%e8%a7%a3%e5%86%b3%e5%90%88%e5%b9%b6%e5%86%b2%e7%aa%81\" >\u624b\u52a8\u89e3\u51b3\u51b2\u7a81<\/a><\/p>\n<h4 id=\"\u5220\u9664\u5206\u652f\">\u5220\u9664\u5206\u652f\n<\/h4><hr>\n<p>\u4f7f\u7528<code>git branch -d &lt;branch_name&gt;<\/code>\u5220\u9664\u5206\u652f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git branch -d <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Deleted branch <span class=\"nb\">test<\/span> <span class=\"o\">(<\/span>was 6a02dba<span class=\"o\">)<\/span>.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* master\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u89e3\u51b3\u5408\u5e76\u51b2\u7a81\">\u89e3\u51b3\u5408\u5e76\u51b2\u7a81\n<\/h4><hr>\n<p>\u73b0\u5728\u5c31\u8bf4\u660e\u4e00\u4e0b\u5982\u679c\u4e24\u4e2a\u5206\u652f\u5bf9\u540c\u4e00\u90e8\u5206\u5185\u5bb9\u8fdb\u884c\u4e86\u4fee\u6539\uff0c\u7136\u540e\u5728\u5408\u5e76\u65f6\u7684\u51b2\u7a81\u95ee\u9898<\/p>\n<p>\u9996\u5148\u521b\u5efa\u4e00\u4e2a\u5206\u652f\uff0c\u5e76\u5728\u4e00\u4e2a\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e00\u884c\u5185\u5bb9\u5e76\u63d0\u4ea4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git branch <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;test&#34;<\/span> &gt;&gt; file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git add file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit -m <span class=\"s2\">&#34;add content test&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>master 1ca71d8<span class=\"o\">]<\/span> add content <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">1<\/span> file changed, <span class=\"m\">1<\/span> insertion<span class=\"o\">(<\/span>+<span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u56de\u5230<code>master<\/code>\u5206\u652f\uff0c\u5728\u540c\u4e00\u4e2a\u6587\u4ef6\u6dfb\u52a0\u53e6\u5916\u7684\u4e00\u884c\u5185\u5bb9\u5e76\u63d0\u4ea4<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git switch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Already on <span class=\"s1\">&#39;master&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;master&#34;<\/span> &gt;&gt; file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git add file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit -m <span class=\"s2\">&#34;add content master&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>master edcf03d<span class=\"o\">]<\/span> add content master\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"m\">1<\/span> file changed, <span class=\"m\">1<\/span> insertion<span class=\"o\">(<\/span>+<span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6b64\u65f6\u4f7f\u7528<code>git merge<\/code>\u8fdb\u884c\u5408\u5e76\uff0c\u53ef\u4ee5\u53d1\u73b0\u7531\u4e8e\u5b58\u5728\u51b2\u7a81\u5bfc\u81f4\u5408\u5e76\u5931\u8d25\uff0c\u53ef\u4ee5\u901a\u8fc7<code>git status<\/code>\u67e5\u770b\u72b6\u6001<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git merge <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Auto-merging file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">CONFLICT <span class=\"o\">(<\/span>content<span class=\"o\">)<\/span>: Merge conflict in file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Automatic merge failed<span class=\"p\">;<\/span> fix conflicts and <span class=\"k\">then<\/span> commit the result.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">On branch master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">You have unmerged paths.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>fix conflicts and run <span class=\"s2\">&#34;git commit&#34;<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git merge --abort&#34;<\/span> to abort the merge<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Unmerged paths:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git add &lt;file&gt;...&#34;<\/span> to mark resolution<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        both modified:   file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">no changes added to commit <span class=\"o\">(<\/span>use <span class=\"s2\">&#34;git add&#34;<\/span> and\/or <span class=\"s2\">&#34;git commit -a&#34;<\/span><span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5f53\u4f7f\u7528<code>git merge<\/code>\u5408\u5e76\u5931\u8d25\u540e\uff0c\u4f1a\u8fdb\u5165\u5230\u7528\u4e8e\u89e3\u51b3\u5408\u5e76\u51b2\u7a81\u7684&quot;\u6a21\u5f0f\u6216\u8005\u8fc7\u7a0b&quot;\uff0c\u6b64\u65f6\u5982\u679c\u6211\u4eec\u60f3\u53d6\u6d88\u5408\u5e76\u9700\u8981\u6267\u884c<code>git merge --abort<\/code>\u9000\u51fa\u8be5&quot;\u6a21\u5f0f&quot;\u3002\u800c\u5982\u679c\u60f3\u89e3\u51b3\u51b2\u7a81\u5e76\u7ee7\u7eed\u5408\u5e76\uff0c\u5219\u9700\u8981\u8fdb\u5165\u5bf9\u5e94\u7684\u6587\u4ef6\u8fdb\u884c\u4fee\u6539<\/p>\n<p>\u5728\u8fd9\u4e2a&quot;\u6a21\u5f0f&quot;\u4e0b\u4f7f\u7528\u6587\u672c\u7f16\u8f91\u5668\u6253\u5f00\u51b2\u7a81\u6587\u4ef6\u540e\u5c31\u4f1a\u53d1\u73b0git\u4f7f\u7528<code>&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD<\/code>\uff0c<code>=======<\/code>\uff0c\u548c<code>&gt;&gt;&gt;&gt;&gt;&gt;&gt; BRANCH-NAME<\/code>\u6807\u8bb0\u51fa\u4e86\u51b2\u7a81\u5185\u5bb9\u7684\u4f4d\u7f6e\uff0c\u6b64\u65f6\u6211\u4eec\u9700\u8981\u5c06\u7f16\u8f91\u7684\u90e8\u5206\u66ff\u6362\u4e3a\u6211\u4eec\u5e0c\u671b\u5408\u5e76\u540e\u7684\u5185\u5bb9\uff08\u53ef\u4ee5\u6539\u4e3a\u4efb\u610f\u5185\u5bb9\uff0c\u751a\u81f3\u53ef\u4ee5\u4e24\u4e2a\u5206\u652f\u4e2d\u7684\u5185\u5bb9\u90fd\u65e0\u5173\uff09\uff0c\u66ff\u6362\u540e\u4f7f\u7528<code>git add<\/code>\u548c<code>git commit<\/code>\u6dfb\u52a0\u5e76\u63d0\u4ea4\u5c31\u53ef\u4ee5\u5b8c\u6210\u5408\u5e76\uff08\u4e0d\u518d\u9700\u8981\u91cd\u65b0\u6267\u884c<code>git merge<\/code>\uff09<\/p>\n<p>\u4e0b\u9762\u662f\u64cd\u4f5c\u793a\u4f8b\uff1a<\/p>\n<p>\u9996\u5148\u67e5\u770b\u51b2\u7a81\u6587\u4ef6\u7684\u5185\u5bb9\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-txt\" data-lang=\"txt\"><span class=\"line\"><span class=\"cl\">...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD\n<\/span><\/span><span class=\"line\"><span class=\"cl\">master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">=======\n<\/span><\/span><span class=\"line\"><span class=\"cl\">test\n<\/span><\/span><span class=\"line\"><span class=\"cl\">&gt;&gt;&gt;&gt;&gt;&gt;&gt; test\n<\/span><\/span><\/code><\/pre><\/div><p>\u968f\u4fbf\u66ff\u6362\u4e3a\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-txt\" data-lang=\"txt\"><span class=\"line\"><span class=\"cl\">...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">whatever I want\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u63d0\u4ea4\u540e\u5c31\u53ef\u4ee5\u5b8c\u6210\u5408\u5e76<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git add file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit -m <span class=\"s2\">&#34;fix conflicts&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>master 012bc8d<span class=\"o\">]<\/span> fix conflicts\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ cat file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">whatever I want\n<\/span><\/span><\/code><\/pre><\/div><p>\u7528\u5e26\u53c2\u6570\u7684<code>git log<\/code>\u4e5f\u53ef\u4ee5\u770b\u5230\u5206\u652f\u7684\u5408\u5e76\u60c5\u51b5\uff08\u5176\u4e2d<code>*<\/code>\u8868\u793a\u7684\u662f\u53f3\u4fa7log\u5185\u5bb9\u5bf9\u5e94\u7684\u5206\u652f\uff09\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git log --graph --pretty<span class=\"o\">=<\/span>oneline --abbrev-commit\n<\/span><\/span><span class=\"line\"><span class=\"cl\">*   012bc8d <span class=\"o\">(<\/span>HEAD -&gt; master<span class=\"o\">)<\/span> fix conflicts\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">|<\/span><span class=\"se\">\\\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"se\"><\/span><span class=\"p\">|<\/span> * 343e28f <span class=\"o\">(<\/span><span class=\"nb\">test<\/span><span class=\"o\">)<\/span> <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* <span class=\"p\">|<\/span> 7a21c8f master\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">|<\/span>\/\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* edcf03d add content master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* 1ca71d8 add content <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* 6a02dba add contents in <span class=\"nb\">test<\/span> branch\n<\/span><\/span><span class=\"line\"><span class=\"cl\">*   d038d5e correct the conflict\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">|<\/span><span class=\"se\">\\\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"se\"><\/span><span class=\"p\">|<\/span> * b60ea8a add content dev\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* <span class=\"p\">|<\/span> e46fa81 add content master\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">|<\/span>\/\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* 0f45bbb add a file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* c502366 delete test.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* b5a9f5b add a new file\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* d389705 first revise\n<\/span><\/span><span class=\"line\"><span class=\"cl\">* 18a9b90 First create readme.txt.\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u6807\u7b7e\u7ba1\u7406\">\u6807\u7b7e\u7ba1\u7406\n<\/h3><hr>\n<p>\u53d1\u5e03\u4e00\u4e2a\u7248\u672c\u65f6\uff0c\u53ef\u4ee5\u5148\u5728\u7248\u672c\u5e93\u4e2d\u6253\u4e00\u4e2a\u6807\u7b7e\uff08tag\uff09\uff0c\u8fd9\u6837\u5c31\u552f\u4e00\u786e\u5b9a\u4e86\u6253\u6807\u7b7e\u65f6\u523b\u7684\u7248\u672c\u3002\u5c06\u6765\u65e0\u8bba\u4ec0\u4e48\u65f6\u5019\uff0c\u53d6\u67d0\u4e2a\u6807\u7b7e\u7684\u7248\u672c\uff0c\u5c31\u662f\u628a\u90a3\u4e2a\u6253\u6807\u7b7e\u7684\u65f6\u523b\u7684\u5386\u53f2\u7248\u672c\u53d6\u51fa\u6765\u3002\u6240\u4ee5\uff0c\u6807\u7b7e\u4e5f\u662f\u7248\u672c\u5e93\u7684\u4e00\u4e2a\u5feb\u7167<\/p>\n<p>Git\u7684\u6807\u7b7e\u867d\u7136\u662f\u7248\u672c\u5e93\u7684\u5feb\u7167\uff0c\u4f46\u5176\u5b9e\u5b83\u5c31\u662f\u6307\u5411\u67d0\u4e2acommit\u7684\u6307\u9488\uff08\u8ddf\u5206\u652f\u5f88\u50cf\u5bf9\u4e0d\u5bf9\uff1f\u4f46\u662f\u5206\u652f\u53ef\u4ee5\u79fb\u52a8\uff0c\u6807\u7b7e\u4e0d\u80fd\u79fb\u52a8\uff09\uff0c\u6240\u4ee5\uff0c\u521b\u5efa\u548c\u5220\u9664\u6807\u7b7e\u90fd\u662f\u77ac\u95f4\u5b8c\u6210\u7684<\/p>\n<p>\u53e6\u5916\u4f7f\u7528\u6807\u7b7e\u53ef\u4ee5\u907f\u514d\u4f7f\u7528\u5197\u957f\u7684\u7248\u672c\u53f7\uff0c\u6709\u70b9\u76f8\u5f53\u4e8e\u7248\u672c\u53f7\u66ff\u4ee3\u7684\u611f\u89c9<\/p>\n<h4 id=\"\u521b\u5efa\u6807\u7b7e\">\u521b\u5efa\u6807\u7b7e\n<\/h4><hr>\n<p>\u4f7f\u7528<code>git tag &lt;tag_name&gt;<\/code>\u5c31\u53ef\u4ee5\u9ed8\u8ba4\u5728\u6700\u65b0\u63d0\u4ea4\u7684\u7248\u672c\u4e0a\u6253\u4e00\u4e2a\u6807\u7b7e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git log --pretty<span class=\"o\">=<\/span>oneline\n<\/span><\/span><span class=\"line\"><span class=\"cl\">012bc8dd722025bb10190a08be5e20ccb064a927 <span class=\"o\">(<\/span>HEAD -&gt; master<span class=\"o\">)<\/span> fix conflicts\n<\/span><\/span><span class=\"line\"><span class=\"cl\">7a21c8fb8b2f068e00c8c223177fb123aeab2dd3 master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">343e28f6666f1a996e59c2826c17435204f979c3 <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git tag v1.0\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log --pretty<span class=\"o\">=<\/span>oneline\n<\/span><\/span><span class=\"line\"><span class=\"cl\">012bc8dd722025bb10190a08be5e20ccb064a927 <span class=\"o\">(<\/span>HEAD -&gt; master, tag: v1.0<span class=\"o\">)<\/span> fix conflicts\n<\/span><\/span><span class=\"line\"><span class=\"cl\">7a21c8fb8b2f068e00c8c223177fb123aeab2dd3 master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">343e28f6666f1a996e59c2826c17435204f979c3 <span class=\"nb\">test<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5982\u679c\u60f3\u7ed9\u67d0\u4e2a\u5386\u53f2\u7248\u672c\u6253\u6807\u7b7e\u5c31\u9700\u8981\u5728\u540e\u9762\u52a0\u4e0a\u7248\u672c\u53f7\uff08commit_id\uff09\uff0c<code>git tag &lt;tag_name&gt; &lt;commit_id&gt;<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git tag v0.9 7a21\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log --pretty<span class=\"o\">=<\/span>oneline\n<\/span><\/span><span class=\"line\"><span class=\"cl\">012bc8dd722025bb10190a08be5e20ccb064a927 <span class=\"o\">(<\/span>HEAD -&gt; master, tag: v1.0<span class=\"o\">)<\/span> fix conflicts\n<\/span><\/span><span class=\"line\"><span class=\"cl\">7a21c8fb8b2f068e00c8c223177fb123aeab2dd3 <span class=\"o\">(<\/span>tag: v0.9<span class=\"o\">)<\/span> master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">343e28f6666f1a996e59c2826c17435204f979c3 <span class=\"nb\">test<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u4f7f\u7528<code>git tag<\/code>\u53ef\u4ee5\u67e5\u770b\u5b58\u5728\u7684\u6807\u7b7e\uff0c\u4f7f\u7528<code>git show &lt;tag_name&gt;<\/code>\u53ef\u4ee5\u67e5\u770b\u6807\u7b7e\u4fe1\u606f<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git tag\n<\/span><\/span><span class=\"line\"><span class=\"cl\">v0.9\n<\/span><\/span><span class=\"line\"><span class=\"cl\">v1.0\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git show v0.9\n<\/span><\/span><span class=\"line\"><span class=\"cl\">commit 7a21c8fb8b2f068e00c8c223177fb123aeab2dd3 <span class=\"o\">(<\/span>tag: v0.9<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Author: Kaiyuan &lt;mghtdyx@gmail.com&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Date:   Thu Dec <span class=\"m\">7<\/span> 17:35:17 <span class=\"m\">2023<\/span> +0800\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">diff --git a\/file1.txt b\/file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">index 1f143a0..d958a1b <span class=\"m\">100644<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">--- a\/file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">+++ b\/file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">@@ -2,3 +2,4 @@ file <span class=\"m\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> correct the conflictadd some contents\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">+master\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd8\u53ef\u4ee5\u521b\u5efa\u5e26\u6709\u8bf4\u660e\u7684\u6807\u7b7e\uff0c\u9700\u4f7f\u7528<code>git tag -a &lt;tag_name&gt; -m &lt;tag_message&gt; &lt;commit_id&gt;<\/code>\u547d\u4ee4\u521b\u5efa\uff0c\u7136\u540e\u4f7f\u7528<code>git show &lt;tag_name&gt;<\/code>\u5c31\u53ef\u4ee5\u770b\u5230\u8bf4\u660e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git tag -a v0.8 -m <span class=\"s2\">&#34;version 0.8&#34;<\/span> 343e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git tag\n<\/span><\/span><span class=\"line\"><span class=\"cl\">v0.8\n<\/span><\/span><span class=\"line\"><span class=\"cl\">v0.9\n<\/span><\/span><span class=\"line\"><span class=\"cl\">v1.0\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git show v0.8\n<\/span><\/span><span class=\"line\"><span class=\"cl\">tag v0.8\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Tagger: Kaiyuan &lt;mghtdyx@gmail.com&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Date:   Thu Dec <span class=\"m\">7<\/span> 22:35:53 <span class=\"m\">2023<\/span> +0800\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">version 0.8\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">commit 343e28f6666f1a996e59c2826c17435204f979c3 <span class=\"o\">(<\/span>tag: v0.8<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Author: Kaiyuan &lt;mghtdyx@gmail.com&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Date:   Thu Dec <span class=\"m\">7<\/span> 17:34:34 <span class=\"m\">2023<\/span> +0800\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">diff --git a\/file1.txt b\/file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">index 1f143a0..4caed33 <span class=\"m\">100644<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">--- a\/file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">+++ b\/file1.txt\n<\/span><\/span><span class=\"line\"><span class=\"cl\">@@ -2,3 +2,4 @@ file <span class=\"m\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> correct the conflictadd some contents\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"nb\">test<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">+test\n<\/span><\/span><\/code><\/pre><\/div><p><strong>\u6ce8\u610f\uff1a\u6807\u7b7e\u603b\u662f\u548c\u67d0\u4e2acommit\u6302\u94a9\u3002\u5982\u679c\u8fd9\u4e2acommit\u65e2\u51fa\u73b0\u5728master\u5206\u652f\uff0c\u53c8\u51fa\u73b0\u5728dev\u5206\u652f\uff0c\u90a3\u4e48\u5728\u8fd9\u4e24\u4e2a\u5206\u652f\u4e0a\u90fd\u53ef\u4ee5\u770b\u5230\u8fd9\u4e2a\u6807\u7b7e<\/strong><\/p>\n<h4 id=\"\u5220\u9664\u6807\u7b7e\">\u5220\u9664\u6807\u7b7e\n<\/h4><hr>\n<p>\u56e0\u4e3a\u521b\u5efa\u7684\u6807\u7b7e\u90fd\u53ea\u5b58\u50a8\u5728\u672c\u5730\uff0c\u4e0d\u4f1a\u81ea\u52a8\u63a8\u9001\u5230\u8fdc\u7a0b\u3002\u6240\u4ee5\uff0c\u6253\u9519\u7684\u6807\u7b7e\u53ef\u4ee5\u5728\u672c\u5730\u4f7f\u7528<code>git tag -d &lt;tag_name&gt;<\/code>\u5b89\u5168\u5220\u9664<\/p>\n<p>\u5982\u679c\u8981\u63a8\u9001\u67d0\u4e2a\u6807\u7b7e\u5230\u8fdc\u7a0b\u4ed3\u5e93\uff08\u8fdc\u7a0b\u4ed3\u5e93\u5c06\u5728<a class=\"link\" href=\"#%e8%bf%9c%e7%a8%8b%e4%bb%93%e5%ba%93\" >\u540e\u9762<\/a>\u4ecb\u7ecd\uff09\uff0c\u9700\u8981\u4f7f\u7528\u547d\u4ee4<code>git push &lt;remote_repo_name&gt; &lt;tagname&gt;<\/code>\uff0c\u6216\u8005\u4e5f\u53ef\u4ee5\u4f7f\u7528<code>git push &lt;remote_repo_name&gt; --tags<\/code>\u4e00\u6b21\u6027\u63a8\u9001\u5168\u90e8\u5c1a\u672a\u63a8\u9001\u5230\u8fdc\u7a0b\u7684\u672c\u5730\u6807\u7b7e<\/p>\n<p>\u5982\u679c\u6807\u7b7e\u5df2\u7ecf\u63a8\u9001\u5230\u8fdc\u7a0b\uff0c\u8981\u5220\u9664\u8fdc\u7a0b\u6807\u7b7e\u5c31\u9ebb\u70e6\u4e00\u70b9\uff0c\u9700\u8981\u5148\u4f7f\u7528<code>git tag -d &lt;tag_name&gt;<\/code>\u4ece\u672c\u5730\u5220\u9664\uff0c\u7136\u540e\u4f7f\u7528<code>git push &lt;remote_repo_name&gt; :refs\/tags\/&lt;tag_name&gt;<\/code><\/p>\n<h3 id=\"\u8fdc\u7a0b\u4ed3\u5e93\">\u8fdc\u7a0b\u4ed3\u5e93\n<\/h3><hr>\n<p>\u8fdc\u7a0b\u4ed3\u5e93\u53ef\u4ee5\u5927\u6982\u7406\u89e3\u4e3a\u4e00\u53f0\u7528\u4e8e\u53d1\u5e03\u7248\u672c\u5e93\u7684\u670d\u52a1\u5668\uff0c\u6bcf\u4e2a\u4eba\u53ef\u4ee5\u628a\u5404\u81ea\u7684\u63d0\u4ea4\u63a8\u9001\u7684\u670d\u52a1\u5668\u4ed3\u5e93\u91cc\uff0c\u4e5f\u53ef\u4ee5\u4ece\u670d\u52a1\u5668\u4ed3\u5e93\u62c9\u53d6\u522b\u4eba\u7684\u63d0\u4ea4<\/p>\n<p><a class=\"link\" href=\"https:\/\/github.com\/\"  target=\"_blank\" rel=\"noopener\"\n    >Github<\/a>\u5c31\u662f\u77e5\u540d\u7684\u4ed3\u5e93\u6258\u7ba1\u7f51\u7ad9\uff0c\u5f53\u7136\u4e5f\u53ef\u4ee5\u642d\u5efa\u81ea\u5df1\u7684Git\u670d\u52a1\u5668<\/p>\n<h4 id=\"github\">Github\n<\/h4><hr>\n<p>\u8fd9\u91cc\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b\u6dfb\u52a0Github\u8fdc\u7a0b\u4ed3\u5e93\uff0c\u7531\u4e8e\u56fd\u5185\u65e0\u6cd5\u8bbf\u95eeGithub\uff0c\u56e0\u6b64\u4e0b\u9762\u7684\u64cd\u4f5c\u5728\u56fd\u5185\u53ef\u80fd\u65e0\u6cd5\u6210\u529f<\/p>\n<p>\u9996\u5148\uff0c\u8981\u6ce8\u518c\u4e00\u4e2aGithub\u8d26\u53f7\uff0c\u5f53\u7136\u8fd9\u91cc\u8981\u8bbf\u95ee\u7684\u8bdd\u4e5f\u662f\u9700\u8981\u4e00\u4e9b&quot;\u9b54\u6cd5&quot;\uff0c\u603b\u4e4b\u5148\u8981\u6ce8\u518c\u540e\u767b\u5f55\u8d26\u53f7\uff0c\u7136\u540e\u521b\u5efa\u4e00\u4e2a\u8fdc\u7a0b\u4ed3\u5e93\uff08Create a new repository\uff09<\/p>\n<h5 id=\"\u5173\u8054\u8fdc\u7a0b\u5e93\u672c\u5730-\u8fdc\u7a0b\">\u5173\u8054\u8fdc\u7a0b\u5e93\uff08\u672c\u5730-&gt;\u8fdc\u7a0b\uff09\n<\/h5><hr>\n<p>\u6211\u4eec\u8981\u5c06\u672c\u5730\u4ed3\u5e93\u5173\u8054\u5230\u521b\u5efa\u7684\u8fdc\u7a0b\u4ed3\u5e93\u4e0a\uff0c\u8fd9\u91cc\u6709\u4e24\u79cd\u65b9\u5f0f\u53bb\u8fde\u63a5\uff1aHTTPs\uff08\u4f8b\u5982\u00a0<code>https:\/\/github.com\/user\/repo.git<\/code>\uff09\u548cSSH\uff08\u4f8b\u5982\u00a0<code>git@github.com:user\/repo.git<\/code>\uff09\u3002\u4f7f\u7528HTTPs\u7684\u65b9\u5f0f\u9700\u8981\u63d0\u4f9b\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u800c\u4f7f\u7528SSH\u7684\u65b9\u5f0f\u5219\u9700\u8981\u5728\u672c\u5730\u7528\u6237\u6839\u76ee\u5f55\u4e0b\u7684<code>.ssh<\/code>\u76ee\u5f55\u4e2d\u751f\u6210\u5bc6\u94a5\u5bf9\uff0c\u5e76\u5c06\u516c\u94a5\u4fdd\u5b58\u5230Github\u8d26\u6237\u4e2d\uff0c\u5176\u4e2d\u4f7f\u7528SSH\u901f\u5ea6\u66f4\u5feb\uff0c\u8fd9\u91cc\u4e3b\u8981\u4ecb\u7ecdSSH\u65b9\u5f0f<\/p>\n<p>\u5c06SSH\u516c\u94a5\u4e0a\u4f20\u5230Github\u540e\u5c31\u53ef\u4ee5\u5728\u672c\u5730\u4ed3\u5e93\u4e2d\u4f7f\u7528<code>git remote add &lt;shortname&gt; &lt;url&gt;<\/code>\u8fdb\u884c\u5173\u8054\uff0c\u53ef\u4ee5\u4f7f\u7528<code>git remote -v<\/code>\u67e5\u770b\u8fdc\u7a0b\u5e93\u4fe1\u606f\u3002\u8fd9\u91cc\u5c06\u8fdc\u7a0b\u5e93\u547d\u540d\u4e3a<code>origin<\/code>\uff0c\u4e5f\u53ef\u4ee5\u6539\u6210\u522b\u7684\uff0c\u4f46\u8fd9\u662fGit\u8fdc\u7a0b\u5e93\u9ed8\u8ba4\u7684\u901a\u7528\u540d\u5b57<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git remote add origin git@github.com:user\/repo.git\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git remote -v \n<\/span><\/span><span class=\"line\"><span class=\"cl\">origin  git@github.com:user\/repo.git <span class=\"o\">(<\/span>fetch<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">origin  git@github.com:user\/repo.git <span class=\"o\">(<\/span>push<span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u4f7f\u7528<code>git push -u origin master<\/code>\u5c06\u672c\u5730\u5e93\u4e2d<code>master<\/code>\u5206\u652f\u4e2d\u7684\u5185\u5bb9\u63a8\u9001\u81f3\u8fdc\u7a0b\u5e93<code>origin<\/code>\u4e2d<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git push -u origin master\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Enumerating objects: 6, <span class=\"k\">done<\/span>.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Delta compression using up to <span class=\"m\">2<\/span> threads\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Compressing objects: 100% <span class=\"o\">(<\/span>3\/3<span class=\"o\">)<\/span>, <span class=\"k\">done<\/span>.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Writing objects: 100% <span class=\"o\">(<\/span>6\/6<span class=\"o\">)<\/span>, <span class=\"m\">492<\/span> bytes <span class=\"p\">|<\/span> 492.00 KiB\/s, <span class=\"k\">done<\/span>.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Total <span class=\"m\">6<\/span> <span class=\"o\">(<\/span>delta 0<span class=\"o\">)<\/span>, reused <span class=\"m\">0<\/span> <span class=\"o\">(<\/span>delta 0<span class=\"o\">)<\/span>, pack-reused <span class=\"m\">0<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">To github.com:mghts\/learngit.git\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> * <span class=\"o\">[<\/span>new branch<span class=\"o\">]<\/span>      master -&gt; master\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> branch <span class=\"s1\">&#39;master&#39;<\/span> <span class=\"nb\">set<\/span> up to track <span class=\"s1\">&#39;origin\/master&#39;<\/span>.\n<\/span><\/span><\/code><\/pre><\/div><p>\u7531\u4e8e\u8fdc\u7a0b\u5e93\u662f\u7a7a\u7684\uff0c\u6211\u4eec\u7b2c\u4e00\u6b21\u63a8\u9001<code>master<\/code>\u5206\u652f\u65f6\uff0c\u901a\u8fc7\u4f7f\u7528<code>-u<\/code>\u53c2\u6570\uff0ck\u53ef\u4ee5\u5c06\u672c\u5730\u5206\u652f\u4e0e\u8fdc\u7a0b\u5206\u652f\u8fdb\u884c\u5173\u8054\uff0c\u5e76\u6307\u5b9a\u8fdc\u7a0b\u5206\u652f\u4e3a\u9ed8\u8ba4\u7684\u4e0a\u6e38\uff08upstream\uff09\u5206\u652f\u3002\u901a\u8fc7\u4f7f\u7528<code>-u<\/code>\u53c2\u6570\uff0c\u53ef\u4ee5\u7b80\u5316\u4ee5\u540e\u7684<code>git push<\/code>\u547d\u4ee4\uff0c\u56e0\u4e3a\u5728\u5efa\u7acb\u5173\u8054\u5173\u7cfb\u540e\uff0cGit \u5c06\u8bb0\u4f4f\u9ed8\u8ba4\u7684\u4e0a\u6e38\u5206\u652f\uff0c\u540e\u7eed\u7684<code>git push<\/code>\u547d\u4ee4\u5c31\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u800c\u4e0d\u9700\u8981\u6307\u5b9a\u8fdc\u7a0b\u548c\u5206\u652f<\/p>\n<h6 id=\"\u5220\u9664\u4fee\u6539\u8fdc\u7a0b\u5e93\">\u5220\u9664\/\u4fee\u6539\u8fdc\u7a0b\u5e93\uff1a\n<\/h6><hr>\n<p>\u5982\u679c\u60f3\u5220\u9664\u8fdc\u7a0b\u5e93\uff0c\u53ef\u4ee5\u4f7f\u7528<code>git remote rm &lt;repo_name&gt;<\/code>\u547d\u4ee4<\/p>\n<p>\u5982\u679c\u60f3\u4fee\u6539\u8fdc\u7a0b\u5e93\u7684URL\u53ef\u4ee5\u4f7f\u7528<code>git remote set-url &lt;repo_name&gt; &lt;URL&gt;<\/code><\/p>\n<p>\u5982\u679c\u60f3\u91cd\u547d\u540d\u8fdc\u7a0b\u5e93\u53ef\u4ee5\u4f7f\u7528<code>git remote rename &lt;old_name&gt; &lt;new_name&gt;<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git remote rm origin\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git remote set-url origin git@github.com:OWNER\/REPOSITORY.git\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git remote rename origin destination\n<\/span><\/span><\/code><\/pre><\/div><h5 id=\"\u4ece\u8fdc\u7a0b\u5e93\u514b\u9686\u8fdc\u7a0b-\u672c\u5730\">\u4ece\u8fdc\u7a0b\u5e93\u514b\u9686\uff08\u8fdc\u7a0b-&gt;\u672c\u5730\uff09\n<\/h5><hr>\n<p>\u9996\u5148\u5728Github\u4e0a\u521b\u5efa\u4e00\u4e2a\u8fdc\u7a0b\u5e93\uff0c\u5728\u521b\u5efa\u65f6\u52fe\u9009<code>Initialize this repository with a README<\/code><\/p>\n<p>\u7136\u540e\u4f7f\u7528<code>git clone &lt;URL&gt;<\/code>\u514b\u9686\u4e00\u4e2a\u672c\u5730\u5e93<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git clone git@github.com:user\/repo.git\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Cloning into <span class=\"s1\">&#39;gitskills&#39;<\/span>...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">remote: Counting objects: 3, <span class=\"k\">done<\/span>.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">remote: Total <span class=\"m\">3<\/span> <span class=\"o\">(<\/span>delta 0<span class=\"o\">)<\/span>, reused <span class=\"m\">0<\/span> <span class=\"o\">(<\/span>delta 0<span class=\"o\">)<\/span>, pack-reused <span class=\"m\">3<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Receiving objects: 100% <span class=\"o\">(<\/span>3\/3<span class=\"o\">)<\/span>, <span class=\"k\">done<\/span>.\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u4e2a\u514b\u9686\u4e0b\u6765\u7684\u672c\u5730\u5e93\u4f1a\u81ea\u52a8\u5173\u8054\u8fdc\u7a0b\u5e93\u4fe1\u606f<\/p>\n<h4 id=\"\u81ea\u5efagit\u670d\u52a1\u5668\">\u81ea\u5efaGit\u670d\u52a1\u5668\n<\/h4><hr>\n<p>\u9996\u5148\u786e\u4fdd\u670d\u52a1\u5668\u5b89\u88c5\u4e86git\uff0c\u5b89\u88c5\u540e\u65b0\u5efa\u4e00\u4e2agit\u7528\u6237\uff0c\u5e76\u5728git\u7528\u6237\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a<code>.ssh<\/code>\u76ee\u5f55<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ adduser git\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ su git\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">cd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ mkdir .ssh <span class=\"o\">&amp;&amp;<\/span> chmod <span class=\"m\">700<\/span> .ssh\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u8981\u5728<code>.ssh<\/code>\u76ee\u5f55\u4e0b\u65b0\u5efa\u4e00\u4e2a<code>authorized_keys<\/code>\u6587\u4ef6\u7528\u4e8e\u5b58\u653e\u8bbf\u95ee\u8005\u7684SSH\u516c\u94a5\uff0c\u8fd9\u91cc\u8981\u6ce8\u610f\u8be5\u6587\u4ef6\u7684\u6743\u9650\u4e00\u5b9a\u8981\u8bbe\u4e3a<code>600<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ touch .ssh\/authorized_keys <span class=\"o\">&amp;&amp;<\/span> chmod <span class=\"m\">600<\/span> .ssh\/authorized_keys\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u65b0\u5efa\u4e00\u4e2a\u76ee\u5f55\uff08\u901a\u5e38\u4e3a<code>.git<\/code>\u7ed3\u5c3e\uff09\u5e76\u4f7f\u7528<code>git init --bare<\/code>\u521d\u59cb\u5316\u4e3a\u4e00\u4e2agit\u7a7a\u4ed3\u5e93\uff0c\u7136\u540e\u5f00\u53d1\u8005\u5c31\u53ef\u4ee5\u8bbe\u7f6e\u8be5\u4ed3\u5e93\u4e3a\u8fdc\u7a0b\u4ed3\u5e93\u5e76\u8fdb\u884c\u5173\u8054\u3001\u63a8\u9001\u3001\u514b\u9686\u7b49\u64cd\u4f5c<\/p>\n<blockquote>\n<p><code>git init --bare<\/code>\u521b\u5efa\u7684\u662f\u4e00\u4e2a\u201c\u88f8\u201d\uff08bare\uff09\u7684Git\u4ed3\u5e93\u3002\u4e0e\u666e\u901a\u7684Git\u4ed3\u5e93\u4e0d\u540c\uff0c\u88f8\u4ed3\u5e93\u901a\u5e38\u4e0d\u5305\u542b\u5de5\u4f5c\u76ee\u5f55\uff0c\u5b83\u4ec5\u5305\u542bGit\u7248\u672c\u63a7\u5236\u6240\u9700\u7684\u5143\u6570\u636e\u548c\u5bf9\u8c61\u6570\u636e\u5e93\u3002<\/p>\n<p>\u5177\u4f53\u6765\u8bf4\uff0c<code>--bare<\/code>\u9009\u9879\u7528\u4e8e\u521b\u5efa\u4e00\u4e2a\u6ca1\u6709\u5de5\u4f5c\u76ee\u5f55\u7684Git\u4ed3\u5e93\uff0c\u8fd9\u79cd\u4ed3\u5e93\u901a\u5e38\u7528\u4e8e\u4f5c\u4e3a\u96c6\u4e2d\u5f0f\u7684\u7248\u672c\u5e93\uff0c\u7528\u4e8e\u5171\u4eab\u548c\u534f\u4f5c\u3002\u88f8\u4ed3\u5e93\u4e2d\u6ca1\u6709\u5b9e\u9645\u7684\u9879\u76ee\u6587\u4ef6\uff0c\u53ea\u5b58\u50a8Git\u7684\u7248\u672c\u5386\u53f2\u4fe1\u606f\u3002\u8fd9\u79cd\u7c7b\u578b\u7684\u4ed3\u5e93\u901a\u5e38\u7528\u4e8e\u670d\u52a1\u5668\u4e0a\uff0c\u4ee5\u4fbf\u591a\u4e2a\u5f00\u53d1\u8005\u80fd\u591f\u63a8\u9001\uff08push\uff09\u548c\u62c9\u53d6\uff08pull\uff09\u4ee3\u7801\uff0c\u800c\u4e0d\u6d89\u53ca\u5de5\u4f5c\u76ee\u5f55\u3002<\/p>\n<p>\u88f8\u4ed3\u5e93\u901a\u5e38\u7528\u4e8e\u642d\u5efa\u96c6\u4e2d\u5f0f\u7684\u7248\u672c\u63a7\u5236\u7cfb\u7edf\uff0c\u4f8b\u5982\u5728\u56e2\u961f\u6216\u9879\u76ee\u7684\u670d\u52a1\u5668\u4e0a\u3002\u5b83\u4eec\u4e0d\u5305\u542b\u9879\u76ee\u6587\u4ef6\uff0c\u56e0\u6b64\u4e0d\u80fd\u76f4\u63a5\u7528\u4e8e\u5de5\u4f5c\u6216\u5f00\u53d1\uff0c\u800c\u662f\u7528\u4e8e\u534f\u4f5c\u548c\u5171\u4eab\u4ee3\u7801\u3002\u5728\u88f8\u4ed3\u5e93\u4e2d\uff0c\u5206\u652f\u3001\u6807\u7b7e\u548c\u5176\u4ed6Git\u7684\u5143\u6570\u636e\u4fe1\u606f\u90fd\u5b58\u50a8\u5728.git\u76ee\u5f55\u4e2d\uff0c\u800c\u4e0d\u662f\u4e0e\u5de5\u4f5c\u76ee\u5f55\u4e00\u8d77\u5b58\u50a8\u3002<\/p><\/blockquote>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ mkdir \/home\/git\/temp.git\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">cd<\/span> \/home\/git\/temp.git\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git init --bare\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hint: Using <span class=\"s1\">&#39;master&#39;<\/span> as the name <span class=\"k\">for<\/span> the initial branch. This default branch name\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hint: is subject to change. To configure the initial branch name to use in all\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hint: of your new repositories, which will suppress this warning, call:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hint:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hint:   git config --global init.defaultBranch &lt;name&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hint:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hint: Names commonly chosen instead of <span class=\"s1\">&#39;master&#39;<\/span> are <span class=\"s1\">&#39;main&#39;<\/span>, <span class=\"s1\">&#39;trunk&#39;<\/span> and\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hint: <span class=\"s1\">&#39;development&#39;<\/span>. The just-created branch can be renamed via this command:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hint:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hint:   git branch -m &lt;name&gt;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Initialized empty Git repository in \/home\/git\/temp.git\/\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ <span class=\"nb\">cd<\/span> ..\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ chown -R git:git temp.git\n<\/span><\/span><\/code><\/pre><\/div><p>\u51fa\u4e8e\u5b89\u5168\u8003\u8651\uff0c\u6700\u597d\u7981\u6b62git\u7528\u6237\u767b\u9646shell\uff0c\u53ef\u4ee5\u4e3agit\u6307\u5b9a\u4e00\u4e2a\u540d\u4e3agit-shell\u7684\u53d7\u9650shell\u5de5\u5177\uff0c\u8fd9\u6837\uff0cgit\u7528\u6237\u53ef\u4ee5\u6b63\u5e38\u901a\u8fc7ssh\u4f7f\u7528git\uff0c\u4f46\u65e0\u6cd5\u767b\u5f55shell\uff0c\u56e0\u4e3a\u6211\u4eec\u4e3agit\u7528\u6237\u6307\u5b9a\u7684git-shell\u6bcf\u6b21\u4e00\u767b\u5f55\u5c31\u81ea\u52a8\u9000\u51fa<\/p>\n<p>\u53ef\u4ee5\u4f7f\u7528<code>which git-shell<\/code>\u67e5\u770bgit-shell\u662f\u5426\u5b58\u5728\u7cfb\u7edf\u4e2d\u5e76\u786e\u5b9a\u5176\u4f4d\u7f6e\uff0c\u7136\u540e\u53ef\u4ee5\u4f7f\u7528<code>chsh &lt;username&gt; -s &lt;shell&gt;<\/code>\u547d\u4ee4\u4fee\u6539\u4efb\u4e00\u7cfb\u7edf\u7528\u6237\u7684shell\uff1b\u9664\u4e86\u8be5\u65b9\u6cd5\uff0c\u4e5f\u53ef\u4ee5\u76f4\u63a5\u4fee\u6539<code>\/etc\/passwd<\/code>\u6587\u4ef6\u4e2dgit\u7528\u6237\u7684shell<\/p>\n<p>\u7981\u6b62shell\u767b\u5f55\u540e\uff0c\u540e\u7eed\u6211\u4eec\u60f3\u65b0\u5efa\u4e00\u4e2a\u7a7a\u4ed3\u5e93\u5c31\u9700\u8981root\u7528\u6237\u53bb\u521b\u5efa\uff0c\u521b\u5efa\u5e76\u521d\u59cb\u5316\u540e\u5c31\u9700\u8981\u6ce8\u610f\u4fee\u6539\u8fd9\u4e2a\u4ed3\u5e93\u7684\u6240\u5c5e\u7528\u6237\uff0c\u4e0d\u7136git\u6ca1\u6743\u9650\u8bbf\u95ee\u4e5f\u5c31\u662f\u9700\u8981<code>chown -R git:git example.git<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ which git-shell\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\/usr\/bin\/git-shell\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ chsh git -s \/usr\/bin\/git-shell\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ cat \/etc\/passwd\n<\/span><\/span><span class=\"line\"><span class=\"cl\">git:x:1001:1001:,,,:\/home\/git:\/usr\/bin\/git-shell\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u53ef\u4ee5\u53c2\u8003\u524d\u9762\u7684\u5185\u5bb9\u8fdb\u884c<a class=\"link\" href=\"#%e5%85%b3%e8%81%94%e8%bf%9c%e7%a8%8b%e5%ba%93%e6%9c%ac%e5%9c%b0-%e8%bf%9c%e7%a8%8b\" >\u5173\u8054<\/a>\u6216\u8005<a class=\"link\" href=\"#%e4%bb%8e%e8%bf%9c%e7%a8%8b%e5%ba%93%e5%85%8b%e9%9a%86%e8%bf%9c%e7%a8%8b-%e6%9c%ac%e5%9c%b0\" >\u514b\u9686<\/a>\u8fdc\u7a0b\u4ed3\u5e93\u7b49\u64cd\u4f5c\uff0c\u4f46\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u6709\u65f6\u5019\u6211\u4eec\u7684\u670d\u52a1\u5668SSH\u4f7f\u7528\u7684\u5e76\u4e0d\u662f\u9ed8\u8ba4\u768422\u53f7\u7aef\u53e3\uff0c\u8fd9\u65f6\u5019\u9700\u8981\u4fee\u6539URL\u4e3a<code>ssh:\/\/&lt;git_user&gt;@&lt;ip_addr&gt;:&lt;port_number&gt;&lt;remote_repo_path&gt;<\/code>\uff0c\u4f8b\u5982:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ git remote add origin ssh:\/\/git@192.168.1.2:1234\/home\/git\/repo\/git\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git clone ssh:\/\/git@192.168.1.2:1234\/home\/git\/repo\/git\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u540e\u8bb0\">\u540e\u8bb0\n<\/h2><hr>\n<p>\u672c\u7bc7\u5185\u5bb9\u5e94\u8be5\u53ef\u4ee5\u5305\u542b\u6240\u6709git\u7684\u57fa\u672c\u7528\u6cd5\uff0c\u5c24\u5176\u662f\u5bf9\u4e8e\u6211\u8fd9\u79cd\u975e\u5f00\u53d1\u4eba\u5458\uff08\u751a\u81f3\u662f\u672c\u5730\u7528\u6237\uff09\u7edd\u5bf9\u591f\u7528\u4e86\u3002<\/p>\n<p>\u5199\u5b8c\u6700\u540e\u53d1\u73b0\u5176\u5b9e\u8fd8\u86ee\u591a\u7684\uff0c\u4f46git\u7684\u7528\u6cd5\u548c\u529f\u80fd\u8fdc\u4e0d\u6b62\u8fd9\u4e9b\uff0c\u81f3\u4e8e\u5176\u4ed6\u7684\u7528\u6cd5\u540e\u7eed\u4f1a\u901a\u8fc7\u989d\u5916\u7684\u5c0f\u7bc7\u7ae0\u8fdb\u884c\u8865\u5145<\/p>\n"},{"title":"Nextcloud \u4f7f\u7528 OCC \u8fdb\u884c\u6570\u636e\u540c\u6b65","link":"https:\/\/been.ee\/p\/0-0-0-18\/","pubDate":"Fri, 01 Dec 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-18\/","description":"<h2 id=\"occ\u8bf4\u660e\">OCC\u8bf4\u660e\n<\/h2><hr>\n<p>\u8fd9\u90e8\u5206\u4e3b\u8981\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528OCC\u8fdb\u884c\u6570\u636e\u5e93\u540c\u6b65\uff0c\u4e5f\u5c31\u662f\u6587\u4ef6\u64cd\u4f5c\u90e8\u5206\uff0c\u5b9e\u9645\u4e0aOCC\u8fd8\u6709\u5f88\u591a\u529f\u80fd\uff0c\u53ef\u4ee5\u53bb\u770b<a class=\"link\" href=\"https:\/\/docs.nextcloud.com\/server\/15\/admin_manual\/configuration_server\/occ_command.html#files-external\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a><\/p>\n<p>\u6267\u884c\u4e0b\u9762\u547d\u4ee4\u4f1a\u5217\u51faOCC\u7684\u4f7f\u7528\u8bf4\u660e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">sudo -u www-data php \/var\/www\/html\/nextcloud\/occ\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sudo -u www-data php \/var\/www\/html\/nextcloud\/occ list <span class=\"c1\"># \u548c\u4e0a\u6761\u547d\u4ee4\u6548\u679c\u76f8\u540c<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"occ\u6587\u4ef6\u64cd\u4f5c\">OCC\u6587\u4ef6\u64cd\u4f5c\n<\/h2><hr>\n<p>\u76ee\u524d\u6709\u4e09\u6761\u7ba1\u7406\u6587\u4ef6\u7684OCC\u547d\u4ee4\uff0c\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">files\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> files:cleanup              cleanup filecache\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> files:scan                 rescan filesystem\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> files:transfer-ownership   All files and folders are moved to another user - shares are moved as well.\n<\/span><\/span><\/code><\/pre><\/div><p>\u8fd9\u91cc\u6211\u4eec\u4e3b\u8981\u4f7f\u7528<code>file:scan<\/code>\u8fdb\u884c\u6570\u636e\u540c\u6b65\uff0c\u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">sudo -u www-data php occ files:scan --help\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  Usage:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  files:scan <span class=\"o\">[<\/span>-p<span class=\"p\">|<\/span>--path<span class=\"o\">=<\/span><span class=\"s2\">&#34;...&#34;<\/span><span class=\"o\">]<\/span> <span class=\"o\">[<\/span>-q<span class=\"p\">|<\/span>--quiet<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>-v<span class=\"p\">|<\/span>vv<span class=\"p\">|<\/span>vvv --verbose<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>--all<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"o\">[<\/span>user_id1<span class=\"o\">]<\/span> ... <span class=\"o\">[<\/span>user_idN<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Arguments:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  user_id               will rescan all files of the given user<span class=\"o\">(<\/span>s<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Options:\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  --path                limit rescan to the user\/path given\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  --all                 will rescan all files of all known users\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  --quiet               suppress any output\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  --verbose             files and directories being processed are shown additionally during scanning\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  --unscanned           scan only previously unscanned files\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u626b\u63cf\u5168\u90e8\u6587\u4ef6\">\u626b\u63cf\u5168\u90e8\u6587\u4ef6\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">sudo -u www-data php \/var\/www\/html\/nextcloud\/occ files:scan --all\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u6307\u5b9a\u8def\u5f84\u626b\u63cf\">\u6307\u5b9a\u8def\u5f84\u626b\u63cf\n<\/h3><hr>\n<p>\u8def\u5f84\u5fc5\u987b\u8981\u4ee5<code>\/var\/www\/html\/nextcloud\/data\/<\/code>\u76ee\u5f55\u4e0b\u7684<code>user\/files\/<\/code>\u5f00\u5934\uff0c\u4e00\u822c\u4e3a<code>user\/files\/...<\/code>\uff0c\u6bd4\u5982\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">sudo -u www-data php \/var\/www\/html\/nextcloud\/occ files:scan --path<span class=\"o\">=<\/span><span class=\"s2\">&#34;immer\/files\/documents&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Nginx \u7f16\u8bd1\u5b89\u88c5","link":"https:\/\/been.ee\/p\/0-0-0-17\/","pubDate":"Fri, 01 Dec 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-17\/","description":"<h2 id=\"\u5b89\u88c5\u4f9d\u8d56\">\u5b89\u88c5\u4f9d\u8d56\n<\/h2><div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">apt update\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">apt install -y build-essential libpcre3 libpcre3-dev openssl libssl-dev zlib1g-dev\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u4ece\u5b98\u7f51\u4e0b\u8f7d\u6e90\u7801\u5e76\u89e3\u538b\">\u4ece\u5b98\u7f51\u4e0b\u8f7d\u6e90\u7801\u5e76\u89e3\u538b\n<\/h2><div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">wget<\/span> <span class=\"n\">https<\/span><span class=\"p\">:<\/span><span class=\"o\">\/\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">.<\/span><span class=\"n\">org<\/span><span class=\"o\">\/<\/span><span class=\"n\">download<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">-<\/span><span class=\"mf\">1.24<\/span><span class=\"o\">.<\/span><span class=\"mf\">0.<\/span><span class=\"n\">tar<\/span><span class=\"o\">.<\/span><span class=\"n\">gz<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">tar<\/span> <span class=\"n\">zxvf<\/span> <span class=\"n\">nginx<\/span><span class=\"o\">-<\/span><span class=\"mf\">1.24<\/span><span class=\"o\">.<\/span><span class=\"mf\">0.<\/span><span class=\"n\">tar<\/span><span class=\"o\">.<\/span><span class=\"n\">gz<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">cd<\/span> <span class=\"n\">nginx<\/span><span class=\"o\">-<\/span><span class=\"mf\">1.24<\/span><span class=\"o\">.<\/span><span class=\"mi\">0<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u7f16\u8bd1\u5b89\u88c5\">\u7f16\u8bd1\u5b89\u88c5\n<\/h2><div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">groupadd<\/span> <span class=\"n\">nginx<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">useradd<\/span> <span class=\"o\">-<\/span><span class=\"n\">g<\/span> <span class=\"n\">nginx<\/span> <span class=\"n\">nginx<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">mkdir<\/span> <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">cache<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">.\/<\/span><span class=\"n\">configure<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">prefix<\/span><span class=\"o\">=\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">sbin<\/span><span class=\"o\">-<\/span><span class=\"n\">path<\/span><span class=\"o\">=\/<\/span><span class=\"n\">usr<\/span><span class=\"o\">\/<\/span><span class=\"n\">sbin<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">conf<\/span><span class=\"o\">-<\/span><span class=\"n\">path<\/span><span class=\"o\">=\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">.<\/span><span class=\"n\">conf<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">error<\/span><span class=\"o\">-<\/span><span class=\"nb\">log<\/span><span class=\"o\">-<\/span><span class=\"n\">path<\/span><span class=\"o\">=\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"nb\">log<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">error<\/span><span class=\"o\">.<\/span><span class=\"n\">log<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">http<\/span><span class=\"o\">-<\/span><span class=\"nb\">log<\/span><span class=\"o\">-<\/span><span class=\"n\">path<\/span><span class=\"o\">=\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"nb\">log<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">access<\/span><span class=\"o\">.<\/span><span class=\"n\">log<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">pid<\/span><span class=\"o\">-<\/span><span class=\"n\">path<\/span><span class=\"o\">=\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">run<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">.<\/span><span class=\"n\">pid<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">lock<\/span><span class=\"o\">-<\/span><span class=\"n\">path<\/span><span class=\"o\">=\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">run<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">.<\/span><span class=\"n\">lock<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">http<\/span><span class=\"o\">-<\/span><span class=\"n\">client<\/span><span class=\"o\">-<\/span><span class=\"n\">body<\/span><span class=\"o\">-<\/span><span class=\"n\">temp<\/span><span class=\"o\">-<\/span><span class=\"n\">path<\/span><span class=\"o\">=\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">cache<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">client_temp<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">http<\/span><span class=\"o\">-<\/span><span class=\"n\">proxy<\/span><span class=\"o\">-<\/span><span class=\"n\">temp<\/span><span class=\"o\">-<\/span><span class=\"n\">path<\/span><span class=\"o\">=\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">cache<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">proxy_temp<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">http<\/span><span class=\"o\">-<\/span><span class=\"n\">fastcgi<\/span><span class=\"o\">-<\/span><span class=\"n\">temp<\/span><span class=\"o\">-<\/span><span class=\"n\">path<\/span><span class=\"o\">=\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">cache<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">fastcgi_temp<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">http<\/span><span class=\"o\">-<\/span><span class=\"n\">uwsgi<\/span><span class=\"o\">-<\/span><span class=\"n\">temp<\/span><span class=\"o\">-<\/span><span class=\"n\">path<\/span><span class=\"o\">=\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">cache<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">uwsgi_temp<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">http<\/span><span class=\"o\">-<\/span><span class=\"n\">scgi<\/span><span class=\"o\">-<\/span><span class=\"n\">temp<\/span><span class=\"o\">-<\/span><span class=\"n\">path<\/span><span class=\"o\">=\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">cache<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">scgi_temp<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">user<\/span><span class=\"o\">=<\/span><span class=\"n\">nginx<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">group<\/span><span class=\"o\">=<\/span><span class=\"n\">nginx<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">compat<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">file<\/span><span class=\"o\">-<\/span><span class=\"n\">aio<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">threads<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_addition_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_auth_request_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_dav_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_flv_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_gunzip_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_gzip_static_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_mp4_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_random_index_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_realip_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_secure_link_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_slice_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_ssl_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_stub_status_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_sub_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">http_v2_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">mail<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">mail_ssl_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">stream<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">stream_realip_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">stream_ssl_module<\/span> \\\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">--<\/span><span class=\"n\">with<\/span><span class=\"o\">-<\/span><span class=\"n\">stream_ssl_preread_module<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">make<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">make<\/span> <span class=\"n\">install<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u521b\u5efanginx\u670d\u52a1\">\u521b\u5efanginx\u670d\u52a1\n<\/h2><div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">nano \/usr\/lib\/systemd\/system\/nginx.service\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u590d\u5236\u4e0b\u9762\u5185\u5bb9<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Unit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Description<\/span><span class=\"o\">=<\/span>nginx - high performance web server\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Documentation<\/span><span class=\"o\">=<\/span>https:\/\/nginx.org\/en\/docs\/\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">After<\/span><span class=\"o\">=<\/span>network-online.target remote-fs.target nss-lookup.target\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Wants<\/span><span class=\"o\">=<\/span>network-online.target\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Service<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">Type<\/span><span class=\"o\">=<\/span>forking\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">PIDFile<\/span><span class=\"o\">=<\/span>\/var\/run\/nginx.pid\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">ExecStart<\/span><span class=\"o\">=<\/span>\/usr\/sbin\/nginx -c \/etc\/nginx\/nginx.conf\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">ExecReload<\/span><span class=\"o\">=<\/span>\/usr\/sbin\/nginx -s reload\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">ExecStop<\/span><span class=\"o\">=<\/span>\/usr\/sbin\/nginx -s quit\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">PrivateTmp<\/span><span class=\"o\">=<\/span><span class=\"nb\">true<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">[<\/span>Install<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">WantedBy<\/span><span class=\"o\">=<\/span>multi-user.target\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\">\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\n<\/h2><div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">systemctl <span class=\"nb\">enable<\/span> nginx\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"EndNote \u81ea\u5b9a\u4e49\u53c2\u8003\u6587\u732e\u683c\u5f0f","link":"https:\/\/been.ee\/p\/0-0-0-16\/","pubDate":"Sat, 07 Oct 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-16\/","description":"<h2 id=\"endnote\u7b80\u4ecb\">Endnote\u7b80\u4ecb\n<\/h2><hr>\n<p>\u4e00\u6b3e\u6587\u732e\u7ba1\u7406\u5de5\u5177\uff0c\u4e3b\u8981\u53ef\u4ee5\u7528\u6765\u5b58\u653e\u6587\u732e\u6761\u76ee\uff0c\u505a\u4e00\u4e9b\u6587\u732e\u5206\u7c7b\uff0c\u65b9\u4fbf\u67e5\u627e\u5565\u7684\uff0c\u4f46\u6211\u4e00\u822c\u662f\u5199\u8bba\u6587\u7684\u65f6\u5019\u63d2\u5165\u6587\u732e\u7528\uff0c\u8fd9\u91cc\u4e5f\u53ea\u4ecb\u7ecd\u8be5\u529f\u80fd<\/p>\n<p>\u53e6\u5916\uff0cEndNote\u5b58\u653e\u7684\u6587\u732e\u5982\u679c\u592a\u591a\u53ef\u80fd\u4f1a\u542f\u52a8\u7279\u522b\u6162\uff0c\u659f\u914c\u4f7f\u7528<\/p>\n<p>\u9644\u4e0a\u5b98\u7f51\u4e0b\u8f7d\u94fe\u63a5\uff08\u8bb0\u4e0d\u6e05\u662f\u514d\u8d39\u8fd8\u662f\u4ed8\u8d39\u7684\u4e86\uff09\uff1a<a class=\"link\" href=\"https:\/\/endnote.com\/downloads\"  target=\"_blank\" rel=\"noopener\"\n    >Downloads | EndNote<\/a><\/p>\n<h2 id=\"\u6587\u732e\u5b58\u653e\">\u6587\u732e\u5b58\u653e\n<\/h2><hr>\n<p>\u901a\u5e38\u5728\u671f\u520a\u5b98\u7f51\u4f1a\u6709\u7c7b\u4f3c&quot;Export Citation&quot;\u7684\u9009\u9879\uff0c\u7136\u540e\u9009\u62e9\u5bfc\u51fa\u4e3aEndNote\uff08.enw\uff09\u6216\u8005.ris\u683c\u5f0f\u4f1a\u4e0b\u8f7d\u4e00\u4e2a\u6587\u4ef6\uff0c\u7136\u540e\u6253\u5f00Endnote\uff0c\u70b9\u51fb\u4e0b\u8f7d\u7684\u6587\u4ef6\u5c31\u4f1a\u81ea\u52a8\u5bfc\u5165\u5230EndNote\u91cc\u4e86<\/p>\n<h2 id=\"\u6587\u732e\u5f15\u7528\">\u6587\u732e\u5f15\u7528\n<\/h2><hr>\n<p>\u5b89\u88c5\u597dEndNote\u540e\uff0c\u9ed8\u8ba4\u5e94\u8be5\u662f\u5728Word\u4e0a\u65b9\u7684\u83dc\u5355\u91cc\u6dfb\u52a0\u4e0aEndNote\uff0c\u65b9\u4fbf\u5728Word\u4e2d\u5bfc\u5165<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/1.png\"\n\twidth=\"1154\"\n\theight=\"162\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/1_hu_e9721f2cdd19ff5b.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/1_hu_d4dab563962ba29.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"712\"\n\t\tdata-flex-basis=\"1709px\"\n\t\n><\/p>\n<p>\u5173\u4e8e\u8fd9\u4e9b\u9009\u9879\uff0c\u5927\u6982\u6311\u7740\u5e38\u7528\u7684\u4ecb\u7ecd\u4e00\u4e0b\uff1a<\/p>\n<blockquote>\n<ul>\n<li>\n<p><strong>Insert Citation<\/strong>: \u5728\u5f53\u524d\u5149\u6807\u5904\u63d2\u5165\u6587\u732e\uff0c\u6211\u901a\u5e38\u4e60\u60ef\u5148\u5728EndNote\u4e2d\u9009\u4e2d\uff0c\u7136\u540e\u9009\u62e9Insert Selected Citations<\/p>\n<\/li>\n<li>\n<p><strong>Edit &amp; Manage Citations<\/strong>: \u5220\u9664\u6216\u8005\u8c03\u6574\u5f15\u6587\u987a\u5e8f\u4e4b\u7c7b\u7684<\/p>\n<\/li>\n<li>\n<p><strong>Style<\/strong>: \u9009\u62e9\u53c2\u8003\u6587\u732e\u7684\u683c\u5f0f\uff0cEndNote\u9ed8\u8ba4\u63d0\u4f9b\u4e86\u5f88\u591a\u7c7b\u578b\uff0c\u4f46\u5f80\u5f80\u90fd\u9700\u8981\u6839\u636e\u8981\u6295\u7684\u671f\u520a\u8981\u6c42\u4fee\u6539<\/p>\n<\/li>\n<li>\n<p><strong>Update Citations and Bibliography<\/strong>: \u66f4\u65b0\u6587\u732e\u683c\u5f0f<\/p>\n<\/li>\n<li>\n<p><strong>Convert Citations and Bibliography<\/strong>: \u4e00\u822c\u7528\u6765\u786e\u5b9a\u597d\u63d2\u5165\u7684\u6587\u732e\u540e\uff0c\u9009\u62e9&quot;Convert to Plain Text&quot;\u89e3\u9664Endnote\u5173\u8054\uff0c\u4e00\u65e6\u89e3\u9664\u540e\u5c31\u65e0\u6cd5\u518d\u901a\u8fc7EndNote\u4fee\u6539\u4e86<\/p>\n<\/li>\n<li>\n<p><strong>Instant Formatting is On<\/strong>: \u5982\u679c\u63d2\u5165\u6587\u732e\u65f6\u51fa\u73b0\u4e71\u7801\uff0c\u5c31\u628a\u8fd9\u91cc\u8bbe\u7f6e\u4e3a&quot;On&quot;\u5c31\u597d\u4e86\uff0c\u9ed8\u8ba4\u597d\u50cf\u662f&quot;Off&quot;<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<h3 id=\"\u81ea\u5b9a\u4e49\u63d2\u5165\u6587\u732e\u683c\u5f0f\">\u81ea\u5b9a\u4e49\u63d2\u5165\u6587\u732e\u683c\u5f0f\n<\/h3><hr>\n<p>\u4e4b\u6240\u4ee5\u8981\u81ea\u5b9a\u4e49\u662f\u56e0\u4e3aEndNote\u81ea\u5e26\u7684\u7c7b\u578b\u683c\u5f0f\u4e0e\u6295\u7a3f\u671f\u520a\u7684\u8981\u6c42\u4e00\u822c\u90fd\u6709\u533a\u522b\uff0c\u8fd9\u65f6\u5019\u5c31\u53ef\u4ee5\u6839\u636e\u5bf9\u5e94\u671f\u520a\u81ea\u5b9a\u4e49\u4e00\u4e2a\u683c\u5f0f\uff0c\u4e5f\u80fd\u4f9b\u4ee5\u540e\u518d\u6295\u7a3f\u7684\u65f6\u5019\u4f7f\u7528\u3002<\/p>\n<p>\u8981\u5148\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u683c\u5f0f\uff0c\u5f53\u7136\u4e5f\u53ef\u4ee5\u627e\u4e00\u4e2a\u76f8\u4f3c\u7684\u683c\u5f0f\u5728\u6b64\u57fa\u7840\u4e0a\u66f4\u6539\u3002\u53ef\u4ee5\u901a\u8fc7\u83dc\u5355\u680f\u627e\u5230&quot;Tools&quot;-&ldquo;Output Styles&rdquo;-&ldquo;New Style&quot;\u521b\u5efa<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/2.png\"\n\twidth=\"1162\"\n\theight=\"383\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/2_hu_21f26a7bafe88d31.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/2_hu_88f849496dcdb82c.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"303\"\n\t\tdata-flex-basis=\"728px\"\n\t\n>\n<img src=\"https:\/\/been.ee\/p\/0-0-0-16\/3.png\"\n\twidth=\"1423\"\n\theight=\"776\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/3_hu_6b6396333a8f36a8.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/3_hu_618e9ff783e2afaf.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"183\"\n\t\tdata-flex-basis=\"440px\"\n\t\n>\n\u6253\u5f00\u81ea\u5b9a\u4e49\u7a97\u53e3\u540e\uff0c\u6700\u5de6\u8fb9\u8fd9\u4e00\u680f\u5c31\u662f\u6211\u4eec\u8981\u81ea\u5b9a\u4e49\u7684\u5404\u4e2a\u90e8\u5206\uff0c\u63a5\u4e0b\u6765\u9488\u5bf9\u8981\u91cd\u70b9\u4fee\u6539\u7684\u90e8\u5206\u4ecb\u7ecd\uff0c\u4e0d\u505a\u8bf4\u660e\u7684\u901a\u5e38\u4e0d\u9700\u8981\u4fee\u6539\uff08\u4e3b\u8981\u662f\u6307\u6211\u81ea\u5df1\uff09<\/p>\n<h4 id=\"about-this-style\">&ldquo;About this Style&rdquo;\n<\/h4><hr>\n<p>\u8fd9\u91cc\u4e3b\u8981\u662f\u5173\u4e8e\u8fd9\u4e2a\u683c\u5f0f\u7684\u540d\u5b57\u548c\u4ecb\u7ecd\u4e4b\u7c7b\u7684\uff0c\u8d77\u4e2a\u540d\u968f\u4fbf\u5199\u5199\u5c31\u597d<\/p>\n<h4 id=\"page-numbers\">&ldquo;Page Numbers&rdquo;\n<\/h4><hr>\n<p>\u8bbe\u7f6e\u663e\u793a\u5f15\u7528\u6587\u732e\u7684\u9875\u7801\u7684\u683c\u5f0f\uff0c\u6bd4\u8f83\u5bb9\u6613\u770b\u61c2\uff0c\u4e0d\u591a\u5e9f\u8bdd<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/4.png\"\n\twidth=\"403\"\n\theight=\"229\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/4_hu_cfbcf0d83eb37ca1.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/4_hu_aafc6a5850de8f09.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"175\"\n\t\tdata-flex-basis=\"422px\"\n\t\n><\/p>\n<h4 id=\"journal-names\">&ldquo;Journal Names&rdquo;\n<\/h4><hr>\n<p>\u8bbe\u7f6e\u671f\u520a\u663e\u793a\u6837\u5f0f\uff0c\u56e0\u4e3a\u5f88\u591a\u65f6\u5019\u9700\u8981\u7528\u7b80\u5199\uff0c\u8fd9\u91cc\u63d0\u4f9b\u4e86\u66ff\u6362\u4e3a\u7b80\u5199\u7684\u529f\u80fd\uff0c\u4f46\u662f\u9700\u8981\u63d0\u524d\u6784\u5efa\u597d\u671f\u520a\u5168\u7a0b\u548c\u7b80\u5199\u7684\u6620\u5c04\u8868\uff0c\u8981\u6ce8\u610f\u9ed8\u8ba4\u662f\u6ca1\u6709\u6620\u5c04\u7684<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/5.png\"\n\twidth=\"349\"\n\theight=\"269\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/5_hu_dc08284c3c8ecf7e.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/5_hu_1662b41e7fbd1160.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"129\"\n\t\tdata-flex-basis=\"311px\"\n\t\n><\/p>\n<p>\u6dfb\u52a0\u6620\u5c04\u9700\u8981\u6253\u5f00&quot;Library&rdquo;-&ldquo;Open Term Lists&rdquo;-&ldquo;Journals Term List&rdquo;\uff0c<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/6.png\"\n\twidth=\"834\"\n\theight=\"500\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/6_hu_5e960ea56363bc14.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/6_hu_6e10df25469ef54c.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"166\"\n\t\tdata-flex-basis=\"400px\"\n\t\n><\/p>\n<p>\u7136\u540e\u53ef\u4ee5\u5728Terms\u680f\u91cc\u624b\u52a8\u65b0\u5efa\u3001\u7f16\u8f91\u3001\u5220\u9664\u7b80\u5199\u6761\u76ee\u3002\u53e6\u5916\u4e5f\u53ef\u4ee5\u5728Lists\u680f\u91cc\u627e\u5230Import List\uff0c\u4eceEndNote\u81ea\u5e26\u7684\u6761\u76ee\u8868\u6587\u4ef6\u91cc\u5bfc\u5165\uff0c\u4f46\u662f\u53ef\u80fd\u4e0d\u5168\u6216\u8005\u6709\u9519\u8bef\uff0c\u5bfc\u5165\u540e\u53ef\u4ee5\u624b\u52a8\u4fee\u6539<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/7.png\"\n\twidth=\"630\"\n\theight=\"541\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/7_hu_91e1e3f263e6d97d.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/7_hu_a358a510319bc0ee.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"116\"\n\t\tdata-flex-basis=\"279px\"\n\t\n><\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/8.png\"\n\twidth=\"630\"\n\theight=\"541\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/8_hu_21d0e97ae8c3898d.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/8_hu_8bc43b18f9b807a1.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"116\"\n\t\tdata-flex-basis=\"279px\"\n\t\n><\/p>\n<p>\u8fd9\u91cc\u9644\u4e0a\u4e24\u4e2a\u53ef\u4ee5\u5bfc\u5165\u7684\u671f\u520a\u7f29\u5199\u5217\u8868\uff0c\u4e00\u4e2a\u662f\u81ea\u5df1\u7528\u7684\u7535\u5316\u5b66\u7c7b\u7684\uff0c\u6682\u65f6\u4e0d\u592a\u591a\uff0c\u53e6\u4e00\u4e2a\u662f\u4ece\u7f51\u7ad9\u4e0b\u8f7d\u7684\uff0c\u670916000+\u6761<\/p>\n<blockquote>\n<ol>\n<li>\n<p><a class=\"link\" href=\"Electrochemical.txt\" >\u7535\u5316\u5b66\u81ea\u7528<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"Material_Large.txt\" >16000+<\/a><\/p>\n<\/li>\n<\/ol><\/blockquote>\n<h4 id=\"sections\">&ldquo;Sections&rdquo;\n<\/h4><hr>\n<p>\u8bbe\u7f6e\u53c2\u8003\u6587\u732e\u5728\u6587\u6863\u4e2d\u7684\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u5c31\u662f\u6587\u7ae0\u6700\u540e\uff0c\u6240\u4ee5\u4e0d\u7528\u6539<\/p>\n<h4 id=\"citations-templates\">&ldquo;Citations&rdquo;-&ldquo;Templates&rdquo;\n<\/h4><hr>\n<p>Citation\u90e8\u5206\u5b9a\u4e49\u7684\u662f\u6b63\u6587\u5185\u63d2\u5165\u6587\u732e\u5904\u7684\u663e\u793a\u65b9\u6cd5\uff0c\u6211\u81ea\u5df1\u901a\u5e38\u4f7f\u7528\u4e2d\u62ec\u53f7\u52a0\u6570\u5b57\u7684\u4e0a\u6807\u5f62\u5f0f\uff0c\u4e5f\u5c31\u662f\u8fd9\u6837<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/9.png\"\n\twidth=\"1414\"\n\theight=\"698\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/9_hu_a3e0efe48281ed13.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/9_hu_666b60c966bbd78c.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"202\"\n\t\tdata-flex-basis=\"486px\"\n\t\n><\/p>\n<p>\u8981\u60f3\u66f4\u6539\u7684\u8bdd\u5c31\u4fee\u6539Citation\u90e8\u5206\uff0c\u4ece&quot;Insert Field&quot;\u4e2d\u9009\u62e9\u6837\u5f0f\u5185\u5bb9<\/p>\n<p>\u53e6\u5916\uff0c\u7531\u4e8e\u6211\u4f7f\u7528\u7684\u662fnumeric\uff08\u987a\u5e8f\u7f16\u7801\uff09\u800c\u4e0d\u662fauthor-year\u683c\u5f0f\uff0c\u6240\u4ee5Citation\u90e8\u5206\u5c31\u6539\u8fd9\u4e00\u90e8\u5206\u5c31\u884c\u4e86<\/p>\n<h4 id=\"bibliography-templates\">&ldquo;Bibliography&rdquo;-&ldquo;Templates&rdquo;\n<\/h4><hr>\n<p>Bibliography\u90e8\u5206\u5b9a\u4e49\u7684\u662f\u6587\u6863\u6700\u540e\u6bcf\u4e00\u6761\u5177\u4f53\u6587\u732e\u7684\u5177\u4f53\u663e\u793a\u683c\u5f0f<\/p>\n<p>Templates\u90e8\u5206\u5b9a\u4e49\u4e86\u603b\u4f53\u6837\u5f0f\uff0c\u4e5f\u5c31\u662f\u5404\u90e8\u5206\u7684\u6392\u5217\u65b9\u6cd5\uff0c\u8981\u6ce8\u610f\u8fd9\u91cc\u662f\u53ef\u4ee5\u8bbe\u7f6e\u5b57\u4f53\u548c\u5927\u5c0f\u7b49\u683c\u5f0f\u7684\uff0c\u6309\u7167\u671f\u520a\u8981\u6c42\u4ece&quot;Insert Field&quot;\u91cc\u9009\u62e9\u5404\u90e8\u5206\u6dfb\u52a0\u5230\u4e0b\u9762\u5373\u53ef<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/10.png\"\n\twidth=\"1416\"\n\theight=\"699\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/10_hu_53bd154049059235.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/10_hu_4f4c0ee353bb7254.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"202\"\n\t\tdata-flex-basis=\"486px\"\n\t\n><\/p>\n<h4 id=\"bibliography-layout\">&ldquo;Bibliography&rdquo;-&ldquo;Layout&rdquo;\n<\/h4><hr>\n<p>\u8fd9\u91cc\u5b9e\u9645\u4e0a\u662f\u5b9a\u4e49\u6bcf\u4e00\u6761\u6587\u732e\u6700\u5f00\u5934\u7684\u90e8\u5206\uff0c\u4e5f\u5c31\u662f\u663e\u793a\u5728\u4e0a\u9762\u7684Template\u524d\u9762\u7684\u4e1c\u897f\uff0c\u6211\u4eec\u7684\u8981\u6c42\u901a\u5e38\u662f\u4e2d\u62ec\u53f7\u52a0\u6570\u5b57\u7684\u683c\u5f0f\uff0c\u56e0\u6b64\u5c31\u662f\u8fd9\u6837<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/11.png\"\n\twidth=\"1414\"\n\theight=\"702\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/11_hu_41e0258a3a43241.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/11_hu_61908922a04e841e.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"201\"\n\t\tdata-flex-basis=\"483px\"\n\t\n><\/p>\n<h4 id=\"bibliography-sort-order\">&ldquo;Bibliography&rdquo;-&ldquo;Sort Order&rdquo;\n<\/h4><hr>\n<p>\u6587\u732e\u7684\u663e\u793a\u987a\u5e8f\uff0c\u9ed8\u8ba4\u662f\u6309\u7167\u5728\u6b63\u6587\u5f15\u7528\u7684\u987a\u5e8f\uff0c\u4e00\u822c\u4e0d\u6539<\/p>\n<h4 id=\"bibliography-author-lists\">&ldquo;Bibliography&rdquo;-&ldquo;Author Lists&rdquo;\n<\/h4><hr>\n<p>\u5b9a\u4e49\u4f5c\u8005\u90e8\u5206\u5982\u4f55\u663e\u793a\uff0c\u6bd4\u5982\u53ef\u4ee5\u5217\u51fa\u5168\u90e8\u4f5c\u8005\u6216\u8005\u524d\u4e09\u4e2a\u4f5c\u8005<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/12.png\"\n\twidth=\"1411\"\n\theight=\"698\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/12_hu_c79eb4cca572378.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/12_hu_359aba653ecc4a5a.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"202\"\n\t\tdata-flex-basis=\"485px\"\n\t\n><\/p>\n<h4 id=\"bibliography-author-name\">&ldquo;Bibliography&rdquo;-&ldquo;Author Name&rdquo;\n<\/h4><hr>\n<p>\u5b9a\u4e49\u6bcf\u4e2a\u4f5c\u8005\u7684\u540d\u5b57\u5982\u4f55\u663e\u793a\uff0c\u901a\u5e38\u8981\u6c42\u59d3\u5728\u540e\uff0c\u540d\u5728\u524d\uff0c\u9996\u5b57\u6bcd\u5927\u5199\uff0c\u5e76\u4e14\u540d\u5b57\u53ea\u663e\u793a\u9996\u5b57\u6bcd<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-16\/13.png\"\n\twidth=\"1415\"\n\theight=\"700\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-16\/13_hu_71108aacc5e3e7dd.png 480w, https:\/\/been.ee\/p\/0-0-0-16\/13_hu_ad2e2cc719e7d2f2.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"202\"\n\t\tdata-flex-basis=\"485px\"\n\t\n><\/p>\n<p>\u5176\u4e2d&quot;As Is&quot;\u8868\u793a\u7684\u5e94\u8be5\u662f\u9996\u5b57\u6bcd\u5927\u5199\uff0c\u4e0b\u9762\u7684Initials\u8868\u793a\u7684\u5e94\u8be5\u662f\u540d\u5b57\u7684\u663e\u793a\u683c\u5f0f<\/p>\n<h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u4e3b\u8981\u662f\u9488\u5bf9\u81ea\u7528\u7684\u53c2\u8003\u6587\u732e\u683c\u5f0f\u5199\u7684\uff0c\u4e13\u4e1a\u4e0d\u540c\uff0c\u6295\u7a3f\u671f\u520a\u4e0d\u540c\u5f88\u591a\u5730\u65b9\u53ef\u80fd\u8981\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u4fee\u6539\uff0c\u4f46\u9700\u8981\u4fee\u6539\u7684\u5185\u5bb9\u4e5f\u57fa\u672c\u90fd\u8bf4\u5230\u4e86\uff0c\u5c31\u5177\u4f53\u60c5\u51b5\u5177\u4f53\u5206\u6790\u5427\u3002<\/p>\n"},{"title":"XPS \u539f\u7406\u548c Avantage \u6570\u636e\u5904\u7406","link":"https:\/\/been.ee\/p\/0-0-0-15\/","pubDate":"Mon, 04 Sep 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-15\/","description":"<p>\u7531\u4e8e\u6211\u81ea\u5df1\u4e5f\u662f\u7b2c\u4e00\u6b21\u6d4b\u8bd5XPS\u5e76\u5904\u7406\u6570\u636e\uff0c\u53ef\u80fd\u7406\u89e3\u4e0d\u4f1a\u592a\u6df1\uff0c\u56e0\u6b64\u672c\u7bc7\u5185\u5bb9\u4e0d\u4f1a\u8be6\u7ec6\u5730\u8ffd\u7a76\u7ec6\u8282<\/p>\n<p>PS\uff1a\u672c\u6587\u53c2\u8003\u4e86\u4e00\u7cfb\u5217\u56fd\u5185\u5916\u7f51\u7ad9\uff0c\u592a\u591a\u5fd8\u8bb0\u4fdd\u5b58\u4e86\uff0c\u5c31\u4e0d\u5217\u4e3e\u4e86<\/p>\n<h2 id=\"xps\u4ecb\u7ecd\">XPS\u4ecb\u7ecd\n<\/h2><hr>\n<p>XPS\u5168\u79f0\u4e3aX\u5c04\u7ebf\u5149\u7535\u5b50\u80fd\u8c31\uff0c\u662f\u4e00\u79cd\u7528\u4e8e\u6d4b\u5b9a\u6750\u6599\u4e2d\u5143\u7d20\u6784\u6210\u3001\u5143\u7d20\u5316\u5b66\u6001\u548c\u7535\u5b50\u6001\u7684\u5b9a\u91cf\u80fd\u8c31\u6280\u672f\uff0c\u8bf4\u767d\u4e86\u5c31\u662f\u7528\u6765\u5143\u7d20\u9274\u5b9a<\/p>\n<p>XPS\u7684\u4e09\u4e2a\u4e3b\u8981\u529f\u80fd\uff1a<\/p>\n<blockquote>\n<ol>\n<li>\n<p>\u786e\u5b9a\u6837\u54c1\u8868\u976210nm\u539a\u5ea6\u5185\u7684\u5143\u7d20\u79cd\u7c7b\uff08\u9664\u6c22\u548c\u6c26\uff09\uff0c\u56e0\u4e3aXPS\u53ea\u80fd\u68c0\u6d4b\u51fa\u539f\u5b50\u5e8f\u6570\u5927\u4e8e\u7b49\u4e8e3\u7684\u5143\u7d20<\/p>\n<\/li>\n<li>\n<p>\u786e\u5b9a\u5143\u7d20\u7684\u76f8\u5bf9\u767e\u5206\u6bd4\u542b\u91cf<\/p>\n<\/li>\n<li>\n<p>\u5143\u7d20\u7684\u5316\u5b66\u73af\u5883\uff08\u4ef7\u6001\u7b49\uff09<\/p>\n<\/li>\n<\/ol><\/blockquote>\n<p>\u901a\u5e38\u6765\u8bf4\uff0c\u6211\u4eec\u628a\u6837\u54c1\u5bc4\u51fa\u53bb\u6d4b\u8bd5\uff0c\u544a\u8bc9\u6d4b\u8bd5\u4eba\u5458\u8981\u6d4b\u8bd5\u7684\u5143\u7d20\uff0c\u6bd4\u5982C\u3001N\u3001S\u7b49\uff0c\u7136\u540e\u7b49\u4ed6\u4eec\u6d4b\u5b8c\u628a\u6570\u636e\u8fd4\u8fd8\u7ed9\u6211\u4eec\u8fdb\u884c\u5206\u6790\u5904\u7406\uff0c\u4e00\u822c\u4f1a\u7ed9\u4f60\u5bf9\u5e94\u7684XLS\u3001VGD\u6216VGP\u6587\u4ef6\uff0c\u540e\u9762\u7684\u4e24\u79cd\u683c\u5f0f\u53ef\u4ee5\u76f4\u63a5\u7528Avantage\u8f6f\u4ef6\u6253\u5f00<\/p>\n<h2 id=\"xps\u7684\u7269\u7406\u539f\u7406\">XPS\u7684\u7269\u7406\u539f\u7406\n<\/h2><hr>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-15\/from_wiki.gif\"\n\twidth=\"650\"\n\theight=\"500\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-15\/from_wiki_hu_c7f7a34ecd497414.gif 480w, https:\/\/been.ee\/p\/0-0-0-15\/from_wiki_hu_22ca5f97fe21f78c.gif 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"130\"\n\t\tdata-flex-basis=\"312px\"\n\t\n><\/p>\n<p>XPS\u7684\u539f\u7406\u4e3a\u5229\u7528X\u5c04\u7ebf\u7167\u5c04\u6837\u54c1\uff0c\u6fc0\u53d1\u539f\u5b50\u7684\u5185\u5c42\u7535\u5b50\u53ca\u4ef7\u7535\u5b50\uff0c\u4f7f\u5176\u53d1\u5c04\u51fa\u6765\uff0c\u6fc0\u53d1\u51fa\u6765\u7684\u7535\u5b50\u79f0\u4e3a\u5149\u7535\u5b50\u3002\u901a\u8fc7\u6d4b\u91cf\u4e0d\u540c\u80fd\u91cf\u7684\u5149\u7535\u5b50\u7684\u6570\u76ee\uff0c\u4ee5\u7ed3\u5408\u80fd(electron binding energy)\u6216\u5149\u7535\u5b50\u7684\u52a8\u80fd(photoelectron kinetic energy)\u4e3a\u6a2a\u5750\u6807\uff0c\u76f8\u5bf9\u5f3a\u5ea6\uff08counts\/s\uff09\u4e3a\u7eb5\u5750\u6807\u53ef\u505a\u51fa\u5149\u7535\u5b50\u80fd\u8c31\u56fe<\/p>\n$$E_b(\u7ed3\u5408\u80fd)=hv(\u5149\u5b50\u80fd\u91cf)-E_k(\u5149\u7535\u5b50\u52a8\u80fd)-w(\u529f\u51fd\u6570)$$<p><img src=\"https:\/\/been.ee\/p\/0-0-0-15\/principle.jpg\"\n\twidth=\"650\"\n\theight=\"702\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-15\/principle_hu_b43cbd095d2a4c27.jpg 480w, https:\/\/been.ee\/p\/0-0-0-15\/principle_hu_389c6cdf0a0773f.jpg 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"92\"\n\t\tdata-flex-basis=\"222px\"\n\t\n><\/p>\n<h3 id=\"\u5316\u5b66\u6001\u548c\u5316\u5b66\u4f4d\u79fb\">\u5316\u5b66\u6001\u548c\u5316\u5b66\u4f4d\u79fb\n<\/h3><hr>\n<p>\u5199\u4e00\u4e0b\u81ea\u5df1\u7684\u7406\u89e3\uff1a\u5bf9\u4e8e\u540c\u4e00\u79cd\u5143\u7d20\uff0c\u4ee5C\u5143\u7d20\u4e3a\u4f8b\uff0c\u7531\u4e8e\u6837\u54c1\u4e2dC\u5143\u7d20\u6240\u5904\u7684\u5316\u5b66\u73af\u5883\uff08\u4e5f\u5c31\u662f<strong>\u5316\u5b66\u6001<\/strong>\uff09\u4e0d\u540c\uff0c\u5728\u7ed3\u5408\u80fd\u4e0a\u4f1a\u4ea7\u751f\u4e00\u4e9b\u5fae\u5c0f\u7684\u4f4d\u79fb\uff08\u4e5f\u5c31\u662f<strong>\u5316\u5b66\u4f4d\u79fb<\/strong>\uff09\uff0c\u8fd9\u5c31\u5bfc\u81f4\u4f60\u770b\u5230\u7684C\u5143\u7d20\u7684\u5cf0\u53ef\u80fd\u4e0d\u662f\u4e00\u4e2a\u5c16\u5c16\u7684\u3001\u5bf9\u79f0\u7684\u5cf0\uff0c\u800c\u53ef\u80fd\u662f\u4e0d\u5bf9\u79f0\uff0c\u4f1a\u5e26\u70b9\u5c0f\u6ce2\u6d6a\uff0c\u751a\u81f3\u662f\u51e0\u4e2a\u6328\u5f97\u5f88\u8fd1\u7684\u5cf0\uff0c\u8fd9\u4e9b\u5176\u5b9e\u90fd\u4ee3\u8868C\u5143\u7d20\uff0c\u53ea\u4e0d\u8fc7\u6240\u5904\u7684\u5316\u5b66\u73af\u5883\u4e0d\u540c\uff0c\u6240\u5448\u73b0\u51fa\u7ed3\u5408\u80fd\u4f1a\u6709\u5fae\u5c0f\u7684\u5dee\u5f02\uff0c\u8fd9\u91cc\u6240\u8bf4\u7684\u5316\u5b66\u73af\u5883\uff0c\u4ee5C\u4e3a\u4f8b\u53ef\u80fd\u4ee3\u8868\u4e0d\u540c\u7684\u952e\u5408\u72b6\u6001\uff0c\u6bd4\u5982C-H\u3001C-O\u6216\u8005C=O\u7b49\uff0c\u5c31\u6bd4\u5982\u4e0b\u9762\u8fd9\u5f20C1s\u8c31\uff08\u539f\u59cbXPS\u8c31\uff0c\u672a\u5904\u7406\uff09\uff0c\u5c31\u80fd\u770b\u51fa\u5b9e\u9645\u4e0a\u6709\u597d\u51e0\u4e2a\u5904\u4e8e\u4e0d\u540c\u5316\u5b66\u6001\u7684C\u5cf0<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-15\/C1s.jpg\"\n\twidth=\"1362\"\n\theight=\"572\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-15\/C1s_hu_8afd898d827676dc.jpg 480w, https:\/\/been.ee\/p\/0-0-0-15\/C1s_hu_f647074d991f08f2.jpg 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"238\"\n\t\tdata-flex-basis=\"571px\"\n\t\n><\/p>\n<p>\u518d\u4e3e\u4e00\u4e2aSi2p\u7684XPS\u8c31\uff0c\u7ea2\u8272\u7684\u66f2\u7ebf\u4e3a\u6d4b\u5f97\u7684XPS\u539f\u59cb\u6570\u636e\uff0c\u4f46\u5b83\u5b9e\u9645\u4e0a\u662f\u7531A\u3001B\u3001C\u3001D\u3001E \u4e94\u4e2a\u5cf0\u7ec4\u6210\uff0c\u5206\u522b\u5bf9\u5e94\u4e0eSi\u539f\u5b50\u5728\u6837\u54c1\u4e2d\u7684\u4e94\u79cd\u5316\u5b66\u6001\uff0c\u5176\u4e2dA\u3001B\u5206\u522b\u4ee3\u8868\u4e24\u79cd\u672a\u88ab\u6c27\u5316\u7684Si\u539f\u5b50\uff0cC\u3001D\u3001E\u5206\u522b\u5bf9\u5e94\u4e09\u79cd\u4e0d\u540c\u6c27\u5316\u72b6\u6001\u7684Si\u539f\u5b50<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-15\/si.jpg\"\n\twidth=\"614\"\n\theight=\"502\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-15\/si_hu_4188c3255f1ceccc.jpg 480w, https:\/\/been.ee\/p\/0-0-0-15\/si_hu_3d1dfd9ed2c93c1.jpg 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"122\"\n\t\tdata-flex-basis=\"293px\"\n\t\n><\/p>\n<p>\u5176\u5b9e\uff0c\u6700\u7ec8\u6211\u4eec\u60f3\u8981\u7684\uff08\u653e\u5728\u6587\u7ae0\u91cc\u7684\uff09\u5c31\u662f\u4e0a\u9762\u8fd9\u79cd\u5143\u7d20\u8c31\uff0c\u4e5f\u5c31\u662f\u8981\u6709\u5143\u7d20\u4e0d\u540c\u5316\u5b66\u6001\u5bf9\u5e94\u7684\u5cf0\u548c\u62df\u5408\u540e\u7684\u5cf0\uff08\u4e0a\u56fe\u7684\u7ea2\u7ebf\uff09\uff0c<\/p>\n<h3 id=\"xps\u5168\u8c31\">XPS\u5168\u8c31\n<\/h3><hr>\n<p>\u4e0a\u9762\u53ea\u63d0\u5230\u4e86\u5143\u7d20\u8c31\uff0c\u5176\u5b9e\u6211\u770b\u7684\u6587\u7ae0\u91cc\u4e3b\u8981\u4e5f\u662f\u7528\u8fd9\u4e2a\uff0c\u4e0d\u8fc7\u4f60\u8fd8\u4f1a\u53d1\u73b0\u5728\u7ed9\u4f60\u7684\u6570\u636e\u91cc\u9664\u4e86\u4e0d\u540c\u7684\u5143\u7d20\u8c31\u8fd8\u6709\u4e00\u5f20\u5168\u8c31\uff08\u672a\u5904\u7406\uff09\uff0c\u5927\u6982\u957f\u4e0b\u9762\u8fd9\u4e2a\u6837\u5b50\uff1a<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-15\/full_xps.jpg\"\n\twidth=\"1347\"\n\theight=\"575\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-15\/full_xps_hu_16e0fded3d9bb9b6.jpg 480w, https:\/\/been.ee\/p\/0-0-0-15\/full_xps_hu_9e4b55d3df9180b0.jpg 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"234\"\n\t\tdata-flex-basis=\"562px\"\n\t\n><\/p>\n<p>\u5168\u8c31\u7684\u8bdd\uff0c\u4e00\u822c\u53ef\u4ee5\u901a\u8fc7\u5cf0\u7684\u6709\u65e0\u6765\u8bf4\u660e\u662f\u5426\u6709\u8be5\u5143\u7d20\uff0c\u5168\u8c31\u5f97\u5230\u7684\u4fe1\u53f7\u4f1a\u6bd4\u8f83\u7c97\u7cd9\uff0c\u53ea\u662f\u5bf9\u5143\u7d20\u8fdb\u884c\u4e86\u7c97\u7565\u7684\u626b\u63cf\uff0c\u6240\u4ee5\u4e00\u822c\u4e5f\u4e0d\u4f1a\u7528\u8fd9\u4e2a<\/p>\n<h2 id=\"\u6570\u636e\u5904\u7406\">\u6570\u636e\u5904\u7406\n<\/h2><hr>\n<p>\u8f6f\u4ef6\uff1a<\/p>\n<blockquote>\n<ul>\n<li>\n<p><a class=\"link\" href=\"https:\/\/public.wsu.edu\/~pchemlab\/index.html\"  target=\"_blank\" rel=\"noopener\"\n    >XPSPeak<\/a>  \u514d\u8d39\uff0c\u4f46UI\u6bd4\u8f83\u7b80\u5355\uff0c\u770b\u7740\u5934\u5927\u7684\u90a3\u79cd\uff0c\u597d\u50cf\u53ea\u80fd\u5bfc\u5165TXT\u6570\u636e<\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/www.surfsciftp.co.uk\/avant5\/\"  target=\"_blank\" rel=\"noopener\"\n    >Avantage<\/a>   30\u5929\u514d\u8d39\uff0c<del>\u636e\u8bf4\u597d\u50cf<\/del>\u53ef\u4ee5\u901a\u8fc7\u628a\u8ba1\u7b97\u673a\u65f6\u95f4\u6539\u56de\u521a\u4e0b\u8f7d\u768430\u5929\u5185\u8fd8\u80fd\u514d\u8d39\u7528\uff0cUI\u6bd4XPSPeak\u597d\u770b\uff0c\u53ef\u4ee5\u76f4\u63a5\u6253\u5f00VGP\u6216VGD\u6587\u4ef6\uff0c\u63a8\u8350\u4f7f\u7528<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<blockquote>\n<p>PS: \u4e5f\u53ef\u4ee5\u901a\u8fc7\u4fee\u6539\u6ce8\u518c\u8868\u6765\u91cd\u7f6eAvantage\u514d\u8d39\u4f7f\u7528\u65f6\u95f4\uff0c\u4e0b\u8f7d\u4e0b\u9762\u7684renew.reg\u6587\u4ef6\u5e76\u6267\u884c\u5373\u53ef<\/p>\n<ul>\n<li><a class=\"link\" href=\".\/renew.reg\" >renew.reg<\/a><\/li>\n<\/ul><\/blockquote>\n<p>\u4e0b\u9762\u5c06\u4f7f\u7528Avantage\u8f6f\u4ef6\u8fdb\u884c\u6f14\u793a<\/p>\n<h3 id=\"\u6dfb\u52a0\u80cc\u5e95\">\u6dfb\u52a0\u80cc\u5e95\n<\/h3><hr>\n<p>\u9996\u5148\u6253\u5f00VGP\u6216VGD\u6587\u4ef6\uff0c\u5148\u770b\u4e00\u4e0b\u6709\u6ca1\u6709\u80cc\u5e95\uff0c\u6ca1\u6709\u7684\u8bdd\u662f\u8fd9\u4e2a\u6837\u5b50<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/23\/232722-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6dfb\u52a0\u540e\u7684\u662f\u8fd9\u4e2a\u6837\u5b50<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/23\/232752-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5982\u679c\u6ca1\u6709\u6dfb\u52a0\u7684\u8bdd\uff0c\u9996\u5148\u9009\u4e2d\u4efb\u610f\u5143\u7d20\u8c31\u56fe\uff0c\u7136\u540e\u627e\u5230\u5cf0\u6dfb\u52a0\u9009\u9879<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/23\/232837-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u901a\u5e38\u76f4\u63a5\u5728smart\u9009\u9879\u4e2d\u70b9\u51fb\u52a0\u5373\u53ef\u5b8c\u6210\u6dfb\u52a0<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/23\/232940-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u4e5f\u53ef\u4ee5\u624b\u52a8\u8c03\u6574\u80cc\u5e95\u7684\u8303\u56f4<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/193717-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6dfb\u52a0\u80cc\u5e95\u5b9e\u9645\u4e0a\u4e5f\u4f1a\u6dfb\u52a0\u4e00\u6761\u4e3b\u5cf0\uff0c\u5982\u679c\u60f3\u5220\u9664\u80cc\u5e95\u7684\u8bdd\u76f4\u63a5\u5220\u9664\u8fd9\u4e2a\u5cf0\u5c31\u597d<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/193847-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5c06\u6bcf\u4e2a\u5143\u7d20\u8c31\u4f9d\u6b21\u6dfb\u52a0\u80cc\u5e95<\/p>\n<h3 id=\"\u586b\u52a0\u5cf0\">\u586b\u52a0\u5cf0\n<\/h3><hr>\n<p>\u9996\u5148\u8981\u9009\u4e2dC1s\u8c31\uff0c\u7136\u540e\u4ece\u4e0a\u9762\u7684\u83dc\u5355\u680f\u627e\u5230\u5cf0\u62df\u5408\u9009\u9879\u6253\u5f00<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/23\/233408-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u5148\u6253\u5f00Add Fitted Peak\u9009\u9879\uff0c\u51c6\u5907\u6dfb\u52a0\u5cf0\uff08\u8fd9\u91cc\u8981\u6ce8\u610f\uff0c\u53ea\u6709s\u8f68\u9053\u662f\u6dfb\u52a0\u5355\u5cf0\uff0c\u5176\u4ed6\u7684p\u3001d\u3001f\u8f68\u9053\u7531\u4e8e\u90fd\u662f\u88c2\u89e3\u4e3a\u53cc\u5cf0\uff09<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/23\/233543-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6dfb\u52a0\u5cf0\u4e4b\u524d\u53ef\u4ee5\u5728\u56fe\u4e2d\u6807\u8bb0\u6dfb\u52a0\u5cf0\u7684\u4f4d\u7f6e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u6807\u5b9a\uff0c\u4f46\u4e5f\u53ef\u4ee5\u81ea\u5df1\u8c03\u6574\uff0c\u7136\u540e\u70b9\u51fb\u6dfb\u52a0\u5355\u4e2a\u5cf0<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/23\/233743-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6dfb\u52a0\u5b8c\u540e\u5c31\u662f\u8fd9\u4e2a\u6837\u5b50\uff0c\u53ef\u4ee5\u6839\u636e\u60c5\u51b5\u51b3\u5b9a\u662f\u5426\u7ee7\u7eed\u6dfb\u52a0<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/200822-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6dfb\u52a0\u5b8c\u5cf0\u540e\uff0c\u56de\u5230Fit Peaks\u9009\u9879\uff0c\u70b9\u51fb\u62df\u5408\u8fd9\u4e2a\u5c42\u5c31\u5f00\u59cb\u81ea\u52a8\u62df\u5408\uff0c\u5c31\u53ef\u4ee5\u5f97\u5230\u62df\u5408\u7ed3\u679c<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/23\/233959-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/201405-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u62df\u5408\u5b8c\u540e\uff0c\u70b9\u51fb\u4e0b\u56fe\u4e2d\u7684\u5cf0\u62df\u5408\uff0c\u53ef\u4ee5\u770b\u5230\u5404\u4e2a\u5cf0\u7684\u4fe1\u606f\uff0c\u9700\u8981\u5173\u6ce8\u7684\u662fFWHM\u62df\u5408\u8fd9\u4e00\u5217\uff0c\u4ee3\u8868\u7684\u662f\u534a\u5cf0\u5bbd\uff0c\u901a\u5e38\u4e0d\u4f1a\u76f8\u5dee\u592a\u5927\uff0c\u5bf9\u4e8eC1s\u6765\u8bf4\u7406\u8bba\u4e0a\u5e94\u8be5\u662f\u76f8\u540c\u7684\uff0c\u4f46\u5141\u8bb8\u6709\u4e9b\u8bb8\u504f\u5dee\uff0c\u5982\u679c\u5404\u4e2a\u5cf0\u76f8\u5dee\u8f83\u5927\u5c31\u9700\u8981\u8c03\u6574\u8fd9\u4e2a\u503c\u7136\u540e\u91cd\u65b0\u62df\u5408\u81f3\u534a\u5cf0\u5bbd\u503c\u63a5\u8fd1<\/p>\n<p>\u4f8b\u5982\u4e0b\u9762\u662f\u5c06A\u7684\u534a\u5cf0\u5bbd\u9650\u5236\u57280.5\u52302.5\u7684\u8303\u56f4\uff0c\u7136\u540e\u8ba9B\u3001C\u3001D\u7684\u534a\u5cf0\u5bbd\u7b49\u4e8eA\u7684\u534a\u5cf0\u5bbd\uff0c\u7136\u540e\u518d\u6b21\u62df\u5408<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/201442-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u62df\u5408\u7ed3\u679c\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/201517-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u53ef\u4ee5\u53d1\u73b0\u5cf0\u5f62\u7a0d\u5fae\u6709\u70b9\u504f\u5dee\uff0c\u8fd9\u65f6\u53ef\u4ee5\u8003\u8651\u8c03\u6574\u6d1b\u4f26\u5179\/\u9ad8\u65af\u6bd4\u6765\u8fdb\u884c\u8c03\u6574\uff0c\u4f8b\u5982\u8fd9\u91cc\u8bbe\u7f6e\u4e3a55\u5e76\u56fa\u5b9a<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/202205-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u518d\u6b21\u62df\u5408\u540e\u7ed3\u679c\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/202300-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u6211\u4eec\u5c06\u6240\u6709\u5cf0\u7684FWHM\u62df\u5408\u7684\u8303\u56f4\u6539\u4e3a\u6bd4\u5f53\u524d\u503c\u7565\u5927\u7684\u8303\u56f4\uff0c\u53d6\u6d88\u56fa\u5b9a\u6d1b\u4f26\u5179\/\u9ad8\u65af\u6bd4\uff0c\u5e76\u518d\u6b21\u62df\u5408<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/203250-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u62df\u5408\u540e\u7ed3\u679c\u5982\u4e0b\uff0c\u6574\u4f53\u8f83\u597d<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/203344-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6700\u540e\u70b9\u51fb\u63a5\u53d7\u548c\u786e\u5b9a\u5373\u53ef<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/202614-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<h3 id=\"\u7535\u8377\u6821\u6b63\">\u7535\u8377\u6821\u6b63\n<\/h3><hr>\n<p>\u62df\u5408\u5b8cC1s\u540e\uff0c\u8981\u7acb\u523b\u8fdb\u884c\u7535\u8377\u6821\u6b63\uff0c\u5148\u9009\u4e2dC1s\uff0c\u70b9\u51fb\u4e0b\u56fe\u4e2d\u7684\u5cf0\u62df\u5408\uff0c\u53ef\u4ee5\u89c2\u5bdf\u521a\u521a\u62df\u5408\u540e\u7684\u7ed3\u679c<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/203428-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\u8981\u5c06\u8c31\u56fe\u5168\u9009<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/23\/234321-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u4ece\u4e0a\u9762\u7684\u83dc\u5355\u70b9\u51fb\u7535\u8377\u79fb\u4f4d<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/23\/234335-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5c06C1s\u7684\u5cf0\u4f4d\u503c\uff08\u6700\u63a5\u8fd1284.8\u7684\u5cf0\u4f4d\uff09\u6821\u6b63\u4e3a\u6807\u51c6\u5cf0284.8\u9700\u8981\u5728\u539f\u6765\u7684284.48\u7684\u57fa\u7840\u4e0a\u52a00.32\uff0c\u6240\u4ee5\u5c06\u4f4d\u79fb\u91cf\u8bbe\u4e3a0.32\uff0c\u9009\u4e2d\u5de6\u4e0b\u89d2\u7684&quot;<strong>\u5141\u8bb8\u975e\u6574\u6570\u901a\u9053\u5bbd\u5ea6\u4f4d\u79fb<\/strong>&quot;\uff0c\u7136\u540e\u70b9\u51fb&quot;<strong>+eV\u4f4d\u79fb<\/strong>&ldquo;\u5c31\u6821\u6b63\u5b8c\u6210\u4e86<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/203523-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u6211\u4eec\u53ef\u4ee5\u770b\u5230C1s\u5df2\u7ecf\u88ab\u6821\u6b63\u5230284.8\u4e86<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/203553-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u63a5\u4e0b\u6765\u7ee7\u7eed\u5c06\u5176\u4ed6\u5143\u7d20\u8c31\u8fdb\u884c\u52a0\u5cf0\u62df\u5408\uff0c\u5355\u5cf0\u62df\u5408\u5c31\u53c2\u8003C1s\u62df\u5408\u5c31\u597d<\/p>\n<h4 id=\"\u53cc\u5cf0\u62df\u5408\">\u53cc\u5cf0\u62df\u5408\n<\/h4><hr>\n<p>\u8fd9\u91cc\u8bf4\u4e00\u4e0b\u53cc\u5cf0\u62df\u5408\uff0c\u4ee5Fe2p\u4e3a\u4f8b\uff0c\u9996\u5148\u9009\u4e2dFe2p\u7136\u540e\u70b9\u5cf0\u62df\u5408<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/203654-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u53ef\u4ee5\u770b\u5230\u56e0\u4e3a\u6dfb\u52a0\u4e86\u80cc\u5e95\u6240\u4ee5\u5df2\u7ecf\u6dfb\u52a0\u4e86\u4e00\u4e2a\u5cf0\uff0c\u4f462p\u8f68\u9053\u88c2\u89e3\u4e3a\u53cc\u5cf0\uff0c\u6240\u4ee5\u6211\u4eec\u6dfb\u52a0\u5cf0\u7684\u65f6\u5019\u9700\u8981\u5148\u9009\u4e2d\u8fd9\u4e2a\u5cf0<\/p>\n<p>\u9996\u5148\u6253\u5f00\u5cf0\u62df\u5408\u7684Add fitted peak\u754c\u9762<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/203830-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u9009\u4e2d\u5f53\u524d\u8c31\u56fe\u4e2d\u7684\u8fd9\u4e2a\u5cf0<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/203906-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u70b9\u51fb\u6dfb\u52a0\u53cc\u5cf0<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/203921-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u53ef\u4ee5\u89c2\u5bdf\u5230\u4e3a\u521a\u521a\u8fd9\u4e2a\u5cf0\u6dfb\u52a0\u4e86\u5176\u5bf9\u5e94\u76842p 1\/2\u5cf0<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/205216-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u8fdb\u884c\u4e9b\u8bb8\u8c03\u6574<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/212310-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u6211\u4eec\u7ee7\u7eed\u6dfb\u52a0\u522b\u7684\u5cf0\uff0c\u6211\u4eec\u7684\u6837\u54c1\u8003\u8651\u6709\u5355\u8d28Fe\u3001\u548c2\u4ef7Fe\uff0c\u800c\u521a\u521a\u6dfb\u52a0\u7684\u662f2\u4ef7Fe\uff0c\u5355\u8d28Fe\u5927\u6982\u5728706.7eV\u9644\u8fd1\uff0c\u6211\u4eec\u73b0\u5728\u6dfb\u52a0\u5355\u8d28Fe\u7684\u53cc\u5cf0<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/212351-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u6dfb\u52a02\u4ef7Fe\u7684\u4e24\u4e2a\u536b\u661f\u5cf0\uff0c\u53ea\u9700\u8981\u5206\u522b\u6dfb\u52a0\u5355\u5cf0<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/212424-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u7136\u540e\u8fdb\u884c\u62df\u5408\uff0c\u7ed3\u679c\u5982\u4e0b<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/212450-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u6574\u4f53\u7ed3\u679c\u8fd8\u4e0d\u9519\uff0c\u4f46\u662f\u53ef\u4ee5\u770b\u5230\u536b\u661f\u5cf0\u7684\u534a\u5cf0\u5bbd\u5df2\u7ecf\u8fbe\u5230\u91cf\u7a0b3.5\uff0c\u800c\u536b\u661f\u5cf0\u7684\u534a\u5cf0\u5bbd\u901a\u5e38\u4f1a\u7a0d\u5fae\u5927\u4e00\u4e9b\uff0c\u6211\u4eec\u53ef\u4ee5\u9002\u5f53\u589e\u52a0\u91cf\u7a0b\u91cd\u65b0\u62df\u5408<\/p>\n<p><img src=\"http:\/\/img.been.ee\/i\/2025\/10\/24\/212558-1.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"image.png\"\n\t\n\t\n><\/p>\n<p>\u5982\u679c\u89c9\u5f97\u6ca1\u95ee\u9898\u5c31\u53ef\u4ee5\u63a5\u53d7\u7ed3\u679c\uff0c\u7136\u540e\u70b9\u786e\u5b9a\u5c31\u5b8c\u6210\u4e86<\/p>\n<h3 id=\"\u6570\u636e\u5bfc\u51fa\">\u6570\u636e\u5bfc\u51fa\n<\/h3><hr>\n<p>\u4ece\u53f3\u4e0a\u65b9\u7684\u62a5\u544a\u4e2d\u6253\u5f00\u62a5\u544a\u9009\u9879\n<img src=\"https:\/\/been.ee\/p\/0-0-0-15\/daochu1.png\"\n\twidth=\"763\"\n\theight=\"261\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-15\/daochu1_hu_19144abde5727da8.png 480w, https:\/\/been.ee\/p\/0-0-0-15\/daochu1_hu_8682f343f1aa1a12.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"292\"\n\t\tdata-flex-basis=\"701px\"\n\t\n><\/p>\n<p>\u4ece\u8868\u683c\u9009\u9879\u4e2d\u52fe\u9009\u5cf0\u4f4d\u8868<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-15\/daochu2.png\"\n\twidth=\"692\"\n\theight=\"539\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-15\/daochu2_hu_89631c7e0cbd1a2.png 480w, https:\/\/been.ee\/p\/0-0-0-15\/daochu2_hu_332dba44176acdb7.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"128\"\n\t\tdata-flex-basis=\"308px\"\n\t\n><\/p>\n<p>\u7136\u540e\u627e\u5230Excel\u7684\u9009\u9879\u9009\u62e9\u5bfc\u51fa\u7684\u8def\u5f84\u548c\u6587\u4ef6\u540d\u540e\u70b9\u51fb\u786e\u5b9a<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-15\/daochu3.png\"\n\twidth=\"692\"\n\theight=\"538\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-15\/daochu3_hu_c0c1f94f8bc705cf.png 480w, https:\/\/been.ee\/p\/0-0-0-15\/daochu3_hu_ce11f8bfb2428686.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"128\"\n\t\tdata-flex-basis=\"308px\"\n\t\n><\/p>\n<p>\u7136\u540e\u5c06\u6240\u6709\u8c31\u56fe\u9009\u4e2d\uff0c\u6216\u8005\u9009\u4e2d\u8981\u5bfc\u51fa\u7684\u8c31\u56fe<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-15\/daochu5.png\"\n\twidth=\"1427\"\n\theight=\"498\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-15\/daochu5_hu_e372b01d33f57153.png 480w, https:\/\/been.ee\/p\/0-0-0-15\/daochu5_hu_c938b1b2d2bd156e.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"286\"\n\t\tdata-flex-basis=\"687px\"\n\t\n><\/p>\n<p>\u7136\u540e\u4ece\u53f3\u4e0a\u89d2\u62a5\u544a\u9009\u9879\u4e2d\u9009\u62e9Report To&hellip;&hellip;\uff0c\u7136\u540e\u7b49\u5f85\u4e00\u4f1a\u5c31\u5b8c\u6210\u4e86<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-15\/daochu4.png\"\n\twidth=\"768\"\n\theight=\"264\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-15\/daochu4_hu_974eebca489a9154.png 480w, https:\/\/been.ee\/p\/0-0-0-15\/daochu4_hu_148546c839d7e6c9.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"290\"\n\t\tdata-flex-basis=\"698px\"\n\t\n><\/p>\n<p>PS\uff1aAvantage\u8f6f\u4ef6\u5728\u6821\u51c6\u9875\u9762\u7ecf\u5e38\u5361\u6b7b\uff0c\u539f\u56e0\u662f\u4f7f\u7528\u4e86\u4e2d\u6587\u8f93\u5165\u6cd5\uff0c\u4fdd\u9669\u8d77\u89c1\uff0c\u5728\u6821\u6b63\u4e4b\u524d\u8981\u7528\u82f1\u6587\u8f93\u5165\u6cd5\u5982\u4e0b\uff1a<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-15\/input.png\"\n\twidth=\"357\"\n\theight=\"152\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-15\/input_hu_f8837296e55b030b.png 480w, https:\/\/been.ee\/p\/0-0-0-15\/input_hu_fcb07ebd142c4dc4.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"234\"\n\t\tdata-flex-basis=\"563px\"\n\t\n><\/p>\n<h2 id=\"\u540e\u8bb0\">\u540e\u8bb0\n<\/h2><hr>\n<p>\u539f\u7406\u6ca1\u6709\u7279\u522b\u6df1\u5165\u7684\u63a2\u8ba8\uff0c\u7b49\u4ee5\u540e\u6709\u5174\u8da3\u7814\u7a76\u7684\u8bdd\u518d\u66f4\u65b0\u5427\uff0c\u4e0d\u8fc7\u5bf9\u4e8e\u5206\u6790\u6570\u636e\u6765\u8bf4\u4e5f\u591f\u7528\u4e86<\/p>\n<p>\u6700\u540e\uff0c\u8865\u5145\u51e0\u4e2a\u7528\u4e8e\u7ed3\u5408\u80fd\u5206\u6790\u7684\u6587\u4ef6\u548c\u67e5\u8be2\u7f51\u7ad9\uff0c\u4e0d\u8fc7\u66f4\u63a8\u8350\u53bb\u8bba\u6587\u4e2d\u5bf9\u5e94<\/p>\n<blockquote>\n<ol>\n<li>\n<p><a class=\"link\" href=\"data.pdf\" >\u7ed3\u5408\u80fd\u6570\u636e\u67e5\u8be2\uff08\u53c2\u8003\uff09<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/www.thermofisher.cn\/cn\/zh\/home\/industrial\/spectroscopy-elemental-isotope-analysis\/surface-analysis\/xpssimplified\/periodic-table.html\"  target=\"_blank\" rel=\"noopener\"\n    >XPS \u5143\u7d20\u8868 | Thermo Fisher Scientific - CN<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/srdata.nist.gov\/xps\/main_search_menu.aspx\"  target=\"_blank\" rel=\"noopener\"\n    >NIST X-ray Photoelectron Spectroscopy (XPS) Database Main Search Menu<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/xpsdatabase.net\/\"  target=\"_blank\" rel=\"noopener\"\n    >The International XPS Database of XPS Reference Spectra<\/a><\/p>\n<\/li>\n<\/ol><\/blockquote>\n"},{"title":"\u8270\u96be\u7684\u6307\u5f39\u5b66\u4e60\u8bb0\u5f55","link":"https:\/\/been.ee\/p\/0-0-0-14\/","pubDate":"Mon, 21 Aug 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-14\/","description":"<h2 id=\"\u524d\u8a00\u788e\u788e\u5ff5\">\u524d\u8a00\uff08\u788e\u788e\u5ff5\uff09\n<\/h2><hr>\n<p>\u6700\u8fd1\u5f00\u59cb\u8ddf\u5143\u5b50\u8001\u5e08\u7ec3\u65e0\u9898\u4e86\uff08<a class=\"link\" href=\"https:\/\/www.bilibili.com\/video\/BV1Pb41157Y8\/?spm_id_from=333.337.search-card.all.click&amp;vd_source=24875e1d519dc268c280708c6f3c880e\"  target=\"_blank\" rel=\"noopener\"\n    >\u4f20\u9001\u95e8<\/a>\uff09\uff0c\u5404\u79cd\u6307\u5f39\u6280\u5de7\u5f00\u59cb\u6251\u9762\u800c\u6765\uff0c\u7406\u6240\u5f53\u7136\u7684\u5361\u5728\u4e86AM\u6307\u6cd5\u4e0a\uff0c\u6240\u8c13AM\u6307\u6cd5\uff0c\u6307\u7684\u662f\u7528\u53f3\u624b\u7684\u4e2d\u6307\u548c\u65e0\u540d\u6307\u51fb\u6253\u7434\u5f26\uff08\u901a\u5e38\u662f1\uff0c2\u5f26\u62161\uff0c2\uff0c3\u5f26\uff09\uff0c\u5e76\u540c\u65f6\u7528\u5c0f\u6307\u6253\u677f\uff0c\u7ed3\u675f\u540e\u901a\u5e38\u4f1a\u4f34\u968f\u7740\u98df\u6307\u56de\u62e8\u8fd9\u4e00\u7cfb\u5217\u52a8\u4f5c\u3002<\/p>\n<h2 id=\"\u6280\u5de7\u548c\u611f\u609f\">\u6280\u5de7\u548c\u611f\u609f\n<\/h2><hr>\n<p>\u4e00\u5f00\u59cb\u8981\u5148\u4fdd\u8bc1\u80fd\u5728\u51fb\u5f26\u7684\u540c\u65f6\u7528\u5c0f\u6307\u6253\u677f\uff0c\u4e5f\u5c31\u662f\u8981\u540c\u6b65\uff0c\u8fd9\u4e2a\u8fd8\u662f\u6bd4\u8f83\u5bb9\u6613\u7684\uff0c\u4e0d\u884c\u7684\u8bdd\u5c31\u5148\u53ea\u51fb\u5f26\u6216\u53ea\u6253\u677f\u627e\u627e\u611f\u89c9\uff0c\u5c0f\u6307\u6253\u677f\u7684\u8bdd\u7528\u4fa7\u9762\uff08\u8fdc\u79bb\u65e0\u540d\u6307\u7684\u4e00\u4fa7\uff09\u5c31\u597d\u3002<\/p>\n<p>\u51fb\u5f26\u548c\u6253\u677f\u80fd\u591f\u540c\u6b65\u4e86\u4e4b\u540e\uff0c\u5c31\u662f\u6700\u5173\u952e\u7684\u4e00\u70b9\uff0c\u8981\u8ba9\u51fb\u5f26\u7684\u58f0\u97f3\u6e05\u8106\u54cd\u4eae\uff0c\u800c\u4e0d\u662f\u95f7\u95f7\u7684\u611f\u89c9\uff0c<del>\u6211\u5728\u5c1d\u8bd5\u4e86\u51e0\u6b21\u4e4b\u540e\u53d1\u73b0\uff0c\u53ef\u4ee5\u8ba9\u4e2d\u6307\u548c\u65e0\u540d\u6307\u548c\u7434\u5f26\u4fdd\u630190\u5ea6\uff0c\u624b\u7684\u4f4d\u7f6e\u53ef\u4ee5\u9760\u540e\u4e00\u70b9\uff0c\u6211\u7684\u8bdd\u662f\u5728\u97f3\u5b54\u540e\u97622-3 cm\u7684\u6837\u5b50\uff0c\u624b\u5fc3\u5c3d\u53ef\u80fd\u8fdc\u79bb\u7434\u677f\u548c\u7434\u5f26\uff0c\u5e76\u4fdd\u6301\u5927\u6982\u548c\u7434\u5f26\u5e73\u884c\u7684\u6837\u5b50\u51fb\u4e0a\u53bb\uff0c\u6210\u529f\u7387\u633a\u9ad8\u7684\u3002<\/del><\/p>\n<p>\u540e\u9762\u53c8\u770b\u4e86\u4e00\u4e9b\u6559\u7a0b\uff0c\u53d1\u73b0\u5f88\u591a\u65f6\u5019\u5e76\u4e0d\u662f\u9700\u8981\u4e2d\u6307\u548c\u65e0\u540d\u6307\u4fdd\u6301\u5782\u76f4\uff0c\u66f4\u591a\u7684\u90fd\u662f\u4fa7\u7740\u53bb\u51fb\u5f26\uff0c\u5c0f\u6307\u4e5f\u662f\u4fa7\u7740\u51fb\u5728\u7434\u677f\u4e0a\uff0c\u4e2d\u6307\u548c\u65e0\u540d\u6307\u662f\u501f\u52a9\u60ef\u6027\u51fb\u5728\u7434\u5f26\u4e0a\u5e76\u8fc5\u901f\u8fdc\u79bb\u6216\u8005\u8bf4\u5f39\u5f00\u7684\u611f\u89c9\uff0c\u5173\u952e\u5c31\u662f\u628a\u63e1\u8fd9\u4e2a&quot;\u5f39\u51fa\u6765&quot;\u7684\u611f\u89c9\uff0c\u800c\u4e14\u5343\u4e07\u4e0d\u8981\u505a\u6210\u626b\u5f26\u3002<\/p>\n<p>\u901a\u5e38\u5f39\u5b8cAM\u540e\u4f1a\u4f34\u968f\u7740\u98df\u6307\u56de\u62e81\uff0c2\u62163\u5f26\u7684\u67d0\u4e00\u5f26\uff0c\u8fd9\u4e2a\u65f6\u5019\u4e3b\u8981\u8981\u4e60\u60ef\u4f7f\u7528\u98df\u6307\uff0c\u6211\u5728\u7ec3\u4e60\u7684\u65f6\u5019\u5c31\u5f88\u5bb9\u6613\u62e8\u9519\u5f26\uff0c\u9700\u8981\u5927\u91cf\u7684\u7ec3\u4e60\u624d\u884c\u3002<\/p>\n<h2 id=\"\u6559\u7a0b\u89c6\u9891\">\u6559\u7a0b\u89c6\u9891\n<\/h2><hr>\n<p>\u6700\u540e\u9644\u4e0a\u5143\u5b50\u8001\u5e08\u548c\u6f47\u6f47\u8001\u5e08\u7684AM\u6559\u5b66\u89c6\u9891\uff0c\u5e0c\u671b\u81ea\u5df1\u65e9\u65e5\u7ec3\u597d\uff08\u5176\u5b9e\u73b0\u5728\u80fd\u5f39\u51fa\u6765\uff0c\u5c31\u662f\u653e\u5728\u66f2\u5b50\u91cc\uff0c\u6210\u529f\u7387\u8fd8\u6709\u5f85\u63d0\u5347\uff09\u3002<\/p>\n<blockquote>\n<p>\u5143\u5b50\u8001\u5e08\uff1a<a class=\"link\" href=\"https:\/\/www.bilibili.com\/video\/BV1G4411h73Q\/?spm_id_from=333.337.search-card.all.click&amp;vd_source=24875e1d519dc268c280708c6f3c880e\"  target=\"_blank\" rel=\"noopener\"\n    >\u6307\u5f39AM\u6280\u5de7\u8bb2\u89e3 \u62bc\u5c3e\u6851AM\u6280\u5de7\u6559\u5b66\u8be6\u89e3 \u6307\u5f39\u5409\u4ed6 \u54d4\u54e9\u54d4\u54e9_bilibili<\/a><\/p>\n<p>\u6f47\u6f47\u8001\u5e08\uff1a<a class=\"link\" href=\"https:\/\/www.bilibili.com\/video\/BV1hs411e7tB\/?spm_id_from=333.337.search-card.all.click&amp;vd_source=24875e1d519dc268c280708c6f3c880e\"  target=\"_blank\" rel=\"noopener\"\n    >\u6307\u5f39\u6280\u5de7AM\u8be6\u7ec6\u8bb2\u89e3\u548c\u7ec3\u4e60\u65b9\u6cd5_\u54d4\u54e9\u54d4\u54e9_bilibili<\/a><\/p><\/blockquote>\n"},{"title":"\u5e38\u7528\uff08\u6709\u673a\uff09\u6eb6\u5242\u6027\u8d28\u53ca\u67e5\u8be2\u7f51\u7ad9","link":"https:\/\/been.ee\/p\/0-0-0-13\/","pubDate":"Sat, 19 Aug 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-13\/","description":"<h2 id=\"\u5316\u5b66\u6570\u636e\u67e5\u8be2\u7f51\u7ad9\">\u5316\u5b66\u6570\u636e\u67e5\u8be2\u7f51\u7ad9\n<\/h2><hr>\n<p>\u6700\u7ec8\u53d1\u73b0\u539f\u6765\u597d\u7528\u7684\u7f51\u7ad9\u5168\u662f\u56fd\u5916\u7684\uff08\u56fd\u5185\u52a8\u4e0d\u52a8\u5c31\u662f\u5404\u79cd\u6587\u5e93\uff0c\u6ca1\u51e0\u4e2a\u6570\u636e\u8fd8\u5f97\u4ed8\u8d39\u4e0b\u8f7d\uff0c\u771f\u7684\u5410\u4e86\uff09\uff0c\u8fd9\u91cc\u603b\u7ed3\u51e0\u4e2a\u5e38\u7528\u7684\uff1a<\/p>\n<blockquote>\n<ol>\n<li>\n<p><a class=\"link\" href=\"https:\/\/organicchemistrydata.org\/solvents\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u6709\u673a\u5316\u5b66\u4e2d\u5e38\u7528\u6eb6\u5242\uff1a\u6027\u8d28\u8868 (organicchemistrydata.org)<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"http:\/\/murov.info\/orgsolvents.htm\"  target=\"_blank\" rel=\"noopener\"\n    >\u6709\u673a\u5316\u5b66\u4e2d\u4f7f\u7528\u7684\u6eb6\u5242\u7684\u6027\u8d28 (murov.info)<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"http:\/\/murov.info\/orgsolvsort.htm\"  target=\"_blank\" rel=\"noopener\"\n    >\u6eb6\u5242\u6027\u8d28 (murov.info)<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"http:\/\/murov.info\/orgcmpds.htm\"  target=\"_blank\" rel=\"noopener\"\n    >\u5e38\u89c1\u6709\u673a\u5316\u5408\u7269\u7684\u6027\u8d28 (murov.info)<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/organicchemistrydata.org\/\"  target=\"_blank\" rel=\"noopener\"\n    >Organic Chemistry Data &amp; Info \u5305\u542b\u5404\u79cd\u5316\u5b66\u6570\u636e\u548c\u8d44\u6e90\u4f9b\u5b66\u4e60<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/pubchem.ncbi.nlm.nih.gov\/\"  target=\"_blank\" rel=\"noopener\"\n    >PubChem (nih.gov) \u7f8e\u56fd\u56fd\u7acb\u536b\u751f\u7814\u7a76\u9662 \u6570\u636e\u5e93\u5e9e\u5927 \u53ef\u4ee5\u67e5\u8be2\u5404\u79cd\u5316\u5408\u7269\u7684\u6027\u8d28<\/a><\/p>\n<\/li>\n<\/ol><\/blockquote>\n<h2 id=\"\u5e38\u7528\u6709\u673a\u6eb6\u5242\u7269\u7406\u53c2\u6570\">\u5e38\u7528\u6709\u673a\u6eb6\u5242\u7269\u7406\u53c2\u6570\n<\/h2><hr>\n<h3 id=\"\u78b3\u9178\u8102\u7c7b\u6eb6\u5242\">\u78b3\u9178\u8102\u7c7b\u6eb6\u5242\n<\/h3><hr>\n<table>\n  <thead>\n      <tr>\n          <th>\u78b3\u9178\u916f\u6eb6\u5242<\/th>\n          <th>\u7194\u70b9$T_m(^oC)$<\/th>\n          <th>\u6cb8\u70b9$T_b(^oC)$<\/th>\n          <th>\u9ecf\u5ea6$\\eta (cP)$<\/th>\n          <th>\u4ecb\u7535\u5e38\u6570$\\varepsilon$<\/th>\n          <th>\u95ea\u70b9$T_f(^oC)$<\/th>\n          <th>\u5bc6\u5ea6$\\rho (g\/cm^3)$<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td>\u78b3\u9178\u4e59\u70ef\u916f\uff08$EC$\uff09<\/td>\n          <td>36.4<\/td>\n          <td>248<\/td>\n          <td>1.9<\/td>\n          <td>89.78<\/td>\n          <td>160<\/td>\n          <td>1.32<\/td>\n      <\/tr>\n      <tr>\n          <td>\u78b3\u9178\u4e19\u70ef\u916f\uff08$PC$\uff09<\/td>\n          <td>-48.8<\/td>\n          <td>242<\/td>\n          <td>2.53<\/td>\n          <td>64.9<\/td>\n          <td>132<\/td>\n          <td>1.2<\/td>\n      <\/tr>\n      <tr>\n          <td>\u78b3\u9178\u4e8c\u4e59\u916f\uff08$DEC$\uff09<\/td>\n          <td>-74.3<\/td>\n          <td>126<\/td>\n          <td>0.75<\/td>\n          <td>2.81<\/td>\n          <td>31<\/td>\n          <td>0.97<\/td>\n      <\/tr>\n      <tr>\n          <td>\u78b3\u9178\u4e8c\u7532\u916f\uff08$DMC$\uff09<\/td>\n          <td>4.6<\/td>\n          <td>91<\/td>\n          <td>0.59<\/td>\n          <td>3.11<\/td>\n          <td>0.76<\/td>\n          <td>1.06<\/td>\n      <\/tr>\n      <tr>\n          <td>\u78b3\u9178\u7532\u4e59\u916f\uff08$EMC$\uff09<\/td>\n          <td>-53<\/td>\n          <td>110<\/td>\n          <td>0.65<\/td>\n          <td>2.96<\/td>\n          <td>23<\/td>\n          <td>1.01<\/td>\n      <\/tr>\n      <tr>\n          <td>\u6c1f\u4ee3\u78b3\u9178\u4e59\u70ef\u916f\uff08$FEC$\uff09<\/td>\n          <td>20<\/td>\n          <td>210<\/td>\n          <td>3.33<\/td>\n          <td>78.4<\/td>\n          <td>102<\/td>\n          <td>1.45<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e59\u9178\u4e59\u916f\uff08$EA$\uff09<\/td>\n          <td>-84<\/td>\n          <td>77<\/td>\n          <td>0.45<\/td>\n          <td>6.02<\/td>\n          <td>-4<\/td>\n          <td>0.9<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e59\u9178\u4e01\u916f\uff08$BA$\uff09<\/td>\n          <td>-78<\/td>\n          <td>126<\/td>\n          <td>0.685<\/td>\n          <td>5.1<\/td>\n          <td>22<\/td>\n          <td>0.882<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e01\u9178\u4e59\u916f\uff08$EB$\uff09<\/td>\n          <td>-91.5<\/td>\n          <td>164<\/td>\n          <td>0.639<\/td>\n          <td>5.1<\/td>\n          <td>25.6<\/td>\n          <td>0.829<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e19\u9178\u7532\u916f\uff08$MP$\uff09<\/td>\n          <td>-87.5<\/td>\n          <td>79.8<\/td>\n          <td>0.431<\/td>\n          <td>6.2<\/td>\n          <td>-2<\/td>\n          <td>0.915<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e01\u9178\u7532\u916f\uff08$MB$\uff09<\/td>\n          <td>-85.8<\/td>\n          <td>102.8<\/td>\n          <td>0.541<\/td>\n          <td>5.48<\/td>\n          <td>12<\/td>\n          <td>0.898<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e19\u9178\u4e59\u916f\uff08$EP$\uff09<\/td>\n          <td>-79<\/td>\n          <td>99<\/td>\n          <td>0.494<\/td>\n          <td>5.7<\/td>\n          <td>12<\/td>\n          <td>0.888<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e01\u9178\u4e19\u916f\uff08$PB$\uff09<\/td>\n          <td>-95.2<\/td>\n          <td>143<\/td>\n          <td>0.781<\/td>\n          <td>4.3<\/td>\n          <td>N\/A<\/td>\n          <td>0.873<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e01\u9178\u4e01\u916f\uff08$BB$\uff09<\/td>\n          <td>-91.5<\/td>\n          <td>164<\/td>\n          <td>0.876<\/td>\n          <td>4.39<\/td>\n          <td>49<\/td>\n          <td>0.829<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h3 id=\"\u5176\u4ed6\u6709\u673a\u6eb6\u5242\">\u5176\u4ed6\u6709\u673a\u6eb6\u5242\n<\/h3><hr>\n<table>\n  <thead>\n      <tr>\n          <th>\u6709\u673a\u6eb6\u5242<\/th>\n          <th>\u7194\u70b9$T_m(^oC)$<\/th>\n          <th>\u6cb8\u70b9$T_b(^oC)$<\/th>\n          <th>\u9ecf\u5ea6$\\eta (cP)$<\/th>\n          <th>\u4ecb\u7535\u5e38\u6570$\\varepsilon$<\/th>\n          <th>\u95ea\u70b9$T_f(^oC)$<\/th>\n          <th>\u5bc6\u5ea6$\\rho (g\/cm^3)$<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td>1,3-\u4e8c\u6c27\u620a\u73af\uff08$1,3-dioxolane$\uff09<\/td>\n          <td>-97.2<\/td>\n          <td>75.6<\/td>\n          <td>0.6<\/td>\n          <td>6.74<\/td>\n          <td>1<\/td>\n          <td>1.06<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e59\u4e8c\u9187\u4e8c\u7532\u919a\uff08$DME$\uff09<\/td>\n          <td>-58<\/td>\n          <td>82.5<\/td>\n          <td>0.45<\/td>\n          <td>5.5<\/td>\n          <td>0<\/td>\n          <td>0.86<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e8c\u4e59\u4e8c\u9187\u4e8c\u7532\u919a\uff08$DEGDME$\uff09<\/td>\n          <td>-64<\/td>\n          <td>162<\/td>\n          <td>1.88<\/td>\n          <td>7.23<\/td>\n          <td>57<\/td>\n          <td>0.94<\/td>\n      <\/tr>\n      <tr>\n          <td>\u56db\u4e59\u4e8c\u9187\u4e8c\u7532\u919a\uff08$TEGDME$\uff09<\/td>\n          <td>-45<\/td>\n          <td>216<\/td>\n          <td>2.73<\/td>\n          <td>7.9<\/td>\n          <td>106<\/td>\n          <td>0.99<\/td>\n      <\/tr>\n      <tr>\n          <td>\u56db\u6c22\u544b\u5583\uff08$THF$\uff09<\/td>\n          <td>-108.5<\/td>\n          <td>66<\/td>\n          <td>0.46<\/td>\n          <td>7.58<\/td>\n          <td>-14<\/td>\n          <td>0.88<\/td>\n      <\/tr>\n      <tr>\n          <td>\u7532\u57fa\u56db\u6c22\u544b\u5583\uff08$2MeTHF$\uff09<\/td>\n          <td>-75<\/td>\n          <td>78<\/td>\n          <td>0.46<\/td>\n          <td>6.2<\/td>\n          <td>-11<\/td>\n          <td>0.86<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e8c\u7532\u57fa\u4e9a\u781c\uff08$DMSO$\uff09<\/td>\n          <td>18.5<\/td>\n          <td>189<\/td>\n          <td>2.0<\/td>\n          <td>46.7<\/td>\n          <td>88.9<\/td>\n          <td>1.1<\/td>\n      <\/tr>\n      <tr>\n          <td>\u73af\u4e01\u781c\uff08$Sulfolane$\uff09<\/td>\n          <td>27.5<\/td>\n          <td>285<\/td>\n          <td>10.29<\/td>\n          <td>44<\/td>\n          <td>165<\/td>\n          <td>1.26<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e8c\u7532\u57fa\u7532\u9170\u80fa\uff08$DMF$\uff09<\/td>\n          <td>-60.4<\/td>\n          <td>153<\/td>\n          <td>0.8<\/td>\n          <td>37<\/td>\n          <td>58<\/td>\n          <td>0.94<\/td>\n      <\/tr>\n      <tr>\n          <td>\u56db\u6c2f\u5316\u78b3\uff08$CCl_4$\uff09<\/td>\n          <td>-22.9<\/td>\n          <td>76.8<\/td>\n          <td>0.9<\/td>\n          <td>2.2<\/td>\n          <td>-0.3<\/td>\n          <td>1.58<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e8c\u786b\u5316\u78b3\uff08$CS_2$\uff09<\/td>\n          <td>-111.9<\/td>\n          <td>46.3<\/td>\n          <td>0.37<\/td>\n          <td>2.6<\/td>\n          <td>-43<\/td>\n          <td>1.26<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e59\u8148\uff08$C_2H_3N$\uff09<\/td>\n          <td>-43.8<\/td>\n          <td>81.6<\/td>\n          <td>0.34<\/td>\n          <td>37.5<\/td>\n          <td>2<\/td>\n          <td>0.78<\/td>\n      <\/tr>\n      <tr>\n          <td>\u4e19\u916e\uff08$Acetone$\uff09<\/td>\n          <td>-94.7<\/td>\n          <td>56.3<\/td>\n          <td>2.7<\/td>\n          <td>20.7<\/td>\n          <td>-20<\/td>\n          <td>0.79<\/td>\n      <\/tr>\n      <tr>\n          <td>\u6c2f\u4eff\uff08$CHCl_3$\uff09<\/td>\n          <td>-63.5<\/td>\n          <td>61.2<\/td>\n          <td>0.54<\/td>\n          <td>4.8<\/td>\n          <td>N\/A<\/td>\n          <td>1.48<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n"},{"title":"Nginx \u4e2d\u7684 return \u548c rewrite \u91cd\u5b9a\u5411","link":"https:\/\/been.ee\/p\/0-0-0-12\/","pubDate":"Fri, 04 Aug 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-12\/","description":"<p>return\u548crewrite\u5747\u53ef\u4ee5\u7528\u4e8e\u91cd\u5b9a\u5411\uff0creturn\u6307\u4ee4\u7528\u8d77\u6765\u66f4\u52a0\u7b80\u5355\uff0c\u800crewrite\u6307\u4ee4\u53ef\u4ee5\u7528\u4e8e\u66f4\u590d\u6742\u7684\u9700\u6c42\uff0c\u5e76\u4e14Nginx\u5b98\u65b9\u4e5f\u66f4\u5efa\u8bae\u4f7f\u7528return<\/p>\n<h2 id=\"return-\u6307\u4ee4\">return \u6307\u4ee4\n<\/h2><hr>\n<ul>\n<li><code>return<\/code>\u6307\u4ee4\u4f1a\u76f4\u63a5\u544a\u8bc9Nginx\u505c\u6b62\u5904\u7406\u8bf7\u6c42\u5e76\u7acb\u5373\u5411\u5ba2\u6237\u7aef\u53d1\u9001\u72b6\u6001\u7801\uff08\u4f8b\u5982\uff0c301\u6c38\u4e45\u91cd\u5b9a\u5411\uff09\u548c\u91cd\u5199\u7684URL\uff0c<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">return (301 | 302 | 303 | 307) url;\n<\/span><\/span><\/code><\/pre><\/div><p>\u6bd4\u5982\u6211\u4eec\u5e38\u7528\u7684\u5c06http\u6d41\u91cf\u91cd\u5b9a\u5411\u5230https\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">return 301 https:\/\/$server_name$request_uri;\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u4e5f\u53ef\u4ee5\u7528\u4e8e\u5411\u5ba2\u6237\u7aef\u8fd4\u56de\u6307\u5b9a\u7684\u54cd\u5e94\u5185\u5bb9<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">return (1xx | 2xx | 4xx | 5xx) [&#34;text&#34;];\n<\/span><\/span><\/code><\/pre><\/div><p>\u4f8b\u5982\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">return 401 &#34;Access denied because token is expired or invalid&#34;;\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"rewrite\u6307\u4ee4\">rewrite\u6307\u4ee4\n<\/h2><hr>\n<p>rewrite\u6307\u4ee4\u8bed\u6cd5\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">rewrite regex replacement [flag];\n<\/span><\/span><\/code><\/pre><\/div><blockquote>\n<ul>\n<li>\n<p><code>regex<\/code>\u662f\u6b63\u5219\u8868\u8fbe\u5f0f\uff0c\u7528\u4e8e\u5339\u914duri\u6216url<\/p>\n<\/li>\n<li>\n<p><code>replacement<\/code>\u662f\u91cd\u5199\u7684uri\u6216url\uff0c\u5982\u679c<code>replacement<\/code>\u5b57\u6bb5\u662f\u4ee5<code>http:\/\/<\/code>\uff0c<code>https:\/\/<\/code>\u6216\u8005<code>$scheme<\/code>\u5f00\u59cb\uff0c\u5c06\u4e0d\u518d\u7ee7\u7eed\u5904\u7406\uff0c\u5e76\u5c06\u91cd\u5b9a\u5411\u8fd4\u56de\u7ed9\u5ba2\u6237\u7aef<\/p>\n<\/li>\n<li>\n<p><code>flag<\/code>\u7528\u4e8e\u63a7\u5236\u662f\u5426\u7ee7\u7eed\u6267\u884c\u540e\u7eed\u7684rewrite\u6307\u4ee4\uff08rewrite\u6307\u4ee4\u9ed8\u8ba4\u4f1a\u6309\u7167\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u51fa\u73b0\u7684\u987a\u5e8f\u4f9d\u6b21\u6267\u884c\uff09\uff1a<\/p>\n<ol>\n<li><code>last<\/code>\uff1a\u505c\u6b62\u5904\u7406\u540e\u7eed\u7684rewrite\u6307\u4ee4\u96c6\uff0c\u5e76\u5f00\u59cb\u5bfb\u627e\u80fd\u591f\u5339\u914d\u91cd\u5199\u540e\u7684\u65b0uri\u7684location<\/li>\n<li><code>break<\/code>\uff1a\u505c\u6b62\u5904\u7406\u540e\u7eed\u7684rewrite\u6307\u4ee4\u96c6\uff0c\u5e76\u4e0d\u518d\u7ee7\u7eed\u67e5\u627e\u5339\u914d<\/li>\n<li><code>redirect<\/code>\uff1a\u5982\u679creplacement\u4e0d\u662f\u4ee5<code>http:\/\/<\/code>\uff0c<code>https:\/\/<\/code>\u6216\u8005<code>$scheme<\/code>\u5f00\u59cb\uff0c\u5219\u8fd4\u56de302\u4e34\u65f6\u91cd\u5b9a\u5411\u72b6\u6001\u7801<\/li>\n<li><code>permanent<\/code>\uff1a\u8fd4\u56de301\u6c38\u4e45\u91cd\u5b9a\u5411\u72b6\u6001\u7801<\/li>\n<\/ol>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u6709\u5173<code>break<\/code>\u548c<code>last<\/code>\u8fd9\u4e24\u4e2a\u53ef\u9009\u53c2\u6570\u7684\u5dee\u5f02\u548c\u8be6\u7ec6\u89e3\u8bfb\uff1a<\/p>\n<blockquote>\n<ul>\n<li>\n<p><code>break<\/code>\u548c<code>last<\/code>\u53c2\u6570\u653e\u5728<code>rewrite<\/code>\u6307\u4ee4\u540e\uff0c\u65e0\u8bba\u5982\u4f55\u4e00\u5b9a\u4f1a\u4ea7\u751f\u4f7f\u8fd9\u6761<code>rewrite<\/code>\u6307\u4ee4\u4e4b\u540e\u7684<code>rewrite<\/code>\u6307\u4ee4\u65e0\u6548\u7684\u6548\u679c<\/p>\n<\/li>\n<li>\n<p>\u5728<code>location<\/code>\u5757\u5916\u4f7f\u7528<code>break<\/code>\u6216<code>last<\/code>\uff0c\u5bf9<code>rewrite<\/code>\u6307\u4ee4\u9020\u6210\u7684\u6548\u679c\u4e00\u6837\uff0c\u9664\u4e86\u7b2c\u4e00\u6761\u7684\u6253\u65ad\u6548\u679c\u5916\uff0c\u90fd\u4f1a\u8ba9<code>rewrite<\/code>\u6307\u4ee4\u7684\u7ed3\u679c\u8fdb\u5165\u641c\u5bfb\u9002\u914d\u7684<code>location<\/code>\u5757\u7684\u9636\u6bb5<\/p>\n<\/li>\n<li>\n<p>\u5728<code>location<\/code>\u5757\u5185\u4f7f\u7528<code>break<\/code>\uff0c\u6253\u65ad<code>rewrite<\/code>\u6307\u4ee4\u6d41\u540e\uff0c\u7ee7\u7eed\u6267\u884c\u5f53\u524d<code>location<\/code>\u5757\u4e2d\u7684\u5176\u5b83\uff08\u6a21\u5757\u7684\uff09\u4efb\u52a1\uff0c\u4e0d\u4f1a\u5339\u914d\u65b0\u7684<code>location<\/code><\/p>\n<\/li>\n<li>\n<p>\u5728<code>location<\/code>\u5757\u5185\u4f7f\u7528<code>last<\/code>\uff0c\u6253\u65ad<code>rewrite<\/code>\u6307\u4ee4\u6d41\u540e\uff0c\u4f1a\u4ee5<code>rewrite<\/code>\u6307\u4ee4\u7684\u7ed3\u679c\u4e3a\u65b0\u88ab\u9002\u914d\u8005\u53bb\u641c\u5bfb\u81ea\u5df1\u5408\u9002\u7684<code>location<\/code>\u5757\u5e76\u8fdb\u5165\uff0c<code>rewrite<\/code>\u6307\u4ee4\u6240\u5728\u7684<code>location<\/code>\u5757\u5185\u5176\u5b83\uff08\u6a21\u5757\u7684\uff09\u4efb\u52a1\u88ab\u653e\u5f03\uff0c\u4f46\u4e0d\u4f1a\u53d7\u5916\u90e8<code>rewrite<\/code>\u6307\u4ee4\u7684\u5f71\u54cd<\/p>\n<\/li>\n<\/ul>\n<p>\u53c2\u8003\u6587\u7ae0\uff1a<\/p>\n<p><a class=\"link\" href=\"https:\/\/segmentfault.com\/a\/1190000020160878\"  target=\"_blank\" rel=\"noopener\"\n    >nginx\u7684rewrite\u6307\u4ee4\u7684\u53ef\u9009\u53c2\u6570break\u548clast\u7684\u5dee\u5f02<\/a><\/p>\n<p><a class=\"link\" href=\"https:\/\/serverfault.com\/questions\/131474\/nginx-url-rewriting-difference-between-break-and-last\"  target=\"_blank\" rel=\"noopener\"\n    >rewrite - nginx url rewriting: difference between break and last<\/a><\/p><\/blockquote>\n<p>rewrite\u6307\u4ee4\u793a\u4f8b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">location = \/nginx {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    rewrite ^\/nginx?$ \/music last;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">location = \/nginx {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    rewrite ^\/nginx?$ \/movies break;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    rewrite ^ $scheme:\/\/$server_name$request_uri permanent;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">location ~ ^\/mesh {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    rewrite ^\/mesh http:\/\/test.com\/ permanent;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">location = \/test.php { \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    rewrite ^\/test.php?id=([0-9]+)$ \/user\/$1 last;  # $1\u8868\u793a\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\u7b2c\u4e00\u4e2a\u62ec\u53f7\u7684\u503c\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">location ~ \/([0-9]+)\/(.*)$ {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    rewrite \/([0-9]+)\/(.*)$ \/$2 break;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    proxy_pass http:\/\/127.0.0.1:9090;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">} \n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"VPS \u7684\u5e38\u7528\u914d\u7f6e\u548c\u6d4b\u8bd5\u811a\u672c","link":"https:\/\/been.ee\/p\/0-0-0-11\/","pubDate":"Thu, 03 Aug 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-11\/","description":"<h2 id=\"\u5e38\u7528\u914d\u7f6e\">\u5e38\u7528\u914d\u7f6e\n<\/h2><hr>\n<h3 id=\"\u5f00\u542ftcp-bbr\u62e5\u585e\u63a7\u5236\u534f\u8bae\">\u5f00\u542fTCP BBR\u62e5\u585e\u63a7\u5236\u534f\u8bae\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;net.core.default_qdisc=fq&#34;<\/span> &gt;&gt; \/etc\/sysctl.conf\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;net.ipv4.tcp_congestion_control=bbr&#34;<\/span> &gt;&gt; \/etc\/sysctl.conf\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sysctl -p\n<\/span><\/span><span class=\"line\"><span class=\"cl\">lsmod <span class=\"p\">|<\/span> grep bbr  <span class=\"c1\"># \u82e5\u51fa\u73b0tcp_bbr\u5b57\u6837\uff0c\u5219\u8868\u660e\u8bbe\u5b9a\u6210\u529f<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u7981\u7528ipv6\">\u7981\u7528IPV6\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;net.ipv6.conf.all.disable_ipv6 = 1&#34;<\/span> &gt;&gt; \/etc\/sysctl.conf\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;net.ipv6.conf.default.disable_ipv6 = 1&#34;<\/span> &gt;&gt; \/etc\/sysctl.conf\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;net.ipv6.conf.lo.disable_ipv6 = 1&#34;<\/span> &gt;&gt; \/etc\/sysctl.conf\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sysctl -p\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ip a <span class=\"p\">|<\/span> grep inet6  <span class=\"c1\"># \u5982\u679c\u6ca1\u6709\u663e\u793a\u4efb\u4f55ipv6\u5730\u5740\uff0c\u5219\u5df2\u7ecf\u5b8c\u6210\u7981\u7528<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u4fee\u6539\u7cfb\u7edf\u65f6\u533a\">\u4fee\u6539\u7cfb\u7edf\u65f6\u533a\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">date -R <span class=\"c1\"># \u67e5\u770b\u5f53\u524d\u65f6\u95f4\u548c\u65f6\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rm -rf \/etc\/localtime\n<\/span><\/span><span class=\"line\"><span class=\"cl\">ln -s \/usr\/share\/zoneinfo\/Asia\/Shanghai \/etc\/localtime <span class=\"c1\"># \u65f6\u533a\u6539\u4e3a\u4e0a\u6d77<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">date -R <span class=\"c1\"># \u67e5\u770b\u4fee\u6539\u540e\u65f6\u95f4\u548c\u65f6\u533a<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u589e\u5927\u8fde\u63a5\u8ddf\u8e2a\u8868\u5bb9\u91cf\">\u589e\u5927\u8fde\u63a5\u8ddf\u8e2a\u8868\u5bb9\u91cf\n<\/h3><hr>\n<p>\u6709\u4e9bVPS\u9ed8\u8ba4\u7684\u8fde\u63a5\u8ddf\u8e2a\u8868<code>nf_conntrack<\/code>\u503c\u53ef\u80fd\u6bd4\u8f83\u5c0f\uff0c\u8fd9\u53ef\u80fd\u5bfc\u81f4\u5982\u679c\u5e76\u53d1\u8fde\u63a5\u6570\u8f83\u591a\u7684\u65f6\u5019\u65e0\u6cd5\u5efa\u7acb\u65b0\u7684\u8fde\u63a5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">cat \/proc\/sys\/net\/netfilter\/nf_conntrack_max  <span class=\"c1\"># \u67e5\u770b\u5f53\u524d\u7684\u9650\u5236<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;net.netfilter.nf_conntrack_max = 65536&#34;<\/span> &gt;&gt; \/etc\/sysctl.conf  <span class=\"c1\"># \u589e\u5927\u9650\u5236<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sysctl -p  <span class=\"c1\"># \u5e94\u7528\u4fee\u6539<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u8fd8\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u547d\u4ee4\u67e5\u770b\u5f53\u524d\u8fde\u63a5\u6570\u548c\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">cat \/proc\/sys\/net\/netfilter\/nf_conntrack_count  <span class=\"c1\"># \u67e5\u770b\u5f53\u524d\u8fde\u63a5\u6570(\u8fde\u63a5\u8ddf\u8e2a\u8868\u4e2d\u5f53\u524d\u4f7f\u7528\u4e86\u591a\u5c11\u4e2a\u6761\u76ee)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">cat \/proc\/sys\/net\/netfilter\/nf_conntrack_tcp_timeout_established  <span class=\"c1\"># TCP ESTABLISHED (\u5df2\u5efa\u7acb\u8fde\u63a5) \u7684\u8d85\u65f6\u65f6\u95f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">cat \/proc\/sys\/net\/netfilter\/nf_conntrack_tcp_timeout_time_wait  <span class=\"c1\"># TCP WAIT\/TIME_WAIT\u7684\u8d85\u65f6\u65f6\u95f4<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6ce8\u610f\u4e0d\u8981\u628a\u9650\u5236\u503c\u8bbe\u7f6e\u592a\u5927\uff0c\u8fc7\u5927\u7684\u8bdd\u4f1a\u5360\u7528\u8f83\u5927\u7684\u5185\u5b58<\/p>\n<h3 id=\"\u6dfb\u52a0swap\u865a\u62df\u5185\u5b58\">\u6dfb\u52a0SWAP\u865a\u62df\u5185\u5b58\n<\/h3><hr>\n<p>\u53c2\u8003<a class=\"link\" href=\"..\/0-0-0-23\/\" >\u53e6\u4e00\u7bc7\u6587\u7ae0<\/a><\/p>\n<h2 id=\"\u6d4b\u8bd5\u811a\u672c\">\u6d4b\u8bd5\u811a\u672c\n<\/h2><hr>\n<h3 id=\"bench\">Bench\n<\/h3><hr>\n<p>\u5305\u542b\uff1a<\/p>\n<ul>\n<li>\n<p>\u663e\u793a\u5f53\u524d\u6d4b\u8bd5\u7684\u5404\u79cd\u7cfb\u7edf\u4fe1\u606f<\/p>\n<\/li>\n<li>\n<p>\u4e0b\u8f7d\u6d4b\u901f<\/p>\n<\/li>\n<li>\n<p>IO\u6d4b\u8bd5\uff08\u6d4b\u8bd5\u4e09\u6b21\uff0c\u5e76\u663e\u793a\u5e73\u5747\u503c)<\/p>\n<\/li>\n<\/ul>\n<p>\u811a\u672c\u547d\u4ee4\u4f7f\u7528\u65b9\u6cd5\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">   wget -qO- bench.sh <span class=\"p\">|<\/span> bash\n<\/span><\/span><\/code><\/pre><\/div><p>\u6216<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">   curl -Lso- bench.sh | bash\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"yabssh\">yabs.sh\n<\/h3><hr>\n<p>\u63d0\u4f9b\u786c\u4ef6\u4fe1\u606f\uff0c\u6d4b\u8bd5\u786c\u76d8\u548c\u7f51\u7edc\u901f\u5ea6\uff0cCPU\u8dd1\u5206\uff08Geekbench\uff09<\/p>\n<p>\u9879\u76ee\u5730\u5740\uff1a<a class=\"link\" href=\"https:\/\/github.com\/masonr\/yet-another-bench-script\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/github.com\/masonr\/yet-another-bench-script<\/a><\/p>\n<p>\u4f7f\u7528\u65b9\u6cd5\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">curl -sL yabs.sh <span class=\"p\">|<\/span> bash\n<\/span><\/span><\/code><\/pre><\/div><p>\u6216<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">wget -qO- yabs.sh <span class=\"p\">|<\/span> bash\n<\/span><\/span><\/code><\/pre><\/div><p>\u6307\u5b9a\u53c2\u6570\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">curl -sL yabs.sh <span class=\"p\">|<\/span> bash -s -- -flags\n<\/span><\/span><\/code><\/pre><\/div><table>\n  <thead>\n      <tr>\n          <th>Flag<\/th>\n          <th>Description<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td>-b<\/td>\n          <td>Forces use of pre-compiled binaries from repo over local packages<\/td>\n      <\/tr>\n      <tr>\n          <td>-f\/-d<\/td>\n          <td>Disables the fio (disk performance) test<\/td>\n      <\/tr>\n      <tr>\n          <td>-i<\/td>\n          <td>Disables the iperf (network performance) test<\/td>\n      <\/tr>\n      <tr>\n          <td>-g<\/td>\n          <td>Disables the Geekbench (system performance) test<\/td>\n      <\/tr>\n      <tr>\n          <td>-n<\/td>\n          <td>Skips the network information lookup and print out<\/td>\n      <\/tr>\n      <tr>\n          <td>-h<\/td>\n          <td>Prints the help message with usage, flags detected, and local package (fio\/iperf) status<\/td>\n      <\/tr>\n      <tr>\n          <td>-r<\/td>\n          <td>Reduces the number of iperf locations (Scaleway\/Clouvider LON+NYC) to lessen bandwidth usage<\/td>\n      <\/tr>\n      <tr>\n          <td>-4<\/td>\n          <td>Runs a Geekbench 4 test and disables the Geekbench 6 test<\/td>\n      <\/tr>\n      <tr>\n          <td>-5<\/td>\n          <td>Runs a Geekbench 5 test and disables the Geekbench 6 test<\/td>\n      <\/tr>\n      <tr>\n          <td>-9<\/td>\n          <td>Runs both the Geekbench 4 and 5 tests instead of the Geekbench 6 test<\/td>\n      <\/tr>\n      <tr>\n          <td>-6<\/td>\n          <td>Re-enables the Geekbench 6 test if any of the following were used: -4, -5, or -9 (-6 flag must be last to not be overridden)<\/td>\n      <\/tr>\n      <tr>\n          <td>-j<\/td>\n          <td>Prints a JSON representation of the results to the screen<\/td>\n      <\/tr>\n      <tr>\n          <td>-w <filename><\/td>\n          <td>Writes the JSON results to a file using the file name provided<\/td>\n      <\/tr>\n      <tr>\n          <td>-s <url><\/td>\n          <td>Sends a JSON representation of the results to the designated URL(s) (see section below)<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h3 id=\"\u6d41\u5a92\u4f53\u68c0\u6d4b\">\u6d41\u5a92\u4f53\u68c0\u6d4b\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">bash &lt;<span class=\"o\">(<\/span>curl -L -s check.unlock.media<span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6216<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">bash &lt;<span class=\"o\">(<\/span>curl -L -s media.check.place<span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u8def\u7531\u68c0\u6d4b\">\u8def\u7531\u68c0\u6d4b\n<\/h3><hr>\n<ul>\n<li><strong>mtrtrace (\u6162)<\/strong><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">curl https:\/\/raw.githubusercontent.com\/zhucaidan\/mtr_trace\/main\/mtr_trace.sh <span class=\"p\">|<\/span> bash\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li><strong>backtrace (\u5feb)<\/strong><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">curl https:\/\/raw.githubusercontent.com\/zhanghanyun\/backtrace\/main\/install.sh -sSf <span class=\"p\">|<\/span> sh\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li><strong>nexttrace<\/strong><\/li>\n<\/ul>\n<p>\u9879\u76ee\u5730\u5740\uff1a<a class=\"link\" href=\"https:\/\/github.com\/nxtrace\/Ntrace-core\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/github.com\/nxtrace\/Ntrace-core<\/a><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4e00\u952e\u5b89\u88c5\u811a\u672c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">bash &lt;<span class=\"o\">(<\/span>curl -Ls https:\/\/raw.githubusercontent.com\/sjlleo\/nexttrace\/main\/nt_install.sh<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4f7f\u7528\u65b9\u6cd5\uff08\u66f4\u591a\u7528\u6cd5\u53c2\u8003github\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nexttrace <span class=\"o\">[<\/span>ip<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nexttrace --fast-trace\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nexttrace --table <span class=\"o\">[<\/span>ip<span class=\"o\">]<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u53bb\u7a0b\u8def\u7531\u7684\u4fe1\u606f\u53ef\u4ee5\u53bb<a class=\"link\" href=\"https:\/\/tools.ipip.net\/traceroute.php\"  target=\"_blank\" rel=\"noopener\"\n    >ipip<\/a>\u6216<a class=\"link\" href=\"https:\/\/www.itdog.cn\/traceroute\/\"  target=\"_blank\" rel=\"noopener\"\n    >itdog<\/a>\u67e5\u8be2<\/li>\n<\/ul>\n<h3 id=\"\u878d\u5408\u602a\u6d4b\u8bd5\u811a\u672c\">\u878d\u5408\u602a\u6d4b\u8bd5\u811a\u672c\n<\/h3><hr>\n<p>GitHub\u9879\u76ee\u5730\u5740\uff1a<a class=\"link\" href=\"https:\/\/github.com\/spiritLHLS\/ecs\"  target=\"_blank\" rel=\"noopener\"\n    >GitHub - spiritLHLS\/ecs: VPS\u878d\u5408\u602a\u670d\u52a1\u5668\u6d4b\u8bc4\u811a\u672c<\/a><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">curl -L https:\/\/gitlab.com\/spiritysdx\/za\/-\/raw\/main\/ecs.sh -o ecs.sh <span class=\"o\">&amp;&amp;<\/span> chmod +x ecs.sh <span class=\"o\">&amp;&amp;<\/span> bash ecs.sh\n<\/span><\/span><\/code><\/pre><\/div><p>\u6216<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">curl -L https:\/\/github.com\/spiritLHLS\/ecs\/raw\/main\/ecs.sh -o ecs.sh <span class=\"o\">&amp;&amp;<\/span> chmod +x ecs.sh <span class=\"o\">&amp;&amp;<\/span> bash ecs.sh\n<\/span><\/span><\/code><\/pre><\/div><p>\u6216<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">bash &lt;(wget -qO- bash.spiritlhl.net\/ecs)\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"ip\u8d28\u91cf\u68c0\u6d4b\">IP\u8d28\u91cf\u68c0\u6d4b\n<\/h3><hr>\n<ul>\n<li>IP\u8d28\u91cf\u68c0\u6d4b\uff0c\u542b\u591a\u5bb6\u6570\u636e\u5e93\u67e5\u8be2\uff0c\u542b\u9ed1\u540d\u5355\u67e5\u8be2<\/li>\n<li>\u542b\u00a0<code>IPV4<\/code>\u00a0\u548c\u00a0<code>IPV6<\/code>\u00a0\u68c0\u6d4b\uff0c\u542bASN\u548c\u5730\u5740\u67e5\u8be2<\/li>\n<li>\u542b25\u7aef\u53e3\u7684\u90ae\u7bb1\u53ef\u8fbe\u6027\u68c0\u6d4b\uff0c\u5982\u679c\u67d0\u4e2a\u90ae\u7bb1\u53ef\u8fbe\uff0c\u5219\u53ef\u642d\u5efa\u90ae\u5c40<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">bash &lt;<span class=\"o\">(<\/span>curl -Ls IP.Check.Place<span class=\"o\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u7f51\u7edc\u8d28\u91cf\u68c0\u6d4b\">\u7f51\u7edc\u8d28\u91cf\u68c0\u6d4b\n<\/h3><hr>\n<p>\u9879\u76ee\u5730\u5740\uff1a<a class=\"link\" href=\"https:\/\/github.com\/xykt\/NetQuality\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/github.com\/xykt\/NetQuality<\/a><\/p>\n<p>\u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff1a<\/p>\n<p><img src=\"https:\/\/raw.githubusercontent.com\/xykt\/NetQuality\/refs\/heads\/main\/res\/help.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"https:\/\/raw.githubusercontent.com\/xykt\/NetQuality\/refs\/heads\/main\/res\/help.png\"\n\t\n\t\n><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">bash &lt;<span class=\"o\">(<\/span>curl -Ls Net.Check.Place<span class=\"o\">)<\/span> -4  <span class=\"c1\"># \u53ea\u68c0\u6d4bIPv4\u7ed3\u679c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">bash &lt;<span class=\"o\">(<\/span>curl -Ls Net.Check.Place<span class=\"o\">)<\/span> -6  <span class=\"c1\"># \u53ea\u68c0\u6d4bIPv6\u7ed3\u679c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">bash &lt;<span class=\"o\">(<\/span>curl -Ls Net.Check.Place<span class=\"o\">)<\/span>  <span class=\"c1\"># \u9ed8\u8ba4\u53cc\u6808\u68c0\u6d4b<\/span>\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Nginx \u57fa\u7840\u914d\u7f6e","link":"https:\/\/been.ee\/p\/0-0-0-10\/","pubDate":"Mon, 31 Jul 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-10\/","description":"<h2 id=\"\u5173\u4e8enginx\">\u5173\u4e8eNginx\n<\/h2><hr>\n<p>\u5b89\u88c5\u7684\u90e8\u5206\u4e5f\u4e0d\u518d\u8d58\u8ff0\uff0c\u76f4\u63a5\u53c2\u8003<a class=\"link\" href=\"https:\/\/nginx.org\/en\/download.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u7f51<\/a>\u5373\u53ef<\/p>\n<p>\u4e3b\u8981\u4ecb\u7ecd\u57fa\u7840\u914d\u7f6e\uff0c\u8fdb\u9636\u7684\u90e8\u5206\u4ee5\u540e\u5355\u72ec\u603b\u7ed3<\/p>\n<h2 id=\"\u53cd\u5411\u4ee3\u7406\u548c\u6b63\u5411\u4ee3\u7406\">\u53cd\u5411\u4ee3\u7406\u548c\u6b63\u5411\u4ee3\u7406\n<\/h2><hr>\n<p>\u5e73\u65f6\u5e38\u8bf4\u7684\u4ee3\u7406\u4e0d\u7279\u6307\u7684\u8bdd\u4e00\u822c\u90fd\u662f\u6307\u6b63\u5411\u4ee3\u7406\u3002<\/p>\n<h3 id=\"\u6b63\u5411\u4ee3\u7406\">\u6b63\u5411\u4ee3\u7406\n<\/h3><hr>\n<p>\u6b63\u5411\u4ee3\u7406\u662f\u4e3a\u5ba2\u6237\u7aef\u670d\u52a1\u7684\uff0c\u5b83\u4f5c\u4e3a\u6b63\u5411\u4ee3\u7406\u5e2e\u52a9\u5ba2\u6237\u7aef\u8bbf\u95ee\u4e00\u4e9b\u670d\u52a1\uff0c\u8fd9\u65f6\u88ab\u8bbf\u95ee\u7684\u670d\u52a1\u5b9e\u9645\u4e0a\u662f\u4e0d\u77e5\u9053\u771f\u6b63\u7684\u5ba2\u6237\u7aef\uff0c\u5bf9\u670d\u52a1\u7aef\u6765\u8bf4\uff0c\u8bf7\u6c42\u662f\u8c01\u53d1\u7684\uff0c\u5c31\u628a\u54cd\u5e94\u53d1\u7ed9\u8c01\u3002<\/p>\n<p>\u90a3\u4e3a\u4ec0\u4e48\u6211\u4eec\u81ea\u5df1\u4e0d\u76f4\u63a5\u8bbf\u95ee\uff0c\u975e\u5f97\u627e\u4e2a\u4ee3\u7406\u5e2e\u6211\u4eec\u8bbf\u95ee\u5462\uff1f\u5f53\u7136\u662f\u56e0\u4e3a\u6709\u4e9b\u5185\u5bb9\u53ea\u6709\u4ee3\u7406\u80fd\u8bbf\u95ee\u5230\uff0c\u800c\u6211\u4eec\u8bbf\u95ee\u4e0d\u5230\uff0c\u4f46\u6211\u4eec\u80fd\u8bbf\u95ee\u4ee3\u7406\uff0c\u90a3\u4e48\u5c31\u53ef\u4ee5\u8ba9\u4ee3\u7406\u6765\u5e2e\u6211\u4eec\u3002<\/p>\n<p>\u4e5f\u5c31\u662f\u8bf4\uff0c\u6b63\u5411\u4ee3\u7406\u5bf9\u5ba2\u6237\u7aef\u662f\u900f\u660e\u7684\uff0c\u5bf9\u670d\u52a1\u7aef\u662f\u975e\u900f\u660e\u7684\u3002<\/p>\n<h3 id=\"\u53cd\u5411\u4ee3\u7406\">\u53cd\u5411\u4ee3\u7406\n<\/h3><hr>\n<p>\u53cd\u5411\u4ee3\u7406\u662f\u4e3a\u670d\u52a1\u7aef\u670d\u52a1\u7684\uff0c\u5b83\u7528\u6765\u5c06\u5ba2\u6237\u7aef\u7684\u8bf7\u6c42\u53d1\u9001\u7ed9\u771f\u6b63\u7684\u670d\u52a1\u7aef\uff0c\u6b64\u65f6\u5ba2\u6237\u7aef\u5e76\u4e0d\u77e5\u9053\u771f\u6b63\u7684\u670d\u52a1\u7aef\u662f\u8c01\uff0c\u4e5f\u5c31\u662f\u4ee3\u7406\u5411\u5ba2\u6237\u7aef\u9690\u85cf\u4e86\u771f\u5b9e\u7684\u670d\u52a1\u7aef\u3002<\/p>\n<p>\u4e5f\u5c31\u662f\u8bf4\uff0c\u53cd\u5411\u4ee3\u7406\u5bf9\u4e8e\u670d\u52a1\u7aef\u662f\u900f\u660e\u7684\uff0c\u5bf9\u5ba2\u6237\u7aef\u662f\u975e\u900f\u660e\u7684\u3002<\/p>\n<h2 id=\"nginx\u5e38\u7528\u547d\u4ee4\">Nginx\u5e38\u7528\u547d\u4ee4\n<\/h2><hr>\n<p>\u8bf4\u662f\u5e38\u7528\uff0c\u4f46\u4e5f\u4e0d\u5e38\u7528\uff0c\u56e0\u4e3a\u4e00\u822c\u4f1a\u628aNginx\u52a0\u5165\u7cfb\u7edf\u670d\u52a1\u4e2d\uff0c\u4f7f\u7528<code>systemctl<\/code>\u64cd\u4f5c\u3002<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">nginx -s stop  <span class=\"c1\"># \u5feb\u901f\u5173\u95edNginx\uff0c\u53ef\u80fd\u4e0d\u4fdd\u5b58\u76f8\u5173\u4fe1\u606f\uff0c\u5e76\u8fc5\u901f\u7ec8\u6b62web\u670d\u52a1  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nginx -s quit  <span class=\"c1\"># \u5e73\u7a33\u5173\u95edNginx\uff0c\u4fdd\u5b58\u76f8\u5173\u4fe1\u606f\uff0c\u6709\u5b89\u6392\u7684\u7ed3\u675fweb\u670d\u52a1  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nginx -s reload  <span class=\"c1\"># \u56e0\u6539\u53d8\u4e86Nginx\u76f8\u5173\u914d\u7f6e\uff0c\u9700\u8981\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u800c\u91cd\u8f7d  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nginx -s reopen  <span class=\"c1\"># \u91cd\u65b0\u6253\u5f00\u65e5\u5fd7\u6587\u4ef6  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nginx -c filename  <span class=\"c1\"># \u4e3a Nginx \u6307\u5b9a\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c\u6765\u4ee3\u66ff\u7f3a\u7701\u7684  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nginx -t  <span class=\"c1\"># \u4e0d\u8fd0\u884c\uff0c\u800c\u4ec5\u4ec5\u6d4b\u8bd5\u914d\u7f6e\u6587\u4ef6\u3002nginx \u5c06\u68c0\u67e5\u914d\u7f6e\u6587\u4ef6\u7684\u8bed\u6cd5\u7684\u6b63\u786e\u6027\uff0c\u5e76\u5c1d\u8bd5\u6253\u5f00\u914d\u7f6e\u6587\u4ef6\u4e2d\u6240\u5f15\u7528\u5230\u7684\u6587\u4ef6  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nginx -v  <span class=\"c1\"># \u663e\u793a nginx \u7684\u7248\u672c  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">nginx -V  <span class=\"c1\"># \u663e\u793a nginx \u7684\u7248\u672c\uff0c\u7f16\u8bd1\u5668\u7248\u672c\u548c\u914d\u7f6e\u53c2\u6570  <\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"nginx\u914d\u7f6e\u6587\u4ef6\">Nginx\u914d\u7f6e\u6587\u4ef6\n<\/h2><hr>\n<p>Nginx\u7684\u6240\u6709\u6838\u5fc3\u5185\u5bb9\u90fd\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\uff0c\u8fd9\u4e2a\u914d\u7f6e\u6587\u4ef6\u5728Debian\u7cfb\u7edf\u4e2d\u4f1a\u9ed8\u8ba4\u5728<code>\/etc\/nginx\/nginx.conf<\/code>\uff0c\u7f16\u8bd1\u5b89\u88c5\u9ed8\u8ba4\u4e3a<code>\/usr\/local\/nginx<\/code>\u3002<\/p>\n<h3 id=\"\u57fa\u672c\u914d\u7f6e\u6982\u89c8\">\u57fa\u672c\u914d\u7f6e\u6982\u89c8\n<\/h3><hr>\n<p>\u4e3b\u914d\u7f6e\u6587\u4ef6\u5927\u6982\u957f\u8fd9\u4e2a\u6837\u5b50\uff08\u4e0d\u662f\u9ed8\u8ba4\u914d\u7f6e\uff09\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">user<\/span>  <span class=\"n\">www<\/span><span class=\"o\">-<\/span><span class=\"n\">data<\/span> <span class=\"n\">www<\/span><span class=\"o\">-<\/span><span class=\"n\">data<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">worker_processes<\/span>  <span class=\"n\">auto<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">error_log<\/span>  <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"nb\">log<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">error<\/span><span class=\"o\">.<\/span><span class=\"n\">log<\/span> <span class=\"n\">notice<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">pid<\/span>        <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">run<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">.<\/span><span class=\"n\">pid<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">worker_rlimit_nofile<\/span>  <span class=\"mi\">65535<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">events<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">accept_mutex<\/span>  <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">multi_accept<\/span>  <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">use<\/span>  <span class=\"n\">epoll<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">worker_connections<\/span>  <span class=\"mi\">65535<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">http<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">include<\/span>       <span class=\"o\">\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">mime<\/span><span class=\"o\">.<\/span><span class=\"n\">types<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">default_type<\/span>  <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">octet<\/span><span class=\"o\">-<\/span><span class=\"n\">stream<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">log_format<\/span>  <span class=\"n\">main<\/span>  <span class=\"s1\">&#39;$remote_addr\u2013$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for&#39;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">access_log<\/span>  <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"nb\">log<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">access<\/span><span class=\"o\">.<\/span><span class=\"n\">log<\/span>  <span class=\"n\">main<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#autoindex  off;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">sendfile<\/span>        <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">sendfile_max_chunk<\/span> <span class=\"mi\">128<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">keepalive_timeout<\/span>  <span class=\"mi\">120<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">tcp_nopush<\/span>     <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">tcp_nodelay<\/span>    <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">proxy_buffers<\/span> <span class=\"mi\">32<\/span> <span class=\"mi\">512<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">proxy_buffer_size<\/span> <span class=\"mi\">8<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_header_timeout<\/span>  <span class=\"mi\">120<\/span><span class=\"n\">s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_body_timeout<\/span>  <span class=\"mi\">120<\/span><span class=\"n\">s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_max_body_size<\/span>  <span class=\"mi\">50000<\/span><span class=\"n\">m<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_header_buffer_size<\/span>  <span class=\"mi\">64<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_body_buffer_size<\/span>  <span class=\"mi\">512<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip<\/span>  <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_min_length<\/span>  <span class=\"mi\">1<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_buffers<\/span>  <span class=\"mi\">16<\/span>  <span class=\"mi\">256<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_http_version<\/span>  <span class=\"mf\">1.1<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_comp_level<\/span>  <span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_vary<\/span>  <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_types<\/span>  <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">plain<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">x<\/span><span class=\"o\">-<\/span><span class=\"n\">javascript<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">css<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">javascript<\/span> <span class=\"n\">image<\/span><span class=\"o\">\/<\/span><span class=\"n\">jpeg<\/span> <span class=\"n\">image<\/span><span class=\"o\">\/<\/span><span class=\"n\">gif<\/span> <span class=\"n\">image<\/span><span class=\"o\">\/<\/span><span class=\"n\">png<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_connect_timeout<\/span> <span class=\"mi\">300<\/span><span class=\"n\">s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_send_timeout<\/span> <span class=\"mi\">300<\/span><span class=\"n\">s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_read_timeout<\/span> <span class=\"mi\">300<\/span><span class=\"n\">s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_buffer_size<\/span> <span class=\"mi\">64<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_buffers<\/span> <span class=\"mi\">16<\/span> <span class=\"mi\">256<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_busy_buffers_size<\/span> <span class=\"mi\">512<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_temp_file_write_size<\/span> <span class=\"mi\">256<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">include<\/span> <span class=\"o\">\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">conf<\/span><span class=\"o\">.<\/span><span class=\"n\">d<\/span><span class=\"o\">\/*.<\/span><span class=\"n\">conf<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5176\u4e2d<code>include \/etc\/nginx\/conf.d\/*.conf;<\/code>\u8868\u793a\u5c06<code>\/etc\/nginx\/conf.d\/<\/code>\u7684\u6240\u6709<code>.conf<\/code>\u6587\u4ef6\u90fd\u5305\u62ec\u8fdb\u6765\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\u8fd9\u4e2a\u76ee\u5f55\u4e0b\u5206\u5f00\u5199\u5404\u4e2a\u670d\u52a1\u5668\uff08\u865a\u62df\u4e3b\u673a\uff09\u7684\u914d\u7f6e\u3002<\/p>\n<p>\u865a\u62df\u4e3b\u673a\u7684\u914d\u7f6e\u4f4d\u4e8e\u914d\u7f6e\u6587\u4ef6http\u5757\u4e2d\u7684server\u5757\uff0c\u7c7b\u4f3c\u4e8e\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">http {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen       80;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server_name  localhost;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    location \/ {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        root   \/usr\/share\/nginx\/html;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        index  index.html index.htm;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    }\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><\/code><\/pre><\/div><p>\u4e0b\u9762\u662f\u00a0<code>nginx<\/code>\u00a0\u4e00\u4e9b\u914d\u7f6e\u4e2d\u5e38\u7528\u7684\u5185\u7f6e\u5168\u5c40\u53d8\u91cf\uff0c\u53ef\u4ee5\u5728\u914d\u7f6e\u7684\u4efb\u4f55\u4f4d\u7f6e\u4f7f\u7528\u5b83\u4eec\u3002<\/p>\n<table>\n  <thead>\n      <tr>\n          <th>\u53d8\u91cf\u540d<\/th>\n          <th>\u529f\u80fd<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td><code>$host<\/code><\/td>\n          <td>\u8bf7\u6c42\u4fe1\u606f\u4e2d\u7684\u00a0<code>Host<\/code>\uff0c\u5982\u679c\u8bf7\u6c42\u4e2d\u6ca1\u6709\u00a0<code>Host<\/code>\u00a0\u884c\uff0c\u5219\u7b49\u4e8e\u8bbe\u7f6e\u7684\u670d\u52a1\u5668\u540d<\/td>\n      <\/tr>\n      <tr>\n          <td><code>$request_method<\/code><\/td>\n          <td>\u5ba2\u6237\u7aef\u8bf7\u6c42\u7c7b\u578b\uff0c\u5982\u00a0<code>GET<\/code>\u3001<code>POST<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td><code>$remote_addr<\/code><\/td>\n          <td>\u5ba2\u6237\u7aef\u7684\u00a0<code>IP<\/code>\u00a0\u5730\u5740<\/td>\n      <\/tr>\n      <tr>\n          <td><code>$args<\/code><\/td>\n          <td>\u8bf7\u6c42\u4e2d\u7684\u53c2\u6570<\/td>\n      <\/tr>\n      <tr>\n          <td><code>$content_length<\/code><\/td>\n          <td>\u8bf7\u6c42\u5934\u4e2d\u7684\u00a0<code>Content-length<\/code>\u00a0\u5b57\u6bb5<\/td>\n      <\/tr>\n      <tr>\n          <td><code>$http_user_agent<\/code><\/td>\n          <td>\u5ba2\u6237\u7aef agent \u4fe1\u606f<\/td>\n      <\/tr>\n      <tr>\n          <td><code>$http_cookie<\/code><\/td>\n          <td>\u5ba2\u6237\u7aef cookie \u4fe1\u606f<\/td>\n      <\/tr>\n      <tr>\n          <td><code>$remote_addr<\/code><\/td>\n          <td>\u5ba2\u6237\u7aef\u7684 IP \u5730\u5740<\/td>\n      <\/tr>\n      <tr>\n          <td><code>$remote_port<\/code><\/td>\n          <td>\u5ba2\u6237\u7aef\u7684\u7aef\u53e3<\/td>\n      <\/tr>\n      <tr>\n          <td><code>$server_protocol<\/code><\/td>\n          <td>\u8bf7\u6c42\u4f7f\u7528\u7684\u534f\u8bae\uff0c\u5982\u00a0<code>HTTP\/1.0<\/code>\u3001<code>HTTP\/1.1<\/code><\/td>\n      <\/tr>\n      <tr>\n          <td><code>$server_addr<\/code><\/td>\n          <td>\u670d\u52a1\u5668\u5730\u5740<\/td>\n      <\/tr>\n      <tr>\n          <td><code>$server_name<\/code><\/td>\n          <td>\u670d\u52a1\u5668\u540d\u79f0<\/td>\n      <\/tr>\n      <tr>\n          <td><code>$server_port<\/code><\/td>\n          <td>\u670d\u52a1\u5668\u7684\u7aef\u53e3\u53f7<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>\u4ece\u4e0a\u9762\u53ef\u4ee5\u770b\u51fa\uff0c\u914d\u7f6e\u6587\u4ef6\u4e3b\u8981\u5206\u4e3a\u4e09\u90e8\u5206\uff0c\u5168\u5c40\u914d\u7f6e\uff0cevents\u5757\u548chttp\u5757\uff0c\u4e0b\u9762\u5c06\u5bf9\u6b64\u4e00\u4e00\u4ecb\u7ecd\u3002<\/p>\n<h3 id=\"\u5168\u5c40\u914d\u7f6e\">\u5168\u5c40\u914d\u7f6e\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">user  [user] [group];  # \u6307\u5b9a\u8fd0\u884cnginx\u8fdb\u7a0b\u7684\u7528\u6237\u548c\u7528\u6237\u7ec4\uff0c\u53ea\u80fd\u5728\u5168\u5c40\u5757\u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">worker_processes  [number | auto];  # \u6307\u5b9a\u5de5\u4f5c\u7684\u8fdb\u7a0b\u6570\uff0c\u901a\u5e38\u53ef\u4ee5\u8bbe\u4e3acpu\u7684\u6838\u5fc3\u6570\u76841-2\u500d\u6216\u8005auto\uff0c\u53ea\u80fd\u5728\u5168\u5c40\u5757\u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">error_log  [path] [debug | info | notice | warn | error | crit | alert | emerg];  # \u6307\u5b9a\u9519\u8bef\u65e5\u5fd7\u7684\u4fdd\u5b58\u8def\u5f84\u548c\u9519\u8bef\u7ea7\u522b\uff0c\u53ef\u4ee5\u5728\u5168\u5c40\u5757\u3001http\u5757\u3001server\u5757\u4ee5\u53calocation\u5757\u4e2d\u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pid  [path];  # \u6307\u5b9apid\u6587\u4ef6\u7684\u5b58\u653e\u4f4d\u7f6e\uff0c\u53ea\u80fd\u5728\u5168\u5c40\u5757\u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">worker_rlimit_nofile  [number];  # \u6307\u5b9a\u4e00\u4e2anginx\u8fdb\u7a0b\u6253\u5f00\u7684\u6700\u591a\u6587\u4ef6\u63cf\u8ff0\u7b26\u6570\u76ee\uff0c\u53ef\u4ee5\u5c3d\u91cf\u8bbe\u5927\u5c31\u4e0d\u4f1a\u51fa\u73b0Too many open files\u7684\u62a5\u9519\uff0clinux2.6\u5185\u6838\u4e0b\u5f00\u542f\u7684\u6587\u4ef6\u6253\u5f00\u6570\u4e3a65535\uff0c\u6240\u4ee5\u53ef\u4ee5\u8bbe\u4e3a\u8be5\u503c\u3002\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"events\u5757\">events\u5757\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">events {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    accept_mutex  [on | off];  # \u8bbe\u7f6e\u7f51\u7edc\u8fde\u63a5\u5e8f\u5217\u5316\uff0c\u9632\u6b62\u591a\u4e2a\u8fdb\u7a0b\u5bf9\u8fde\u63a5\u7684\u4e89\u62a2\uff0c\u9ed8\u8ba4\u4e3aon\uff0c\u53ea\u80fd\u5728events\u5757\u4e2d\u8fdb\u884c\u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    multi_accept  [on | off];  # \u8bbe\u7f6e\u4e00\u4e2a\u8fdb\u7a0b\u662f\u5426\u540c\u65f6\u63a5\u53d7\u591a\u4e2a\u7f51\u7edc\u8fde\u63a5\uff0c\u9ed8\u8ba4\u4e3aoff\uff0c\u53ea\u80fd\u5728events\u5757\u4e2d\u8fdb\u884c\u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    use  [option];  # \u6307\u5b9a\u7f51\u7edcIO\u6a21\u578b\uff0c\u53ef\u9009\u7684\u9009\u9879\u6709select\u3001poll\u3001kqueue\u3001epoll\u3001rtsig\u3001\/dev\/poll\u4ee5\u53caeventport\uff0c\u5176\u4e2dselect\u548cpoll\u662f\u6807\u51c6\u5de5\u4f5c\u6a21\u5f0f\uff0ckqueue\u548cepoll\u662f\u9ad8\u6548\u7684\u5de5\u4f5c\u6a21\u5f0f\uff08epoll\u7528\u4e8eLinux\uff0ckqueue\u7528\u4e8eBSD\uff09\uff0c\u901a\u5e38\u5bf9\u4e8eLinux\u7cfb\u7edf\uff0cepoll\u662f\u9996\u9009\uff0c\u4e0d\u652f\u6301\u65f6\u624d\u4f1a\u7528select\u3002\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    worker_connections  [number];  # \u7528\u4e8e\u6307\u5b9a\u6bcf\u4e00\u4e2aworker\u8fdb\u7a0b\u53ef\u4ee5\u5f00\u542f\u7684\u6700\u5927\u8fde\u63a5\u6570\uff0c\u53ea\u80fd\u5728events\u5757\u4e2d\u8fdb\u884c\u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"http\u5757\">http\u5757\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">http<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">include<\/span>  <span class=\"p\">[<\/span><span class=\"n\">path<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u7528\u4e8e\u5c06\u5176\u4ed6\u4f4d\u7f6e\u7684\u914d\u7f6e\u6587\u4ef6\u5305\u542b\u8fdb\u6765\uff0c\u6bd4\u5982mime.types\uff0c\u8fd9\u4e2a\u6587\u4ef6\u63d0\u4f9b\u4e86\u6587\u4ef6\u6269\u5c55\u540d\u548c\u6587\u4ef6\u7c7b\u578b\u7684\u6620\u5c04<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">default_type<\/span>  <span class=\"p\">[<\/span><span class=\"n\">option<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u7528\u4e8e\u8bbe\u7f6e\u9ed8\u8ba4\u6587\u4ef6\u7c7b\u578b\uff0c\u9ed8\u8ba4\u4e3atext\/plain<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">log_format<\/span>  <span class=\"p\">[<\/span><span class=\"n\">format_name<\/span><span class=\"p\">]<\/span>  <span class=\"p\">[<\/span><span class=\"n\">format<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u5b9a\u4e49\u65e5\u5fd7\u7684\u683c\u5f0f\uff0c\u5b83\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u7528\u6765\u7ed9\u683c\u5f0f\u81ea\u5b9a\u4e49\u4e00\u4e2a\u540d\u5b57\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u5177\u4f53\u7684\u683c\u5f0f\uff0c\u53c2\u8003\u4e0a\u9762\u7684\u57fa\u672c\u914d\u7f6e\u3002<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">access_log<\/span>  <span class=\"p\">[<\/span><span class=\"n\">path<\/span><span class=\"p\">]<\/span>  <span class=\"p\">[<\/span><span class=\"n\">format_name<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u7528\u4e8e\u914d\u7f6e\u8bbf\u95ee\u65e5\u5fd7\uff0c\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u65e5\u5fd7\u6587\u4ef6\u7684\u8def\u5f84\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u6307\u5b9a\u65e5\u5fd7\u683c\u5f0f\uff08\u7531\u4e0a\u9762\u7684log_format\u6307\u4ee4\u5b9a\u4e49\uff0c\u9ed8\u8ba4\u4e3acombined\u683c\u5f0f\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">autoindex<\/span>  <span class=\"p\">[<\/span><span class=\"n\">on<\/span> <span class=\"o\">|<\/span> <span class=\"n\">off<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u7528\u4e8e\u5f00\u542f\u6216\u5173\u95ed\u76ee\u5f55\u5217\u8868\u8bbf\u95ee\uff0c\u9002\u5408\u4e0b\u8f7d\u670d\u52a1\u5668\uff0c\u9ed8\u8ba4off<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">sendfile<\/span>  <span class=\"p\">[<\/span><span class=\"n\">on<\/span> <span class=\"o\">|<\/span> <span class=\"n\">off<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u914d\u7f6e\u662f\u5426\u5f00\u542fsendfile\uff0c\u9ed8\u8ba4\u4e3aon<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">sendfile_max_chunk<\/span>  <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u914d\u7f6e\u6bcf\u4e2a\u8fdb\u7a0b\u6bcf\u6b21\u8c03\u7528sendfile()\u4f20\u8f93\u7684\u6570\u636e\u91cf\u4e0d\u80fd\u5927\u4e8e\u8bbe\u5b9a\u7684\u503c\uff0c\u9ed8\u8ba4\u4e3a0\uff0c\u5373\u4e0d\u8bbe\u4e0a\u9650<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">tcp_nopush<\/span>  <span class=\"p\">[<\/span><span class=\"n\">on<\/span> <span class=\"o\">|<\/span> <span class=\"n\">off<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u7528\u4e8e\u5b9a\u4e49\u53d1\u9001\u54cd\u5e94\u662f\u662f\u5426\u505a\u7f13\u5b58\uff0c\u542f\u7528\u540e\uff0c\u4f1a\u8c03\u7528tcp_cork\u65b9\u6cd5\uff0c\u6570\u636e\u5305\u4f1a\u7d2f\u8ba1\u5230\u4e00\u5b9a\u5927\u5c0f\u540e\u624d\u4f1a\u53d1\u9001\uff0c\u51cf\u5c0f\u5f00\u9500\uff0c\u53ea\u6709\u5728\u542f\u7528\u4e86sendfile\u540e\u624d\u4f1a\u751f\u6548<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">keepalive_timeout<\/span>  <span class=\"p\">[<\/span><span class=\"n\">time<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u8868\u793a\u8fde\u63a5\u8d85\u65f6\u65f6\u95f4\uff0c\u5355\u4f4d\u662f\u79d2\uff0c\u5982\u679c\u4e0a\u4f20\u6587\u4ef6\u6bd4\u8f83\u5927\uff0c\u89c4\u5b9a\u65f6\u95f4\u5185\u6ca1\u6709\u4e0a\u4f20\u5b8c\u6210\u5c31\u4f1a\u81ea\u52a8\u65ad\u5f00<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">tcp_nodelay<\/span>  <span class=\"p\">[<\/span><span class=\"n\">on<\/span> <span class=\"o\">|<\/span> <span class=\"n\">off<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u542f\u7528\u540e\u4f1a\u7981\u7528Nagle\u7b97\u6cd5\uff0c\u8868\u793a\u8981\u5c3d\u5feb\u53d1\u9001\u6570\u636e\uff0c\u53ea\u4f1a\u9488\u5bf9keep-alive\u7684\u8fde\u63a5\u624d\u4f1a\u542f\u7528<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_header_timeout<\/span>  <span class=\"p\">[<\/span><span class=\"n\">time<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u914d\u7f6e\u7b49\u5f85client\u53d1\u9001\u8bf7\u6c42\u5934\u7684\u8d85\u65f6\u65f6\u95f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_body_timeout<\/span>  <span class=\"p\">[<\/span><span class=\"n\">time<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u914d\u7f6e\u7b49\u5f85client\u53d1\u9001\u8bf7\u6c42\u4f53\u7684\u8d85\u65f6\u65f6\u95f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_max_body_size<\/span>  <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u9650\u5236\u4e86\u4e0a\u4f20\u6587\u4ef6\u7684\u5927\u5c0f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_header_buffer_size<\/span>  <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u6307\u5b9a\u5ba2\u6237\u7aef\u8bf7\u6c42\u5934\u7684buffer\u5927\u5c0f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_body_buffer_size<\/span>  <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u6307\u5b9a\u5ba2\u6237\u7aef\u8bf7\u6c42\u4f53\u7684buffer\u5927\u5c0f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip<\/span>  <span class=\"p\">[<\/span><span class=\"n\">on<\/span> <span class=\"o\">|<\/span> <span class=\"n\">off<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u914d\u7f6e\u662f\u5426\u5f00\u542fgzip\u538b\u7f29<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_min_length<\/span>  <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u8bbe\u7f6e\u6700\u5c0f\u538b\u7f29\u6587\u4ef6\u5927\u5c0f\uff0c\u5efa\u8bae\u8bbe\u7f6e\u5927\u4e8e1k<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_buffers<\/span>  <span class=\"p\">[<\/span><span class=\"n\">number<\/span><span class=\"p\">]<\/span>  <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u8bbe\u7f6e\u7528\u4e8e\u5904\u7406\u8bf7\u6c42\u538b\u7f29\u7684\u7f13\u51b2\u533a\u6570\u91cf\u548c\u5927\u5c0f\uff0c\u5efa\u8bae\u4f7f\u7528\u9ed8\u8ba4\u5c31\u597d<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_http_version<\/span>  <span class=\"p\">[<\/span><span class=\"n\">version<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u7528\u4e8e\u8bc6\u522bhttp\u7248\u672c\uff0c\u56e0\u4e3a\u65e9\u671f\u6d4f\u89c8\u5668\u4e0d\u652f\u6301gzip\uff0c\u4e3a\u4e86\u652f\u6301\u524d\u671f\u7248\u672c\u52a0\u5165\u6b64\u9009\u9879\uff0c\u9ed8\u8ba4\u4e3a1.1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_comp_level<\/span>  <span class=\"p\">[<\/span><span class=\"n\">number<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u7528\u4e8e\u8bbe\u7f6e\u538b\u7f29\u7ea7\u522b\uff0c\u7ea7\u522b\u8d8a\u4f4e\u538b\u7f29\u901f\u5ea6\u8d8a\u5feb\u6587\u4ef6\u538b\u7f29\u6bd4\u8d8a\u5c0f\uff0c\u53cd\u4e4b\u901f\u5ea6\u8d8a\u6162\u6587\u4ef6\u538b\u7f29\u6bd4\u8d8a\u5927\uff0c\u901a\u5e381\u5c31\u591f\u7528\uff0c\u8bbe\u7f6e\u592a\u5927\u4f1a\u5403\u6027\u80fd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_vary<\/span>  <span class=\"p\">[<\/span><span class=\"n\">on<\/span> <span class=\"o\">|<\/span> <span class=\"n\">off<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u589e\u52a0\u54cd\u5e94\u5934&#34;Vary: Accept-Encoding&#34;\uff0c\u544a\u8bc9\u63a5\u6536\u65b9\u53d1\u9001\u7684\u6570\u636e\u7ecf\u8fc7\u4e86\u538b\u7f29\u5904\u7406\uff0c\u5f00\u542f\u540e\u7684\u6548\u679c\u662f\u5728\u54cd\u5e94\u5934\u90e8\u6dfb\u52a0\u4e86Accept-Encoding:gzip\uff0c\u8fd9\u5bf9\u4e8e\u672c\u8eab\u4e0d\u652f\u6301gzip\u538b\u7f29\u7684\u5ba2\u6237\u7aef\u6d4f\u89c8\u5668\u6709\u7528<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_types<\/span>  <span class=\"p\">[<\/span><span class=\"n\">mime<\/span><span class=\"o\">-<\/span><span class=\"n\">type1<\/span><span class=\"p\">]<\/span>  <span class=\"p\">[<\/span><span class=\"n\">mime<\/span><span class=\"o\">-<\/span><span class=\"n\">type2<\/span><span class=\"p\">]<\/span> <span class=\"o\">...<\/span><span class=\"p\">;<\/span>  <span class=\"c1\"># \u6307\u5b9a\u5bf9\u9664\u4e86&#34;text\/html&#34;\u4e4b\u5916\u7684\u5176\u4ed6\u7c7b\u578b\u8fdb\u884cgzip\uff0c\u4f7f\u7528*\u53ef\u4ee5\u5339\u914d\u4efb\u4f55\u7c7b\u578b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_connect_timeout<\/span> <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u5b9a\u4e49\u7528\u4e8e\u4e0eFASCGI\u670d\u52a1\u5668\u5efa\u7acb\u8fde\u63a5\u7684\u8d85\u65f6\uff0c\u9ed8\u8ba460s<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_send_timeout<\/span> <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u8bbe\u7f6e\u7528\u4e8e\u5411FASTCGI\u670d\u52a1\u5668\u53d1\u9001\u8bf7\u6c42\u7684\u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba460s<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_read_timeout<\/span> <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u5b9a\u4e49\u7528\u4e8e\u4eceFASCGI\u670d\u52a1\u5668\u8bfb\u53d6\u54cd\u5e94\u7684\u8d85\u65f6\uff0c\u9ed8\u8ba460s<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_buffer_size<\/span> <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u8bbe\u7f6e\u7528\u4e8e\u8bfb\u53d6\u4eceFASCGI\u670d\u52a1\u5668\u63a5\u6536\u7684\u54cd\u5e94\u7684\u7b2c\u4e00\u90e8\u5206\u7684\u7f13\u51b2\u533a\u7684\u5927\u5c0f\uff0c\u9ed8\u8ba44k\u62168k<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_buffers<\/span> <span class=\"p\">[<\/span><span class=\"n\">number<\/span><span class=\"p\">]<\/span> <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u4e3a\u5355\u4e2a\u8fde\u63a5\u8bbe\u7f6e\u7528\u4e8e\u4eceFASCGI\u670d\u52a1\u5668\u8bfb\u53d6\u54cd\u5e94\u7684\u7f13\u51b2\u533a\u7684\u6570\u91cf\u548c\u5927\u5c0f\uff0c\u9ed8\u8ba44k\u62168k<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_busy_buffers_size<\/span> <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u8868\u793a\u5f53\u542f\u7528\u5bf9\u6765\u81eaFastCGI\u670d\u52a1\u5668\u7684\u54cd\u5e94\u7684\u7f13\u51b2\u65f6\uff0c\u9650\u5236\u53ef\u80fd\u5fd9\u4e8e\u5411\u5ba2\u6237\u7aef\u53d1\u9001\u54cd\u5e94\u800c\u54cd\u5e94\u5c1a\u672a\u5b8c\u5168\u8bfb\u53d6\u7684\u7f13\u51b2\u533a\u7684\u603b\u5927\u5c0f\uff0c\u9ed8\u8ba48k\u621616k<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_temp_file_write_size<\/span> <span class=\"p\">[<\/span><span class=\"n\">size<\/span><span class=\"p\">];<\/span>  <span class=\"c1\"># \u8868\u793a\u5728\u542f\u7528\u4eceFastCGI\u670d\u52a1\u5668\u5230\u4e34\u65f6\u6587\u4ef6\u7684\u54cd\u5e94\u7f13\u51b2\u65f6\uff0c\u9650\u5236\u4e00\u6b21\u5199\u5165\u4e34\u65f6\u6587\u4ef6\u7684\u6570\u636e\u7684\u5927\u5c0f\uff0c\u9ed8\u8ba48k\u621616k<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u90e8\u5206\u6307\u4ee4\u89e3\u91ca\uff1a<\/p>\n<blockquote>\n<ul>\n<li>\n<p><code>sendfile<\/code>\u7cfb\u7edf\u8c03\u7528\u53ef\u4ee5\u8ba9\u7f51\u7edc\u6570\u636e\u76f4\u63a5\u5728\u5185\u6838\u7a7a\u95f4\u4e4b\u95f4\u4f20\u8f93,\u4e0d\u9700\u8981\u590d\u5236\u5230\u7528\u6237\u7a7a\u95f4,\u53ef\u4ee5\u663e\u8457\u63d0\u9ad8\u4f20\u8f93\u6027\u80fd<\/p>\n<\/li>\n<li>\n<p><code>tcp_nopush<\/code>\u548c<code>tcp_nodelay<\/code>\u4e8c\u8005\u770b\u4f3c\u4e92\u65a5\u4f46\u53ef\u4ee5\u540c\u65f6\u542f\u7528\uff0c<code>tcp_nopush<\/code>\u53ef\u4ee5\u786e\u4fdd\u6570\u636e\u5305\u5728\u53d1\u9001\u524d\u5df2\u7ecf\u5145\u5206\u586b\u6ee1\uff0c\u5f53\u5b58\u5728\u6700\u540e\u4e00\u4e2a\u56e0\u4e3a\u6ca1\u6709\u586b\u6ee1\u800c\u6682\u505c\u53d1\u9001\u7684\u6570\u636e\u5305\u65f6\uff0c<code>tcp_nodelay<\/code>\u4f1a\u5f3a\u5236\u5957\u63a5\u5b57\u53d1\u9001\u6570\u636e\uff0c\u66f4\u4e3a\u8be6\u7ec6\u7684\u89e3\u91ca\u53ef\u4ee5\u53c2\u8003\u8fd9\u7bc7<a class=\"link\" href=\"https:\/\/www.cnblogs.com\/wajika\/p\/6573014.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u535a\u5ba2<\/a>\u7684\u5185\u5bb9<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>CGI\u548cFastCGI\uff1a<\/p>\n<blockquote>\n<p>CGI(Common Gateway Interface, \u516c\u5171\u7f51\u5173\u63a5\u53e3)\uff0c\u5b83\u662f\u4e00\u79cd\u5728Web\u670d\u52a1\u5668\u4e0a\u8fd0\u884c\u7a0b\u5e8f\u7684\u6807\u51c6\u65b9\u6cd5\uff0c\u6bd4\u5982\u9700\u8981\u5904\u7406<code>index.php<\/code>\u8fd9\u7c7b\u9700\u8981\u5728\u670d\u52a1\u5668\u8c03\u7528<code>php<\/code>\u89e3\u91ca\u5668\u6765\u8fd0\u884c\u7684\u7a0b\u5e8f\uff0c\u7528\u4e8e\u5904\u7406\u548c\u663e\u793a\u4e00\u4e9b\u52a8\u6001\u5185\u5bb9\u3002<\/p>\n<p>\u6bcf\u6b21Web\u670d\u52a1\u5668\u9047\u5230\u8fd9\u7c7b\u52a8\u6001\u7a0b\u5e8f\u90fd\u8981fork\u4e00\u4e2acgi\u8fdb\u7a0b\uff0c\u7ed3\u675f\u540e\u518dkill\u6389\uff0c\u8fd9\u6837\u6027\u80fd\u5c31\u6bd4\u8f83\u5dee\uff0c\u4e8e\u662f\u5c31\u6709\u4e86FastCGI\uff0c\u5b83\u6bcf\u6b21\u5904\u7406\u5b8c\u540e\u4e0d\u4f1a\u88abkill\uff0cFastCGI\u4f7f\u7528\u6301\u7eed\u7684\u8fdb\u7a0b\u6765\u5904\u7406\u4e00\u8fde\u4e32\u7684\u8bf7\u6c42\uff0c\u8fd9\u4e9b\u8fdb\u7a0b\u7531FastCGI\u8fdb\u7a0b\u7ba1\u7406\u5668\u7ba1\u7406\uff0c\u800c\u4e0d\u662fweb\u670d\u52a1\u5668\u3002<\/p><\/blockquote>\n<h4 id=\"http-server\u5757\">http-server\u5757\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">server {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    listen [port];  # \u4e3b\u8981\u8bbe\u7f6e\u76d1\u542c\u7aef\u53e3\uff0c\u4f46\u540e\u9762\u53ef\u4ee5\u8ddf\u5f88\u591a\u53c2\u6570\u6bd4\u5982ssl\uff0cdefault_server\uff0chttp2\u7b49\u7b49\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server_name [domain_name];  # \u8bbe\u7f6e\u865a\u62df\u4e3b\u673a\u540d\u6216IP\uff0c\u901a\u5e38\u662f\u57df\u540d\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    root [path];  # \u8bbe\u7f6e\u7f51\u7ad9\u7684\u6839\u8def\u5f84\uff0c\u4e5f\u53ef\u4ee5\u5728location\u5757\u4e2d\u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    index [file_name];  # \u8bbe\u7f6e\u9ed8\u8ba4\u7684\u7d22\u5f15\u6587\u4ef6\uff0c\u4e5f\u53ef\u4ee5\u5728location\u5757\u4e2d\u914d\u7f6e\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate [path];  # \u8868\u793a\u5f00\u542fssl\u65f6\u9700\u8981\u8bbe\u7f6e\u7684\u8bc1\u4e66\u8def\u5f84\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    ssl_certificate_key [path];  # \u8868\u793a\u5f00\u542fssl\u65f6\u9700\u8981\u8bbe\u7f6e\u7684ssl\u79c1\u94a5\u8def\u5f84\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"http-server-location\u5757\">http-server-location\u5757\n<\/h4><hr>\n<p>location\u7684\u4e24\u79cd\u8bed\u6cd5\uff1a<\/p>\n<blockquote>\n<ol>\n<li>\n<p><code>location [ = | ~ | ~* | ^~ ] \/URI { \u2026 }<\/code><\/p>\n<\/li>\n<li>\n<p><code>location @\/name\/ { \u2026 }<\/code><\/p>\n<\/li>\n<\/ol><\/blockquote>\n<p>location\u7684\u5339\u914d\u8bed\u6cd5\u89e3\u91ca\uff08\u4f18\u5148\u7ea7\u6309\u7167\u5e8f\u53f7\u964d\u4f4e\uff09\uff1a<\/p>\n<blockquote>\n<ol>\n<li>\n<p><code>location =<\/code>    # \u7cbe\u51c6\u5339\u914d\uff0c\u5339\u914d\u6210\u529f\u5219\u7acb\u5373\u5904\u7406\uff0c\u505c\u6b62\u641c\u7d22\u5176\u4ed6\u5339\u914d<\/p>\n<\/li>\n<li>\n<p><code>location ^~<\/code>   # \u524d\u7f00\u5339\u914d\uff0c\u7528\u4e8e\u6807\u51c6uri\u524d\uff0c\u4e00\u65e6\u5339\u914d\u7acb\u5373\u5904\u7406\uff0c\u4e0d\u518d\u8fdb\u884c\u6b63\u5219\u5339\u914d\uff0c\u4e00\u822c\u7528\u6765\u5339\u914d\u76ee\u5f55<\/p>\n<\/li>\n<li>\n<p><code>location ~<\/code>    # \u6b63\u5219\u5339\u914d\uff08\u533a\u5206\u5927\u5c0f\u5199\uff09\uff0c\u7528\u4e8e\u6b63\u5219uri\u524d<\/p>\n<\/li>\n<li>\n<p><code>location ~*<\/code>   # \u6b63\u5219\u5339\u914d\uff08\u4e0d\u533a\u5206\u5927\u5c0f\u5199\uff09\uff0c\u7528\u4e8e\u6b63\u5219uri\u524d<\/p>\n<\/li>\n<li>\n<p><code>location \/a<\/code>   # \u524d\u7f00\u5339\u914d\uff0c\u7528\u4e8e\u6807\u51c6uri\u524d\uff0c\u4f18\u5148\u7ea7\u8f83\u4f4e<\/p>\n<\/li>\n<li>\n<p><code>location \/<\/code>    # \u4efb\u4f55\u6ca1\u6709\u5339\u914d\u6210\u529f\u7684\uff0c\u90fd\u4f1a\u5339\u914d\u8fd9\u91cc\u5904\u7406<\/p>\n<\/li>\n<\/ol><\/blockquote>\n<p>location\u7684\u5339\u914d\u987a\u5e8f\uff1a<\/p>\n<ol>\n<li>\n<p>\u5148\u7cbe\u51c6\u5339\u914d <strong><code>=<\/code><\/strong> \uff0c\u7cbe\u51c6\u5339\u914d\u6210\u529f\u5219\u4f1a\u7acb\u5373\u505c\u6b62\u5176\u4ed6\u7c7b\u578b\u5339\u914d\uff1b<\/p>\n<\/li>\n<li>\n<p>\u6ca1\u6709\u7cbe\u51c6\u5339\u914d\u6210\u529f\u65f6\uff0c\u8fdb\u884c\u524d\u7f00\u5339\u914d\u3002\u5148\u67e5\u627e\u5e26\u6709\u00a0<strong><code>^~<\/code><\/strong>\u00a0\u7684\u524d\u7f00\u5339\u914d\uff0c\u5e26\u6709\u00a0<strong><code>^~<\/code><\/strong>\u00a0\u7684\u524d\u7f00\u5339\u914d\u6210\u529f\u5219\u7acb\u5373\u505c\u6b62\u5176\u4ed6\u7c7b\u578b\u5339\u914d\uff0c\u666e\u901a\u524d\u7f00\u5339\u914d\uff08\u4e0d\u5e26\u53c2\u6570\u00a0<strong><code>^~<\/code><\/strong>\u00a0\uff09\u6210\u529f\u5219\u4f1a\u6682\u5b58\uff0c\u7ee7\u7eed\u67e5\u627e\u6b63\u5219\u5339\u914d\uff1b<\/p>\n<\/li>\n<li>\n<p><strong><code>=<\/code><\/strong>\u00a0\u548c\u00a0<strong><code>^~<\/code><\/strong>\u00a0\u5747\u672a\u5339\u914d\u6210\u529f\u524d\u63d0\u4e0b\uff0c\u67e5\u627e\u6b63\u5219\u5339\u914d\u00a0<strong><code>~<\/code><\/strong>\u00a0\u548c\u00a0<strong><code>~*<\/code><\/strong>\u00a0\u3002\u5f53\u540c\u65f6\u6709\u591a\u4e2a\u6b63\u5219\u5339\u914d\u65f6\uff0c\u6309\u5176\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u51fa\u73b0\u7684\u5148\u540e\u987a\u5e8f\u4f18\u5148\u5339\u914d\uff0c\u547d\u4e2d\u5219\u7acb\u5373\u505c\u6b62\u5176\u4ed6\u7c7b\u578b\u5339\u914d\uff1b<\/p>\n<\/li>\n<li>\n<p>\u6240\u6709\u6b63\u5219\u5339\u914d\u5747\u672a\u6210\u529f\u65f6\uff0c\u8fd4\u56de\u6b65\u9aa4 2 \u4e2d\u6682\u5b58\u7684\u666e\u901a\u524d\u7f00\u5339\u914d\uff08\u4e0d\u5e26\u53c2\u6570\u00a0<strong><code>^~<\/code><\/strong>\u00a0\uff09\u7ed3\u679c<\/p>\n<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">location<\/span> <span class=\"o\">~<\/span> \\<span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">$<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">root<\/span> <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">www<\/span><span class=\"o\">\/<\/span><span class=\"n\">html<\/span><span class=\"p\">;<\/span>  <span class=\"c1\"># \u7edd\u5bf9\u8def\u5f84\uff0c\u8868\u793a\u7f51\u7ad9\u6839\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># root html;  # \u76f8\u5bf9\u8def\u5f84\uff0c\u76f8\u5bf9\u4e8e\u8be5\u914d\u7f6e\u6587\u4ef6\u7684\u6240\u5728\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># index index.html index.htm;  # \u7d22\u5f15\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"http-upstream\u5757\">http-upstream\u5757\n<\/h4><hr>\n<p>\u7528\u4e8e\u914d\u7f6e\u8d1f\u8f7d\u5747\u8861<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">upstream myapps {\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    # least_conn;  # \u8868\u793a\u4f7f\u7528least_conn\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\uff0c\u628a\u8bf7\u6c42\u5206\u914d\u5230\u8fde\u63a5\u6570\u6700\u5c11\u7684server\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    # ip_hash;  # \u8868\u793a\u4f7f\u7528ip hash\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\uff0c\u6839\u636e\u8bbf\u95ee\u5ba2\u6237\u7aef ip \u7684 hash \u503c\u5206\u914d\uff0c\u8fd9\u6837\u540c\u4e00\u5ba2\u6237\u7aef\u7684\u8bf7\u6c42\u90fd\u4f1a\u88ab\u5206\u914d\u5230\u540c\u4e00\u4e2aserver\u4e0a\uff0c\u5982\u679c\u7275\u626f\u5230session\u7684\u95ee\u9898\uff0c\u7528\u8fd9\u4e2a\u662f\u6700\u597d\u7684\u9009\u62e9\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    # \u9ed8\u8ba4\u4f7f\u7528round robin\u7b97\u6cd5\uff0c\u628a\u6bcf\u4e2a\u8bf7\u6c42\u9010\u4e00\u5206\u914d\u5230\u4e0d\u540c\u7684server\uff0c\u5982\u679c\u5206\u914d\u5230\u7684server\u4e0d\u53ef\u7528\uff0c\u5219\u5206\u914d\u5230\u4e0b\u4e00\u4e2a\uff0c\u76f4\u5230\u53ef\u7528\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server srv1.example.com;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server srv2.example.com;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    server srv3.example.com;\n<\/span><\/span><span class=\"line\"><span class=\"cl\">}\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Nextcloud \u79c1\u6709\u4e91\u642d\u5efa","link":"https:\/\/been.ee\/p\/0-0-0-9\/","pubDate":"Sat, 15 Jul 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-9\/","description":"<p><a class=\"link\" href=\"https:\/\/docs.nextcloud.com\/server\/latest\/admin_manual\/installation\/system_requirements.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\u7684\u63a8\u8350\u914d\u7f6e\u662f\u4f7f\u7528Ubuntu\/RHEL + MySQL\/MariaDB + Apache + PHP\uff0c\u4e5f\u662f\u4f18\u5148\u7684\u9009\u62e9\uff0c\u6211\u7b2c\u4e00\u6b21\u642d\u5efa\u7684\u65f6\u5019\u5c31\u662f\u7528\u7684\u8fd9\u4e00\u5957\u9009\u62e9\uff0c\u6700\u8fd1\u5728\u4e00\u53f0\u65b0\u673a\u4e0a\u642d\u5efa\u65f6\u53d1\u73b0\u5b98\u7f51\u63d0\u4f9b\u4e86Nginx\u914d\u7f6e\uff0c\u5c31\u7528LNMP\u642d\u5efa\u4e86\u4e00\u6b21\uff0c\u7d22\u6027\u5c31\u628a\u8fd9\u6b21\u548c\u4e4b\u524dLAMP\u7684\u642d\u5efa\u6b65\u9aa4\u90fd\u8bb0\u5f55\u4e0b\u6765<\/p>\n<p>\u53c2\u8003\u6587\u6863\uff1a<\/p>\n<blockquote>\n<ol>\n<li>\n<p><a class=\"link\" href=\"https:\/\/computingforgeeks.com\/how-to-install-and-configure-nextcloud-on-debian\/\"  target=\"_blank\" rel=\"noopener\"\n    >How To Install Nextcloud on Debian 11 \/ Debian 10 | ComputingForGeeks<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/docs.nextcloud.com\/server\/latest\/admin_manual\/installation\/nginx.html\"  target=\"_blank\" rel=\"noopener\"\n    >NGINX configuration \u2014 Nextcloud latest Administration Manual latest documentation<\/a><\/p>\n<\/li>\n<\/ol><\/blockquote>\n<h2 id=\"lamp\">LAMP\n<\/h2><hr>\n<p>\u4f7f\u7528\u914d\u7f6e\uff1aDebian11 + Apache2 + MariaDB + PHP8.2\/PHP8.2-FPM<\/p>\n<h3 id=\"\u5b89\u88c5\u5e76\u914d\u7f6emariadb\">\u5b89\u88c5\u5e76\u914d\u7f6eMariaDB\n<\/h3><hr>\n<p>\u76f4\u63a5\u4f7f\u7528apt\u5305\u7ba1\u7406\u5668\u5b89\u88c5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">root@megumin:~# apt update\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">root@megumin:~# apt -y install mariadb-server mariadb-client\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u6309\u5982\u4e0b\u914d\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">root@megumin:~# mysql_secure_installation \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB\n<\/span><\/span><span class=\"line\"><span class=\"cl\">      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">In order to log into MariaDB to secure it, we<span class=\"s1\">&#39;ll need the current\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">password for the root user.  If you&#39;<\/span>ve just installed MariaDB, and\n<\/span><\/span><span class=\"line\"><span class=\"cl\">you haven<span class=\"s1\">&#39;t set the root password yet, the password will be blank,\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">so you should just press enter here.\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Enter current password for root (enter for none): &lt;enter&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">OK, successfully used password, moving on...\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Setting the root password ensures that nobody can log into the MariaDB\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">root user without the proper authorisation.\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Set root password? [Y\/n] y\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">New password: \u8f93\u5165\u5bc6\u7801\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Re-enter new password: \u8f93\u5165\u5bc6\u7801\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Password updated successfully!\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Reloading privilege tables..\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> ... Success!\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">By default, a MariaDB installation has an anonymous user, allowing anyone\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">to log into MariaDB without having to have a user account created for\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">them.  This is intended only for testing, and to make the installation\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">go a bit smoother.  You should remove them before moving into a\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">production environment.\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Remove anonymous users? [Y\/n] y\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> ... Success!\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Normally, root should only be allowed to connect from &#39;<\/span>localhost<span class=\"s1\">&#39;.  This\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">ensures that someone cannot guess at the root password from the network.\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Disallow root login remotely? [Y\/n] y\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> ... Success!\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">By default, MariaDB comes with a database named &#39;<\/span>test<span class=\"s1\">&#39; that anyone can\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">access.  This is also intended only for testing, and should be removed\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">before moving into a production environment.\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Remove test database and access to it? [Y\/n] y\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> - Dropping test database...\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> ... Success!\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> - Removing privileges on test database...\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> ... Success!\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Reloading the privilege tables will ensure that all changes made so far\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">will take effect immediately.\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Reload privilege tables now? [Y\/n] y\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> ... Success!\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">Cleaning up...\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">All done!  If you&#39;<\/span>ve completed all of the above steps, your MariaDB\n<\/span><\/span><span class=\"line\"><span class=\"cl\">installation should now be secure.\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Thanks <span class=\"k\">for<\/span> using MariaDB!\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u521b\u5efanextcloud\u6570\u636e\u5e93\u548c\u7528\u6237\uff0c\u6ce8\u610f\u7b2c\u4e00\u6761\u8bbe\u7f6e\u4e3a\u81ea\u5df1\u7684\u5bc6\u7801<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">root@megumin:~# mysql -u root -p \n<\/span><\/span><span class=\"line\"><span class=\"cl\">MariaDB <span class=\"o\">[(<\/span>none<span class=\"o\">)]<\/span>&gt; CREATE USER <span class=\"s1\">&#39;nextcloud&#39;<\/span>@<span class=\"s1\">&#39;localhost&#39;<\/span> IDENTIFIED BY <span class=\"s1\">&#39;\u4f60\u7684\u5bc6\u7801&#39;<\/span><span class=\"p\">;<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\">Query OK, <span class=\"m\">0<\/span> rows affected <span class=\"o\">(<\/span>0.003 sec<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">MariaDB <span class=\"o\">[(<\/span>none<span class=\"o\">)]<\/span>&gt; CREATE DATABASE nextcloud<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Query OK, <span class=\"m\">1<\/span> row affected <span class=\"o\">(<\/span>0.001 sec<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">MariaDB <span class=\"o\">[(<\/span>none<span class=\"o\">)]<\/span>&gt; GRANT ALL PRIVILEGES ON nextcloud.* TO <span class=\"s1\">&#39;nextcloud&#39;<\/span>@<span class=\"s1\">&#39;localhost&#39;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Query OK, <span class=\"m\">0<\/span> rows affected <span class=\"o\">(<\/span>0.004 sec<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">MariaDB <span class=\"o\">[(<\/span>none<span class=\"o\">)]<\/span>&gt; FLUSH PRIVILEGES<span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Query OK, <span class=\"m\">0<\/span> rows affected <span class=\"o\">(<\/span>0.002 sec<span class=\"o\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">MariaDB <span class=\"o\">[(<\/span>none<span class=\"o\">)]<\/span>&gt; QUIT\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Bye\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u5b89\u88c5php82\u548capache\u670d\u52a1\u5668\">\u5b89\u88c5PHP8.2\u548cApache\u670d\u52a1\u5668\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">apt install lsb-release apt-transport-https ca-certificates software-properties-common \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">wget -O \/etc\/apt\/trusted.gpg.d\/php.gpg https:\/\/packages.sury.org\/php\/apt.gpg \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">sh -c <span class=\"s1\">&#39;echo &#34;deb https:\/\/packages.sury.org\/php\/ $(lsb_release -sc) main&#34; &gt; \/etc\/apt\/sources.list.d\/php.list&#39;<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">apt update \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">apt install php8.2\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">apt install vim php8.2-<span class=\"o\">{<\/span>bcmath,xml,fpm,mysql,zip,intl,ldap,gd,cli,bz2,curl,mbstring,pgsql,opcache,soap,cgi<span class=\"o\">}<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">apt install apache2 libapache2-mod-php8.2\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u4e0b\u8f7dnextcloud\">\u4e0b\u8f7dNextCloud\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">apt -y install wget curl unzip\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">wget https:\/\/download.nextcloud.com\/server\/releases\/latest.zip\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">unzip latest.zip\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rm -f latest.zip\n<\/span><\/span><\/code><\/pre><\/div><p>\u89e3\u538b\u5b89\u88c5\u5305\u5e76\u79fb\u5230apache\u7684\u7f51\u7ad9\u76ee\u5f55\u4e0b\uff0c\u8bbe\u7f6e\u7528\u6237\u548c\u7528\u6237\u7ec4\u4ee5\u53ca\u6743\u9650<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">mv nextcloud \/var\/www\/html\/\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">chown -R www-data:www-data \/var\/www\/html\/nextcloud\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">chmod -R <span class=\"m\">755<\/span> \/var\/www\/html\/nextcloud\n<\/span><\/span><\/code><\/pre><\/div><p>\u7981\u7528\u9ed8\u8ba4\u7684apache\u670d\u52a1\u914d\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">a2dissite 000-default.conf\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rm \/var\/www\/html\/index.html\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl restart apache2\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u7533\u8bf7ssl\u8bc1\u4e66\u5e76\u914d\u7f6eapache\u670d\u52a1\u5668\">\u7533\u8bf7SSL\u8bc1\u4e66\u5e76\u914d\u7f6eApache\u670d\u52a1\u5668\n<\/h3><hr>\n<p>\u8fd9\u91cc\u7533\u8bf7Lets Encrypt\u5b98\u65b9\u63a8\u8350\u7684certbot\u7533\u8bf7\u514d\u8d39\u7684\u8bc1\u4e66\uff0c\u5bf9\u4e86\uff0c\u5728\u6b64\u4e4b\u524d\u8981\u5148\u51c6\u5907\u4e00\u4e2a\u57df\u540d<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">apt -y install certbot\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl stop apache2 <span class=\"c1\"># \u4f7f\u7528certbot\u7684standalone\u65b9\u6cd5\u7533\u8bf7\u8bc1\u4e66\u9700\u8981\u4f7f\u752880\u7aef\u53e3\uff0c\u6240\u4ee5\u8981\u5148\u505c\u6389<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">certbot certonly --standalone --agree-tos -d xxx.xxx.xxx --server https:\/\/api.buypass.com\/acme\/directory\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl restart apache2\n<\/span><\/span><\/code><\/pre><\/div><p>\u5f97\u5230\u7684\u8bc1\u4e66\u548c\u79c1\u94a5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">\/etc\/letsencrypt\/live\/xxx.xxx.xxx\/fullchain.pem\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\/etc\/letsencrypt\/live\/xxx.xxx.xxx\/privkey.pem\n<\/span><\/span><\/code><\/pre><\/div><p>\u521b\u5efa\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6<code>\/etc\/apache2\/sites-available\/nextcloud.conf<\/code>\uff0c\u5e76\u52a0\u5165\u4ee5\u4e0b\u5185\u5bb9\uff0c\u6ce8\u610f\u8981\u628a\u57df\u540d\uff0c\u8bc1\u4e66\u548c\u79c1\u94a5\u6587\u4ef6\u6539\u4e3a\u81ea\u5df1\u7684<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">&lt;<\/span><span class=\"n\">VirtualHost<\/span> <span class=\"o\">*<\/span><span class=\"p\">:<\/span><span class=\"mi\">80<\/span><span class=\"o\">&gt;<\/span>    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">ServerName<\/span> <span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">RewriteEngine<\/span> <span class=\"n\">On<\/span>    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">RewriteCond<\/span> <span class=\"o\">%<\/span><span class=\"p\">{<\/span><span class=\"n\">HTTPS<\/span><span class=\"p\">}<\/span> <span class=\"o\">!=<\/span><span class=\"n\">on<\/span>    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">RewriteRule<\/span> <span class=\"o\">^\/<\/span><span class=\"err\">?<\/span><span class=\"p\">(<\/span><span class=\"o\">.*<\/span><span class=\"p\">)<\/span> <span class=\"n\">https<\/span><span class=\"p\">:<\/span><span class=\"o\">\/\/%<\/span><span class=\"p\">{<\/span><span class=\"n\">SERVER_NAME<\/span><span class=\"p\">}<\/span><span class=\"o\">\/$<\/span><span class=\"mi\">1<\/span> <span class=\"p\">[<\/span><span class=\"n\">R<\/span><span class=\"o\">=<\/span><span class=\"mi\">301<\/span><span class=\"p\">,<\/span><span class=\"n\">L<\/span><span class=\"p\">]<\/span>    \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">&lt;\/<\/span><span class=\"n\">virtualhost<\/span><span class=\"o\">&gt;<\/span>    \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">&lt;<\/span><span class=\"n\">VirtualHost<\/span> <span class=\"o\">*<\/span><span class=\"p\">:<\/span><span class=\"mi\">443<\/span><span class=\"o\">&gt;<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">ServerAdmin<\/span> <span class=\"n\">xxx<\/span><span class=\"err\">@<\/span><span class=\"n\">gmail<\/span><span class=\"o\">.<\/span><span class=\"n\">com<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">DocumentRoot<\/span> <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">www<\/span><span class=\"o\">\/<\/span><span class=\"n\">html<\/span><span class=\"o\">\/<\/span><span class=\"n\">nextcloud<\/span><span class=\"o\">\/<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">ServerName<\/span> <span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"o\">&lt;<\/span><span class=\"n\">IfModule<\/span> <span class=\"n\">mod_headers<\/span><span class=\"o\">.<\/span><span class=\"n\">c<\/span><span class=\"o\">&gt;<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">          <span class=\"n\">Header<\/span> <span class=\"n\">always<\/span> <span class=\"n\">set<\/span> <span class=\"n\">Strict<\/span><span class=\"o\">-<\/span><span class=\"n\">Transport<\/span><span class=\"o\">-<\/span><span class=\"n\">Security<\/span> <span class=\"s2\">&#34;max-age=15552000; includeSubDomains&#34;<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"o\">&lt;\/<\/span><span class=\"n\">IfModule<\/span><span class=\"o\">&gt;<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"o\">&lt;<\/span><span class=\"ne\">Directory<\/span> <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">www<\/span><span class=\"o\">\/<\/span><span class=\"n\">html<\/span><span class=\"o\">\/<\/span><span class=\"n\">nextcloud<\/span><span class=\"o\">\/&gt;<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"n\">Options<\/span> <span class=\"n\">Indexes<\/span> <span class=\"n\">FollowSymLinks<\/span> <span class=\"n\">MultiViews<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">      <span class=\"n\">AllowOverride<\/span> <span class=\"n\">All<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">          <span class=\"n\">Require<\/span> <span class=\"n\">all<\/span> <span class=\"n\">granted<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"n\">SetEnv<\/span> <span class=\"n\">HOME<\/span> <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">www<\/span><span class=\"o\">\/<\/span><span class=\"n\">html<\/span><span class=\"o\">\/<\/span><span class=\"n\">nextcloud<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"n\">SetEnv<\/span> <span class=\"n\">HTTP_HOME<\/span> <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">www<\/span><span class=\"o\">\/<\/span><span class=\"n\">html<\/span><span class=\"o\">\/<\/span><span class=\"n\">nextcloud<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"o\">&lt;\/<\/span><span class=\"ne\">Directory<\/span><span class=\"o\">&gt;<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">ErrorLog<\/span> <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"nb\">log<\/span><span class=\"o\">\/<\/span><span class=\"n\">apache2<\/span><span class=\"o\">\/<\/span><span class=\"n\">nextcloud<\/span><span class=\"o\">-<\/span><span class=\"n\">error<\/span><span class=\"o\">.<\/span><span class=\"n\">log<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">CustomLog<\/span> <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"nb\">log<\/span><span class=\"o\">\/<\/span><span class=\"n\">apache2<\/span><span class=\"o\">\/<\/span><span class=\"n\">nextcloud<\/span><span class=\"o\">-<\/span><span class=\"n\">access<\/span><span class=\"o\">.<\/span><span class=\"n\">log<\/span> <span class=\"n\">combined<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">SSLEngine<\/span> <span class=\"n\">on<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">SSLCertificateFile<\/span> <span class=\"o\">\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">letsencrypt<\/span><span class=\"o\">\/<\/span><span class=\"n\">live<\/span><span class=\"o\">\/<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">\/<\/span><span class=\"n\">fullchain<\/span><span class=\"o\">.<\/span><span class=\"n\">pem<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">SSLCertificateKeyFile<\/span> <span class=\"o\">\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">letsencrypt<\/span><span class=\"o\">\/<\/span><span class=\"n\">live<\/span><span class=\"o\">\/<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">\/<\/span><span class=\"n\">privkey<\/span><span class=\"o\">.<\/span><span class=\"n\">pem<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">&lt;\/<\/span><span class=\"n\">VirtualHost<\/span><span class=\"o\">&gt;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u5f00\u542f\u9700\u8981\u7684apache\u6a21\u5757\uff0c\u5e76\u4f7fnextcloud.conf\u914d\u7f6e\u6587\u4ef6\u751f\u6548<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">a2enmod rewrite\n<\/span><\/span><span class=\"line\"><span class=\"cl\">a2enmod ssl\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">a2enmod headers\n<\/span><\/span><span class=\"line\"><span class=\"cl\">a2enmod env\n<\/span><\/span><span class=\"line\"><span class=\"cl\">a2enmod dir\n<\/span><\/span><span class=\"line\"><span class=\"cl\">a2enmod mime\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">a2ensite nextcloud.conf\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl reload apache2\n<\/span><\/span><\/code><\/pre><\/div><p>\u9a8c\u8bc1\u914d\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">$ apachectl -t\n<\/span><\/span><span class=\"line\"><span class=\"cl\">Syntax OK\n<\/span><\/span><\/code><\/pre><\/div><p>\u91cd\u542f\u670d\u52a1<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">systemctl restart apache2\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u7f16\u8f91<code>\/var\/www\/html\/nextcloud\/config\/config.php<\/code>\u6587\u4ef6\uff0c\u5c06\u57df\u540d\u52a0\u5165\u5230\u53d7\u4fe1\u4efb\u7684\u57df\u540d\u4e2d\uff0c\u624d\u80fd\u4f7f\u7528\u57df\u540d\u8bbf\u95ee<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\">  <span class=\"s1\">&#39;trusted_domains&#39;<\/span> <span class=\"o\">=&gt;<\/span>   \n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"k\">array<\/span> <span class=\"p\">(<\/span>  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"mi\">0<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">&#39;xxx.xxx.xxx&#39;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"p\">),<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u8fdb\u5165\u7f51\u7ad9httpsxxxxxxxxx\u5f00\u59cb\u5b89\u88c5nextcloud\">\u8fdb\u5165\u7f51\u7ad9https:\/\/xxx.xxx.xxx\u5f00\u59cb\u5b89\u88c5Nextcloud\n<\/h3><hr>\n<ul>\n<li>\n<p>\u8fdb\u5165\u7f51\u7ad9\u9875\u9762\u540e\u521b\u5efa\u7ba1\u7406\u5458\u7528\u6237\u548c\u5bc6\u7801\uff1a<\/p>\n<\/li>\n<li>\n<p>\u6570\u636e\u76ee\u5f55\u9ed8\u8ba4\u4e0d\u52a8<\/p>\n<\/li>\n<li>\n<p>\u518d\u5f80\u4e0b\u914d\u7f6e\u6570\u636e\u5e93\uff0c\u4e5f\u5c31\u662f\u4e4b\u524d\u7528Mariadb\u521b\u5efa\u7684\uff0c\u5bc6\u7801\u5c31\u662f\u81ea\u5df1\u524d\u9762\u8bbe\u7684<\/p>\n<p>\u6570\u636e\u5e93\u7528\u6237\uff1anextcloud<\/p>\n<p>\u6570\u636e\u5e93\u5bc6\u7801\uff1a\u524d\u9762\u8bbe\u7684<\/p>\n<p>\u6570\u636e\u5e93\u540d\uff1anextcloud<\/p>\n<p>\u6570\u636e\u5e93\u4e3b\u673a\uff1alocalhost<\/p>\n<\/li>\n<li>\n<p>\u7136\u540e\u70b9\u51fb\u5b89\u88c5\u5373\u53ef\uff0c\u7b49\u5f85\u5b89\u88c5\u5b8c\u6210\u5373\u53ef<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"\u914d\u7f6ephp-fpm\">\u914d\u7f6ePHP-FPM\n<\/h3><hr>\n<p>\u5176\u5b9e\u8fd9\u4e00\u6b65\u5e76\u4e0d\u662f\u5fc5\u9700\u7684\uff0c\u6839\u636e\u5b98\u7f51\u4ecb\u7ecdNextcloud\u4f7f\u7528Apache + PHP\u5c31\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\uff0c\u4f46\u6211\u540e\u6765\u914d\u4e86\u4e00\u4e0bPHP-FPM\u611f\u89c9\u901f\u5ea6\u597d\u50cf\u6709\u4e00\u70b9\u4f18\u5316<\/p>\n<p>\u9996\u5148\u4fee\u6539<code>\/etc\/php\/8.2\/fpm\/pool.d\/www.conf<\/code>\u4e2dFPM\u7684\u76d1\u542c\u7aef\u53e3<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">listen = 127.0.0.1:9000\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u9700\u8981\u5728Apache\u7684\u914d\u7f6e\u6587\u4ef6<code>\/etc\/apache2\/sites-available\/nextcloud.conf<\/code>\u4e2d\u52a0\u5165\u8c03\u7528PHP-FPM\u7684\u914d\u7f6e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">ProxyRequests<\/span> <span class=\"n\">Off<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ProxyPassMatch<\/span> <span class=\"o\">^\/<\/span><span class=\"p\">(<\/span><span class=\"o\">.*<\/span>\\<span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"p\">)<\/span><span class=\"o\">$<\/span> <span class=\"n\">fcgi<\/span><span class=\"p\">:<\/span><span class=\"o\">\/\/<\/span><span class=\"mf\">127.0<\/span><span class=\"o\">.<\/span><span class=\"mf\">0.1<\/span><span class=\"p\">:<\/span><span class=\"mi\">9000<\/span><span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">www<\/span><span class=\"o\">\/<\/span><span class=\"n\">html<\/span><span class=\"o\">\/<\/span><span class=\"n\">nextcloud<\/span><span class=\"o\">\/$<\/span><span class=\"mi\">1<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u542f\u52a8PHP-FPM\u548cApache<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">a2enconf php8.2-fpm \n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">a2enmod proxy_fcgi setenvif\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> \n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl restart php8.2-fpm.service\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">systemctl reload apache2\n<\/span><\/span><\/code><\/pre><\/div><p>\u5230\u6b64\u4e3a\u6b62\u5c31\u5b89\u88c5\u90e8\u5206\u5c31\u7ed3\u675f\u4e86\uff0c\u5269\u4e0b\u7684\u5c31\u662f\u9700\u8981\u8fdb\u884c\u6027\u80fd\u4f18\u5316\uff0cNextcloud\u7684\u6027\u80fd\u4f18\u5316\u975e\u5e38\u91cd\u8981\uff0c\u5173\u4e8e\u4f18\u5316\u6211\u5c31\u653e\u5728\u6700\u540e\u4e00\u90e8\u5206\u4ecb\u7ecd\u5b8cLNMP\u7684\u914d\u7f6e\u518d\u8bf4<\/p>\n<h2 id=\"lnmp\">LNMP\n<\/h2><hr>\n<p>\u4f7f\u7528\u914d\u7f6e\uff1aDebian11 + Nginx + MariaDB + PHP8.2-FPM<\/p>\n<p>\u6709\u5173PHP\uff0cMariaDB\u548cNextcloud\u7684\u4e0b\u8f7d\u5b89\u88c5\u548cLAMP\u76f8\u540c\uff0c\u5c31\u4e0d\u518d\u8d58\u8ff0\uff0cNginx\u7684\u5b89\u88c5\u4e5f\u4e0d\u591a\u4ecb\u7ecd\uff0c\u4e0b\u9762\u5c31\u4e3b\u8981\u4ecb\u7ecdNginx\u7684\u914d\u7f6e<\/p>\n<p>Nginx\u9700\u8981\u7528\u5230PHP-FPM\uff0c\u6240\u4ee5\u9700\u8981\u5148\u6309\u7167LAMP\u4e2d\u7684\u914d\u7f6e\u76d1\u542c\u7aef\u53e3<\/p>\n<h3 id=\"nginx\u914d\u7f6e\">Nginx\u914d\u7f6e\n<\/h3><hr>\n<p>Nginx\u4e3b\u914d\u7f6e\u6587\u4ef6<code>\/etc\/nginx\/nginx.conf<\/code>\uff0c\u8fd9\u91cc\u662f\u6211\u81ea\u5df1\u7684\u914d\u7f6e\uff0c\u4e0d\u9700\u8981\u5b8c\u5168\u4e00\u6837<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">user<\/span>  <span class=\"n\">www<\/span><span class=\"o\">-<\/span><span class=\"n\">data<\/span> <span class=\"n\">www<\/span><span class=\"o\">-<\/span><span class=\"n\">data<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">worker_processes<\/span>  <span class=\"n\">auto<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">error_log<\/span>  <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"nb\">log<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">error<\/span><span class=\"o\">.<\/span><span class=\"n\">log<\/span> <span class=\"n\">notice<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">pid<\/span>        <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">run<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">.<\/span><span class=\"n\">pid<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">worker_rlimit_nofile<\/span>  <span class=\"mi\">65535<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">events<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">accept_mutex<\/span>  <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">multi_accept<\/span>  <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">use<\/span>  <span class=\"n\">epoll<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    \n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">worker_connections<\/span>  <span class=\"mi\">65535<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">http<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">include<\/span>       <span class=\"o\">\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">mime<\/span><span class=\"o\">.<\/span><span class=\"n\">types<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">default_type<\/span>  <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">octet<\/span><span class=\"o\">-<\/span><span class=\"n\">stream<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">log_format<\/span>  <span class=\"n\">main<\/span>  <span class=\"s1\">&#39;$remote_addr\u2013$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for&#39;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">access_log<\/span>  <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"nb\">log<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">access<\/span><span class=\"o\">.<\/span><span class=\"n\">log<\/span>  <span class=\"n\">main<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#autoindex  off;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">sendfile<\/span>        <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">sendfile_max_chunk<\/span> <span class=\"mi\">128<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">keepalive_timeout<\/span>  <span class=\"mi\">120<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">tcp_nopush<\/span>     <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">tcp_nodelay<\/span>    <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_header_timeout<\/span>  <span class=\"mi\">120<\/span><span class=\"n\">s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_body_timeout<\/span>  <span class=\"mi\">120<\/span><span class=\"n\">s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_max_body_size<\/span>  <span class=\"mi\">1000<\/span><span class=\"n\">m<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_header_buffer_size<\/span>  <span class=\"mi\">32<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_body_buffer_size<\/span>  <span class=\"mi\">256<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip<\/span>  <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_min_length<\/span>  <span class=\"mi\">1<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_buffers<\/span>  <span class=\"mi\">4<\/span>  <span class=\"mi\">16<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_http_version<\/span>  <span class=\"mf\">1.1<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_comp_level<\/span>  <span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_vary<\/span>  <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_types<\/span>  <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">plain<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">x<\/span><span class=\"o\">-<\/span><span class=\"n\">javascript<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">css<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">javascript<\/span> <span class=\"n\">image<\/span><span class=\"o\">\/<\/span><span class=\"n\">jpeg<\/span> <span class=\"n\">image<\/span><span class=\"o\">\/<\/span><span class=\"n\">gif<\/span> <span class=\"n\">image<\/span><span class=\"o\">\/<\/span><span class=\"n\">png<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_connect_timeout<\/span> <span class=\"mi\">300<\/span><span class=\"n\">s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_send_timeout<\/span> <span class=\"mi\">300<\/span><span class=\"n\">s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_read_timeout<\/span> <span class=\"mi\">300<\/span><span class=\"n\">s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_buffer_size<\/span> <span class=\"mi\">64<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_buffers<\/span> <span class=\"mi\">4<\/span> <span class=\"mi\">64<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_busy_buffers_size<\/span> <span class=\"mi\">128<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_temp_file_write_size<\/span> <span class=\"mi\">128<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">include<\/span> <span class=\"o\">\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">nginx<\/span><span class=\"o\">\/<\/span><span class=\"n\">conf<\/span><span class=\"o\">.<\/span><span class=\"n\">d<\/span><span class=\"o\">\/*.<\/span><span class=\"n\">conf<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u6dfb\u52a0\u865a\u62df\u4e3b\u673a\u914d\u7f6e\uff0c\u5728<code>\/etc\/nginx\/conf.d\/<\/code>\u4e2d\u65b0\u5efa\u4e00\u4e2a<code>nextcloud.conf<\/code>\uff0c\u5e76\u914d\u7f6e\u865a\u62df\u4e3b\u673a\uff0c\u4e0b\u9762\u7684\u57df\u540d\u548cssl\u8bc1\u4e66\u8981\u6539\u4e3a\u81ea\u5df1\u7684<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">upstream<\/span> <span class=\"n\">php<\/span><span class=\"o\">-<\/span><span class=\"n\">handler<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">server<\/span> <span class=\"mf\">127.0<\/span><span class=\"o\">.<\/span><span class=\"mf\">0.1<\/span><span class=\"p\">:<\/span><span class=\"mi\">9000<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#server unix:\/var\/run\/php\/php7.4-fpm.sock;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Set the `immutable` cache control options only for assets with a cache busting `v` argument<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">map<\/span> <span class=\"o\">$<\/span><span class=\"n\">arg_v<\/span> <span class=\"o\">$<\/span><span class=\"n\">asset_immutable<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s2\">&#34;&#34;<\/span> <span class=\"s2\">&#34;&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">default<\/span> <span class=\"s2\">&#34;immutable&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">server<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">listen<\/span> <span class=\"mi\">80<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">listen<\/span> <span class=\"p\">[::]:<\/span><span class=\"mi\">80<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">server_name<\/span> <span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"p\">;<\/span> <span class=\"c1\"># \u6539\u4e3a\u81ea\u5df1\u7684\u57df\u540d<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Prevent nginx HTTP Server Detection<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">server_tokens<\/span> <span class=\"n\">off<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Enforce HTTPS<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"k\">return<\/span> <span class=\"mi\">301<\/span> <span class=\"n\">https<\/span><span class=\"p\">:<\/span><span class=\"o\">\/\/$<\/span><span class=\"n\">server_name<\/span><span class=\"o\">$<\/span><span class=\"n\">request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">server<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">listen<\/span> <span class=\"mi\">443<\/span>      <span class=\"n\">ssl<\/span> <span class=\"n\">http2<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">listen<\/span> <span class=\"p\">[::]:<\/span><span class=\"mi\">443<\/span> <span class=\"n\">ssl<\/span> <span class=\"n\">http2<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">server_name<\/span> <span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"p\">;<\/span> <span class=\"c1\"># \u6539\u4e3a\u81ea\u5df1\u7684\u57df\u540d<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Path to the root of your installation<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">root<\/span> <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">www<\/span><span class=\"o\">\/<\/span><span class=\"n\">html<\/span><span class=\"o\">\/<\/span><span class=\"n\">nextcloud<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Use Mozilla&#39;s guidelines for SSL\/TLS settings<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># https:\/\/mozilla.github.io\/server-side-tls\/ssl-config-generator\/<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">ssl_certificate<\/span>     <span class=\"o\">\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">letsencrypt<\/span><span class=\"o\">\/<\/span><span class=\"n\">live<\/span><span class=\"o\">\/<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">\/<\/span><span class=\"n\">fullchain<\/span><span class=\"o\">.<\/span><span class=\"n\">pem<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">ssl_certificate_key<\/span> <span class=\"o\">\/<\/span><span class=\"n\">etc<\/span><span class=\"o\">\/<\/span><span class=\"n\">letsencrypt<\/span><span class=\"o\">\/<\/span><span class=\"n\">live<\/span><span class=\"o\">\/<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">.<\/span><span class=\"n\">xxx<\/span><span class=\"o\">\/<\/span><span class=\"n\">privkey<\/span><span class=\"o\">.<\/span><span class=\"n\">pem<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Prevent nginx HTTP Server Detection<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">server_tokens<\/span> <span class=\"n\">off<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># HSTS settings<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># WARNING: Only add the preload option once you read about<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># the consequences in https:\/\/hstspreload.org\/. This option<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># will add the domain to a hardcoded list that is shipped<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># in all major browsers and getting removed from this list<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># could take several months.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#add_header Strict-Transport-Security &#34;max-age=15768000; includeSubDomains; preload&#34; always;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># set max upload size and increase upload timeout:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_max_body_size<\/span> <span class=\"mi\">20480<\/span><span class=\"n\">m<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_body_timeout<\/span> <span class=\"mi\">300<\/span><span class=\"n\">s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_buffers<\/span> <span class=\"mi\">64<\/span> <span class=\"mi\">4<\/span><span class=\"n\">K<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Enable gzip but do not remove ETag headers<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_vary<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_comp_level<\/span> <span class=\"mi\">4<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_min_length<\/span> <span class=\"mi\">256<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_proxied<\/span> <span class=\"n\">expired<\/span> <span class=\"n\">no<\/span><span class=\"o\">-<\/span><span class=\"n\">cache<\/span> <span class=\"n\">no<\/span><span class=\"o\">-<\/span><span class=\"n\">store<\/span> <span class=\"n\">private<\/span> <span class=\"n\">no_last_modified<\/span> <span class=\"n\">no_etag<\/span> <span class=\"n\">auth<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">gzip_types<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">atom<\/span><span class=\"o\">+<\/span><span class=\"n\">xml<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">javascript<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">javascript<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">json<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">ld<\/span><span class=\"o\">+<\/span><span class=\"n\">json<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">manifest<\/span><span class=\"o\">+<\/span><span class=\"n\">json<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">rss<\/span><span class=\"o\">+<\/span><span class=\"n\">xml<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">vnd<\/span><span class=\"o\">.<\/span><span class=\"n\">geo<\/span><span class=\"o\">+<\/span><span class=\"n\">json<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">vnd<\/span><span class=\"o\">.<\/span><span class=\"n\">ms<\/span><span class=\"o\">-<\/span><span class=\"n\">fontobject<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">wasm<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">x<\/span><span class=\"o\">-<\/span><span class=\"n\">font<\/span><span class=\"o\">-<\/span><span class=\"n\">ttf<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">x<\/span><span class=\"o\">-<\/span><span class=\"n\">web<\/span><span class=\"o\">-<\/span><span class=\"n\">app<\/span><span class=\"o\">-<\/span><span class=\"n\">manifest<\/span><span class=\"o\">+<\/span><span class=\"n\">json<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">xhtml<\/span><span class=\"o\">+<\/span><span class=\"n\">xml<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">xml<\/span> <span class=\"n\">font<\/span><span class=\"o\">\/<\/span><span class=\"n\">opentype<\/span> <span class=\"n\">image<\/span><span class=\"o\">\/<\/span><span class=\"n\">bmp<\/span> <span class=\"n\">image<\/span><span class=\"o\">\/<\/span><span class=\"n\">svg<\/span><span class=\"o\">+<\/span><span class=\"n\">xml<\/span> <span class=\"n\">image<\/span><span class=\"o\">\/<\/span><span class=\"n\">x<\/span><span class=\"o\">-<\/span><span class=\"n\">icon<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">cache<\/span><span class=\"o\">-<\/span><span class=\"n\">manifest<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">css<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">plain<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">vcard<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">vnd<\/span><span class=\"o\">.<\/span><span class=\"n\">rim<\/span><span class=\"o\">.<\/span><span class=\"n\">location<\/span><span class=\"o\">.<\/span><span class=\"n\">xloc<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">vtt<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">x<\/span><span class=\"o\">-<\/span><span class=\"n\">component<\/span> <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">x<\/span><span class=\"o\">-<\/span><span class=\"n\">cross<\/span><span class=\"o\">-<\/span><span class=\"n\">domain<\/span><span class=\"o\">-<\/span><span class=\"n\">policy<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Pagespeed is not supported by Nextcloud, so if your server is built<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># with the `ngx_pagespeed` module, uncomment this line to disable it.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\">#pagespeed off;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># The settings allows you to optimize the HTTP2 bandwitdth.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># See https:\/\/blog.cloudflare.com\/delivering-http-2-upload-speed-improvements\/<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># for tunning hints<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">client_body_buffer_size<\/span> <span class=\"mi\">512<\/span><span class=\"n\">k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># HTTP response headers borrowed from Nextcloud `.htaccess`<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">add_header<\/span> <span class=\"n\">Referrer<\/span><span class=\"o\">-<\/span><span class=\"n\">Policy<\/span>                   <span class=\"s2\">&#34;no-referrer&#34;<\/span>       <span class=\"n\">always<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">add_header<\/span> <span class=\"n\">X<\/span><span class=\"o\">-<\/span><span class=\"n\">Content<\/span><span class=\"o\">-<\/span><span class=\"n\">Type<\/span><span class=\"o\">-<\/span><span class=\"n\">Options<\/span>            <span class=\"s2\">&#34;nosniff&#34;<\/span>           <span class=\"n\">always<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">add_header<\/span> <span class=\"n\">X<\/span><span class=\"o\">-<\/span><span class=\"n\">Download<\/span><span class=\"o\">-<\/span><span class=\"n\">Options<\/span>                <span class=\"s2\">&#34;noopen&#34;<\/span>            <span class=\"n\">always<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">add_header<\/span> <span class=\"n\">X<\/span><span class=\"o\">-<\/span><span class=\"n\">Frame<\/span><span class=\"o\">-<\/span><span class=\"n\">Options<\/span>                   <span class=\"s2\">&#34;SAMEORIGIN&#34;<\/span>        <span class=\"n\">always<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">add_header<\/span> <span class=\"n\">X<\/span><span class=\"o\">-<\/span><span class=\"n\">Permitted<\/span><span class=\"o\">-<\/span><span class=\"n\">Cross<\/span><span class=\"o\">-<\/span><span class=\"n\">Domain<\/span><span class=\"o\">-<\/span><span class=\"n\">Policies<\/span> <span class=\"s2\">&#34;none&#34;<\/span>              <span class=\"n\">always<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">add_header<\/span> <span class=\"n\">X<\/span><span class=\"o\">-<\/span><span class=\"n\">Robots<\/span><span class=\"o\">-<\/span><span class=\"n\">Tag<\/span>                      <span class=\"s2\">&#34;noindex, nofollow&#34;<\/span> <span class=\"n\">always<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">add_header<\/span> <span class=\"n\">X<\/span><span class=\"o\">-<\/span><span class=\"n\">XSS<\/span><span class=\"o\">-<\/span><span class=\"n\">Protection<\/span>                  <span class=\"s2\">&#34;1; mode=block&#34;<\/span>     <span class=\"n\">always<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">add_header<\/span> <span class=\"n\">Strict<\/span><span class=\"o\">-<\/span><span class=\"n\">Transport<\/span><span class=\"o\">-<\/span><span class=\"n\">Security<\/span>         <span class=\"s2\">&#34;max-age=15552000; includeSubDomains&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Remove X-Powered-By, which is an information leak<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">fastcgi_hide_header<\/span> <span class=\"n\">X<\/span><span class=\"o\">-<\/span><span class=\"n\">Powered<\/span><span class=\"o\">-<\/span><span class=\"n\">By<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Add .mjs as a file extension for javascript<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Either include it in the default mime.types list<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># or include you can include that list explicitly and add the file extension<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># only for Nextcloud like below:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">include<\/span> <span class=\"n\">mime<\/span><span class=\"o\">.<\/span><span class=\"n\">types<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">types<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">text<\/span><span class=\"o\">\/<\/span><span class=\"n\">javascript<\/span> <span class=\"n\">js<\/span> <span class=\"n\">mjs<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Specify how to handle directories -- specifying `\/index.php$request_uri`<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># here as the fallback means that Nginx always exhibits the desired behaviour<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># when a client requests a path that corresponds to a directory that exists<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># on the server. In particular, if that directory contains an index.php file,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># that file is correctly served; if it doesn&#39;t, then the request is passed to<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># the front-end controller. This consistent behaviour means that we don&#39;t need<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># to specify custom rules for certain paths (e.g. images and other assets,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># `\/updater`, `\/ocm-provider`, `\/ocs-provider`), and thus<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># `try_files $uri $uri\/ \/index.php$request_uri`<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># always provides the desired behaviour.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">index<\/span> <span class=\"n\">index<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span> <span class=\"n\">index<\/span><span class=\"o\">.<\/span><span class=\"n\">html<\/span> <span class=\"o\">\/<\/span><span class=\"n\">index<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">$<\/span><span class=\"n\">request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Rule borrowed from `.htaccess` to handle Microsoft DAV clients<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">location<\/span> <span class=\"o\">=<\/span> <span class=\"o\">\/<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span> <span class=\"o\">$<\/span><span class=\"n\">http_user_agent<\/span> <span class=\"o\">~<\/span> <span class=\"o\">^<\/span><span class=\"n\">DavClnt<\/span> <span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"k\">return<\/span> <span class=\"mi\">302<\/span> <span class=\"o\">\/<\/span><span class=\"n\">remote<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">\/<\/span><span class=\"n\">webdav<\/span><span class=\"o\">\/$<\/span><span class=\"n\">is_args<\/span><span class=\"o\">$<\/span><span class=\"n\">args<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">location<\/span> <span class=\"o\">=<\/span> <span class=\"o\">\/<\/span><span class=\"n\">robots<\/span><span class=\"o\">.<\/span><span class=\"n\">txt<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">allow<\/span> <span class=\"n\">all<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">log_not_found<\/span> <span class=\"n\">off<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">access_log<\/span> <span class=\"n\">off<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Make a regex exception for `\/.well-known` so that clients can still<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># access it despite the existence of the regex rule<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># `location ~ \/(\\.|autotest|...)` which would otherwise handle requests<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># for `\/.well-known`.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">location<\/span> <span class=\"o\">^~<\/span> <span class=\"o\">\/.<\/span><span class=\"n\">well<\/span><span class=\"o\">-<\/span><span class=\"n\">known<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"c1\"># The rules in this block are an adaptation of the rules<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"c1\"># in `.htaccess` that concern `\/.well-known`.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">location<\/span> <span class=\"o\">=<\/span> <span class=\"o\">\/.<\/span><span class=\"n\">well<\/span><span class=\"o\">-<\/span><span class=\"n\">known<\/span><span class=\"o\">\/<\/span><span class=\"n\">carddav<\/span> <span class=\"p\">{<\/span> <span class=\"k\">return<\/span> <span class=\"mi\">301<\/span> <span class=\"o\">\/<\/span><span class=\"n\">remote<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">\/<\/span><span class=\"n\">dav<\/span><span class=\"o\">\/<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">location<\/span> <span class=\"o\">=<\/span> <span class=\"o\">\/.<\/span><span class=\"n\">well<\/span><span class=\"o\">-<\/span><span class=\"n\">known<\/span><span class=\"o\">\/<\/span><span class=\"n\">caldav<\/span>  <span class=\"p\">{<\/span> <span class=\"k\">return<\/span> <span class=\"mi\">301<\/span> <span class=\"o\">\/<\/span><span class=\"n\">remote<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">\/<\/span><span class=\"n\">dav<\/span><span class=\"o\">\/<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">location<\/span> <span class=\"o\">\/.<\/span><span class=\"n\">well<\/span><span class=\"o\">-<\/span><span class=\"n\">known<\/span><span class=\"o\">\/<\/span><span class=\"n\">acme<\/span><span class=\"o\">-<\/span><span class=\"n\">challenge<\/span>    <span class=\"p\">{<\/span> <span class=\"n\">try_files<\/span> <span class=\"o\">$<\/span><span class=\"n\">uri<\/span> <span class=\"o\">$<\/span><span class=\"n\">uri<\/span><span class=\"o\">\/<\/span> <span class=\"o\">=<\/span><span class=\"mi\">404<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">location<\/span> <span class=\"o\">\/.<\/span><span class=\"n\">well<\/span><span class=\"o\">-<\/span><span class=\"n\">known<\/span><span class=\"o\">\/<\/span><span class=\"n\">pki<\/span><span class=\"o\">-<\/span><span class=\"n\">validation<\/span>    <span class=\"p\">{<\/span> <span class=\"n\">try_files<\/span> <span class=\"o\">$<\/span><span class=\"n\">uri<\/span> <span class=\"o\">$<\/span><span class=\"n\">uri<\/span><span class=\"o\">\/<\/span> <span class=\"o\">=<\/span><span class=\"mi\">404<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"c1\"># Let Nextcloud&#39;s API for `\/.well-known` URIs handle all other<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"c1\"># requests by passing them to the front-end controller.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">return<\/span> <span class=\"mi\">301<\/span> <span class=\"o\">\/<\/span><span class=\"n\">index<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">$<\/span><span class=\"n\">request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Rules borrowed from `.htaccess` to hide certain paths from clients<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">location<\/span> <span class=\"o\">~<\/span> <span class=\"o\">^\/<\/span><span class=\"p\">(<\/span><span class=\"err\">?<\/span><span class=\"p\">:<\/span><span class=\"n\">build<\/span><span class=\"o\">|<\/span><span class=\"n\">tests<\/span><span class=\"o\">|<\/span><span class=\"n\">config<\/span><span class=\"o\">|<\/span><span class=\"n\">lib<\/span><span class=\"o\">|<\/span><span class=\"mi\">3<\/span><span class=\"n\">rdparty<\/span><span class=\"o\">|<\/span><span class=\"n\">templates<\/span><span class=\"o\">|<\/span><span class=\"n\">data<\/span><span class=\"p\">)(<\/span><span class=\"err\">?<\/span><span class=\"p\">:<\/span><span class=\"o\">$|\/<\/span><span class=\"p\">)<\/span>  <span class=\"p\">{<\/span> <span class=\"k\">return<\/span> <span class=\"mi\">404<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">location<\/span> <span class=\"o\">~<\/span> <span class=\"o\">^\/<\/span><span class=\"p\">(<\/span><span class=\"err\">?<\/span><span class=\"p\">:<\/span>\\<span class=\"o\">.|<\/span><span class=\"n\">autotest<\/span><span class=\"o\">|<\/span><span class=\"n\">occ<\/span><span class=\"o\">|<\/span><span class=\"n\">issue<\/span><span class=\"o\">|<\/span><span class=\"n\">indie<\/span><span class=\"o\">|<\/span><span class=\"n\">db_<\/span><span class=\"o\">|<\/span><span class=\"n\">console<\/span><span class=\"p\">)<\/span>                <span class=\"p\">{<\/span> <span class=\"k\">return<\/span> <span class=\"mi\">404<\/span><span class=\"p\">;<\/span> <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Ensure this block, which passes PHP files to the PHP process, is above the blocks<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># which handle static assets (as seen below). If this block is not declared first,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># then Nginx will encounter an infinite rewriting loop when it prepends `\/index.php`<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># to the URI, resulting in a HTTP 500 error response.<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">location<\/span> <span class=\"o\">~<\/span> \\<span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"p\">(<\/span><span class=\"err\">?<\/span><span class=\"p\">:<\/span><span class=\"o\">$|\/<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"c1\"># Required for legacy support<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">rewrite<\/span> <span class=\"o\">^\/<\/span><span class=\"p\">(<\/span><span class=\"err\">?<\/span><span class=\"o\">!<\/span><span class=\"n\">index<\/span><span class=\"o\">|<\/span><span class=\"n\">remote<\/span><span class=\"o\">|<\/span><span class=\"n\">public<\/span><span class=\"o\">|<\/span><span class=\"n\">cron<\/span><span class=\"o\">|<\/span><span class=\"n\">core<\/span>\\<span class=\"o\">\/<\/span><span class=\"n\">ajax<\/span>\\<span class=\"o\">\/<\/span><span class=\"n\">update<\/span><span class=\"o\">|<\/span><span class=\"n\">status<\/span><span class=\"o\">|<\/span><span class=\"n\">ocs<\/span>\\<span class=\"o\">\/<\/span><span class=\"n\">v<\/span><span class=\"p\">[<\/span><span class=\"mi\">12<\/span><span class=\"p\">]<\/span><span class=\"o\">|<\/span><span class=\"n\">updater<\/span>\\<span class=\"o\">\/.+|<\/span><span class=\"n\">oc<\/span><span class=\"p\">[<\/span><span class=\"n\">ms<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"n\">provider<\/span>\\<span class=\"o\">\/.+|.+<\/span>\\<span class=\"o\">\/<\/span><span class=\"n\">richdocumentscode<\/span>\\<span class=\"o\">\/<\/span><span class=\"n\">proxy<\/span><span class=\"p\">)<\/span> <span class=\"o\">\/<\/span><span class=\"n\">index<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">$<\/span><span class=\"n\">request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">fastcgi_split_path_info<\/span> <span class=\"o\">^<\/span><span class=\"p\">(<\/span><span class=\"o\">.+<\/span><span class=\"err\">?<\/span>\\<span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"p\">)(<\/span><span class=\"o\">\/.*<\/span><span class=\"p\">)<\/span><span class=\"o\">$<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">set<\/span> <span class=\"o\">$<\/span><span class=\"n\">path_info<\/span> <span class=\"o\">$<\/span><span class=\"n\">fastcgi_path_info<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">try_files<\/span> <span class=\"o\">$<\/span><span class=\"n\">fastcgi_script_name<\/span> <span class=\"o\">=<\/span><span class=\"mi\">404<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">include<\/span> <span class=\"n\">fastcgi_params<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">fastcgi_param<\/span> <span class=\"n\">SCRIPT_FILENAME<\/span> <span class=\"o\">$<\/span><span class=\"n\">document_root<\/span><span class=\"o\">$<\/span><span class=\"n\">fastcgi_script_name<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">fastcgi_param<\/span> <span class=\"n\">PATH_INFO<\/span> <span class=\"o\">$<\/span><span class=\"n\">path_info<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">fastcgi_param<\/span> <span class=\"n\">HTTPS<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">fastcgi_param<\/span> <span class=\"n\">modHeadersAvailable<\/span> <span class=\"bp\">true<\/span><span class=\"p\">;<\/span>         <span class=\"c1\"># Avoid sending the security headers twice<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">fastcgi_param<\/span> <span class=\"n\">front_controller_active<\/span> <span class=\"bp\">true<\/span><span class=\"p\">;<\/span>     <span class=\"c1\"># Enable pretty urls<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">fastcgi_pass<\/span> <span class=\"n\">php<\/span><span class=\"o\">-<\/span><span class=\"n\">handler<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">fastcgi_intercept_errors<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">fastcgi_request_buffering<\/span> <span class=\"n\">off<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">fastcgi_max_temp_file_size<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Serve static files<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">location<\/span> <span class=\"o\">~<\/span> \\<span class=\"o\">.<\/span><span class=\"p\">(<\/span><span class=\"err\">?<\/span><span class=\"p\">:<\/span><span class=\"n\">css<\/span><span class=\"o\">|<\/span><span class=\"n\">js<\/span><span class=\"o\">|<\/span><span class=\"n\">mjs<\/span><span class=\"o\">|<\/span><span class=\"n\">svg<\/span><span class=\"o\">|<\/span><span class=\"n\">gif<\/span><span class=\"o\">|<\/span><span class=\"n\">png<\/span><span class=\"o\">|<\/span><span class=\"n\">jpg<\/span><span class=\"o\">|<\/span><span class=\"n\">ico<\/span><span class=\"o\">|<\/span><span class=\"n\">wasm<\/span><span class=\"o\">|<\/span><span class=\"n\">tflite<\/span><span class=\"o\">|<\/span><span class=\"n\">map<\/span><span class=\"p\">)<\/span><span class=\"o\">$<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">try_files<\/span> <span class=\"o\">$<\/span><span class=\"n\">uri<\/span> <span class=\"o\">\/<\/span><span class=\"n\">index<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">$<\/span><span class=\"n\">request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">add_header<\/span> <span class=\"n\">Cache<\/span><span class=\"o\">-<\/span><span class=\"ne\">Control<\/span> <span class=\"s2\">&#34;public, max-age=15778463, $asset_immutable&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">access_log<\/span> <span class=\"n\">off<\/span><span class=\"p\">;<\/span>     <span class=\"c1\"># Optional: Don&#39;t log access to assets<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">location<\/span> <span class=\"o\">~<\/span> \\<span class=\"o\">.<\/span><span class=\"n\">wasm<\/span><span class=\"o\">$<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">            <span class=\"n\">default_type<\/span> <span class=\"n\">application<\/span><span class=\"o\">\/<\/span><span class=\"n\">wasm<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">location<\/span> <span class=\"o\">~<\/span> \\<span class=\"o\">.<\/span><span class=\"n\">woff2<\/span><span class=\"err\">?<\/span><span class=\"o\">$<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">try_files<\/span> <span class=\"o\">$<\/span><span class=\"n\">uri<\/span> <span class=\"o\">\/<\/span><span class=\"n\">index<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">$<\/span><span class=\"n\">request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">expires<\/span> <span class=\"mi\">7<\/span><span class=\"n\">d<\/span><span class=\"p\">;<\/span>         <span class=\"c1\"># Cache-Control policy borrowed from `.htaccess`<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">access_log<\/span> <span class=\"n\">off<\/span><span class=\"p\">;<\/span>     <span class=\"c1\"># Optional: Don&#39;t log access to assets<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"c1\"># Rule borrowed from `.htaccess`<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">location<\/span> <span class=\"o\">\/<\/span><span class=\"n\">remote<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"k\">return<\/span> <span class=\"mi\">301<\/span> <span class=\"o\">\/<\/span><span class=\"n\">remote<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">$<\/span><span class=\"n\">request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"n\">location<\/span> <span class=\"o\">\/<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">        <span class=\"n\">try_files<\/span> <span class=\"o\">$<\/span><span class=\"n\">uri<\/span> <span class=\"o\">$<\/span><span class=\"n\">uri<\/span><span class=\"o\">\/<\/span> <span class=\"o\">\/<\/span><span class=\"n\">index<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span><span class=\"o\">$<\/span><span class=\"n\">request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u91cd\u65b0\u542f\u52a8\uff08\u52a0\u8f7d\uff09Nginx\u914d\u7f6e\u540e\u8bbf\u95eehttps:\/\/xxx.xxx.xxx\u5b89\u88c5Nextcloud\u5c31\u53ef\u4ee5\u4e86\uff0c\u63a5\u4e0b\u6765\u5c31\u662f\u81f3\u5173\u91cd\u8981\u7684\u4f18\u5316\u4e86\uff01<\/p>\n<h2 id=\"\u6027\u80fd\u4f18\u5316\">\u6027\u80fd\u4f18\u5316\n<\/h2><hr>\n<p>\u4f17\u6240\u5468\u77e5\uff0cNextcloud\u4e0d\u4f18\u5316\u7684\u6027\u80fd\u662f\u5728\u662f\u4e00\u8a00\u96be\u5c3d<\/p>\n<p>\u8fd9\u90e8\u5206\u9664\u4e86\u4f18\u5316\u4e5f\u5305\u62ec\u5728Nextcloud\u7f51\u76d8\u81ea\u52a8\u68c0\u67e5\u5b89\u5168\u548c\u8bbe\u7f6e\u8b66\u544a\u4e2d\u51fa\u73b0\u7684\u4e00\u4e9b\u95ee\u9898\u7684\u89e3\u51b3<\/p>\n<h3 id=\"\u9a8c\u8bc1\u7535\u5b50\u90ae\u4ef6\u670d\u52a1\u5668\">\u9a8c\u8bc1\u7535\u5b50\u90ae\u4ef6\u670d\u52a1\u5668\n<\/h3><hr>\n<p>\u6309\u5982\u4e0b\u586b\u5199\u540e\uff0c\u8bc1\u4e66\u540e\u9762\u7684\u5bc6\u7801\u9700\u8981\u53bb\u8c37\u6b4c\u7533\u8bf7\u5e94\u7528\u5bc6\u7801<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-9\/pic.png\"\n\twidth=\"863\"\n\theight=\"454\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-9\/pic_hu_952407eb41c88ef9.png 480w, https:\/\/been.ee\/p\/0-0-0-9\/pic_hu_985be188e0a2249b.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"190\"\n\t\tdata-flex-basis=\"456px\"\n\t\n><\/p>\n<p>\u76f4\u63a5\u8bbf\u95ee<a class=\"link\" href=\"https:\/\/myaccount.google.com\/apppasswords\"  target=\"_blank\" rel=\"noopener\"\n    >\u8be5\u94fe\u63a5<\/a>\u7533\u8bf7\uff0c\u6839\u636e\u60c5\u51b5\u53ef\u4ee5\u9009\u62e9\u5176\u4ed6\u5e94\u7528\uff0c\u968f\u4fbf\u8f93\u5165\u4e2a\u540d\u5b57\u5c31\u53ef\u4ee5\u3002\n\u5982\u679c\u63d0\u793a\u4e0d\u652f\u6301\uff0c\u5219\u9700\u8981\u5148\u5230\u8c37\u6b4c\u8d26\u53f7\u9875\u9762\u5b8c\u6210\u4e24\u6b65\u9a8c\u8bc1\uff0c\u5177\u4f53\u5982\u4e0b\uff1a\n\u8c37\u6b4c\u8d26\u53f7\u9875\u9762\u70b9\u51fb\u5b89\u5168\u6027\uff0c\u5728\u4e0b\u9762\u627e\u5230\u4e24\u6b65\u9a8c\u8bc1\uff0c\u6309\u7167\u8981\u6c42\u5b8c\u6210\u540e\uff0c\u518d\u8fd4\u56de\u4e0a\u9762\u8fde\u63a5\u5c31\u80fd\u7533\u8bf7\u4e86\u3002<\/p>\n<h3 id=\"\u8b66\u544a\u63d0\u793a--the-database-is-used-for-transactional-file-locking-to-enhance-performance-please-configure-memcache-if-available-see-thedocumentation-for-more-information\">\u8b66\u544a\u63d0\u793a\uff1a- The database is used for transactional file locking. To enhance performance, please configure memcache, if available. See the\u00a0<a class=\"link\" href=\"https:\/\/docs.nextcloud.com\/server\/27\/go.php?to=admin-transactional-locking\"  target=\"_blank\" rel=\"noopener\"\n    >documentation \u2197<\/a>\u00a0for more information\n<\/h3><hr>\n<p>\u89e3\u51b3\u65b9\u6cd5\uff1a<\/p>\n<p>\u9996\u5148\u5b89\u88c5redis<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">apt install redis-server php-redis\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u7f16\u8f91\u8be5\u914d\u7f6e\u6587\u4ef6<code>\/var\/www\/html\/nextcloud\/config\/config.php<\/code>\u52a0\u5165\u4ee5\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"s1\">&#39;filelocking.enabled&#39;<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">true<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">&#39;memcache.locking&#39;<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">&#39;\\OC\\Memcache\\Redis&#39;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">&#39;redis&#39;<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">array<\/span><span class=\"p\">(<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">     <span class=\"s1\">&#39;host&#39;<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">&#39;localhost&#39;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">     <span class=\"s1\">&#39;port&#39;<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"mi\">6379<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">     <span class=\"s1\">&#39;timeout&#39;<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"mf\">0.0<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">     <span class=\"s1\">&#39;password&#39;<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">&#39;&#39;<\/span><span class=\"p\">,<\/span> <span class=\"c1\">\/\/ Optional, if not defined no password will be used.\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"><\/span>      <span class=\"p\">),<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u8b66\u544a\u63d0\u793a--\u5185\u5b58\u7f13\u5b58\u672a\u914d\u7f6e\u4e3a\u4e86\u63d0\u5347\u6027\u80fd\u8bf7\u5c3d\u91cf\u914d\u7f6e\u5185\u5b58\u7f13\u5b58\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u89c1\u6587\u6863\">\u8b66\u544a\u63d0\u793a\uff1a- \u5185\u5b58\u7f13\u5b58\u672a\u914d\u7f6e\u3002\u4e3a\u4e86\u63d0\u5347\u6027\u80fd\uff0c\u8bf7\u5c3d\u91cf\u914d\u7f6e\u5185\u5b58\u7f13\u5b58\u3002\u66f4\u591a\u4fe1\u606f\u8bf7\u53c2\u89c1<a class=\"link\" href=\"https:\/\/docs.nextcloud.com\/server\/27\/go.php?to=admin-performance\"  target=\"_blank\" rel=\"noopener\"\n    >\u6587\u6863\u2197<\/a>\n<\/h3><hr>\n<p>\u5b89\u88c5apcu<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">apt install php8.2-apcu\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u7f16\u8f91<code>\/var\/www\/html\/nextcloud\/config\/config.php<\/code>\u52a0\u5165\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\">  <span class=\"s1\">&#39;memcache.local&#39;<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">&#39;\\OC\\Memcache\\APCu&#39;<\/span><span class=\"p\">,<\/span> \n<\/span><\/span><\/code><\/pre><\/div><p>\u7f16\u8f91<code>\/etc\/php\/8.2\/cli\/php.ini<\/code>\uff0c\u52a0\u5165\u4ee5\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-ini\" data-lang=\"ini\"><span class=\"line\"><span class=\"cl\"><span class=\"na\">[APCu]  <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">apc.enable_cli<\/span><span class=\"o\">=<\/span><span class=\"s\">1<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u8b66\u544a\u63d0\u793aphp\u6a21\u5757-imagick-\u6ca1\u6709\u88ab\u542f\u7528\">\u8b66\u544a\u63d0\u793a\uff1aPHP\u6a21\u5757 &ldquo;imagick&rdquo; \u6ca1\u6709\u88ab\u542f\u7528\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">apt install php8.2-imagick\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u8b66\u544a\u63d0\u793aphp-imagick\u6a21\u5757\u4e0d\u652f\u6301svg\">\u8b66\u544a\u63d0\u793a\uff1aphp-imagick\u6a21\u5757\u4e0d\u652f\u6301SVG\n<\/h3><hr>\n<p>\u5728\u7ec8\u7aef\u8f93\u5165<code>apt install libmagickcore-<\/code>\uff0c\u7136\u540e\u53cc\u51fbtab\u952e\uff0c\u4f1a\u663e\u793a\u4ee5<code>libmagickcore-<\/code>\u5f00\u5934\u7684\u7ec4\u4ef6\u5217\u8868\uff0c\u7136\u540e\u5b89\u88c5<code>libmagickcore-6.q16-6-extra<\/code><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">apt install libmagickcore-6.q16-6-extra\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u8b66\u544a\u63d0\u793aphp-\u6a21\u5757-gmp-\u548c\u6216-bcmath-\u672a\u88ab\u542f\u7528\">\u8b66\u544a\u63d0\u793a\uff1aPHP \u6a21\u5757 &ldquo;gmp&rdquo; \u548c\/\u6216 &ldquo;bcmath&rdquo; \u672a\u88ab\u542f\u7528\n<\/h3><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">apt install php8.2-gmp php8.2-bcmath\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u8b66\u544a\u63d0\u793a\u60a8\u7684\u5b89\u88c5\u6ca1\u6709\u8bbe\u7f6e\u9ed8\u8ba4\u7684\u7535\u8bdd\u533a\u57df\u8fd9\u5bf9\u9a8c\u8bc1\u914d\u7f6e\u8bbe\u5b9a\u4e2d\u6ca1\u6709\u56fd\u5bb6\u4ee3\u7801\u7684\u7535\u8bdd\u53f7\u7801\u800c\u8a00\u662f\u5fc5\u9700\u7684\">\u8b66\u544a\u63d0\u793a\uff1a\u60a8\u7684\u5b89\u88c5\u6ca1\u6709\u8bbe\u7f6e\u9ed8\u8ba4\u7684\u7535\u8bdd\u533a\u57df\u3002\u8fd9\u5bf9\u9a8c\u8bc1\u914d\u7f6e\u8bbe\u5b9a\u4e2d\u6ca1\u6709\u56fd\u5bb6\u4ee3\u7801\u7684\u7535\u8bdd\u53f7\u7801\u800c\u8a00\u662f\u5fc5\u9700\u7684\n<\/h3><hr>\n<p>\u627e\u5230<code>\/var\/www\/html\/nextcloud\/config\/config.php<\/code>\u6587\u4ef6\uff0c\u6dfb\u52a0\u4e0b\u9762\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-php\" data-lang=\"php\"><span class=\"line\"><span class=\"cl\"><span class=\"s1\">&#39;default_phone_region&#39;<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">&#39;CN&#39;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u4f18\u5316\u4f7f\u7528cron\u8ba1\u5212\u4efb\u52a1\u66ff\u4ee3\u9ed8\u8ba4\u7684ajax\">\u4f18\u5316\uff1a\u4f7f\u7528cron\u8ba1\u5212\u4efb\u52a1\u66ff\u4ee3\u9ed8\u8ba4\u7684ajax\n<\/h3><hr>\n<p>\u6267\u884c\u5982\u4e0b\u547d\u4ee4\u4ee5 www-data \u7528\u6237\u8fd0\u884c crontab<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">crontab -u www-data -e\n<\/span><\/span><\/code><\/pre><\/div><p>\u5728\u6587\u4ef6\u672b\u5c3e\u52a0\u5165\u4e00\u884c\uff08\u6ce8\u610f\u7ad9\u70b9\u8def\u5f84\u6539\u4e3a\u4f60\u4eec\u81ea\u5df1\u7684\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-gdscript3\" data-lang=\"gdscript3\"><span class=\"line\"><span class=\"cl\"><span class=\"o\">*\/<\/span><span class=\"mi\">5<\/span> <span class=\"o\">*<\/span> <span class=\"o\">*<\/span> <span class=\"o\">*<\/span> <span class=\"o\">*<\/span> <span class=\"n\">php8<\/span><span class=\"o\">.<\/span><span class=\"mi\">2<\/span> <span class=\"o\">-<\/span><span class=\"n\">f<\/span> <span class=\"o\">\/<\/span><span class=\"k\">var<\/span><span class=\"o\">\/<\/span><span class=\"n\">www<\/span><span class=\"o\">\/<\/span><span class=\"n\">html<\/span><span class=\"o\">\/<\/span><span class=\"n\">nextcloud<\/span><span class=\"o\">\/<\/span><span class=\"n\">cron<\/span><span class=\"o\">.<\/span><span class=\"n\">php<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u767b\u5165nextcloud\u7ba1\u7406\u5458\u5728\u57fa\u672c\u8bbe\u7f6e-\u540e\u53f0\u4efb\u52a1\u4e2d\u6539\u4e3acron<\/p>\n<h3 id=\"mysql\u6027\u80fd\u4f18\u5316\">mysql\u6027\u80fd\u4f18\u5316\n<\/h3><hr>\n<p>\u6253\u5f00<code>\/etc\/mysql\/conf.d\/mysql.cnf<\/code>\uff0c\u5728\u8fd9\u4e2a\u6587\u4ef6\u5185\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">[mysqld]  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">innodb_buffer_pool_size=1G  \n<\/span><\/span><span class=\"line\"><span class=\"cl\">innodb_io_capacity=4000\n<\/span><\/span><\/code><\/pre><\/div><p>\u91cd\u542f Mariadb<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">systemctl restart mariadb.service\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u8c03\u6574php\u7684\u8fdb\u7a0b\u6570\u9488\u5bf9php-fpm\">\u8c03\u6574PHP\u7684\u8fdb\u7a0b\u6570(\u9488\u5bf9PHP-FPM)\n<\/h3><hr>\n<p>\u8ba1\u7b97\u7f51\u7ad9<a class=\"link\" href=\"https:\/\/spot13.com\/pmcalculator\/\"  target=\"_blank\" rel=\"noopener\"\n    >PHP-FPM Process Caluculator<\/a><\/p>\n<p>\u6253\u5f00\u6587\u4ef6<code>\/etc\/php\/8.2\/fpm\/pool.d\/www.conf<\/code>\u5c06\u53c2\u6570\u4fee\u6539\u4e3a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">pm = dynamic\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pm.max_children = 40\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pm.start_servers = 10\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pm.min_spare_servers = 10\n<\/span><\/span><span class=\"line\"><span class=\"cl\">pm.max_spare_servers = 30\n<\/span><\/span><\/code><\/pre><\/div><p>\u91cd\u542f PHP-FPM\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">systemctl restart php8.2-fpm.service\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u4fee\u6539\u5185\u5b58\u548c\u6587\u4ef6\u4e0a\u4f20\u9650\u5236\">\u4fee\u6539\u5185\u5b58\u548c\u6587\u4ef6\u4e0a\u4f20\u9650\u5236\n<\/h3><hr>\n<p>\u4f7f\u7528Apache + PHP\u9700\u8981\u5728\u914d\u7f6e\u6587\u4ef6\uff08<code>\/etc\/php\/8.2\/apache2\/php.ini<\/code>\uff09\u4e2d\u4fee\u6539<\/p>\n<p>\u4f7f\u7528Apache\/Nginx + PHP-FPM\u9700\u8981\u5728PHP-FPM\u914d\u7f6e\u6587\u4ef6\uff08<code>\/etc\/php\/8.2\/fpm\/php.ini<\/code>\uff09\u4e2d\u4fee\u6539<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-ini\" data-lang=\"ini\"><span class=\"line\"><span class=\"cl\"><span class=\"na\">memory_limit<\/span> <span class=\"o\">=<\/span> <span class=\"s\">1.5G <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">upload_max_filesize<\/span> <span class=\"o\">=<\/span> <span class=\"s\">16G <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">post_max_size<\/span> <span class=\"o\">=<\/span> <span class=\"s\">16G <\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">max_execution_time<\/span> <span class=\"o\">=<\/span> <span class=\"s\">3600<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">max_input_time<\/span> <span class=\"o\">=<\/span> <span class=\"s\">3600<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">;output_buffering\u00a0=\u00a04096<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u914d\u7f6eopcache\">\u914d\u7f6eopcache\n<\/h3><hr>\n<p>\u4f7f\u7528Apache + PHP\u9700\u8981\u5728\u914d\u7f6e\u6587\u4ef6\uff08<code>\/etc\/php\/8.2\/apache2\/php.ini<\/code>\uff09\u4e2d\u4fee\u6539<\/p>\n<p>\u4f7f\u7528Apache\/Nginx + PHP-FPM\u9700\u8981\u5728PHP-FPM\u914d\u7f6e\u6587\u4ef6\uff08<code>\/etc\/php\/8.2\/fpm\/php.ini<\/code>\uff09\u4e2d\u4fee\u6539<\/p>\n<p>\u5728opcache\u6bb5\u7684\u672b\u5c3e\u52a0\u5165\u5982\u4e0b\u5185\u5bb9<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-ini\" data-lang=\"ini\"><span class=\"line\"><span class=\"cl\"><span class=\"na\">opcache.enable<\/span><span class=\"o\">=<\/span><span class=\"s\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">opcache.enable_cli<\/span><span class=\"o\">=<\/span><span class=\"s\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">opcache.interned_strings_buffer<\/span><span class=\"o\">=<\/span><span class=\"s\">8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">opcache.max_accelerated_files<\/span><span class=\"o\">=<\/span><span class=\"s\">10000<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">opcache.memory_consumption<\/span><span class=\"o\">=<\/span><span class=\"s\">128<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">opcache.save_comments<\/span><span class=\"o\">=<\/span><span class=\"s\">1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">opcache.revalidate_freq<\/span><span class=\"o\">=<\/span><span class=\"s\">1<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5173\u4e8e\u4f18\u5316\u90e8\u5206\u5c31\u5230\u6b64\u4e3a\u6b62\uff0c\u6ce8\u610f\u4fee\u6539\u5b8c\u914d\u7f6e\u540e\u8bb0\u5f97\u91cd\u542fPHP-FPM\u548cWeb\u670d\u52a1\u624d\u80fd\u751f\u6548<\/p>\n"},{"title":"Docker\uff1a\u955c\u50cf\u4e0e\u5bb9\u5668\u64cd\u4f5c","link":"https:\/\/been.ee\/p\/0-0-0-8\/","pubDate":"Thu, 06 Jul 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-8\/","description":"<h2 id=\"\u5b89\u88c5docker-ce\">\u5b89\u88c5Docker CE\n<\/h2><hr>\n<p>\u5bf9\u4e8e\u4e2a\u4eba\u6765\u8bf4\uff0c\u4e00\u822c\u53ea\u7528\u5230\u793e\u533a\u7248\uff08Community Edition\uff09\uff0c\u4e5f\u5c31\u662f<code>Docker CE<\/code>\uff0c\u5b89\u88c5\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/docs.docker.com\/engine\/install\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a><\/p>\n<p>\u5b89\u88c5\u5b8c\u6210\u540e\u53ef\u4ee5\u6267\u884c<code>docker info<\/code>\u6216<code>docker version<\/code>\u67e5\u770b\u662f\u5426\u5b89\u88c5\u6210\u529f<\/p>\n<p><code>Docker<\/code>\u5728Linux\u5b89\u88c5\u540e\u9ed8\u8ba4\u4f1a\u4ee5\u670d\u52a1\u7684\u5f62\u5f0f\u542f\u52a8\uff0c\u5982\u679c\u6ca1\u6709\u542f\u52a8\u53ef\u4ee5\u624b\u52a8\u6267\u884c<code>systemctl start docker<\/code>\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u6267\u884cdocker\u547d\u4ee4\u4e86<\/p>\n<h2 id=\"docker\u7684\u5e38\u7528\u64cd\u4f5c\u547d\u4ee4\">Docker\u7684\u5e38\u7528\u64cd\u4f5c\u3001\u547d\u4ee4\n<\/h2><hr>\n<h3 id=\"\u5e2e\u52a9\u7c7b\u547d\u4ee4\">\u5e2e\u52a9\u7c7b\u547d\u4ee4\n<\/h3><hr>\n<p>\u7528\u4e8e\u81ea\u884c\u67e5\u770b\u5b66\u4e60<code>Docker<\/code>\u7684\u5404\u79cd\u547d\u4ee4\u53ca\u5176\u542b\u4e49\u548c\u4f7f\u7528\u65b9\u6cd5<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker --help    <span class=\"c1\"># \u67e5\u770bdocker\u7684\u5168\u90e8\u547d\u4ee4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker xxx --help    <span class=\"c1\"># \u67e5\u770bdocker\u4e2d\u67d0\u4e2a\u5177\u4f53\u547d\u4ee4\u7684\u4f7f\u7528\uff0c\u7c7b\u4f3c\u5957\u5a03<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4f8b\u5982docker rm --help<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u955c\u50cf\u7c7b\u547d\u4ee4\">\u955c\u50cf\u7c7b\u547d\u4ee4\n<\/h3><hr>\n<p>\u6211\u4eec\u8981\u4e0b\u8f7d\u4f7f\u7528\u7684\u5e94\u7528\u7a0b\u5e8f\u90fd\u662f\u88ab<code>Docker<\/code>\u6253\u5305\u4e3a\u955c\u50cf\u5b58\u653e\u5728\u5728\u4ed3\u5e93\uff08repository\uff09\u91cc\uff0c\u9ed8\u8ba4\u4e3a<a class=\"link\" href=\"https:\/\/hub.docker.com\/\"  target=\"_blank\" rel=\"noopener\"\n    >Docker Hub<\/a>\uff0c\u5b9e\u9645\u4e0a\u6211\u4eec\u8981\u7528\u67d0\u4e2a\u5e94\u7528\u7a0b\u5e8f\u90fd\u8981\u53bb\u4ed3\u5e93\u91cc\u4e0b\u8f7d\u955c\u50cf<\/p>\n<h4 id=\"\u5217\u51fa\u672c\u5730\u4e3b\u673a\u7684\u955c\u50cf\">\u5217\u51fa\u672c\u5730\u4e3b\u673a\u7684\u955c\u50cf\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker images    <span class=\"c1\"># \u5217\u51fa\u672c\u5730\u4e3b\u673a\u4e0a\u7684\u6240\u6709\u955c\u50cf<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># or<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker image ls    <span class=\"c1\"># \u540c\u4e0a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker images -a    <span class=\"c1\"># \u5217\u51fa\u672c\u5730\u6240\u6709\u955c\u50cf\uff08\u5305\u542b\u5386\u53f2\u6620\u50cf\u5c42\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker images -q    <span class=\"c1\"># \u53ea\u663e\u793a\u955c\u50cfID<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u53bb\u4ed3\u5e93\u4e2d\u67e5\u627e\u6240\u9700\u955c\u50cf\">\u53bb\u4ed3\u5e93\u4e2d\u67e5\u627e\u6240\u9700\u955c\u50cf\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker search xxx    <span class=\"c1\"># xxx\u4ee3\u8868\u955c\u50cf\u540d\uff0c\u7528\u4e8e\u53bb\u4ed3\u5e93\u4e2d\u67e5\u627e\u955c\u50cf<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker search --limit N xxx    <span class=\"c1\"># \u8868\u793a\u53ea\u5217\u51faN\u4e2a\u955c\u50cf<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u5c06\u955c\u50cf\u4ece\u4ed3\u5e93\u4e0b\u62c9\u5230\u672c\u5730\">\u5c06\u955c\u50cf\u4ece\u4ed3\u5e93\u4e0b\u62c9\u5230\u672c\u5730\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker pull xxx    <span class=\"c1\"># \u628axxx\u955c\u50cf\u62c9\uff08\u4e0b\u8f7d\uff09\u5230\u672c\u5730\uff0c\u5c31\u662f\u4e0b\u8f7d\u5230\u7535\u8111\u4e0a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6ce8\u610f\u8fd9\u91cc\u7684xxx\u53ef\u4ee5\u5e26\u7248\u672c\u53f7\uff0c\u56e0\u6b64\u53ef\u4ee5\uff1a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker pull xxx:1.1.1    <span class=\"c1\"># 1.1.1\u8868\u793a\u7248\u672c\u53f7\uff0c\u6839\u636e\u9700\u8981\u66f4\u6362\uff0c\u4e0d\u5e26\u7248\u672c\u53f7\u9ed8\u8ba4\u4e3a\u6700\u65b0\u7248\uff08latest\uff09<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u67e5\u770b\u5bb9\u5668\u955c\u50cf\u6570\u636e\u5377\u6240\u5360\u7684\u7a7a\u95f4\">\u67e5\u770b\u5bb9\u5668\/\u955c\u50cf\/\u6570\u636e\u5377\u6240\u5360\u7684\u7a7a\u95f4\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker system df    <span class=\"c1\"># \u67e5\u770b\u5bb9\u5668\/\u955c\u50cf\/\u6570\u636e\u5377\u6240\u5360\u7684\u7a7a\u95f4<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u5220\u9664\u672c\u5730\u955c\u50cf\">\u5220\u9664\u672c\u5730\u955c\u50cf\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker rmi xxx    <span class=\"c1\"># \u5220\u9664\u67d0\u4e2a\u955c\u50cf\uff0cxxx\u53ef\u4ee5\u7528\u955c\u50cf\u540d\u6216ID<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker rmi -f xxx    <span class=\"c1\"># -f\u8868\u793a\u5f3a\u5236\u5220\u9664<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker rmi -f xxx1 xxx2 xxx3    <span class=\"c1\"># \u5220\u9664\u591a\u4e2a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker rmi -f <span class=\"k\">$(<\/span>docker images -aq<span class=\"k\">)<\/span>    <span class=\"c1\"># \u5220\u9664\u5168\u90e8\uff0c\u6ce8\u610f\u8fd9\u662fdocker\u652f\u6301\u7684\u53c2\u6570\u7eed\u4f20\uff0c$(docker images -aq)\u53ef\u4ee5\u5217\u51fa\u5168\u90e8\u7684\u955c\u50cfID<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u5bb9\u5668\u7c7b\u547d\u4ee4\">\u5bb9\u5668\u7c7b\u547d\u4ee4\n<\/h3><hr>\n<p>\u4e0b\u8f7d\u955c\u50cf\u7684\u76ee\u7684\u5f53\u7136\u5c31\u662f\u7528\u5b83\u6765\u521b\u5efa\u5e76\u542f\u52a8\u5bb9\u5668<\/p>\n<h4 id=\"\u521b\u5efa\u5e76\u542f\u52a8\u5bb9\u5668\">\u521b\u5efa\u5e76\u542f\u52a8\u5bb9\u5668\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker run image_name    <span class=\"c1\"># \u542f\u52a8\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker run -d image_name xxx    <span class=\"c1\"># xxx\u8868\u793a\u5bb9\u5668\u4e2d\u8981\u8fd0\u884c\u7684\u7a0b\u5e8f\u6216\u547d\u4ee4\uff0c\u4e0d\u52a0\u7684\u8bdd\u4f1a\u8fd0\u884c\u751f\u6210\u955c\u50cf\u65f6\u8bbe\u7f6e\u7684\u9ed8\u8ba4\u547d\u4ee4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker run --name image_name    <span class=\"c1\"># --name\u6307\u5b9a\u5bb9\u5668\u7684\u540d\u5b57<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker run -d image_name    <span class=\"c1\"># -d\u8868\u793a\u542f\u52a8\u5b88\u62a4\u8fdb\u7a0b\u4e5f\u5c31\u662f\u540e\u53f0\u8fd0\u884c\uff0c\u5e76\u8fd4\u56de\u5bb9\u5668ID<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker run -it image_name \/bin\/bash   <span class=\"c1\"># -i\u8868\u793a\u4ee5\u4ea4\u4e92\u6a21\u5f0f\u8fd0\u884c\uff0c-t\u8868\u793a\u5206\u914d\u4e00\u4e2a\u4f2a\u7ec8\u7aef\uff0c\u6700\u540e\/bin\/bash\u8868\u793a\u7528\u4e8e\u4ea4\u4e92\u7684shell<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker run -p host_port:container_port image_name    <span class=\"c1\"># -p\u8868\u793a\u6dfb\u52a0\u7aef\u53e3\u6620\u5c04\uff0c\u6bd4\u59828080:80\u8868\u793a\u5c06\u5bb9\u5668\u768480\u7aef\u53e3\u6620\u5c04\u5230\u672c\u57308080\u7aef\u53e3<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5982\u679c\u5728\u542f\u52a8\u5bb9\u5668\u65f6\u5728\u6700\u540e\u52a0\u4e0a\u4e86\u547d\u4ee4\u6216\u8005\u8981\u6267\u884c\u7684\u7a0b\u5e8f\u540d\uff0c\u4f1a\u8986\u76d6\u6389\u5bb9\u5668\u9ed8\u8ba4\u8981\u6267\u884c\u7684\u547d\u4ee4\uff0c\u6bd4\u5982<code>docker run -it nginx \/bin\/bash<\/code>\uff0c\u8fd9\u6837\u7684\u8bdd\u5bb9\u5668\u8fdb\u7a0b\u5c31\u53d8\u6210\u4e86<code>\/bin\/bash<\/code><\/p>\n<p>\u90a3\u8fd9\u5c31\u6709\u4e00\u4e2a\u95ee\u9898\uff0c\u6211\u542f\u52a8\u4e86<code>nginx<\/code>\u5bb9\u5668\u540e\uff0c\u6211\u8981\u600e\u4e48\u8fdb\u5230\u91cc\u9762\u914d\u7f6e\u5462\uff0c\u8fd9\u65f6\u6211\u4eec\u53ef\u4ee5\u5148\u4f7f\u7528<code>docker run -d nginx<\/code>\u5728\u540e\u53f0\u542f\u52a8\uff0c\u7136\u540e\u4f7f\u7528\u540e\u9762\u8981\u8bb2\u7684<code>docker exec<\/code>\u8fdb\u5165\u5bb9\u5668<\/p>\n<p>\u53e6\u5916\uff0c\u5173\u4e8e<code>-d<\/code>\u53c2\u6570\u542f\u52a8\u5b88\u62a4\u8fdb\u7a0b\u8981\u8bf4\u660e\u7684\u4e00\u4e0b\uff0c\u5c31\u662f\u6709\u65f6\u5019\u4f7f\u7528<code>-d<\/code>\u540e\u53d1\u73b0\u5bb9\u5668\u542f\u52a8\u540e\u5c31\u81ea\u52a8\u5173\u95ed\u4e86\uff0c\u8fd9\u662f\u56e0\u4e3a\u5982\u679c\u6211\u4eec\u5bb9\u5668\u5185\u8fd0\u884c\u7684\u8fdb\u7a0b<strong>\u4e0d\u662f\u4e00\u76f4\u6302\u8d77\u7684\u547d\u4ee4<\/strong>\uff0c\u6bd4\u5982<code>docker run -d ubuntu \/bin\/bash<\/code>\uff0c<code>Docker<\/code>\u9ed8\u8ba4\u662f\u4f1a\u81ea\u52a8\u9000\u51fa\u7684\uff0c\u8fd9\u65f6\u5c31\u9700\u8981<code>-it<\/code>\u53c2\u6570\u544a\u8bc9<code>Docker<\/code>\uff0c\u6211\u8fd8\u9700\u8981\u4ea4\u4e92\uff0c\u4e0d\u8981\u4e2d\u65ad<\/p>\n<h4 id=\"\u5217\u51fa\u8fd0\u884c\u4e2d\u7684\u5bb9\u5668\">\u5217\u51fa\uff08\u8fd0\u884c\u4e2d\u7684\uff09\u5bb9\u5668\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker ps    <span class=\"c1\"># \u5217\u51fa\u6b63\u5728\u8fd0\u884c\u7684\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker ps -a    <span class=\"c1\"># \u5217\u51fa\u6b63\u5728\u8fd0\u884c\u7684\u5bb9\u5668\u548c\uff08\u5386\u53f2\u4e0a\u8fd0\u884c\u8fc7\u7684\uff09\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker ps -l    <span class=\"c1\"># \u5217\u51fa\u6700\u8fd1\u521b\u5efa\u7684\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker ps -n N   <span class=\"c1\"># \u5217\u51fa\u6700\u8fd1\u521b\u5efa\u7684N\u4e2a\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker ps -q    <span class=\"c1\"># \u9759\u9ed8\u6a21\u5f0f\uff0c\u53ea\u663e\u793a\u5bb9\u5668ID<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u9000\u51fa\u5bb9\u5668\">\u9000\u51fa\u5bb9\u5668\n<\/h4><hr>\n<p>\u5bf9\u4e8e\u4f7f\u7528<code>docker run -it ubuntu \/bin\/bash<\/code>\u8fdb\u5165\u7684\u5bb9\u5668\uff0c\u6709\u4e24\u79cd\u9000\u51fa\u65b9\u5f0f\uff1a<\/p>\n<blockquote>\n<ol>\n<li>\n<p>\u6267\u884c<code>exit<\/code>\n\u8868\u793a\u9000\u51fa\u5e76\u505c\u6b62\u5bb9\u5668<\/p>\n<\/li>\n<li>\n<p>\u6267\u884c<code>Ctrl + p + q<\/code>\n\u9000\u51fa\u5bb9\u5668\u4f46\u5bb9\u5668\u4e0d\u505c\u6b62\uff0c\u4e5f\u5c31\u662f\u5c06\u5bb9\u5668\u8f6c\u5230\u540e\u53f0\u8fd0\u884c<\/p>\n<\/li>\n<\/ol><\/blockquote>\n<h4 id=\"\u542f\u52a8\u505c\u6b62\u7684\u5bb9\u5668\u91cd\u542f\u505c\u6b62\u5220\u9664\u5bb9\u5668\">\u542f\u52a8\u505c\u6b62\u7684\u5bb9\u5668\uff0c\u91cd\u542f\/\u505c\u6b62\/\u5220\u9664\u5bb9\u5668\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker start \u5bb9\u5668ID\u6216\u5bb9\u5668\u540d    <span class=\"c1\"># \u542f\u52a8\u505c\u6b62\u7684\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker restart \u5bb9\u5668ID\u6216\u5bb9\u5668\u540d    <span class=\"c1\"># \u91cd\u542f\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker stop \u5bb9\u5668ID\u6216\u5bb9\u5668\u540d    <span class=\"c1\"># \u505c\u6b62\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker <span class=\"nb\">kill<\/span> \u5bb9\u5668ID\u6216\u5bb9\u5668\u540d    <span class=\"c1\"># \u5f3a\u5236\u505c\u6b62\u5bb9\u5668<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u5220\u9664\u5bb9\u5668\">\u5220\u9664\u5bb9\u5668\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker rm \u5bb9\u5668ID\u6216\u5bb9\u5668\u540d    <span class=\"c1\"># \u5220\u9664\u505c\u6b62\u7684\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker rm -f \u5bb9\u5668ID\u6216\u5bb9\u5668\u540d    <span class=\"c1\"># \u5f3a\u5236\u5220\u9664\u5bb9\u5668\uff0c\u5305\u62ec\u6b63\u5728\u8fd0\u884c\u7684<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker rm -f <span class=\"k\">$(<\/span>docker ps -aq<span class=\"k\">)<\/span>    <span class=\"c1\"># \u5f3a\u5236\u5220\u9664\u6240\u6709\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># or<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker ps -aq <span class=\"p\">|<\/span> xargs docker rm -f    <span class=\"c1\"># \u540c\u4e0a<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7\">\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7\n<\/h4><hr>\n<p>\u6ce8\u610f\uff0c\u8fd9\u4e2a\u9002\u7528\u4e8e\u540e\u53f0\u8fd0\u884c\u7684\u5bb9\u5668\uff0c\u5e76\u4e14\u5bb9\u5668\u8fdb\u7a0b\u6302\u8d77\u5e76\u4e14\u4f1a\u968f\u65f6\u6253\u5370\u65e5\u5fd7<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker logs \u5bb9\u5668ID\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u67e5\u770b\u5bb9\u5668\u5185\u8fd0\u884c\u7684\u8fdb\u7a0b\">\u67e5\u770b\u5bb9\u5668\u5185\u8fd0\u884c\u7684\u8fdb\u7a0b\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker top \u5bb9\u5668ID\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u67e5\u770b\u5bb9\u5668\u4fe1\u606f\">\u67e5\u770b\u5bb9\u5668\u4fe1\u606f\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker inspect \u5bb9\u5668ID\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u8fdb\u5165\u6b63\u5728\u8fd0\u884c\u7684\u5bb9\u5668\u5e76\u4ea4\u4e92\">\u8fdb\u5165\u6b63\u5728\u8fd0\u884c\u7684\u5bb9\u5668\u5e76\u4ea4\u4e92\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker <span class=\"nb\">exec<\/span> -it \u5bb9\u5668ID \/bin\/bash    <span class=\"c1\"># \u8fdb\u5165\u6b63\u5728\u8fd0\u884c\u7684\u5bb9\u5668\uff0c\u5e76\u542f\u52a8\u4e00\u4e2a\u65b0\u7684\/bin\/bash\u8fdb\u884c\u4ea4\u4e92<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker attach \u5bb9\u5668ID    <span class=\"c1\"># \u76f4\u63a5\u5bb9\u5668\u542f\u52a8\u547d\u4ee4\u7684\u7ec8\u7aef<\/span>\n<\/span><\/span><\/code><\/pre><\/div><blockquote>\n<p>\u5173\u4e8e\u8fd9\u4e24\u6761\u547d\u4ee4\u7684\u533a\u522b\u505a\u4e00\u4e0b\u89e3\u91ca\uff1a<\/p>\n<ol>\n<li>\n<p><code>docker exec -it \u5bb9\u5668ID \/bin\/bash<\/code>\u5b9e\u9645\u4e0a\u662f\u6253\u5f00\u4e86\u4e00\u4e2a\u65b0\u7684<code>shell<\/code>\u7528\u6765\u4ea4\u4e92\uff08\u542f\u52a8\u4e86\u4e00\u4e2a\u65b0\u7684\u8fdb\u7a0b\uff09\uff0c\u4e0e\u5bb9\u5668\u8fdb\u7a0b\u662f\u4ec0\u4e48\u65e0\u5173\uff0c\u4f7f\u7528<code>exit<\/code>\u9000\u51fa\u540e\u4e0d\u4f1a\u5bfc\u81f4\u5bb9\u5668\u505c\u6b62<\/p>\n<\/li>\n<li>\n<p><code>docker attach \u5bb9\u5668ID<\/code>\u5b9e\u9645\u4e0a\u662f\u76f4\u63a5\u8fdb\u5165\u4e86\u5bb9\u5668\u542f\u52a8\u547d\u4ee4\u7684\u7ec8\u7aef\uff0c\u4e0d\u4f1a\u542f\u52a8\u65b0\u7684\u8fdb\u7a0b\uff0c\u5982\u679c\u7528<code>exit<\/code>\u9000\u51fa\uff0c\u90a3\u4e48\u5bb9\u5668\u4e5f\u4f1a\u505c\u6b62\u3002\u5982\u679c\u5bb9\u5668\u8fdb\u7a0b\u662f<code>shell<\/code>\u8fdb\u7a0b\uff0c\u90a3\u4e48\u4f1a\u76f4\u63a5\u8fdb\u5165\u8fd9\u4e2a<code>shell<\/code>\uff1b\u4f46\u5982\u679c\u5bb9\u5668\u8fdb\u7a0b\u4e0d\u662f<code>shell<\/code>\uff0c\u4f7f\u7528<code>attach<\/code>\u8fdb\u5165\u5bb9\u5668\u5c31\u4e0d\u4f1a\u5f97\u5230\u4ea4\u4e92\u5f0f\u7ec8\u7aef\uff0c\u800c\u662f\u76f4\u63a5\u8fdb\u5165\u8be5\u8fdb\u7a0b\uff08\u6bd4\u5982<code>Nginx<\/code>\u7684\u5bb9\u5668\u8fdb\u7a0b\uff09\uff0c\u8fd9\u65f6\u5019\u7531\u4e8e\u4e0d\u662f<code>shell<\/code>\u7ec8\u7aef\uff0c\u5982\u679c\u4f7f\u7528<code>Ctrl + c<\/code>\u9000\u51fa\u5b9e\u9645\u4e0a\u5c31\u628a\u5bb9\u5668\u8fdb\u7a0b\u505c\u6389\u4e86\uff0c\u5bb9\u5668\u4e5f\u5c31\u505c\u6b62\u4e86<\/p>\n<\/li>\n<\/ol>\n<p>PS\uff1a\u4e5f\u5c31\u662f\u8bf4<code>attach<\/code>\u8fdb\u5165\u7684\u662f\u5bb9\u5668\u8fdb\u7a0b\uff0c\u4e0d\u4e00\u5b9a\u662f<code>shell<\/code><\/p><\/blockquote>\n<p>\u6240\u4ee5\u4e00\u822c\u4e0d\u8981\u7528<code>docker attach<\/code>\uff0c\u901a\u5e38\u60c5\u51b5\u4f7f\u7528<code>-d<\/code>\u540e\u53f0\u542f\u52a8\uff0c\u7136\u540e<code>docker exec -it \u5bb9\u5668ID \/bin\/bash<\/code>\u8fdb\u5165\u5bb9\u5668\u5b9e\u4f8b<\/p>\n<h4 id=\"\u62f7\u8d1d\u5bb9\u5668\u5185\u6587\u4ef6\u5230\u5bbf\u4e3b\u673a\">\u62f7\u8d1d\u5bb9\u5668\u5185\u6587\u4ef6\u5230\u5bbf\u4e3b\u673a\n<\/h4><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker cp \u5bb9\u5668ID:\u5bb9\u5668\u5185\u6587\u4ef6\u7684\u8def\u5f84 \u5bbf\u4e3b\u673a\u8def\u5f84\n<\/span><\/span><\/code><\/pre><\/div><h4 id=\"\u5bfc\u5165\u548c\u5bfc\u51fa\u5bb9\u5668\">\u5bfc\u5165\u548c\u5bfc\u51fa\u5bb9\u5668\n<\/h4><hr>\n<p>\u53ef\u4ee5\u5c06\u914d\u7f6e\u597d\u7684\u5bb9\u5668\u5bfc\u51fa\u4e3a<code>tar<\/code>\u5305\uff0c\u8fd9\u4e2a<code>tar<\/code>\u5305\u53ef\u4ee5\u91cd\u65b0\u751f\u6210\u5bb9\u5668\u955c\u50cf\uff0c\u518d\u5229\u7528\u8fd9\u4e2a\u955c\u50cf\u542f\u52a8\u4e4b\u524d\u914d\u7f6e\u597d\u7684\u5bb9\u5668\uff08\u65b0\u7684\u5bb9\u5668\uff0c\u4f46\u914d\u7f6e\u548c\u4e4b\u524d\u4e00\u6837\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">docker <span class=\"nb\">export<\/span> \u5bb9\u5668ID &gt; xxx.tar    <span class=\"c1\"># \u5bfc\u51fa\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">cat xxx.tar <span class=\"p\">|<\/span> docker import - \u955c\u50cf\u7528\u6237\/\u955c\u50cf\u540d:\u955c\u50cf\u7248\u672c\u53f7    <span class=\"c1\"># \u628aexport\u5bfc\u51fa\u7684tar\u5305\u6062\u590d\u4e3a\u5bb9\u5668\u955c\u50cf\uff0c\u7136\u540e\u53ef\u4ee5\u901a\u8fc7\u8be5\u955c\u50cf\u542f\u52a8\u5bb9\u5668<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u4f46\u662f\u6d4b\u8bd5\u53d1\u73b0\uff0c<code>tar<\/code>\u5305\u6062\u590d\u7684\u955c\u50cf\u542f\u52a8\u5bb9\u5668\u65f6\u9700\u8981\u6307\u5b9a\u5bb9\u5668\u8fdb\u7a0b\uff0c\u4e5f\u5c31\u662f\u8bf4\u8fd9\u91cc\u4f3c\u4e4e\u62b9\u6740\u6389\u4e86\u539f\u5bb9\u5668\u9ed8\u8ba4\u8fd0\u884c\u7684\u5bb9\u5668\u8fdb\u7a0b\uff08\u5982\u679c\u6709\u7684\u8bdd\uff09<\/p>\n"},{"title":"Matlab \u6570\u636e\u4f5c\u56fe\u548c\u914d\u8272\u65b9\u6848","link":"https:\/\/been.ee\/p\/0-0-0-7\/","pubDate":"Tue, 04 Jul 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-7\/","description":"<p>\u5176\u5b9e\u79d1\u7814\u6570\u636e\u5904\u7406\u7528Origin\u4f5c\u56fe\u5c31\u8db3\u591f\u4e86\uff0c\u4f46\u662f\u6709\u4e00\u5929\u5fc3\u8840\u6765\u6f6e\u5c31\u60f3\u8bd5\u8bd5Matlab\uff0c\u7136\u540e\u53d1\u73b0\u753b\u7684\u56fe\u633a\u597d\u770b\u7684\uff0c\u7d22\u6027\u628a\u5199\u7684\u4e00\u4e9bMatlab\u811a\u672c\u7684\u51fd\u6570\u548c\u4ee3\u7801\u5c31\u5728\u8fd9\u91cc\u603b\u7ed3\u4e00\u4e0b\u5427\u3002<\/p>\n<p>\u7528Matlab\u753b\u56fe\u7684\u574f\u5904\u662f\u7b2c\u4e00\u904d\u5199\u811a\u672c\u5f88\u591a\u53c2\u6570\u8981\u8bd5\uff0c\u5f97\u6539\u5f88\u591a\u6b21\uff0c\u6bcf\u6b21\u6539\u5b8c\u90fd\u8981\u8fd0\u884c\u770b\u6548\u679c\uff0c\u5199\u7b2c\u4e00\u4e2a\u811a\u672c\u4f1a\u9ebb\u70e6\u70b9\uff1b\u4f46\u597d\u5904\u662f\u540e\u9762\u4f5c\u7c7b\u4f3c\u7684\u56fe\u53ef\u4ee5\u5728\u539f\u6765\u811a\u672c\u7684\u57fa\u7840\u4e0a\u76f4\u63a5\u6539\u53c2\u6570\u5c31\u884c\u4e86\uff0c\u518d\u5f80\u540e\u4f5c\u56fe\u5c31\u4f1a\u7701\u4e8b\u5f88\u591a\u3002<\/p>\n<h2 id=\"\u5e38\u7528\u7ed8\u56fe\u547d\u4ee4\u548c\u51fd\u6570\">\u5e38\u7528\u7ed8\u56fe\u547d\u4ee4\u548c\u51fd\u6570\n<\/h2><hr>\n<ul>\n<li>\n<p><code>readmatrix('filename');<\/code>\uff1a\u5bfc\u5165\u8868\u683c\u6570\u636e<\/p>\n<\/li>\n<li>\n<p><code>figure();<\/code>\uff1a\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u56fe\u5f62\u7a97\u53e3\uff0c\u7528\u4e8e\u7ed8\u5236\u66f2\u7ebf<\/p>\n<\/li>\n<li>\n<p><code>plot();<\/code>\uff1a\u7ed8\u5236\u66f2\u7ebf\uff0c\u5b9a\u4e49\u66f2\u7ebf\u7684\u7c7b\u578b\uff0c\u989c\u8272\u548c\u7ebf\u5bbd\u7b49<\/p>\n<\/li>\n<li>\n<p><code>hold on;<\/code>\uff1a\u5728\u7a97\u53e3\u4e2d\u4fdd\u6301\u5f53\u524d\u56fe\u5f62\u5e76\u7ed8\u5236\u65b0\u56fe\u5f62<\/p>\n<\/li>\n<li>\n<p><code>xlabel(); ylabel();<\/code>\uff1a\u5b9a\u4e49\u5750\u6807\u8f74\u7684\u540d\u5b57\u53ca\u5176\u5b57\u4f53\u7b49\u5c5e\u6027<\/p>\n<\/li>\n<li>\n<p><code>xlim(); ylim();<\/code>\uff1a\u5b9a\u4e49\u5750\u6807\u8f74\u7684\u53d6\u503c\u8303\u56f4<\/p>\n<\/li>\n<li>\n<p><code>xticks(); yticks();<\/code>\uff1a\u5b9a\u4e49\u5750\u6807\u8f74\u53d6\u503c\u548c\u6b65\u957f\uff08\u51b3\u5b9a\u4e86\u5750\u6807\u8f74\u5b9e\u9645\u663e\u793a\u7684\u6570\u503c\uff09<\/p>\n<\/li>\n<li>\n<p><code>legend();<\/code>\uff1a\u5b9a\u4e49\u56fe\u4f8b\u5185\u5bb9<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"\u6298\u7ebf\u56fe\u793a\u4f8b\">\u6298\u7ebf\u56fe\u793a\u4f8b\n<\/h2><hr>\n<p><code>plot()<\/code>\u51fd\u6570\u7684\u8be6\u7ec6\u53c2\u6570\u8bf4\u660e\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/plot.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a><\/p>\n<p>\u4ee5\u6211\u81ea\u5df1\u7684\u7ed8\u56fe\u811a\u672c\u4e3a\u4f8b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-matlab\" data-lang=\"matlab\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot_line_width<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">3<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u56fe\u5f62\u7ebf\u5bbd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">fontname_all<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;times new roman&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u7edf\u4e00\u5168\u90e8\u5b57\u4f53<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlabel_name<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;Potential (V)&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u6807\u7b7e\u540d\u5b57<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylabel_name<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;Specific Current (A g^{-1})&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u6807\u7b7e\u540d\u5b57<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">axis_linewidth<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">2<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u5750\u6807\u8f74\u7ebf\u5bbd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">axis_fontsize<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">28<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u5750\u6807\u8f74\u7684\u6807\u7b7e\u548c\u5750\u6807\u5b57\u53f7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xaxis_range<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"o\">-<\/span><span class=\"mf\">0.2<\/span><span class=\"p\">,<\/span><span class=\"mf\">3.8<\/span><span class=\"p\">];<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u5750\u6807\u8303\u56f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yaxis_range<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"o\">-<\/span><span class=\"mf\">0.18<\/span><span class=\"p\">,<\/span><span class=\"mf\">0.25<\/span><span class=\"p\">];<\/span>    <span class=\"c\">%\u5b9a\u4e49y\u8f74\u5750\u6807\u8303\u56f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xaxis_ticks<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span><span class=\"mi\">1<\/span><span class=\"p\">:<\/span><span class=\"mf\">3.8<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u5750\u6807\u8303\u56f4\u548c\u6b65\u957f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yaxis_ticks<\/span> <span class=\"p\">=<\/span> <span class=\"o\">-<\/span><span class=\"mf\">0.1<\/span><span class=\"p\">:<\/span><span class=\"mf\">0.1<\/span><span class=\"p\">:<\/span><span class=\"mf\">0.25<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49y\u8f74\u5750\u6807\u8303\u56f4\u548c\u6b65\u957f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">legend_fontsize<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">22<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u56fe\u4f8b\u5b57\u53f7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">selected_color<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span><span class=\"s\">&#39;#F97F51&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#1B9CFC&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#F8EFBA&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#58B19F&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#2C3A47&#39;<\/span><span class=\"p\">,<\/span><span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;#B33771&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#3B3B98&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#FD7272&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#9AECDB&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#D6A2E8&#39;<\/span><span class=\"p\">};<\/span>    <span class=\"c\">%\u8bbe\u7f6e\u989c\u8272\u77e9\u9635<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">CV<\/span> <span class=\"p\">=<\/span> <span class=\"n\">readmatrix<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;data.xlsx&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x26<\/span> <span class=\"p\">=<\/span> <span class=\"n\">CV<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y26<\/span> <span class=\"p\">=<\/span> <span class=\"n\">CV<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">3<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x28<\/span> <span class=\"p\">=<\/span> <span class=\"n\">CV<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">4<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y28<\/span> <span class=\"p\">=<\/span> <span class=\"n\">CV<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">6<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x30<\/span> <span class=\"p\">=<\/span> <span class=\"n\">CV<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">7<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y30<\/span> <span class=\"p\">=<\/span> <span class=\"n\">CV<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">9<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">figure<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x26<\/span><span class=\"p\">,<\/span> <span class=\"n\">y26<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">1<\/span><span class=\"p\">},<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_line_width<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x28<\/span><span class=\"p\">,<\/span> <span class=\"n\">y28<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">2<\/span><span class=\"p\">},<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_line_width<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x30<\/span><span class=\"p\">,<\/span> <span class=\"n\">y30<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">4<\/span><span class=\"p\">},<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_line_width<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%title(&#39;Sinusoidal Function&#39;);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlabel<\/span><span class=\"p\">(<\/span><span class=\"n\">xlabel_name<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontName&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylabel<\/span><span class=\"p\">(<\/span><span class=\"n\">ylabel_name<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontName&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlim<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xticks<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylim<\/span><span class=\"p\">(<\/span><span class=\"n\">yaxis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yticks<\/span><span class=\"p\">(<\/span><span class=\"n\">yaxis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%xticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49x\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%yticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49y\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">l<\/span> <span class=\"p\">=<\/span> <span class=\"n\">legend<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;3.2 V&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;3.4 V&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;3.6 V&#39;<\/span><span class=\"p\">);<\/span>   <span class=\"c\">%\u5b9a\u4e49\u56fe\u4f8b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">l<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;box&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontsize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">legend_fontsize<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;location&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;northwest&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;orientation&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;horizontal&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;NumColumns&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">3<\/span><span class=\"p\">);<\/span>   <span class=\"c\">%\u8bbe\u7f6e\u56fe\u4f8b\u7684\u5c5e\u6027<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">gca<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontSize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_fontsize<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;linewidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_linewidth<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;box&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;Position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mf\">0.175<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.2<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.65<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.7<\/span><span class=\"p\">]);<\/span>    <span class=\"c\">%\u8bbe\u7f6e\u5750\u6807\u8f74\uff08ax\uff09\u5c5e\u6027<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">gcf<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">850<\/span><span class=\"p\">,<\/span> <span class=\"mi\">700<\/span><span class=\"p\">]);<\/span>    <span class=\"c\">%\u8bbe\u7f6e\u56fe\u5f62\uff08figure\uff09\u5c5e\u6027<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">% \u4e0b\u9762\u4ee3\u7801\u7528\u4e8e\u5b9e\u73b0\u53ea\u663e\u793a\u5de6\u8f74\u548c\u4e0b\u8f74\u7684\u523b\u5ea6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ax2<\/span> <span class=\"p\">=<\/span> <span class=\"n\">axes<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">get<\/span><span class=\"p\">(<\/span><span class=\"n\">gca<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">),<\/span> <span class=\"s\">&#39;xaxislocation&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;top&#39;<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;yaxislocation&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;right&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;none&#39;<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;XColor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;k&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;YColor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;k&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">ax2<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;xtick&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[],<\/span> <span class=\"s\">&#39;ytick&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[],<\/span> <span class=\"s\">&#39;linewidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_linewidth<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;box&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u5728\u7ed8\u5236\u5b8c\u56fe\u5f62\u4e4b\u540e\u53ef\u4ee5\u901a\u8fc7<code>set()<\/code>\u51fd\u6570\u4fee\u6539\u5305\u62ec\u5750\u6807\u8f74\uff0c\u56fe\u5f62\u7b49\u5404\u4e2a\u5bf9\u8c61\u7684\u5c5e\u6027\uff0c\u5176\u4e2d<code>gca<\/code>\uff08get current ax\uff09\u8868\u793a\u83b7\u53d6\u5f53\u524d\u5750\u6807\u8f74\uff0c<code>gcf<\/code>\uff08get current figure\uff09\u8868\u793a\u83b7\u53d6\u5f53\u524d\u56fe\u5f62<\/p>\n<p>\u9644\u4e0a\u5e38\u7528\u7684\u989c\u8272\u8868\u793a\uff1a<\/p>\n<table>\n  <thead>\n      <tr>\n          <th>\u989c\u8272\u540d\u79f0<\/th>\n          <th>\u77ed\u540d\u79f0<\/th>\n          <th>RGB \u4e09\u5143\u7ec4<\/th>\n          <th>\u5916\u89c2<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td><code>&quot;red&quot;<\/code><\/td>\n          <td><code>&quot;r&quot;<\/code><\/td>\n          <td><code>[1 0 0]<\/code><\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/hg_red.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of the color red\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;green&quot;<\/code><\/td>\n          <td><code>&quot;g&quot;<\/code><\/td>\n          <td><code>[0 1 0]<\/code><\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/hg_green.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of the color green\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;blue&quot;<\/code><\/td>\n          <td><code>&quot;b&quot;<\/code><\/td>\n          <td><code>[0 0 1]<\/code><\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/hg_blue.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of the color blue\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;cyan&quot;<\/code><\/td>\n          <td><code>&quot;c&quot;<\/code><\/td>\n          <td><code>[0 1 1]<\/code><\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/hg_cyan.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of the color cyan\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;magenta&quot;<\/code><\/td>\n          <td><code>&quot;m&quot;<\/code><\/td>\n          <td><code>[1 0 1]<\/code><\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/hg_magenta.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of the color magenta\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;yellow&quot;<\/code><\/td>\n          <td><code>&quot;y&quot;<\/code><\/td>\n          <td><code>[1 1 0]<\/code><\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/hg_yellow.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of the color yellow\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;black&quot;<\/code><\/td>\n          <td><code>&quot;k&quot;<\/code><\/td>\n          <td><code>[0 0 0]<\/code><\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/hg_black.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of the color black\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;white&quot;<\/code><\/td>\n          <td><code>&quot;w&quot;<\/code><\/td>\n          <td><code>[1 1 1]<\/code><\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/hg_white.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of the color white\"\n\t\n\t\n><\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<h2 id=\"\u70b9\u7ebf\u56fe\u793a\u4f8b\">\u70b9\uff08\u7ebf\uff09\u56fe\u793a\u4f8b\n<\/h2><hr>\n<p>\u7531\u4e8e<code>plot()<\/code>\u51fd\u6570\u5728\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u7ed8\u5236\u7684\u662f\u6298\u7ebf\u56fe\uff0c\u8981\u7ed8\u5236\u70b9\u7ebf\u56fe\u53ea\u9700\u8981\u5728<code>plot()<\/code>\u51fd\u6570\u4e2d\u58f0\u660e\u6837\u5f0f\u5373\u53ef\uff0c\u5e38\u7528\u7684\u7ebf\u6027\uff1a<\/p>\n<table>\n  <thead>\n      <tr>\n          <th>\u7ebf\u578b<\/th>\n          <th>\u63cf\u8ff0<\/th>\n          <th>\u8868\u793a\u7684\u7ebf\u6761<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td><code>&quot;-&quot;<\/code><\/td>\n          <td>\u5b9e\u7ebf<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/linestyle_solid.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of solid line\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;--&quot;<\/code><\/td>\n          <td>\u865a\u7ebf<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/linestyle_dashed.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of dashed line\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;:&quot;<\/code><\/td>\n          <td>\u70b9\u7ebf<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/linestyle_dotted.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of dotted line\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;-.&quot;<\/code><\/td>\n          <td>\u70b9\u5212\u7ebf<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/linestyle_dashdotted.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of dash-dotted line, with alternating dashes and dots\"\n\t\n\t\n><\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>\u5e38\u7528\u7684\u6807\u8bb0\uff1a<\/p>\n<table>\n  <thead>\n      <tr>\n          <th>\u6807\u8bb0<\/th>\n          <th>\u63cf\u8ff0<\/th>\n          <th>\u751f\u6210\u7684\u6807\u8bb0<\/th>\n      <\/tr>\n  <\/thead>\n  <tbody>\n      <tr>\n          <td><code>&quot;o&quot;<\/code><\/td>\n          <td>\u5706\u5708<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_o.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of circle marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;+&quot;<\/code><\/td>\n          <td>\u52a0\u53f7<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_plus.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of plus sign marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;*&quot;<\/code><\/td>\n          <td>\u661f\u53f7<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_asterisk.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of asterisk marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;.&quot;<\/code><\/td>\n          <td>\u70b9<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_point.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of point marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;x&quot;<\/code><\/td>\n          <td>\u53c9\u53f7<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_x.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of cross marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;_&quot;<\/code><\/td>\n          <td>\u6c34\u5e73\u7ebf\u6761<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_hline.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of horizontal line marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;|&quot;<\/code><\/td>\n          <td>\u5782\u76f4\u7ebf\u6761<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_vline.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of vertical line marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;square&quot;<\/code><\/td>\n          <td>\u65b9\u5f62<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_s.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of square marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;diamond&quot;<\/code><\/td>\n          <td>\u83f1\u5f62<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_d.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of diamond marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;^&quot;<\/code><\/td>\n          <td>\u4e0a\u4e09\u89d2<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_uptriangle.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of upward-pointing triangle marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;v&quot;<\/code><\/td>\n          <td>\u4e0b\u4e09\u89d2<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_downtriangle.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of downward-pointing triangle marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;&gt;&quot;<\/code><\/td>\n          <td>\u53f3\u4e09\u89d2<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_righttriangle.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of right-pointing triangle marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;&lt;&quot;<\/code><\/td>\n          <td>\u5de6\u4e09\u89d2<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_lefttriangle.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of left-pointing triangle marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;pentagram&quot;<\/code><\/td>\n          <td>\u4e94\u89d2\u5f62<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_p.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of pentagram marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;hexagram&quot;<\/code><\/td>\n          <td>\u516d\u89d2\u5f62<\/td>\n          <td><img src=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/marker_h.png\"\n\t\n\t\n\t\n\tloading=\"lazy\"\n\t\n\t\talt=\"Sample of hexagram marker\"\n\t\n\t\n><\/td>\n      <\/tr>\n      <tr>\n          <td><code>&quot;none&quot;<\/code><\/td>\n          <td>\u65e0\u6807\u8bb0<\/td>\n          <td>\u4e0d\u9002\u7528<\/td>\n      <\/tr>\n  <\/tbody>\n<\/table>\n<p>\u70b9\u7ebf\u56fe\u7684\u6807\u8bb0\u6837\u5f0f\u4e3a\u5728\u70b9\u56fe\u540e\u52a0<code>-<\/code>\uff0c\u4f8b\u5982<code>'o-'<\/code>\u3002<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-matlab\" data-lang=\"matlab\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot_line_width<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">3<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u70b9\u7ebf\u56fe\u7ebf\u5bbd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot_marker_size<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">12<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u70b9\u7ebf\u56fe\u6807\u8bb0\u7b26\u53f7\u5c3a\u5bf8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">fontname_all<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;times new roman&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u7edf\u4e00\u5168\u90e8\u5b57\u4f53<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlabel_name<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;Current Density (A g^{-1})&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u6807\u7b7e\u540d\u5b57<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylabel_name<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;Specific Capacitance (F g^{-1})&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u6807\u7b7e\u540d\u5b57<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">axis_linewidth<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">2<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u5750\u6807\u8f74\u7ebf\u5bbd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">axis_fontsize<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">28<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u5750\u6807\u8f74\u7684\u6807\u7b7e\u548c\u5750\u6807\u5b57\u53f7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xaxis_range<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"mf\">10.5<\/span><span class=\"p\">];<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u5750\u6807\u8303\u56f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yaxis_range<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"mi\">40<\/span><span class=\"p\">];<\/span>    <span class=\"c\">%\u5b9a\u4e49y\u8f74\u5750\u6807\u8303\u56f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xaxis_ticks<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span><span class=\"mi\">2<\/span><span class=\"p\">:<\/span><span class=\"mi\">10<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u523b\u5ea6\u548c\u6b65\u957f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yaxis_ticks<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span><span class=\"mi\">10<\/span><span class=\"p\">:<\/span><span class=\"mi\">40<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49y\u8f74\u5750\u6807\u8303\u56f4\u548c\u6b65\u957f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">legend_fontsize<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">22<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u56fe\u4f8b\u5b57\u53f7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">selected_color<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span><span class=\"s\">&#39;#51c4c2&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#0d818c&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#4583b3&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f78e26&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f172ad&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f7afb9&#39;<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;#c63596&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#be86ba&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#8b66b8&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#4068b2&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#512a93&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#223271&#39;<\/span><span class=\"p\">};<\/span>    <span class=\"c\">%\u5b9a\u4e49\u989c\u8272\u77e9\u9635<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%\u8bfb\u5165\u6570\u636e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">data<\/span> <span class=\"p\">=<\/span> <span class=\"n\">readmatrix<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;data.xlsx&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x1<\/span> <span class=\"p\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y1<\/span> <span class=\"p\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">2<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">figure<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x1<\/span><span class=\"p\">,<\/span> <span class=\"n\">y1<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;o-&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">2<\/span><span class=\"p\">},<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_line_width<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;markersize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_marker_size<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%title(&#39;Sinusoidal Function&#39;);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlabel<\/span><span class=\"p\">(<\/span><span class=\"n\">xlabel_name<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontName&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylabel<\/span><span class=\"p\">(<\/span><span class=\"n\">ylabel_name<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontName&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlim<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xticks<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylim<\/span><span class=\"p\">(<\/span><span class=\"n\">yaxis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yticks<\/span><span class=\"p\">(<\/span><span class=\"n\">yaxis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%xticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49x\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%yticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49y\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">l<\/span> <span class=\"p\">=<\/span> <span class=\"n\">legend<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;&#39;<\/span><span class=\"p\">);<\/span>   <span class=\"c\">%\u5b9a\u4e49\u56fe\u4f8b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">l<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;box&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontsize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">legend_fontsize<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;location&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;northeast&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;orientation&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;vertical&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;NumColumns&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">gca<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontSize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_fontsize<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;linewidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_linewidth<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;box&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;Position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mf\">0.2<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.2<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.7<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.7<\/span><span class=\"p\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">gcf<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">800<\/span><span class=\"p\">,<\/span> <span class=\"mi\">700<\/span><span class=\"p\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ax2<\/span> <span class=\"p\">=<\/span> <span class=\"n\">axes<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">get<\/span><span class=\"p\">(<\/span><span class=\"n\">gca<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">),<\/span> <span class=\"s\">&#39;xaxislocation&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;top&#39;<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;yaxislocation&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;right&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;none&#39;<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;XColor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;k&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;YColor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;k&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">ax2<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;xtick&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[],<\/span> <span class=\"s\">&#39;ytick&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[],<\/span> <span class=\"s\">&#39;linewidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_linewidth<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;box&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u53ccy\u8f74\u70b9\u56fe\">\u53ccy\u8f74\u70b9\u56fe\n<\/h2><hr>\n<p>\u4e3b\u8981\u4f7f\u7528<code>yyaxis<\/code>\u6307\u5b9a\u66f2\u7ebf\u5bf9\u5e94\u7684y\u8f74\uff0c\u4f8b\u5982<code>yyaxis left<\/code>\u6307\u5b9a\u5de6\u4fa7y\u8f74\uff0c<code>yyaxis right<\/code>\u6307\u5b9a\u53f3\u4fa7y\u8f74\u3002<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-matlab\" data-lang=\"matlab\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot_line_width<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">3<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u70b9\u7ebf\u56fe\u7ebf\u5bbd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot_marker_size<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">12<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u70b9\u7ebf\u56fe\u6807\u8bb0\u7b26\u53f7\u5c3a\u5bf8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">% title_name = &#39;Plan 77-2&#39;;    %\u5b9a\u4e49title<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">fontname_all<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;times new roman&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u7edf\u4e00\u5168\u90e8\u5b57\u4f53<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlabel_name<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;Cycling Number&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u6807\u7b7e\u540d\u5b57<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y_left_label_name<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;Capacitance Retention (%)&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u5de6\u4fa7y\u8f74\u6807\u7b7e\u540d\u5b57<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y_right_label_name<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;Efficiency (%)&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u53f3\u4fa7y\u8f74\u6807\u7b7e\u540d\u5b57<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">axis_linewidth<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">2<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u5750\u6807\u8f74\u7ebf\u5bbd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">axis_fontsize<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">28<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u5750\u6807\u8f74\u7684\u6807\u7b7e\u548c\u5750\u6807\u5b57\u53f7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xaxis_range<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"mi\">10000<\/span><span class=\"p\">];<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u5750\u6807\u8303\u56f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y_left_axis_range<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"mi\">200<\/span><span class=\"p\">];<\/span>    <span class=\"c\">%\u5b9a\u4e49\u5de6\u4fa7y\u8f74\u5750\u6807\u8303\u56f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y_right_axis_range<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"mi\">120<\/span><span class=\"p\">];<\/span>    <span class=\"c\">%\u5b9a\u4e49\u53f3\u4fa7y\u8f74\u5750\u6807\u8303\u56f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xaxis_ticks<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span><span class=\"mi\">2500<\/span><span class=\"p\">:<\/span><span class=\"mi\">10000<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u523b\u5ea6\u548c\u6b65\u957f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y_left_axis_ticks<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span><span class=\"mi\">50<\/span><span class=\"p\">:<\/span><span class=\"mi\">200<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u5de6\u4fa7y\u8f74\u5750\u6807\u8303\u56f4\u548c\u6b65\u957f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y_right_axis_ticks<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span><span class=\"mi\">20<\/span><span class=\"p\">:<\/span><span class=\"mi\">120<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u53f3\u4fa7y\u8f74\u5750\u6807\u8303\u56f4\u548c\u6b65\u957f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">legend_fontsize<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">26<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u56fe\u4f8b\u5b57\u53f7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">selected_color<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span><span class=\"s\">&#39;#51c4c2&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#0d818c&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#4583b3&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f78e26&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f172ad&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f7afb9&#39;<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;#c63596&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#be86ba&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#8b66b8&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#4068b2&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#512a93&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#223271&#39;<\/span><span class=\"p\">};<\/span>    <span class=\"c\">%\u5b9a\u4e49\u989c\u8272\u77e9\u9635<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%\u8bfb\u5165\u6570\u636e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">data<\/span> <span class=\"p\">=<\/span> <span class=\"n\">readmatrix<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;data.xlsx&#39;<\/span><span class=\"p\">);<\/span>    \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x1<\/span> <span class=\"p\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">:<\/span><span class=\"mi\">499<\/span><span class=\"p\">:<\/span><span class=\"k\">end<\/span><span class=\"p\">,<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y1<\/span> <span class=\"p\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">:<\/span><span class=\"mi\">499<\/span><span class=\"p\">:<\/span><span class=\"k\">end<\/span><span class=\"p\">,<\/span><span class=\"mi\">3<\/span><span class=\"p\">);<\/span>    <span class=\"c\">%left axis<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x2<\/span> <span class=\"p\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">:<\/span><span class=\"mi\">499<\/span><span class=\"p\">:<\/span><span class=\"k\">end<\/span><span class=\"p\">,<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y2<\/span> <span class=\"p\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">:<\/span><span class=\"mi\">499<\/span><span class=\"p\">:<\/span><span class=\"k\">end<\/span><span class=\"p\">,<\/span><span class=\"mi\">4<\/span><span class=\"p\">);<\/span>    <span class=\"c\">%right axis<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x3<\/span> <span class=\"p\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">:<\/span><span class=\"mi\">499<\/span><span class=\"p\">:<\/span><span class=\"k\">end<\/span><span class=\"p\">,<\/span><span class=\"mi\">5<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y3<\/span> <span class=\"p\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">:<\/span><span class=\"mi\">499<\/span><span class=\"p\">:<\/span><span class=\"k\">end<\/span><span class=\"p\">,<\/span><span class=\"mi\">7<\/span><span class=\"p\">);<\/span>    <span class=\"c\">%left axis<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x4<\/span> <span class=\"p\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">:<\/span><span class=\"mi\">499<\/span><span class=\"p\">:<\/span><span class=\"k\">end<\/span><span class=\"p\">,<\/span><span class=\"mi\">5<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y4<\/span> <span class=\"p\">=<\/span> <span class=\"n\">data<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">:<\/span><span class=\"mi\">499<\/span><span class=\"p\">:<\/span><span class=\"k\">end<\/span><span class=\"p\">,<\/span><span class=\"mi\">8<\/span><span class=\"p\">);<\/span>    <span class=\"c\">%right axis<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">% format bank;  %format bank\u8bbe\u7f6e\u8f93\u51fa\u683c\u5f0f\uff0c\u4f7f\u5f97\u6570\u503c\u663e\u793a\u4e3a\u5b9a\u70b9\u683c\u5f0f\uff0c\u4e14\u5c0f\u6570\u70b9\u540e\u4fdd\u7559\u4e24\u4f4d\u6570\u5b57<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">% charge_retention = num2str(data1(end,2)\/data1(1,2)*100);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">% discharge_retention = num2str(data1(end,3)\/data1(1,3)*100);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">% cyclling_number = num2str(data1(end,1));<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">% legend1 = [&#39;Charge(retain &#39;, charge_retention, &#39; \\% after &#39;, cyclling_number, &#39; cycles).&#39;];    %\u8bbe\u7f6e\u56fe\u4f8b1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">% legend2 = [&#39;Discharge(retain &#39;, discharge_retention, &#39; \\% after &#39;, cyclling_number, &#39; cycles).&#39;];    %\u8bbe\u7f6e\u56fe\u4f8b2<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">figure<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yyaxis<\/span> <span class=\"n\">left<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x1<\/span><span class=\"p\">,<\/span> <span class=\"n\">y1<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;o&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">1<\/span><span class=\"p\">},<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_line_width<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;markersize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_marker_size<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x3<\/span><span class=\"p\">,<\/span> <span class=\"n\">y3<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;s&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">7<\/span><span class=\"p\">},<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_line_width<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;markersize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_marker_size<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yyaxis<\/span> <span class=\"n\">right<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x2<\/span><span class=\"p\">,<\/span> <span class=\"n\">y2<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;o&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">1<\/span><span class=\"p\">},<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_line_width<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;markersize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_marker_size<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x4<\/span><span class=\"p\">,<\/span> <span class=\"n\">y4<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;s&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">7<\/span><span class=\"p\">},<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_line_width<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;markersize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_marker_size<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">% title(title_name);    %\u8bbe\u7f6e\u6807\u9898<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlabel<\/span><span class=\"p\">(<\/span><span class=\"n\">xlabel_name<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontName&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylabel<\/span><span class=\"p\">(<\/span><span class=\"n\">y_right_label_name<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontName&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlim<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xticks<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylim<\/span><span class=\"p\">(<\/span><span class=\"n\">y_right_axis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yticks<\/span><span class=\"p\">(<\/span><span class=\"n\">y_right_axis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yyaxis<\/span> <span class=\"n\">left<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylabel<\/span><span class=\"p\">(<\/span><span class=\"n\">y_left_label_name<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontName&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylim<\/span><span class=\"p\">(<\/span><span class=\"n\">y_left_axis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yticks<\/span><span class=\"p\">(<\/span><span class=\"n\">y_left_axis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ax<\/span> <span class=\"p\">=<\/span> <span class=\"n\">gca<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%ax.YAxis(1).Color = &#39;k&#39;; % \u5de6\u4fa7y\u8f74\u523b\u5ea6\u989c\u8272<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%ax.YAxis(2).Color = &#39;k&#39;; % \u53f3\u4fa7y\u8f74\u523b\u5ea6\u989c\u8272<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%xticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49x\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%yticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49y\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">l<\/span> <span class=\"p\">=<\/span> <span class=\"n\">legend<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;2.8 V&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;3.0 V&#39;<\/span><span class=\"p\">);<\/span>   <span class=\"c\">%\u5b9a\u4e49\u56fe\u4f8b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">l<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;box&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontsize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">legend_fontsize<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;location&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;southwest&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;orientation&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;vertical&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;NumColumns&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">ax<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontSize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_fontsize<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;linewidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_linewidth<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;box&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;Position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mf\">0.175<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.2<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.65<\/span><span class=\"p\">,<\/span> <span class=\"mf\">0.7<\/span><span class=\"p\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">gcf<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1400<\/span><span class=\"p\">,<\/span> <span class=\"mi\">700<\/span><span class=\"p\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ax2<\/span> <span class=\"p\">=<\/span> <span class=\"n\">axes<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">get<\/span><span class=\"p\">(<\/span><span class=\"n\">gca<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">),<\/span> <span class=\"s\">&#39;xaxislocation&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;top&#39;<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;yaxislocation&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;right&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;none&#39;<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;XColor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;k&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;YColor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;k&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">ax2<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;xtick&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[],<\/span> <span class=\"s\">&#39;ytick&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[],<\/span> <span class=\"s\">&#39;linewidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_linewidth<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;box&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u7ed8\u5236\u9762\u79ef\u586b\u5145\u56fe\u5728\u4e00\u4e2a\u7a97\u53e3\u7ed8\u5236\u591a\u56fe\">\u7ed8\u5236\u9762\u79ef\uff08\u586b\u5145\uff09\u56fe&amp;&amp;\u5728\u4e00\u4e2a\u7a97\u53e3\u7ed8\u5236\u591a\u56fe\n<\/h2><hr>\n<p>\u9996\u5148\u8981\u5bf9\u7a97\u53e3\u8fdb\u884c\u5e03\u5c40\uff0c\u6bd4\u5982\u6211\u8981\u653e\u51e0\u5f20\u56fe\uff0c\u8981\u600e\u4e48\u5b89\u6392\u8fd9\u51e0\u5f20\u56fe\u7684\u4f4d\u7f6e\u3002\u5047\u8bbe\u6211\u8981\u653e\u4e09\u5f20\u56fe\uff0c\u8fd93\u5f20\u56fe\u5206\u62101\u5217\u7eb5\u5411\u6392\u5e03\uff0c\u90a3\u4e48\u9996\u5148\u9700\u8981\u7528\u5230<code>tiledlayout(3,1,'TileSpacing', 'compact')<\/code>\u51fd\u6570\u5b89\u6392\u4e00\u4e2a3\u884c1\u5217\u7684\u5e03\u5c40\uff0c\u540e\u9762\u7684<code>'TileSpacing', 'compact'<\/code>\u7528\u4e8e\u8868\u793a\u5c3d\u53ef\u80fd\u51cf\u5c11\u4e09\u5f20\u56fe\u4e4b\u95f4\u7684\u95f4\u8ddd\uff0c\u8fd9\u6837\u6392\u5e03\u4f1a\u66f4\u7d27\u5bc6<\/p>\n<p>\u5e03\u5c40\u5b89\u6392\u597d\u4e4b\u540e\u4f7f\u7528<code>nexttile<\/code>\u6765\u5206\u522b\u5728\u6bcf\u4e2a\u533a\u57df\u7ed8\u56fe\u5c31\u53ef\u4ee5\u4e86<\/p>\n<p>\u7ed8\u5236\u9762\u79ef\u56fe\u9700\u8981\u7528\u5230<code>area()<\/code>\u51fd\u6570\uff0c\u53ef\u4ee5\u53c2\u8003<a class=\"link\" href=\"https:\/\/ww2.mathworks.cn\/help\/matlab\/ref\/area.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u5b98\u65b9\u6587\u6863<\/a>\uff0c\u4ee5\u6211\u81ea\u5df1\u7528\u7684\u4e3a\u4f8b\uff0c\u5e38\u7528\u7684\u53c2\u6570\u5305\u62ec\uff1a<\/p>\n<blockquote>\n<p><code>'facecolor'<\/code>: \u8868\u793a\u9762\u79ef\u586b\u5145\u7684\u989c\u8272<\/p>\n<p><code>'facealpha'<\/code>: \u8bbe\u7f6e\u9762\u79ef\u586b\u5145\u989c\u8272\u7684\u900f\u660e\u5ea6\uff0c<code>0<\/code>\u8868\u793a\u5b8c\u5168\u900f\u660e\uff0c<code>1<\/code>\u8868\u793a\u5b8c\u5168\u4e0d\u900f\u660e<\/p>\n<p><code>'edgecolor'<\/code>: \u8868\u793a\u9762\u79ef\u56fe\u8fb9\u7f18\u7684\u989c\u8272\uff0c<code>'none'<\/code>\u8868\u793a\u6ca1\u6709\u989c\u8272<\/p>\n<p><code>'basevalue'<\/code>: \u8bbe\u7f6e\u9762\u79ef\u56fe\u7684\u57fa\u7ebf\u503c\uff0c<code>0<\/code>\u8868\u793a\u586b\u5145\u5230y\u8f74<\/p>\n<p><code>'showbaseline'<\/code>: \u6b64\u53c2\u6570\u63a7\u5236\u662f\u5426\u663e\u793a\u57fa\u7ebf\uff0c<code>'off'<\/code> \u8868\u793a\u4e0d\u663e\u793a\u57fa\u7ebf<\/p><\/blockquote>\n<p>\u5728\u8fd9\u4e2a\u811a\u672c\u4e2d\u8fd8\u7528\u5230\u4e86<code>text()<\/code>\u51fd\u6570\uff0c\u7528\u4e8e\u5728\u56fe\u4e2d\u67d0\u4f4d\u7f6e\u6dfb\u52a0\u6587\u5b57\u8bf4\u660e<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-matlab\" data-lang=\"matlab\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot_line_width<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">3<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u56fe\u5f62\u7ebf\u5bbd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">fontname_all<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;times new roman&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u7edf\u4e00\u5168\u90e8\u5b57\u4f53<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlabel_name<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;Binding Energy (eV)&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u6807\u7b7e\u540d\u5b57<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylabel_name<\/span> <span class=\"p\">=<\/span> <span class=\"s\">&#39;Intensity (a.u.)&#39;<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u6807\u7b7e\u540d\u5b57<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">axis_linewidth<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">2<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u5750\u6807\u8f74\u7ebf\u5bbd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">axis_fontsize<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">28<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u5750\u6807\u8f74\u7684\u6807\u7b7e\u548c\u5750\u6807\u5b57\u53f7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xaxis_range<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">681<\/span><span class=\"p\">,<\/span><span class=\"mi\">695<\/span><span class=\"p\">];<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u5750\u6807\u8303\u56f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yaxis_range<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"o\">-<\/span><span class=\"mi\">2000<\/span><span class=\"p\">,<\/span><span class=\"mi\">200000<\/span><span class=\"p\">];<\/span>    <span class=\"c\">%\u5b9a\u4e49y\u8f74\u5750\u6807\u8303\u56f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xaxis_ticks<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">682<\/span><span class=\"p\">:<\/span><span class=\"mi\">4<\/span><span class=\"p\">:<\/span><span class=\"mi\">695<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49x\u8f74\u5750\u6807\u8303\u56f4\u548c\u6b65\u957f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yaxis_ticks<\/span> <span class=\"p\">=<\/span> <span class=\"o\">-<\/span><span class=\"mi\">2000<\/span><span class=\"p\">:<\/span><span class=\"mi\">5000<\/span><span class=\"p\">:<\/span><span class=\"mi\">200000<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49y\u8f74\u5750\u6807\u8303\u56f4\u548c\u6b65\u957f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">legend_fontsize<\/span> <span class=\"p\">=<\/span> <span class=\"mi\">24<\/span><span class=\"p\">;<\/span>    <span class=\"c\">%\u5b9a\u4e49\u56fe\u4f8b\u5b57\u53f7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">selected_color<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span><span class=\"s\">&#39;#F97F51&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#1B9CFC&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#F8EFBA&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#58B19F&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#2C3A47&#39;<\/span><span class=\"p\">,<\/span><span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;#B33771&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#3B3B98&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#FD7272&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#9AECDB&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#D6A2E8&#39;<\/span><span class=\"p\">};<\/span>    <span class=\"c\">%\u8bbe\u7f6e\u989c\u8272\u77e9\u9635<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xps<\/span> <span class=\"p\">=<\/span> <span class=\"n\">readmatrix<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;4pyt f1s.xlsx&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x1<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y1<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">2<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x2<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y2<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">3<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x3<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y3<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">4<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x4<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y4<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">5<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x5<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">7<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y5<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">8<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x6<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">7<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y6<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">9<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x7<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">7<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y7<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">10<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x8<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">7<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y8<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">11<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x9<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">13<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y9<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">14<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x10<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">13<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y10<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">15<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x11<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">13<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y11<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">16<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">x12<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">13<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">y12<\/span> <span class=\"p\">=<\/span> <span class=\"n\">xps<\/span><span class=\"p\">(:,<\/span><span class=\"mi\">17<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">figure<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">tiledlayout<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;TileSpacing&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;compact&#39;<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">nexttile<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">area<\/span><span class=\"p\">(<\/span><span class=\"n\">x2<\/span><span class=\"p\">,<\/span> <span class=\"n\">y2<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;facecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">8<\/span><span class=\"p\">},<\/span><span class=\"s\">&#39;facealpha&#39;<\/span><span class=\"p\">,<\/span><span class=\"mf\">0.4<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;edgecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;none&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;basevalue&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;showbaseline&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">area<\/span><span class=\"p\">(<\/span><span class=\"n\">x3<\/span><span class=\"p\">,<\/span> <span class=\"n\">y3<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;facecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">7<\/span><span class=\"p\">},<\/span><span class=\"s\">&#39;facealpha&#39;<\/span><span class=\"p\">,<\/span><span class=\"mf\">0.4<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;edgecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;none&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;basevalue&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;showbaseline&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x4<\/span><span class=\"p\">,<\/span> <span class=\"n\">y4<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">4<\/span><span class=\"p\">},<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_line_width<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x1<\/span><span class=\"p\">,<\/span> <span class=\"n\">y1<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;--&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#826C61&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span> <span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">text<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;string&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;F1s - Soak for 24h&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;units&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;normalized&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mf\">0.04<\/span><span class=\"p\">,<\/span><span class=\"mf\">0.8<\/span><span class=\"p\">],<\/span> <span class=\"s\">&#39;FontSize&#39;<\/span><span class=\"p\">,<\/span><span class=\"mi\">21<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlim<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xticks<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylim<\/span><span class=\"p\">(<\/span><span class=\"n\">yaxis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yticks<\/span><span class=\"p\">(<\/span><span class=\"n\">yaxis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%xticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49x\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%yticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49y\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%l = legend(&#39;0.5 M&#39;, &#39;1.0 M&#39;, &#39;1.5 M&#39;);   %\u5b9a\u4e49\u56fe\u4f8b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%set(l, &#39;Interpreter&#39;,&#39;latex&#39;, &#39;box&#39;, &#39;off&#39;, &#39;fontname&#39;, fontname_all, &#39;fontsize&#39;, legend_fontsize, ...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%    &#39;location&#39;, &#39;northwest&#39;, &#39;orientation&#39;, &#39;horizontal&#39;, &#39;NumColumns&#39;, 3);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">gca<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontSize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_fontsize<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;linewidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_linewidth<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;XTickLabel&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[],<\/span><span class=\"s\">&#39;YTickLabel&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[],<\/span><span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;XDir&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;reverse&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;ytick&#39;<\/span><span class=\"p\">,[]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">gcf<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">800<\/span><span class=\"p\">,<\/span> <span class=\"mi\">700<\/span><span class=\"p\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">nexttile<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">area<\/span><span class=\"p\">(<\/span><span class=\"n\">x6<\/span><span class=\"p\">,<\/span> <span class=\"n\">y6<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;facecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">8<\/span><span class=\"p\">},<\/span><span class=\"s\">&#39;facealpha&#39;<\/span><span class=\"p\">,<\/span><span class=\"mf\">0.4<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;edgecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;none&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;basevalue&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;showbaseline&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">area<\/span><span class=\"p\">(<\/span><span class=\"n\">x7<\/span><span class=\"p\">,<\/span> <span class=\"n\">y7<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;facecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">7<\/span><span class=\"p\">},<\/span><span class=\"s\">&#39;facealpha&#39;<\/span><span class=\"p\">,<\/span><span class=\"mf\">0.4<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;edgecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;none&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;basevalue&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;showbaseline&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x8<\/span><span class=\"p\">,<\/span> <span class=\"n\">y8<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">4<\/span><span class=\"p\">},<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_line_width<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x5<\/span><span class=\"p\">,<\/span> <span class=\"n\">y5<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;--&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#826C61&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">text<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;string&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;F1s - Positive Electrode&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;units&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;normalized&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mf\">0.04<\/span><span class=\"p\">,<\/span><span class=\"mf\">0.8<\/span><span class=\"p\">],<\/span> <span class=\"s\">&#39;FontSize&#39;<\/span><span class=\"p\">,<\/span><span class=\"mi\">21<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylabel<\/span><span class=\"p\">(<\/span><span class=\"n\">ylabel_name<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;Interpreter&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;latex&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;FontName&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlim<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xticks<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylim<\/span><span class=\"p\">(<\/span><span class=\"n\">yaxis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yticks<\/span><span class=\"p\">(<\/span><span class=\"n\">yaxis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%xticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49x\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%yticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49y\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%l = legend(&#39;0.5 M&#39;, &#39;1.0 M&#39;, &#39;1.5 M&#39;);   %\u5b9a\u4e49\u56fe\u4f8b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%set(l, &#39;Interpreter&#39;,&#39;latex&#39;, &#39;box&#39;, &#39;off&#39;, &#39;fontname&#39;, fontname_all, &#39;fontsize&#39;, legend_fontsize, ...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%    &#39;location&#39;, &#39;northwest&#39;, &#39;orientation&#39;, &#39;horizontal&#39;, &#39;NumColumns&#39;, 3);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">gca<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontSize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_fontsize<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;linewidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_linewidth<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;XTickLabel&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[],<\/span><span class=\"s\">&#39;YTickLabel&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[],<\/span><span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;XDir&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;reverse&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;ytick&#39;<\/span><span class=\"p\">,[]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">gcf<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">800<\/span><span class=\"p\">,<\/span> <span class=\"mi\">700<\/span><span class=\"p\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">nexttile<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">area<\/span><span class=\"p\">(<\/span><span class=\"n\">x10<\/span><span class=\"p\">,<\/span> <span class=\"n\">y10<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;facecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">8<\/span><span class=\"p\">},<\/span><span class=\"s\">&#39;facealpha&#39;<\/span><span class=\"p\">,<\/span><span class=\"mf\">0.4<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;edgecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;none&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;basevalue&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;showbaseline&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">area<\/span><span class=\"p\">(<\/span><span class=\"n\">x11<\/span><span class=\"p\">,<\/span> <span class=\"n\">y11<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;facecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">7<\/span><span class=\"p\">},<\/span><span class=\"s\">&#39;facealpha&#39;<\/span><span class=\"p\">,<\/span><span class=\"mf\">0.4<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;edgecolor&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;none&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;basevalue&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;showbaseline&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;off&#39;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x12<\/span><span class=\"p\">,<\/span> <span class=\"n\">y12<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">selected_color<\/span><span class=\"p\">{<\/span><span class=\"mi\">4<\/span><span class=\"p\">},<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">plot_line_width<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">hold<\/span> <span class=\"n\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">plot<\/span><span class=\"p\">(<\/span><span class=\"n\">x9<\/span><span class=\"p\">,<\/span> <span class=\"n\">y9<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;--&#39;<\/span> <span class=\"p\">,<\/span><span class=\"s\">&#39;color&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#826C61&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;LineWidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%title(&#39;Sinusoidal Function&#39;);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlabel<\/span><span class=\"p\">(<\/span><span class=\"n\">xlabel_name<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;Interpreter&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;latex&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;FontName&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">text<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;string&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;F1s - Negative Electrode&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;units&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;normalized&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mf\">0.04<\/span><span class=\"p\">,<\/span><span class=\"mf\">0.8<\/span><span class=\"p\">],<\/span> <span class=\"s\">&#39;FontSize&#39;<\/span><span class=\"p\">,<\/span><span class=\"mi\">21<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xlim<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">xticks<\/span><span class=\"p\">(<\/span><span class=\"n\">xaxis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">ylim<\/span><span class=\"p\">(<\/span><span class=\"n\">yaxis_range<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">yticks<\/span><span class=\"p\">(<\/span><span class=\"n\">yaxis_ticks<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%xticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49x\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%yticklabels({1,2,3,4,5});%\u81ea\u5b9a\u4e49y\u8f74\u5750\u6807\u6807\u7b7e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%l = legend(&#39;0.5 M&#39;, &#39;1.0 M&#39;, &#39;1.5 M&#39;);   %\u5b9a\u4e49\u56fe\u4f8b<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%set(l, &#39;Interpreter&#39;,&#39;latex&#39;, &#39;box&#39;, &#39;off&#39;, &#39;fontname&#39;, fontname_all, &#39;fontsize&#39;, legend_fontsize, ...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c\">%    &#39;location&#39;, &#39;northwest&#39;, &#39;orientation&#39;, &#39;horizontal&#39;, &#39;NumColumns&#39;, 3);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">gca<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;fontname&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">fontname_all<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;FontSize&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_fontsize<\/span><span class=\"p\">,<\/span> <span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;linewidth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">axis_linewidth<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;YTickLabel&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[],<\/span><span class=\"s\">&#39;XDir&#39;<\/span><span class=\"p\">,<\/span><span class=\"s\">&#39;reverse&#39;<\/span><span class=\"p\">,<\/span><span class=\"c\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"s\">&#39;ytick&#39;<\/span><span class=\"p\">,[]);<\/span>  <span class=\"c\">%&#39;XDir&#39;,&#39;reverse&#39;\u7528\u4e8e\u5c06x\u8f74\u53cd\u5411<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">set<\/span><span class=\"p\">(<\/span><span class=\"n\">gcf<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;position&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">[<\/span><span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">50<\/span><span class=\"p\">,<\/span> <span class=\"mi\">800<\/span><span class=\"p\">,<\/span> <span class=\"mi\">700<\/span><span class=\"p\">]);<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>\u4ee5\u4e0b\u662f\u4f7f\u7528\u8be5\u811a\u672c\u7684\u7ed8\u5236\u7ed3\u679c\u793a\u4f8b\uff1a<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-7\/f1s.png\"\n\twidth=\"1000\"\n\theight=\"875\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-7\/f1s_hu_d67597e27e644f01.png 480w, https:\/\/been.ee\/p\/0-0-0-7\/f1s_hu_b56e6ad40bf87a2f.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"114\"\n\t\tdata-flex-basis=\"274px\"\n\t\n><\/p>\n<h2 id=\"ncs\u671f\u520a\u914d\u8272\u65b9\u6848\">NCS\u671f\u520a\u914d\u8272\u65b9\u6848\n<\/h2><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-matlab\" data-lang=\"matlab\"><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#51c4c2&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#0d818c&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#4583b3&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f78e26&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f172ad&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f7afb9&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#c63596&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#be86ba&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#8b66b8&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#4068b2&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#512a93&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#223271&#39;<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#b03d26&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#005f81&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#9ccfe6&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#e0897e&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#a5a7ab&#39;<\/span><span class=\"p\">}<\/span>   <span class=\"c\">% \u5f88\u8212\u670d<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#f7ae55&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#c4dfa2&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#70c17f&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f9e9ab&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#b7e1e9&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#7ca9cc&#39;<\/span><span class=\"p\">}<\/span>   <span class=\"c\">% \u6d45\u8272\u6e10\u53d8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#8000ff&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#b2f397&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#4d4dfb&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#e5cd75&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#1697f3&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#ff9a51&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#3dd5e9&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#ff4b22&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#81ffb6&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#ff0000&#39;<\/span><span class=\"p\">}<\/span>  <span class=\"c\">% \u660e\u4eae<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#be402a&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#a635f6&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#16c41c&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#4b6cff&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#ff2200&#39;<\/span><span class=\"p\">}<\/span>  <span class=\"c\">% \u5feb\u901f\u5206\u8fa8\uff0c\u9ad8\u9971\u548c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#69ab32&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f0e356&#39;<\/span><span class=\"p\">}<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#bcd49b&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f8efaf&#39;<\/span><span class=\"p\">}<\/span>  <span class=\"c\">% \u6d45\u8272<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#7dc5a0&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#d58890&#39;<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#1a95d3&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#D31275&#39;<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#d28019&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#796Fa4&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#6faede&#39;<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#2a7dc1&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#e36d24&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#237b7b&#39;<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#f7c496&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#98ce98&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#beb0d1&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f6f3a3&#39;<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#501b86&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#318c9a&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#98ab20&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#de9b12&#39;<\/span><span class=\"p\">}<\/span>  <span class=\"c\">% \u6df1\u8272\u7cfb<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#814e92&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f5bb3d&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#e67b50&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#fdedd2&#39;<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#974723&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#5892cb&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#66328f&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#f3ba19&#39;<\/span><span class=\"p\">}<\/span>  <span class=\"c\">% \u6df1\u8272\u9ad8\u5bf9\u6bd4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#bedb96&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#fad2aa&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#99c4e9&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#e69594&#39;<\/span><span class=\"p\">}<\/span>  <span class=\"c\">% \u6d45\u8272\u7cfb<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#4c94bd&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#e3ad52&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#eae270&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#85c2e4&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#d29bc4&#39;<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#119882&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#395281&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#E8957B&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#9288BB&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#E79E41&#39;<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#BB4F4F&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#2A69B3&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#74B38F&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#9B76B2&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#B99523&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#27B5AF&#39;<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">{<\/span><span class=\"s\">&#39;#DF605E&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#9EBB65&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#63B8B8&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#5579B5&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#F6B56A&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#794B21&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#DCBD9B&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#E8CC32&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;#BE752D&#39;<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5199\u5728\u6700\u540e\">\u5199\u5728\u6700\u540e\n<\/h2><hr>\n<p>\u5404\u79cd\u7c7b\u578b\u56fe\u4f1a\u6839\u636e\u81ea\u5df1\u7684\u60c5\u51b5\u518d\u8fdb\u884c\u540e\u7eed\u66f4\u65b0<\/p>\n"},{"title":"\u6709\u673a\u5206\u5b50\u7684\u4e09\u7ef4\u6a21\u578b\u6e32\u67d3\u5e76\u5bfc\u51fa\u5c3a\u5bf8","link":"https:\/\/been.ee\/p\/0-0-0-6\/","pubDate":"Mon, 03 Jul 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-6\/","description":"<h2 id=\"\u8ba1\u7b97\u5206\u5b50\u5c3a\u5bf8\u7684\u7f51\u7ad9\">\u8ba1\u7b97\u5206\u5b50\u5c3a\u5bf8\u7684\u7f51\u7ad9\n<\/h2><hr>\n<p><a class=\"link\" href=\"https:\/\/jerkwin.github.io\/2016\/06\/24\/%E5%88%86%E5%AD%90%E5%B0%BA%E5%AF%B8%E5%A4%A7%E5%B0%8F%E7%9A%84%E8%AE%A1%E7%AE%97\/\"  target=\"_blank\" rel=\"noopener\"\n    >\u5206\u5b50\u5c3a\u5bf8\u5927\u5c0f\u7684\u8ba1\u7b97|Jerkwin<\/a><\/p>\n<p>\u9700\u8981\u7528\u5230\u5206\u5b50\u4e2d\u5404\u5143\u7d20\u7684XYZ\u5750\u6807\uff0c\u8fd9\u4e2a\u5750\u6807\u53ef\u4ee5\u4eceChem 3D\u8f6f\u4ef6\u4e2d\u5f97\u5230\uff08<del>\u76ee\u524d\u5176\u5b9e\u4e0d\u662f\u7279\u522b\u786e\u5b9a\u5bfc\u51fa\u6765\u7684\u662f\u5426\u51c6\u786e<\/del>\u4f3c\u4e4eChem3D\u7ed8\u5236\u7684\u5206\u5b50\u5c3a\u5bf8\u662f\u8fd1\u4f3c\u503c\uff0c\u57fa\u4e8e\u6240\u4f7f\u7528\u7684\u5206\u5b50\u6a21\u578b\u548c\u8ba1\u7b97\u529b\u573a\uff09\uff0c\u7136\u540e\u5c06\u5750\u6807\u5bfc\u5165\u540e\u5c31\u53ef\u4ee5\u5f97\u5230\u5206\u5b50\u7684\u6a21\u578b\u548c\u5c3a\u5bf8\u3002<\/p>\n<p>\u4f46\u662f\u8fd9\u4e2a\u7f51\u7ad9\u7684\u8bdd\uff0c\u5bfc\u51fa\u7684\u56fe\u4e0d\u65b9\u4fbf\u8c03\u6574\u653e\u5230\u6587\u7ae0\u4e2d\uff0c\u8bba\u6587\u7528\u7684\u8bdd\u53ef\u4ee5\u4f7f\u7528\u4e0b\u9762\u7684\u65b9\u6cd5\u3002<\/p>\n<h2 id=\"\u5229\u7528multiwfn\u548cvmd\u7a0b\u5e8f\u8ba1\u7b97\u5c3a\u5bf8\u5e76\u6e32\u67d3\u6a21\u578b\">\u5229\u7528Multiwfn\u548cVMD\u7a0b\u5e8f\u8ba1\u7b97\u5c3a\u5bf8\u5e76\u6e32\u67d3\u6a21\u578b\n<\/h2><hr>\n<p>\u53c2\u8003\u6587\u7ae0\uff1a<\/p>\n<blockquote>\n<ul>\n<li>\n<p><a class=\"link\" href=\"http:\/\/sobereva.com\/426\"  target=\"_blank\" rel=\"noopener\"\n    >\u4f7f\u7528Multiwfn\u8ba1\u7b97\u5206\u5b50\u7684\u957f\u5bbd\u9ad8\u4ee5\u53ca\u663e\u793a\u5206\u5b50\u7684\u4e3b\u8f74<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/zhuanlan.zhihu.com\/p\/398515892\"  target=\"_blank\" rel=\"noopener\"\n    >\u5206\u5b50\u6a21\u62df||VMD\u56fe\u50cf\u4fdd\u5b58\u5b9e\u7528\u6559\u7a0b<\/a><\/p>\n<\/li>\n<\/ul><\/blockquote>\n<p>\u9700\u8981\u8f6f\u4ef6\uff1a<\/p>\n<blockquote>\n<ul>\n<li>\n<p><a class=\"link\" href=\"http:\/\/sobereva.com\/multiwfn\/\"  target=\"_blank\" rel=\"noopener\"\n    >Multiwfn<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"http:\/\/www.ks.uiuc.edu\/Research\/vmd\/\"  target=\"_blank\" rel=\"noopener\"\n    >VMD<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/revvitysignals.com\/all-products\"  target=\"_blank\" rel=\"noopener\"\n    >ChemDraw\/Chem 3D<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u524d\u4e24\u4e2a\u81ea\u884c\u53bb\u4e0a\u9762\u7684\u5b98\u7f51\u4e0b\u8f7d\u5373\u53ef\uff0cChemDraw\u53ef\u4ee5\u81ea\u884c\u60f3\u529e\u6cd5<\/p><\/blockquote>\n<h3 id=\"chemdrawchem-3d\u7ed8\u5236\u5206\u5b50\u7ed3\u6784\">ChemDraw\/Chem 3D\u7ed8\u5236\u5206\u5b50\u7ed3\u6784\n<\/h3><hr>\n<p>\u9996\u5148\u5728ChemDraw\u4e2d\u7ed8\u5236\u51fa\u5206\u5b50\u7ed3\u6784\uff0c\u7136\u540e\u9009\u4e2d\u5206\u5b50\u7ed3\u6784\uff0c<code>Ctrl + C<\/code>\u590d\u5236\u540e\u6253\u5f00Chem 3D\uff0c<code>Ctrl + V<\/code>\u7c98\u8d34\u8fdb\u53bb\u5c31\u5c31\u53ef\u4ee5\u5f97\u5230\u5206\u5b50\u539f\u59cb\u76842D\u7ed3\u6784\uff08\u53f3\u4fa7\uff09\u3001\u5206\u5b50\u76843D\u6a21\u578b\uff08\u4e2d\u95f4\uff09\u548c\u6bcf\u4e2a\u5206\u5b50\u5143\u7d20\u7684\u5bf9\u5e94\u5750\u6807\uff08\u5de6\u4fa7\uff09\u3002<\/p>\n<p>\u7136\u540e\u4ec0\u4e48\u90fd\u4e0d\u7528\u52a8\uff0c\u76f4\u63a5\u53e6\u5b58\u4e3a<code>.pdb<\/code>\u6587\u4ef6\u5907\u7528\u3002<\/p>\n<p>PS\uff1a\u76f4\u63a5\u5728Chem3D\u4e2d\u7ed8\u5236\u597d\u50cf\u4e5f\u53ef\u4ee5<\/p>\n<h3 id=\"mutiwfn\u8ba1\u7b97\">Mutiwfn\u8ba1\u7b97\n<\/h3><hr>\n<p>\u6253\u5f00Mutiwfn\u7a0b\u5e8f\uff0c\u6ce8\u610f\u6253\u5f00\u540e\u662f\u547d\u4ee4\u884c\u754c\u9762\uff0c\u9700\u8981\u8f93\u5165<code>.pdb<\/code>\u6587\u4ef6\u7684\u8def\u5f84\uff0c\u56de\u8f66\u540e\u4f9d\u6b21\u8f93\u5165\uff1a<\/p>\n<blockquote>\n<p>100 \/\/ \u4e3b\u529f\u80fd100<\/p>\n<p>21 \/\/ \u8f93\u51fa\u5404\u79cd\u63cf\u8ff0\u4f53\u7cfb\u7ed3\u6784\u7684\u4fe1\u606f<\/p>\n<p>size \/\/ \u8ba1\u7b97\u5206\u5b50\u5c3a\u5bf8<\/p><\/blockquote>\n<p>\u6b64\u65f6\u5c4f\u5e55\u4e0a\u4f1a\u6253\u5370\u51fa\u5206\u5b50\u5c3a\u5bf8\u7684\u4fe1\u606f\uff0c\u8fd9\u90e8\u5206\u4fe1\u606f\u8981\u4fdd\u5b58\u4e0b\u6765\u3002<\/p>\n<p>\u6b64\u65f6\u518d\u8f93\u5165\uff1a<\/p>\n<blockquote>\n<p>2 \/\/ \u5bfc\u51fa\u5305\u542b\u5c3a\u5bf8\u4fe1\u606f\u7684.pdb\u6587\u4ef6\uff0c\u7528\u4e8eVMD\u7ed8\u56fe<\/p>\n<p>1 \/\/ \u663e\u793a\u5206\u5b50\u7684\u4e09\u7ef4\u5f71\u50cf<\/p><\/blockquote>\n<p>\u4e0b\u9762\u663e\u793a\u4e86\u7a0b\u5e8f\u6267\u884c\u8fc7\u7a0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-powershell\" data-lang=\"powershell\"><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Multiwfn<\/span> <span class=\"p\">--<\/span> <span class=\"n\">A<\/span> <span class=\"n\">Multifunctional<\/span> <span class=\"n\">Wavefunction<\/span> <span class=\"n\">Analyzer<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Version<\/span> <span class=\"mf\">3.8<\/span><span class=\"p\">(<\/span><span class=\"n\">dev<\/span><span class=\"p\">),<\/span> <span class=\"n\">release<\/span> <span class=\"n\">date<\/span><span class=\"err\">:<\/span> <span class=\"mf\">2022<\/span><span class=\"n\">-Dec<\/span><span class=\"p\">-<\/span><span class=\"mf\">18<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Developer<\/span><span class=\"err\">:<\/span> <span class=\"n\">Tian<\/span> <span class=\"n\">Lu<\/span> <span class=\"p\">(<\/span><span class=\"n\">Beijing<\/span> <span class=\"n\">Kein<\/span> <span class=\"n\">Research<\/span> <span class=\"n\">Center<\/span> <span class=\"k\">for<\/span> <span class=\"n\">Natural<\/span> <span class=\"n\">Sciences<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Below<\/span> <span class=\"n\">paper<\/span> <span class=\"p\">***<\/span><span class=\"n\">MUST<\/span> <span class=\"n\">BE<\/span> <span class=\"n\">CITED<\/span><span class=\"p\">***<\/span> <span class=\"k\">if<\/span> <span class=\"n\">Multiwfn<\/span> <span class=\"n\">is<\/span> <span class=\"n\">utilized<\/span> <span class=\"k\">in<\/span> <span class=\"n\">your<\/span> <span class=\"n\">work<\/span><span class=\"err\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">          <span class=\"n\">Tian<\/span> <span class=\"n\">Lu<\/span><span class=\"p\">,<\/span> <span class=\"n\">Feiwu<\/span> <span class=\"n\">Chen<\/span><span class=\"p\">,<\/span> <span class=\"n\">J<\/span><span class=\"p\">.<\/span> <span class=\"n\">Comput<\/span><span class=\"p\">.<\/span> <span class=\"n\">Chem<\/span><span class=\"p\">.,<\/span> <span class=\"mf\">33<\/span><span class=\"p\">,<\/span> <span class=\"mf\">580<\/span><span class=\"p\">-<\/span><span class=\"mf\">592<\/span> <span class=\"p\">(<\/span><span class=\"mf\">2012<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">See<\/span> <span class=\"s2\">&#34;How to cite Multiwfn.pdf&#34;<\/span> <span class=\"k\">in<\/span> <span class=\"n\">Multiwfn<\/span> <span class=\"n\">binary<\/span> <span class=\"n\">package<\/span> <span class=\"k\">for<\/span> <span class=\"n\">more<\/span> <span class=\"n\">information<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Multiwfn<\/span> <span class=\"n\">official<\/span> <span class=\"n\">website<\/span><span class=\"err\">:<\/span> <span class=\"n\">http<\/span><span class=\"err\">:<\/span><span class=\"p\">\/\/<\/span><span class=\"n\">sobereva<\/span><span class=\"p\">.<\/span><span class=\"n\">com<\/span><span class=\"p\">\/<\/span><span class=\"n\">multiwfn<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Multiwfn<\/span> <span class=\"n\">English<\/span> <span class=\"n\">forum<\/span><span class=\"err\">:<\/span> <span class=\"n\">http<\/span><span class=\"err\">:<\/span><span class=\"p\">\/\/<\/span><span class=\"n\">sobereva<\/span><span class=\"p\">.<\/span><span class=\"n\">com<\/span><span class=\"p\">\/<\/span><span class=\"n\">wfnbbs<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Multiwfn<\/span> <span class=\"n\">Chinese<\/span> <span class=\"n\">forum<\/span><span class=\"err\">:<\/span> <span class=\"n\">http<\/span><span class=\"err\">:<\/span><span class=\"p\">\/\/<\/span><span class=\"n\">bbs<\/span><span class=\"p\">.<\/span><span class=\"py\">keinsci<\/span><span class=\"p\">.<\/span><span class=\"n\">com<\/span><span class=\"p\">\/<\/span><span class=\"n\">wfn<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"p\">(<\/span> <span class=\"n\">Number<\/span> <span class=\"n\">of<\/span> <span class=\"n\">parallel<\/span> <span class=\"n\">threads<\/span><span class=\"err\">:<\/span>   <span class=\"mf\">4<\/span>  <span class=\"n\">Current<\/span> <span class=\"n\">date<\/span><span class=\"err\">:<\/span> <span class=\"mf\">2023<\/span><span class=\"p\">-<\/span><span class=\"mf\">07<\/span><span class=\"p\">-<\/span><span class=\"mf\">04<\/span>  <span class=\"n\">Time<\/span><span class=\"err\">:<\/span> <span class=\"mf\">13<\/span><span class=\"err\">:<\/span><span class=\"mf\">51<\/span><span class=\"err\">:<\/span><span class=\"mf\">05<\/span> <span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Input<\/span> <span class=\"n\">file<\/span> <span class=\"n\">path<\/span><span class=\"p\">,<\/span> <span class=\"k\">for<\/span> <span class=\"n\">example<\/span> <span class=\"n\">E:<\/span><span class=\"p\">\\<\/span><span class=\"n\">Don<\/span><span class=\"s1\">&#39;t_Toy_with_Me,_Miss_Nagatoro\\Hayase_Nagatoro.wfn\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> (Supported: .mwfn\/wfn\/wfx\/fch\/molden\/31\/chg\/pdb\/xyz\/mol\/mol2\/cif\/cub, etc.)\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> Hint: Press ENTER button directly can select file in a GUI window. To reload the file last time used, simply input the letter &#34;o&#34;. Input such as ?miku.fch can open the miku.fch in the same folder as the file last time used.\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">C:\\Users\\iniduoH\\Documents\\ChemDraw\\TEA_C4mPy\\C4mPy2+.pdb     # \u8f93\u5165.pdb\u6587\u4ef6\u8def\u5f84\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> Please wait...\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> Totally      46 atoms\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> Loaded C:\\Users\\iniduoH\\Documents\\ChemDraw\\TEA_C4mPy\\C4mPy2+.pdb successfully!\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> Formula: H30 C14 N2\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> Molecule weight:       226.40193 Da\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> Point group: C1\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> &#34;q&#34;: Exit program gracefully          &#34;r&#34;: Load a new file\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">                    ************ Main function menu ************\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 0 Show molecular structure and view orbitals\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 1 Output all properties at a point       2 Topology analysis\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 3 Output and plot specific property in a line\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 4 Output and plot specific property in a plane\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 5 Output and plot specific property within a spatial region (calc. grid data)\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 6 Check &amp; modify wavefunction\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 7 Population analysis and calculation of atomic charges\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 8 Orbital composition analysis           9 Bond order analysis\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 10 Plot total DOS, partial DOS, OPDOS, local DOS and photoelectron spectrum\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 11 Plot IR\/Raman\/UV-Vis\/ECD\/VCD\/ROA\/NMR spectrum\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 12 Quantitative analysis of molecular surface\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 13 Process grid data (No grid data is presented currently)\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 14 Adaptive natural density partitioning (AdNDP) analysis\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 15 Fuzzy atomic space analysis\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 16 Charge decomposition analysis (CDA) and plot orbital interaction diagram\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 17 Basin analysis                       18 Electron excitation analysis\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 19 Orbital localization analysis        20 Visual study of weak interaction\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 21 Energy decomposition analysis        22 Conceptual DFT (CDFT) analysis\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 23 ETS-NOCV analysis                    24 (Hyper)polarizability analysis\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 25 Electron delocalization and aromaticity analyses\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 100 Other functions (Part 1)            200 Other functions (Part 2)\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 300 Other functions (Part 3)\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">100    # \u8f93\u5165100 \/\/\u4e3b\u529f\u80fd\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\">               ============ Other functions (Part 1) ============\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 0 Return\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 1 Draw scatter graph between two functions and generate their cube files\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 2 Export various files (mwfn\/pdb\/xyz\/wfn\/wfx\/molden\/fch\/47\/mkl...) or generate input file of quantum chemistry programs\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 3 Calculate molecular van der Waals Volume\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 4 Integrate a function in whole space\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 5 Show overlap integral between alpha and beta orbitals\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 6 Monitor SCF convergence process of Gaussian\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 8 Generate Gaussian input file with initial guess from fragment wavefunctions\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 9 Evaluate interatomic connectivity and atomic coordination number\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 11 Calculate overlap and centroid distance between two orbitals\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 12 Biorthogonalization between alpha and beta orbitals\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 13 Calculate HOMA and Bird aromaticity index\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 14 Calculate LOLIPOP (LOL Integrated Pi Over Plane)\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 15 Calculate intermolecular orbital overlap\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 17 Generate Fock\/KS matrix based on orbital energies and coefficients\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s1\"> 18 Yoshizawa&#39;<\/span><span class=\"n\">s<\/span> <span class=\"n\">electron<\/span> <span class=\"n\">transport<\/span> <span class=\"n\">route<\/span> <span class=\"n\">analysis<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">19<\/span> <span class=\"n\">Generate<\/span> <span class=\"n\">new<\/span> <span class=\"n\">wavefunction<\/span> <span class=\"n\">by<\/span> <span class=\"n\">combining<\/span> <span class=\"n\">fragment<\/span> <span class=\"n\">wavefunctions<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">20<\/span> <span class=\"n\">Calculate<\/span> <span class=\"nb\">Hellmann-Feynman<\/span> <span class=\"n\">forces<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">21<\/span> <span class=\"n\">Calculate<\/span> <span class=\"n\">properties<\/span> <span class=\"n\">based<\/span> <span class=\"n\">on<\/span> <span class=\"n\">geometry<\/span> <span class=\"n\">information<\/span> <span class=\"k\">for<\/span> <span class=\"n\">specific<\/span> <span class=\"n\">atoms<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">22<\/span> <span class=\"n\">Detect<\/span> <span class=\"n\">pi<\/span> <span class=\"n\">orbitals<\/span><span class=\"p\">,<\/span> <span class=\"nb\">set <\/span><span class=\"n\">occupation<\/span> <span class=\"n\">numbers<\/span> <span class=\"n\">and<\/span> <span class=\"n\">calculate<\/span> <span class=\"n\">pi<\/span> <span class=\"n\">composition<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">23<\/span> <span class=\"n\">Fit<\/span> <span class=\"kd\">function<\/span><span class=\"w\"> <\/span><span class=\"nb\">distribution<\/span> <span class=\"n\">to<\/span> <span class=\"n\">atomic<\/span> <span class=\"n\">value<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">24<\/span> <span class=\"n\">Obtain<\/span> <span class=\"n\">NICS_ZZ<\/span> <span class=\"n\">value<\/span> <span class=\"k\">for<\/span> <span class=\"nb\">non-planar<\/span> <span class=\"n\">or<\/span> <span class=\"n\">tilted<\/span> <span class=\"n\">system<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"mf\">21<\/span>    <span class=\"c\"># \u8f93\u516521 \/\/\u8f93\u51fa\u5404\u79cd\u63cf\u8ff0\u4f53\u7cfb\u7ed3\u6784\u7684\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Input<\/span> <span class=\"n\">indices<\/span> <span class=\"n\">of<\/span> <span class=\"n\">the<\/span> <span class=\"n\">atoms<\/span> <span class=\"k\">for<\/span> <span class=\"n\">which<\/span> <span class=\"n\">geometry<\/span> <span class=\"n\">information<\/span> <span class=\"n\">will<\/span> <span class=\"n\">be<\/span> <span class=\"n\">calculated<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">e<\/span><span class=\"p\">.<\/span><span class=\"n\">g<\/span><span class=\"p\">.<\/span> <span class=\"mf\">1<\/span><span class=\"p\">,<\/span><span class=\"mf\">3<\/span><span class=\"p\">-<\/span><span class=\"mf\">6<\/span><span class=\"p\">,<\/span><span class=\"mf\">8<\/span><span class=\"p\">,<\/span><span class=\"mf\">10<\/span><span class=\"p\">-<\/span><span class=\"mf\">11<\/span> <span class=\"n\">means<\/span> <span class=\"n\">the<\/span> <span class=\"n\">atoms<\/span> <span class=\"mf\">1<\/span><span class=\"p\">,<\/span><span class=\"mf\">3<\/span><span class=\"p\">,<\/span><span class=\"mf\">4<\/span><span class=\"p\">,<\/span><span class=\"mf\">5<\/span><span class=\"p\">,<\/span><span class=\"mf\">6<\/span><span class=\"p\">,<\/span><span class=\"mf\">8<\/span><span class=\"p\">,<\/span><span class=\"mf\">10<\/span><span class=\"p\">,<\/span><span class=\"mf\">11<\/span> <span class=\"n\">will<\/span> <span class=\"n\">be<\/span> <span class=\"n\">considered<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Press<\/span> <span class=\"n\">ENTER<\/span> <span class=\"n\">button<\/span> <span class=\"n\">directly<\/span> <span class=\"n\">will<\/span> <span class=\"n\">analyze<\/span> <span class=\"n\">the<\/span> <span class=\"n\">whole<\/span> <span class=\"n\">system<\/span><span class=\"p\">,<\/span> <span class=\"n\">input<\/span> <span class=\"s2\">&#34;q&#34;<\/span> <span class=\"n\">will<\/span> <span class=\"n\">exit<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"n\">Other<\/span> <span class=\"n\">commands<\/span><span class=\"err\">:<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Input<\/span> <span class=\"s2\">&#34;size&#34;<\/span> <span class=\"n\">will<\/span> <span class=\"n\">report<\/span> <span class=\"n\">size<\/span> <span class=\"n\">information<\/span> <span class=\"n\">of<\/span> <span class=\"n\">the<\/span> <span class=\"n\">whole<\/span> <span class=\"n\">system<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Input<\/span> <span class=\"s2\">&#34;dist&#34;<\/span> <span class=\"n\">will<\/span> <span class=\"n\">report<\/span> <span class=\"n\">contact<\/span><span class=\"p\">\/<\/span><span class=\"n\">distance<\/span> <span class=\"n\">between<\/span> <span class=\"n\">two<\/span> <span class=\"n\">specific<\/span> <span class=\"n\">fragments<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Input<\/span> <span class=\"s2\">&#34;cav&#34;<\/span> <span class=\"n\">will<\/span> <span class=\"n\">report<\/span> <span class=\"n\">diameter<\/span> <span class=\"n\">of<\/span> <span class=\"n\">cavity<\/span> <span class=\"n\">enclosed<\/span> <span class=\"n\">by<\/span> <span class=\"n\">specific<\/span> <span class=\"n\">atoms<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Input<\/span> <span class=\"s2\">&#34;ring&#34;<\/span> <span class=\"n\">will<\/span> <span class=\"n\">calculate<\/span> <span class=\"n\">area<\/span> <span class=\"n\">and<\/span> <span class=\"n\">perimeter<\/span> <span class=\"n\">of<\/span> <span class=\"n\">a<\/span> <span class=\"n\">specific<\/span> <span class=\"n\">ring<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Input<\/span> <span class=\"s2\">&#34;MPP&#34;<\/span> <span class=\"n\">will<\/span> <span class=\"n\">calculate<\/span> <span class=\"n\">molecular<\/span> <span class=\"n\">planarity<\/span> <span class=\"nb\">parameter<\/span> <span class=\"p\">(<\/span><span class=\"n\">MPP<\/span><span class=\"p\">)<\/span> <span class=\"n\">and<\/span> <span class=\"n\">span<\/span> <span class=\"n\">of<\/span> <span class=\"n\">deviation<\/span> <span class=\"n\">from<\/span> <span class=\"n\">plane<\/span> <span class=\"p\">(<\/span><span class=\"n\">SDP<\/span><span class=\"p\">)<\/span> <span class=\"k\">for<\/span> <span class=\"n\">a<\/span> <span class=\"n\">fragment<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">size<\/span>    <span class=\"c\"># \u8f93\u5165size \/\/\u8ba1\u7b97\u5206\u5b50\u5c3a\u5bf8\uff0c\u4e0b\u9762\u516d\u884c\u8f93\u51fa\u5206\u5b50\u5c3a\u5bf8\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Farthest<\/span> <span class=\"n\">distance<\/span><span class=\"err\">:<\/span>   <span class=\"mf\">17<\/span><span class=\"p\">(<\/span><span class=\"nb\">H <\/span><span class=\"p\">)<\/span>  <span class=\"p\">---<\/span>   <span class=\"mf\">29<\/span><span class=\"p\">(<\/span><span class=\"nb\">H <\/span><span class=\"p\">)<\/span><span class=\"err\">:<\/span>    <span class=\"mf\">11.311<\/span> <span class=\"n\">Angstrom<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">vdW<\/span> <span class=\"n\">radius<\/span> <span class=\"n\">of<\/span>   <span class=\"mf\">17<\/span><span class=\"p\">(<\/span><span class=\"nb\">H <\/span><span class=\"p\">)<\/span><span class=\"err\">:<\/span> <span class=\"mf\">1.200<\/span> <span class=\"n\">Angstrom<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">vdW<\/span> <span class=\"n\">radius<\/span> <span class=\"n\">of<\/span>   <span class=\"mf\">29<\/span><span class=\"p\">(<\/span><span class=\"nb\">H <\/span><span class=\"p\">)<\/span><span class=\"err\">:<\/span> <span class=\"mf\">1.200<\/span> <span class=\"n\">Angstrom<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Diameter<\/span> <span class=\"n\">of<\/span> <span class=\"n\">the<\/span> <span class=\"n\">system<\/span><span class=\"err\">:<\/span>    <span class=\"mf\">13.711<\/span> <span class=\"n\">Angstrom<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Radius<\/span> <span class=\"n\">of<\/span> <span class=\"n\">the<\/span> <span class=\"n\">system<\/span><span class=\"err\">:<\/span>     <span class=\"mf\">6.856<\/span> <span class=\"n\">Angstrom<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Length<\/span> <span class=\"n\">of<\/span> <span class=\"n\">the<\/span> <span class=\"n\">three<\/span> <span class=\"n\">sides<\/span><span class=\"err\">:<\/span>     <span class=\"mf\">7.171<\/span>     <span class=\"mf\">7.736<\/span>    <span class=\"mf\">13.575<\/span> <span class=\"n\">Angstrom<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">0<\/span> <span class=\"k\">Return<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">1<\/span> <span class=\"n\">Visualize<\/span> <span class=\"n\">the<\/span> <span class=\"n\">new<\/span> <span class=\"n\">orientation<\/span> <span class=\"n\">and<\/span> <span class=\"n\">molecular<\/span> <span class=\"n\">box<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">2<\/span> <span class=\"n\">Export<\/span> <span class=\"n\">the<\/span> <span class=\"n\">geometry<\/span> <span class=\"k\">in<\/span> <span class=\"n\">new<\/span> <span class=\"n\">orientation<\/span> <span class=\"n\">as<\/span> <span class=\"n\">new<\/span><span class=\"p\">.<\/span><span class=\"py\">pdb<\/span> <span class=\"k\">in<\/span> <span class=\"n\">current<\/span> <span class=\"n\">folder<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"mf\">1<\/span>    <span class=\"c\"># \u8f93\u51651\u53ef\u4ee5\u663e\u793a\u5206\u5b50\u7684\u4e09\u7ef4\u5f71\u50cf<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">0<\/span> <span class=\"k\">Return<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">1<\/span> <span class=\"n\">Visualize<\/span> <span class=\"n\">the<\/span> <span class=\"n\">new<\/span> <span class=\"n\">orientation<\/span> <span class=\"n\">and<\/span> <span class=\"n\">molecular<\/span> <span class=\"n\">box<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">2<\/span> <span class=\"n\">Export<\/span> <span class=\"n\">the<\/span> <span class=\"n\">geometry<\/span> <span class=\"k\">in<\/span> <span class=\"n\">new<\/span> <span class=\"n\">orientation<\/span> <span class=\"n\">as<\/span> <span class=\"n\">new<\/span><span class=\"p\">.<\/span><span class=\"py\">pdb<\/span> <span class=\"k\">in<\/span> <span class=\"n\">current<\/span> <span class=\"n\">folder<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"mf\">2<\/span>    <span class=\"c\"># \u8f93\u51652\u53ef\u4ee5\u5bfc\u51fa\u4e00\u4e2a\u8bb0\u5f55\u5206\u5b50\u5c3a\u5bf8\u7684.pdb\u6587\u4ef6\uff0c\u8be5\u6587\u4ef6\u7528\u4e8e\u5728VMD\u7a0b\u5e8f\u4e2d\u7ed8\u56fe<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"n\">Exporting<\/span> <span class=\"n\">new<\/span><span class=\"p\">.<\/span><span class=\"py\">pdb<\/span> <span class=\"n\">file<\/span> <span class=\"n\">finished<\/span><span class=\"p\">!<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">0<\/span> <span class=\"k\">Return<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">1<\/span> <span class=\"n\">Visualize<\/span> <span class=\"n\">the<\/span> <span class=\"n\">new<\/span> <span class=\"n\">orientation<\/span> <span class=\"n\">and<\/span> <span class=\"n\">molecular<\/span> <span class=\"n\">box<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"mf\">2<\/span> <span class=\"n\">Export<\/span> <span class=\"n\">the<\/span> <span class=\"n\">geometry<\/span> <span class=\"k\">in<\/span> <span class=\"n\">new<\/span> <span class=\"n\">orientation<\/span> <span class=\"n\">as<\/span> <span class=\"n\">new<\/span><span class=\"p\">.<\/span><span class=\"py\">pdb<\/span> <span class=\"k\">in<\/span> <span class=\"n\">current<\/span> <span class=\"n\">folder<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"vmd\u7ed8\u5236\">VMD\u7ed8\u5236\n<\/h3><hr>\n<p>\u7528VMD\u7a0b\u5e8f\u6253\u5f00\u4e0a\u4e00\u6b65\u4e2d\u4f7f\u7528Mutiwfn\u5bfc\u51fa\u7684\u65b0\u7684<code>.pdb<\/code>\u6587\u4ef6\uff08\u53ef\u4ee5\u76f4\u63a5\u5c06\u6587\u4ef6\u62d6\u5230VMD\u7684\u4e3b\u7a97\u53e3\u4e2d\uff09\uff0c\u7136\u540e\u5728\u547d\u4ee4\u884c\u7a97\u53e3\u4e2d\u8f93\u5165<code>pbc box<\/code>\uff0c\u76d2\u5b50\u5c31\u663e\u793a\u51fa\u6765\u4e86\u3002<\/p>\n<p>\u63a5\u4e0b\u6765\u5c31\u8981\u4fee\u6539\u4e00\u4e9bVMD\u7684\u663e\u793a\u53c2\u6570\uff1a<\/p>\n<blockquote>\n<ol>\n<li>\n<p>\u5c06\u5206\u5b50\u7ed3\u6784\u663e\u793a\u4e3a\u7403\u68cd\u6a21\u578b\uff1a\u83dc\u5355\u680f\u6253\u5f00Graphics-Presentations\uff0c\u5c06Drawing Method\u6539\u4e3aCPK\u3002<\/p>\n<\/li>\n<li>\n<p>\u66f4\u6539\u80cc\u666f\u989c\u8272\uff1a\u83dc\u5355\u680f\u6253\u5f00Graphics-Colors\uff0c\u9009\u62e9Display-Background\uff0c\u4fee\u6539\u4e3aWhite\u3002<\/p>\n<\/li>\n<li>\n<p>\u66f4\u6539\u5143\u7d20\u989c\u8272\uff1a\u540c\u6837\u6253\u5f00\u83dc\u5355\u680f\u7684Graphics-Colors\uff0c\u9009\u62e9Name\uff0c\u5c06\u5bf9\u5e94\u7684\u5143\u7d20\u8bbe\u7f6e\u4e3a\u81ea\u5df1\u60f3\u8981\u7684\u989c\u8272\u3002<\/p>\n<\/li>\n<li>\n<p>\u9009\u62e9\u6b63\u4ea4\u89c6\u89d2\uff1a\u83dc\u5355\u680f\u9009\u62e9Display\uff0c\u9009\u62e9Orthographic\u3002<\/p>\n<\/li>\n<li>\n<p>\u5220\u9664\u5de6\u4e0b\u89d2\u5750\u6807\u8f74\uff1a\u83dc\u5355\u680f\u9009\u62e9Display-Axes\uff0c\u9009\u62e9Off\u9009\u9879\u3002<\/p>\n<\/li>\n<li>\n<p>\u6e32\u67d3\uff1a\u5b8c\u6210\u4e0a\u4e00\u6b65\u76f4\u63a5\u5bfc\u51fa\u56fe\u7247\u7684\u8bdd\u5206\u8fa8\u7387\u6bd4\u8f83\u4f4e\uff0c\u6240\u4ee5\u9700\u8981\u91cd\u65b0\u6e32\u67d3\u3002\u9996\u5148\u83dc\u5355\u680f\u6253\u5f00File-Render\uff0c\u5728\u7b2c\u4e00\u680fRender the current scene using\uff1a\u9009\u62e9Tachyon\uff0c\u4e0b\u9762\u7684Filename\u9ed8\u8ba4\u4e3a<code>vmdscene.dat<\/code>\uff0cRender Command\u9ed8\u8ba4\u4e3a<code>&quot;C:\\Program Files (x86)\\University of Illinois\\VMD\\\\tachyon_WIN32.exe&quot; -aasamples 12 %s -format BMP -o %s.bmp<\/code>\uff0c\u53ef\u4ee5\u70b9\u51fbFilename\u53f3\u4fa7\u7684Browse\u770b\u4e00\u4e0b<code>vmdscene.dat<\/code>\u7684\u4fdd\u5b58\u8def\u5f84\uff0c\u7136\u540eStart Rendering\uff0c\u5c31\u4f1a\u5728\u521a\u521aBrowse\u7684\u76ee\u5f55\u4e0b\u751f\u6210<code>vmdscene.dat<\/code>\u6587\u4ef6\uff08\u5b9e\u9645\u60c5\u51b5\u53d1\u73b0\u5e76\u6ca1\u6709\u751f\u6210\u5728\u8be5\u76ee\u5f55\u4e0b\uff0c\u5177\u4f53\u4f4d\u7f6e\u53ef\u4ee5\u4f7f\u7528Everything\u7a0b\u5e8f\u67e5\u627e\u4e00\u4e0b\uff09\uff0c\u8fd9\u65f6\u9700\u8981\u5728\u8fd9\u4e2a\u76ee\u5f55\u4e0b\u590d\u5236\u4e24\u4e2a\u6587\u4ef6\u8fdb\u53bb\uff08\u6587\u4ef6\u4f1a\u653e\u5728\u6587\u7ae0\u7684\u6700\u540e\uff09\uff1a<code>tachyon_WIN32.exe<\/code>\u548c<code>render.bat<\/code>\uff0c\u7136\u540e\u8fd0\u884c\u8fd9\u4e2a\u6279\u5904\u7406\u811a\u672c\uff0c\u5c31\u53ef\u4ee5\u5f97\u5230\u6e05\u6670\u5ea6\u6bd4\u8f83\u9ad8\u7684.bmp\u6587\u4ef6\uff0c\u53ef\u4ee5\u653e\u5728\u8bba\u6587\u4e2d\u4f7f\u7528\u3002<\/p>\n<\/li>\n<\/ol><\/blockquote>\n<p>\u6700\u540e\u53ef\u4ee5\u5728\u5206\u5b50\u6a21\u578b\u56fe\u4e2dP\u4e0a\u4f7f\u7528Multiwfn\u8ba1\u7b97\u5f97\u5230\u7684\u957f\u5bbd\u9ad8\u5373\u5b8c\u6210\u3002<\/p>\n<h3 id=\"\u6e32\u67d3\u7a0b\u5e8f\u548c\u811a\u672c\">\u6e32\u67d3\u7a0b\u5e8f\u548c\u811a\u672c\n<\/h3><hr>\n<p><a class=\"link\" href=\"tachyon_WIN32.exe\" >tachyon_WIN32.exe<\/a><\/p>\n<p><a class=\"link\" href=\"render.bat\" >render.bat<\/a><\/p>\n"},{"title":"\u6838\u78c1\u5171\u632f\uff08NMR\uff09\u6570\u636e\u5904\u7406","link":"https:\/\/been.ee\/p\/0-0-0-5\/","pubDate":"Sat, 01 Jul 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-5\/","description":"<p>\u5176\u5b9e\u64cd\u4f5c\u5f88\u7b80\u5355\uff0c\u4f46\u662f\u6211\u6bcf\u6b21\u7528\u5b8c\u4e0b\u6b21\u518d\u7528\u603b\u662f\u4e0d\u77e5\u9053\u4ece\u54ea\u5f00\u59cb\uff0c\u7d22\u6027\u5c31\u8bb0\u4e0b\u6765\u5427\u3002\u6211\u4e00\u822c\u6d4b\u7684\u662fH\u8c31\u548cF\u8c31\uff0c\u8fd9\u91cc\u5c31\u4ee5H\u8c31\u4e3a\u4f8b\u3002<\/p>\n<p>\u4f7f\u7528\u8f6f\u4ef6\uff1a<a class=\"link\" href=\"https:\/\/mestrelab.com\/download\/mnova\/\"  target=\"_blank\" rel=\"noopener\"\n    >MestReNova<\/a><\/p>\n<h2 id=\"\u5bfc\u5165\u6570\u636e\u6587\u4ef6\">\u5bfc\u5165\u6570\u636e\u6587\u4ef6\n<\/h2><hr>\n<p>\u6253\u5f00MestReNova\u7a0b\u5e8f\uff0c\u7136\u540e\u4ece\u6570\u636e\u6587\u4ef6\u4e2d\u627e\u5230\u4e00\u4e2a\u53eb<code>fid<\/code>\u7684\u6587\u4ef6\uff0c\u5c06\u8fd9\u4e2a\u6587\u4ef6\u62d6\u5230MestReNova\u4e2d\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u770b\u5230\u6837\u54c1\u7684\u6838\u78c1\u5cf0\u3002<\/p>\n<h2 id=\"\u5b9a\u6807\u6eb6\u5242\u5cf0\">\u5b9a\u6807\u6eb6\u5242\u5cf0\n<\/h2><hr>\n<p>\u9996\u5148\u8981\u77e5\u9053\u6838\u78c1\u6d4b\u8bd5\u4f7f\u7528\u7684\u6eb6\u5242\u662f\u4ec0\u4e48\uff0c\u6bd4\u5982\u6211\u4f7f\u7528\u7684\u662f\u6c18\u4ee3DMSO\uff0c\u90a3\u4e48\u5b83\u5bf9\u5e94\u7684\u6eb6\u5242\u5cf0\u5c31\u662f2.49\uff0c\u5bf9\u5e94\u7684\u6c34\u5cf0\u662f3.33.<\/p>\n<p>\u7136\u540e\u4ece\u83dc\u5355\u680f\u627e\u5230\u5206\u6790-\u53c2\u8003-\u53c2\u8003\uff0c\u53bb\u56fe\u4e2d\u627e\u52302.49\u9644\u8fd1\u7684\u5cf0\uff0c\u70b9\u51fb\u540e\u53d1\u73b0\u4e0d\u662f2.49\u7684\u8bdd\u9700\u8981\u6539\u4e3a2.49\u3002\u8fd9\u65f6\uff0c\u57283.33\u9644\u8fd1\u901a\u5e38\u8fd8\u4f1a\u770b\u5230\u4e00\u6761\u6c34\u5cf0\u3002<\/p>\n<h2 id=\"\u6807\u5cf0\">\u6807\u5cf0\n<\/h2><hr>\n<p>\u8fd9\u91cc\u5efa\u8bae\u624b\u52a8\u6807\u5cf0\uff0c\u81ea\u52a8\u6807\u5cf0\u7684\u8bdd\u4f1a\u628a\u5f88\u591a\u6742\u8d28\u5cf0\u90fd\u6807\u4e0a\u3002<\/p>\n<p>\u4ece\u83dc\u5355\u680f\u91cc\u627e\u5230\u5206\u6790-\u6807\u5cf0-\u9010\u4e2a\u6807\u5cf0\uff0c\u628a\u6bcf\u4e2a\u4e3b\u5cf0\u548c\u5468\u56f4\u4e00\u4e9b\u5c0f\u5cf0\u90fd\u6807\u4e0a\u3002<\/p>\n<h2 id=\"\u79ef\u5206\">\u79ef\u5206\n<\/h2><hr>\n<p>\u4ece\u83dc\u5355\u680f\u91cc\u627e\u5230\u5206\u6790-\u79ef\u5206-\u624b\u52a8\uff0c\u7136\u540e\u628a\u6bcf\u4e00\u4e2a\u5cf0\u5bf9\u5e94\u7684\u533a\u57df\u5168\u90e8\u9009\u4e2d\uff0c\u7136\u540e\u4e0b\u9762\u4f1a\u663e\u793a\u79ef\u5206\u540e\u7684\u503c\uff0c\u8fd9\u4e2a\u503c\u8868\u793a\u7684\u662f\u6709\u673a\u5206\u5b50\u4e2d\u67d0\u4e2a\u90e8\u5206\u7684H\u7684\u4e2a\u6570\uff08\u6bd4\u5982\u7532\u57fa\u4e2d\u4f1a\u67093\u4e2aH\uff09\uff0c\u8fd9\u4e2a\u503c\u7684\u57fa\u51c6\u662f\u53ef\u4ee5\u6539\u7684\uff0c\u9700\u8981\u6839\u636e\u81ea\u5df1\u6837\u54c1\u7684\u7ed3\u6784\u548cH\u7684\u6570\u91cf\u6765\u8bbe\uff0c\u53ea\u8981\u6539\u4e00\u4e2a\u5cf0\u5c31\u884c\uff0c\u5176\u4ed6\u7684\u5cf0\u4f1a\u4e00\u8d77\u6821\u51c6\u3002<\/p>\n<p>PS\uff1a\u56e0\u4e3a\u6211\u6d4b\u7684\u6709\u673a\u5206\u5b50\u7ecf\u5e38\u662f\u5bf9\u79f0\u7684\uff0c\u8981\u6ce8\u610f\u7684\u662f\u5bf9\u79f0\u4f4d\u7f6e\u7684H\u4f1a\u51fa\u73b0\u5728\u4e00\u4e2a\u5cf0\u91cc\u3002<\/p>\n<h2 id=\"\u591a\u91cd\u5cf0\u5206\u6790\">\u591a\u91cd\u5cf0\u5206\u6790\n<\/h2><hr>\n<p>\u83dc\u5355\u680f\u627e\u5230\u5206\u6790-Multiplet Analysis-\u81ea\u52a8\uff0c\u53ef\u4ee5\u81ea\u52a8\u8ba1\u7b97\u663e\u793a\u5176\u4ed6\u4fe1\u606f\u3002<\/p>\n<p>\u7136\u540e\u83dc\u5355\u680f\u627e\u5230\u5206\u6790-Multiplet Analysis-\u591a\u91cd\u5cf0\u5206\u6790\u62a5\u544a\uff0c\u5c31\u4f1a\u81ea\u52a8\u751f\u6210\u8bba\u6587\u91cc\u8981\u7528\u5230\u7684\u6838\u78c1\u6570\u636e\uff0c\u628a\u8fd9\u90e8\u5206\u653e\u5728\u56fe\u8c31\u7684\u5de6\u4e0a\u89d2\u5373\u53ef\u3002<\/p>\n<h2 id=\"\u7f8e\u5316\u8c31\u56fe\">\u7f8e\u5316\u8c31\u56fe\n<\/h2><hr>\n<p>\u5269\u4e0b\u7684\u5de5\u4f5c\u5c31\u662f\u4fee\u6539\u4e00\u4e0b\u56fe\u7684\u5c5e\u6027\uff0c\u53ef\u4ee5\u628a\u5de6\u4e0a\u89d2\u7684\u6587\u6863\u4fe1\u606f\u3001\u7f51\u683c\u548c\u53f3\u4fa7\u8f74\u53bb\u6389\uff0c\u4fee\u6539\u4e00\u4e0b\u5b57\u4f53\u4e4b\u7c7b\u7684\u3002<\/p>\n<p>\u6700\u540e\u53ef\u4ee5\u628a\u6837\u54c1\u7684\u5206\u5b50\u7ed3\u6784\u4eceChemDraw\u4e2d\u62f7\u8d1d\u5230\u56fe\u4e2d\u5c31\u5b8c\u6210\u4e86\uff0c\u5269\u4e0b\u7684\u5de5\u4f5c\u5c31\u662f\u5206\u6790\u6bcf\u4e00\u4e2a\u5cf0\u5bf9\u5e94\u7684\u662f\u90a3\u4e2a\u7ed3\u6784\u3002<\/p>\n<h2 id=\"\u793a\u4f8b\">\u793a\u4f8b\n<\/h2><hr>\n<p>\u56e0\u4e3a\u5199\u8fd9\u7bc7\u7684\u65f6\u5019\u6570\u636e\u8981\u5728\u6587\u7ae0\u7528\uff0cH\u8c31\u6bd4\u8f83\u91cd\u8981\uff0c\u8fd9\u91cc\u653e\u4e00\u5f20F\u8c31\u4f5c\u4e3a\u793a\u8303\u5427\u3002<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-5\/image.png\"\n\twidth=\"1609\"\n\theight=\"1115\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-5\/image_hu_6cf6e56447d6d9c.png 480w, https:\/\/been.ee\/p\/0-0-0-5\/image_hu_187efafdda24d81c.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\talt=\"image\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"144\"\n\t\tdata-flex-basis=\"346px\"\n\t\n><\/p>\n<h2 id=\"\u540e\u8bb0\">\u540e\u8bb0\n<\/h2><hr>\n<p>\u540e\u9762\u8001\u5e08\u5efa\u8bae\u5bf9\u6bcf\u4e2a\u8c31\u56fe\u6807\u6ce8\u4e0a\u6bcf\u4e2a\u5cf0\u5bf9\u5e94\u4e8e\u6837\u54c1\u7684\u4f4d\u7f6e\uff0c\u5927\u6982\u50cf\u4e0b\u9762\u7684\u6837\u5b50\uff08H\u8c31\u540c\u7406\uff09\uff1a<\/p>\n<p><img src=\"https:\/\/been.ee\/p\/0-0-0-5\/anion.png\"\n\twidth=\"3400\"\n\theight=\"2373\"\n\tsrcset=\"https:\/\/been.ee\/p\/0-0-0-5\/anion_hu_33e06481ea0fc3f5.png 480w, https:\/\/been.ee\/p\/0-0-0-5\/anion_hu_a5da1302b30ec68a.png 1024w\"\n\tloading=\"lazy\"\n\t\n\t\talt=\"anion.png\"\n\t\n\t\n\t\tclass=\"gallery-image\" \n\t\tdata-flex-grow=\"143\"\n\t\tdata-flex-basis=\"343px\"\n\t\n><\/p>\n"},{"title":"Docker\uff1a\u6982\u5ff5\u548c\u539f\u7406","link":"https:\/\/been.ee\/p\/0-0-0-4\/","pubDate":"Mon, 26 Jun 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-4\/","description":"<h2 id=\"\u521d\u63a2\">\u521d\u63a2\n<\/h2><hr>\n<p>\u4e0b\u9762\u5148\u4ece\u6982\u5ff5\u4e0a\u7b80\u5355\u8ba4\u8bc6\u4e00\u4e0b<code>Docker<\/code>\u548c\u5bb9\u5668<\/p>\n<h3 id=\"docker\u548c\u5bb9\u5668\">Docker\u548c\u5bb9\u5668\n<\/h3><hr>\n<p><code>Docker<\/code>\uff0c\u7b80\u5355\u5730\u8bf4\u5c31\u662f\u4e00\u4e2a\u521b\u5efa\u548c\u7ba1\u7406\u5bb9\u5668\u7684\u5de5\u5177\uff0c\u800c\u6240\u8c13\u5bb9\u5668\uff0c\u5b9e\u9645\u4e0a\u662f\u4e00\u79cd\u8f7b\u91cf\u7ea7\u7684\u865a\u62df\u5316\u6280\u672f\uff08\u6ce8\u610f\uff0c\u5bb9\u5668\u662f\u4e00\u4e2a\u6982\u5ff5\uff0c<code>Docker<\/code>\u662f\u5b9e\u73b0\u5bb9\u5668\u7684\u5de5\u5177\uff09<\/p>\n<p>\u4f60\u53ef\u80fd\u4f1a\u95ee\uff0c\u4e3a\u5565\u53eb\u5b83\u5bb9\u5668\uff1f\u5bb9\u5668\u91cc\u9762\u603b\u8981\u88c5\u70b9\u4ec0\u4e48\u5427\uff1f\u6ca1\u9519\uff0c\u5bb9\u5668\u91cc\u9762\u88c5\u7684\u5c31\u662f<strong>\u5e94\u7528\u7a0b\u5e8f<\/strong>\uff0c\u66f4\u786e\u5207\u5730\u8bf4\uff0c\u5e94\u8be5\u662f<strong>\u5e94\u7528\u7a0b\u5e8f\u548c\u5b83\u8fd0\u884c\u65f6\u6240\u9700\u8981\u7684\u6240\u6709\u73af\u5883<\/strong><\/p>\n<p>\u4e5f\u5c31\u662f\u8bf4\uff0c\u5bb9\u5668\u5b9e\u9645\u4e0a\u662f\u4e00\u79cd\u6c99\u76d2\u6280\u672f\uff0c\u5c31\u50cf\u4e00\u4e2a\u96c6\u88c5\u7bb1\u4e00\u6837\uff0c\u628a\u4f60\u7684\u5e94\u7528\u88c5\u8d77\u6765\uff0c\u6216\u8005\u8bf4\u9694\u79bb\u8d77\u6765\uff0c\u7136\u540e\u5728\u8fd9\u4e2a\u96c6\u88c5\u7bb1\u914d\u7f6e\u597d\u5e94\u7528\u7a0b\u5e8f\uff0c\u4e0b\u56de\u6211\u60f3\u628a\u5e94\u7528\u653e\u5230\u65b0\u73af\u5883\u4e0b\u6211\u53ef\u4ee5\u76f4\u63a5\u628a\u96c6\u88c5\u7bb1\uff08\u867d\u7136\u53eb\u96c6\u88c5\u7bb1\uff0c\u4f46\u5176\u5b9e\u5f88\u8f7b\u91cf\u7684\uff09\u642c\u8fc7\u53bb\u5c31\u80fd\u76f4\u63a5\u8fd0\u884c\u4e86<\/p>\n<h3 id=\"\u5bb9\u5668\u548c\u865a\u62df\u673a\u7684\u533a\u522b\">\u5bb9\u5668\u548c\u865a\u62df\u673a\u7684\u533a\u522b\n<\/h3><hr>\n<p>\u865a\u62df\u673a\u662f\u53e6\u4e00\u79cd\u5e38\u89c1\u7684\u865a\u62df\u6280\u672f<\/p>\n<blockquote>\n<p>\u865a\u62df\u673a\u662f\u76f4\u63a5\u865a\u62df\u5230\u4e86\u786c\u4ef6\u5c42\uff0c\u5c31\u662f\u8bf4\u5b83\u628a\u5904\u7406\u5668\u3001\u5185\u5b58\u3001\u786c\u76d8\u548c\u7f51\u7edc\u63a5\u53e3\u90fd\u7ed9\u4f60\u865a\u62df\u51fa\u6765\u4e86\uff0c\u5728\u6b64\u4e4b\u4e0a\u8fd8\u865a\u62df\u4e86\u4e00\u5957\u5305\u62ec\u5185\u6838\u5728\u5185\u7684\u5b8c\u6574\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u800c\u8fd9\u4e9b\u90fd\u662f\u5728\u4f60\u7684\u5bbf\u4e3b\u673a\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u865a\u62df\u51fa\u6765\u7684\uff0c\u53ef\u60f3\u800c\u77e5\u9700\u8981\u5360\u7528\u591a\u5c11\u8d44\u6e90<\/p>\n<p>\u800c\u5bb9\u5668\u5c31\u4e0d\u540c\u4e86\uff0c\u5b83\u53ea\u662f\u67d0\u4e2a\u8fdb\u7a0b\u63d0\u4f9b\u4e86\u4e00\u4e2a\u64cd\u4f5c\u7cfb\u7edf&quot;\u7a7a\u58f3&quot;\uff0c\u4e4b\u6240\u4ee5\u8bf4\u7a7a\u58f3\u662f\u56e0\u4e3a\u5b9e\u9645\u4e0a\u53ea\u662f\u4e3a\u8fdb\u7a0b\u63d0\u4f9b\u4e86\u4e00\u5957\u6587\u4ef6\u7cfb\u7edf\uff0c\u7136\u540e\u5728\u521b\u5efa\u8fdb\u7a0b\u7684\u65f6\u5019\u7ed9\u5b83\u8bbe\u5b9a\u4e86\u4e00\u4e9b\u7279\u6b8a\u7684\u53c2\u6570\uff0c\u5b9e\u9645\u4e0a\u5185\u6838\u4e5f\u8fd8\u662f\u7528\u5bbf\u4e3b\u673a\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u786e\u5b9e\u662f\u8db3\u591f\u8f7b\u91cf\u5427<\/p><\/blockquote>\n<hr>\n<p>\u6240\u4ee5\u4e3a\u4e86\u4e86\u89e3<code>Docker<\/code>\uff0c\u5c31\u4e0d\u5f97\u4e0d\u63d0\u5230\u5bb9\u5668\u3002\u7531\u4e8e\u672c\u4eba\u975e\u8ba1\u7b97\u673a\u4e13\u4e1a\u4eba\u58eb\uff0c\u5e76\u6ca1\u6709\u7cfb\u7edf\u5b66\u4e60\u8fc7Linux\u5185\u6838\uff0c\u53ef\u80fd\u4e0d\u4f1a\u7279\u522b\u6df1\u5165\u8ba8\u8bba\uff0c\u60f3\u6df1\u5165\u4e86\u89e3\u53ef\u4ee5\u770b<a class=\"link\" href=\"https:\/\/time.geekbang.org\/column\/intro\/100015201\"  target=\"_blank\" rel=\"noopener\"\n    >\u5f20\u78ca\u8001\u5e08\u7684&quot;\u6df1\u5165\u5256\u6790 Kubernetes&quot;\u4e00\u6587<\/a>\uff0c\u8bb2\u7684\u6e05\u6670\u900f\u5f7b\uff0c\u5f53\u7136\u672c\u6587\u4e5f\u4f1a\u501f\u9274\u5176\u4e2d\u5f88\u591a\u8bb2\u89e3\uff0c\u662f\u4e00\u7bc7\u6df1\u5ea6\u597d\u6587<\/p>\n<h2 id=\"\u5bb9\u5668\u7684\u5b9e\u73b0\">\u5bb9\u5668\u7684\u5b9e\u73b0\n<\/h2><hr>\n<p>\u5bb9\u5668\u4e3b\u8981\u7684\u4f5c\u7528\u5c31\u662f\u901a\u8fc7\u5bf9\u4e00\u4e2a\u8fdb\u7a0b\u8fdb\u884c\u4fee\u9970\uff08\u5176\u5b9e\u5c31\u662f\u5728\u521b\u5efa\u8fdb\u7a0b\u65f6\u8bbe\u7f6e\u7279\u5b9a\u7684\u53c2\u6570\uff09\uff0c\u4ece\u800c\u4e3a\u5176\u521b\u9020\u51fa\u4e00\u4e2a\u8fb9\u754c\u8fdb\u884c\u9650\u5236<\/p>\n<p>\u5bf9\u4e8e\u5305\u62ec<code>Docker<\/code>\u5728\u5185\u7684Linux\u5bb9\u5668\uff0c\u4f7f\u7528**<code>Namespace<\/code>\u6280\u672f\u901a\u8fc7\u4fee\u6539\u8fdb\u7a0b\u89c6\u56fe\u7684\u65b9\u5f0f\u5bf9\u5e94\u7528\u7684\u73af\u5883\u8fdb\u884c\u4e86\u9694\u79bb**\uff0c<strong>Cgroups\u6280\u672f\u6765\u9650\u5236\uff08\u5bf9\u5bbf\u4e3b\u673a\uff09\u8d44\u6e90\u7684\u5360\u7528<\/strong><\/p>\n<p>\u8fd9\u91cc\u5c06\u53ea\u5bf9<code>Namespace<\/code>\u548c<code>Cgroups<\/code>\u6280\u672f\u7684\u4f5c\u7528\u8fdb\u884c\u63cf\u8ff0\uff0c\u5177\u4f53\u5b9e\u73b0\u6d89\u53caLinux\u5185\u6838\u76f8\u5173\u77e5\u8bc6\uff0c\u6240\u4ee5\u5c31\u4e0d\u5c55\u5f00\u8be6\u7ec6\u8bb2\u4e86<\/p>\n<h3 id=\"linux-namespace\u6280\u672f\">Linux Namespace\u6280\u672f\n<\/h3><hr>\n<p><code>Namespace<\/code>\u5176\u5b9e\u662fLinux\u5728\u521b\u5efa\u8fdb\u7a0b\u65f6\u7684\u4e00\u4e2a\u53ef\u9009\u53c2\u6570\uff0c\u901a\u8fc7\u7ed9\u8fdb\u7a0b\u6307\u5b9a\u4e00\u7cfb\u5217\u7684\u53c2\u6570\u6765\u5bf9\u8fdb\u7a0b\u521b\u9020\u4e86\u4e00\u4e2a\u5168\u65b0\u7684<strong>\u8fdb\u7a0b\u7a7a\u95f4<\/strong>\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u7528<code>PID Namespace<\/code>\u5c06\u8fdb\u7a0b\u9694\u79bb\u5230\u4e00\u4e2a\u72ec\u7acb\u7684\u7a7a\u95f4\uff0c\u8ba9\u5b83\u8ba4\u4e3a\u81ea\u5df1\u662f\u7cfb\u7edf\u7684\u7684\u7b2c1\u53f7\uff08<code>PID<\/code> = 1\uff09\u8fdb\u7a0b\uff0c\u4e5f\u770b\u4e0d\u5230\u7cfb\u7edf\u5185\u7684\u5176\u4ed6\u8fdb\u7a0b\uff0c\u53ef\u4ee5\u7528<code>Mount Namespace<\/code>\u7ed9\u8fdb\u7a0b\u6302\u8f7d\u4e00\u4e2a\u81ea\u5df1\u7684\u6587\u4ef6\u7cfb\u7edf\u3002\u6b64\u5916\uff0c\u8fd8\u6709<code>Network<\/code>\u3001<code>User<\/code>\u3001<code>UTS<\/code>\u548c<code>IPC<\/code>\u8fd9\u4e9b<code>Namespace<\/code>\uff0c\u90fd\u662f\u7528\u6765\u5bf9\u8fdb\u7a0b\u7684\u4e0a\u4e0b\u6587\u8fdb\u884c\u9650\u5236\u7684<\/p>\n<p>\u8bf4\u5230\u8fd9\u91cc\uff0c\u8fd9\u611f\u89c9\u6709\u70b9\u50cf\u300a\u76d7\u68a6\u7a7a\u95f4\u300b\u91cc\u7b51\u68a6\u5e08\uff08<code>Docker<\/code>\uff09\u7ed9\u4eba\u4eec\uff08\u8fdb\u7a0b\uff09\u9020\u7684\u68a6\uff08\u5bb9\u5668\uff09\u4e00\u6837\uff0c\u8ba9\u4ed6\u4eec\u4ee5\u4e3a\u68a6\u5883\uff08\u8fdb\u7a0b\u7a7a\u95f4\uff09\u662f\u771f\u5b9e\u7684\uff0c\u800c\u5bdf\u89c9\u4e0d\u5230\u73b0\u5b9e\uff08\u5bbf\u4e3b\u673a\uff09<\/p>\n<h3 id=\"linux-cgroups\u6280\u672f\">Linux Cgroups\u6280\u672f\n<\/h3><hr>\n<p><code>Linux Cgroups<\/code>\u7684\u5168\u7a0b\u4e3a<code>Linux Control Groups<\/code>\uff0c\u5b83\u6700\u4e3b\u8981\u7684\u4f5c\u7528\u5c31\u662f\u9650\u5236\u4e00\u4e2a\u8fdb\u7a0b\u7ec4\u80fd\u591f\u4f7f\u7528\u7684\u8d44\u6e90\u4e0a\u9650\uff0c\u5305\u62ecCPU\u3001\u5185\u5b58\u3001\u78c1\u76d8\u548c\u7f51\u7edc\u5e26\u5bbd\u7b49\u7b49\u3002<\/p>\n<p>\u5728Linux\u4e2d\uff0c<code>Cgroups<\/code>\u7ed9\u7528\u6237\u66b4\u9732\u51fa\u6765\u7684\u64cd\u4f5c\u63a5\u53e3\u662f\u6587\u4ef6\u7cfb\u7edf\uff0c\u5373\u5b83\u4ee5\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u65b9\u5f0f\u7ec4\u7ec7\u5728\u64cd\u4f5c\u7cfb\u7edf\u7684<code>\/sys\/fs\/cgroup<\/code>\u8def\u5f84\u4e0b\u3002<\/p>\n<h2 id=\"\u5bb9\u5668\u7684\u5355\u8fdb\u7a0b\u6a21\u578b\">\u5bb9\u5668\u7684\u5355\u8fdb\u7a0b\u6a21\u578b\n<\/h2><hr>\n<p>\u901a\u8fc7\u4e0a\u9762\u7684\u63cf\u8ff0\uff0c\u8981\u660e\u767d\u5bb9\u5668\u5b9e\u9645\u4e0a\u662f\u4e00\u4e2a&quot;\u5355\u8fdb\u7a0b&quot;\u6a21\u578b\u3002\u4f46\u662f&quot;\u5355\u8fdb\u7a0b&quot;\u7684\u610f\u601d\u662f\u53ea\u6709\u4e00\u4e2a\u8fdb\u7a0b\u662f\u88ab\u9650\u5236\u7684\uff08\u53ef\u63a7\u7684\uff09\uff0c\u5e76\u4e0d\u662f\u53ea\u80fd\u8fd0\u884c\u4e00\u4e2a\u8fdb\u7a0b\u3002<\/p>\n<p>\u4e00\u4e2a\u6b63\u5728\u8fd0\u884c\u7684<code>Docker<\/code>\u5bb9\u5668\uff0c\u5176\u5b9e\u5c31\u662f\u4e00\u4e2a\u542f\u7528\u4e86\u591a\u4e2a<code>Linux Namespace<\/code>\u7684\u5e94\u7528\u8fdb\u7a0b\uff0c\u800c\u8fd9\u4e2a\u8fdb\u7a0b\u80fd\u591f\u4f7f\u7528\u7684\u8d44\u6e90\u91cf\uff0c\u5219\u53d7<code>Cgroups<\/code>\u914d\u7f6e\u7684\u9650\u5236\u3002<\/p>\n<p>\u5728\u5bbf\u4e3b\u673a\u4e2d\u4f7f\u7528<code>ps aux | grep xxx<\/code>\u662f\u53ef\u4ee5\u627e\u5230\u5bb9\u5668\u4e2d\u7684\u8fdb\u7a0b\u5728\u5bbf\u4e3b\u673a\u4e2d\u771f\u5b9e\u7684<code>PID<\/code>\u3002<\/p>\n<h2 id=\"\u5bb9\u5668\u955c\u50cfrootfs\">\u5bb9\u5668\u955c\u50cf\uff08rootfs\uff09\n<\/h2><hr>\n<p>\u5bb9\u5668\u955c\u50cf\u5176\u5b9e\u5c31\u662f\u6302\u8f7d\u5728\u5bb9\u5668\u6839\u76ee\u5f55\u4e0a\u7684\u6587\u4ef6\u7cfb\u7edf\uff0c\u4e3a\u4e86\u66f4\u52a0\u771f\u5b9e\uff0c\u901a\u5e38\u90fd\u4f1a\u6302\u8f7d\u4e00\u4e2a\u5b8c\u6574\u64cd\u4f5c\u7cfb\u7edf\u7684\u6587\u4ef6\u7cfb\u7edf\u3002<\/p>\n<p>\u4f46\u662f\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5bb9\u5668\u955c\u50cf\u63d0\u4f9b\u7684\u53ea\u662f\u4e00\u4e2a\u64cd\u4f5c\u7cfb\u7edf\u5305\u542b\u7684\u6587\u4ef6\uff0c\u914d\u7f6e\u548c\u76ee\u5f55\uff0c\u5e76\u4e0d\u5305\u62ec\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u3002\u56e0\u6b64\uff0c\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u7684\u6240\u6709\u5bb9\u5668\u90fd\u4f1a\u5171\u4eab\u5bbf\u4e3b\u673a\u64cd\u4f5c\u7cfb\u7edf\u7684\u5185\u6838\u3002<\/p>\n<p><code>Docker<\/code>\u4f7f\u7528\u7684<code>rootfs<\/code>\u662f\u7531\u591a\u4e2a\u5c42\u7ec4\u6210\u7684\uff0c\u7b80\u5355\u7684\u7406\u89e3\u5c31\u662f\u7528\u6237\u5728\u5bb9\u5668\u5185\u5bf9<code>rootfs<\/code>\u505a\u7684\u4fee\u6539\u4f1a\u4ee5\u589e\u91cf\u7684\u65b9\u5f0f\u51fa\u73b0\u5728\u7279\u5b9a\u7684\u5c42\uff08\u53ef\u8bfb\u5199\u5c42\uff09\u4e2d\u3002\u6bcf\u4e2a\u66fe\u901a\u8fc7<strong>\u8054\u5408\u6302\u8f7d<\/strong>\u7684\u65b9\u5f0f\u5f97\u5230\u4e86\u4e00\u6574\u4e2a\u5b8c\u6574\u7684<code>rootfs<\/code>\u3002<\/p>\n<p>\u6709\u4e86\u5bb9\u5668\u955c\u50cf\uff0c\u6211\u53ef\u4ee5\u4e8b\u5148\u5728\u8fd9\u4e2a\u955c\u50cf\u73af\u5883\u4e0b\u914d\u7f6e\u597d\u6211\u7684\u5e94\u7528\uff0c\u7136\u540e\u4f7f\u7528<code>Docker<\/code>\u5c06\u6574\u4e2a\u73af\u5883\u548c\u5e94\u7528\u5c01\u88c5\u6253\u5305\u5230\u4e00\u8d77\uff0c\u8fd9\u6837\u5176\u4ed6\u4eba\u76f4\u63a5\u5b89\u88c5\u6211\u8fd9\u4e2a\u6253\u5305\u597d\u7684\u5bb9\u5668\u5c31\u597d\u4e86\uff0c\u5c31\u4e0d\u7528\u62c5\u5fc3\u91cd\u65b0\u914d\u7f6e\u73af\u5883\u7684\u95ee\u9898\u3002<\/p>\n<h2 id=\"\u603b\u7ed3\">\u603b\u7ed3\n<\/h2><hr>\n<p>\u5230\u6b64\uff0c\u5bf9\u5bb9\u5668\u548c<code>Docker<\/code>\u5e94\u8be5\u6709\u4e86\u4e00\u4e2a\u521d\u6b65\u7684\u8ba4\u8bc6\uff0c\u6982\u62ec\u4e00\u4e0b\u5c31\u662f\uff0c<code>Docker<\/code>\u662f\u521b\u5efa\u5bb9\u5668\u7684\u5de5\u5177\uff0c\u5bb9\u5668\u5176\u5b9e\u5c31\u662f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u4e0a\u901a\u8fc7\u5185\u6838\u7684\u9694\u79bb\u673a\u5236\u4e3a\u5e94\u7528\u7a0b\u5e8f\u521b\u5efa\u7684\u4e00\u4e2a\u80fd\u591f\u6ee1\u8db3\u5176\u8fd0\u884c\u7684&quot;\u76f8\u5bf9&quot;\u72ec\u7acb\u7684\u73af\u5883<\/p>\n<blockquote>\n<p><code>Docker<\/code>\u4e3b\u8981\u4e3a\u5f85\u521b\u5efa\u8fdb\u7a0b\u6240\u505a\u7684\u5de5\u4f5c\u5176\u5b9e\u5c31\u662f\uff1a<\/p>\n<ol>\n<li>\n<p>\u542f\u7528<code>Linux Namespace<\/code>\u914d\u7f6e<\/p>\n<\/li>\n<li>\n<p>\u8bbe\u7f6e\u6307\u5b9a\u7684<code>Cgroups<\/code>\u53c2\u6570<\/p>\n<\/li>\n<li>\n<p>\u5207\u6362\u5230\u8fdb\u7a0b\u7684\u6839\u76ee\u5f55\uff08\u5bb9\u5668\u955c\u50cf\u7684\u6839\u76ee\u5f55\uff09<\/p>\n<\/li>\n<\/ol><\/blockquote>\n<h2 id=\"\u53c2\u8003\">\u53c2\u8003\n<\/h2><hr>\n<blockquote>\n<ul>\n<li>\n<p><a class=\"link\" href=\"https:\/\/www.ruanyifeng.com\/blog\/2018\/02\/docker-tutorial.html\"  target=\"_blank\" rel=\"noopener\"\n    >\u962e\u4e00\u5cf0\u8001\u5e08\u7684\u535a\u5ba2<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/time.geekbang.org\/column\/intro\/100015201\"  target=\"_blank\" rel=\"noopener\"\n    >\u6781\u5ba2\u65f6\u95f4\uff1a\u5f20\u78ca\u8001\u5e08\u7684&quot;\u6df1\u5165\u5256\u6790 Kubernetes&quot;<\/a><\/p>\n<\/li>\n<li>\n<p><a class=\"link\" href=\"https:\/\/docs.docker.com\/\"  target=\"_blank\" rel=\"noopener\"\n    >Docker\u6587\u6863<\/a><\/p>\n<\/li>\n<\/ul><\/blockquote>\n"},{"title":"\u7535\u5316\u5b66\u5de5\u4f5c\u7ad9\u5e38\u7528\u7684\u7535\u5316\u5b66\u6d4b\u8bd5\u65b9\u6cd5","link":"https:\/\/been.ee\/p\/0-0-0-3\/","pubDate":"Sun, 25 Jun 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-3\/","description":"<h2 id=\"\u5199\u5728\u524d\u9762\">\u5199\u5728\u524d\u9762\n<\/h2><hr>\n<blockquote>\n<p>\u7b80\u5355\u8bb0\u5f55\u4e00\u4e0b\u505a\u8d85\u7535\u4ee5\u6765\u5e38\u7528\u7684\u7535\u5316\u5b66\u6d4b\u8bd5\u65b9\u6cd5<\/p><\/blockquote>\n<p>\u4ee5\u4e0b\u7684\u6240\u6709\u6d4b\u8bd5\uff0c\u5982\u65e0\u7279\u522b\u6ce8\u660e\u5747\u4f7f\u7528\u4e0a\u6d77\u8fb0\u534e\u7535\u5316\u5b66\u5de5\u4f5c\u7ad9\uff08CHI660e\uff09\u8fdb\u884c\u3002<\/p>\n<h2 id=\"\u5faa\u73af\u4f0f\u5b89\u6cd5cv\">\u5faa\u73af\u4f0f\u5b89\u6cd5\uff08CV\uff09\n<\/h2><hr>\n<p>\u53ef\u4ee5\u8bf4\u662f\u8d85\u7535\u6700\u5e38\u7528\u7684\u6d4b\u8bd5\u65b9\u6cd5\u4e86\uff0c\u7528\u6765\u6d4b\u8bd5\u5de5\u4f5c\u7535\u538b\u7a97\u53e3\u3002\u8fd9\u4e2a\u65b9\u6cd5\u5176\u5b9e\u5c31\u662f\u89c2\u5bdf\u7535\u6d41\u968f\u7535\u4f4d\u589e\u5927\u7684\u53d8\u5316\uff0c\u5176\u4e2d\u7535\u4f4d\u4f1a\u4ee5\u8bbe\u5b9a\u597d\u7684\u626b\u901f\uff08\u4f8b\u59825mV\/s\u7684\u626b\u901f\uff09\u53d8\u5316\u3002\u5bf9\u4e8e\u8d85\u7535\uff0c\u7406\u60f3\u60c5\u51b5\u4e0b\u7535\u6d41\u4f1a\u59cb\u7ec8\u4fdd\u6301\u6052\u5b9a\uff0c\u5728\u6d4b\u8bd5\u5b8c\u4e00\u5708\u540e\u5f97\u5230\u63a5\u8fd1\u77e9\u5f62\u7684\u5f62\u72b6\uff0c\u5982\u679c\u51fa\u73b0\u4e86\u7535\u6d41\u6781\u5316\uff08\u51fa\u5cf0\uff09\uff0c\u8bc1\u660e\u5230\u8fbe\u4e86\u7535\u4f4d\u6781\u9650\uff0c\u4e5f\u5c31\u610f\u5473\u7740\u7535\u6c60\u5185\u90e8\u51fa\u73b0\u526f\u53cd\u5e94\u3002<\/p>\n<p><strong>\u8bbe\u7f6e\u53c2\u6570\uff1a<\/strong><\/p>\n<blockquote>\n<p>Init E (V): \u521d\u59cb\u7535\u4f4d\uff0c\u5c31\u662f\u6d4b\u8bd5\u5f00\u59cb\u65f6\u5019\u7684\u5f00\u8def\u7535\u4f4d\uff0c\u4e00\u822c0V\u5c31\u884c\uff0c\u56e0\u4e3a\u8d85\u7535\u88c5\u5b8c\u7535\u6c60\u4e0d\u5145\u7535\u57fa\u672c\u4e0a\u5c31\u662f0\u7535\u4f4d\u3002<\/p>\n<p>High E (V): \u6700\u9ad8\u7535\u4f4d\uff0c\u5c31\u662f\u4f60\u8981\u8ba9\u5b83\u5145\u5230\u591a\u5c11\u4f0f\uff0c\u5e76\u4ee5\u6b64\u5224\u65ad\u5de5\u4f5c\u7535\u4f4d\u7a97\u53e3\uff0c\u5f97\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u51b3\u5b9a\uff0c\u65e0\u673a\u7535\u89e3\u6db2\u4e00\u822c1-2V\uff0c\u6709\u673a\u7535\u89e3\u6db23V\u5de6\u53f3\uff0c\u53ef\u4ee5\u5148\u8bbe\u4e2a\u4fdd\u5b88\u503c\uff0c\u7136\u540e\u518d\u9012\u589e\u3002<\/p>\n<p>Low E (V): \u6700\u4f4e\u7535\u4f4d\uff0c\u5c31\u662f\u8ba9\u5b83\u653e\u7535\u5230\u591a\u5c11\u4f0f\uff0c\u8d85\u7535\u901a\u5e38\u90fd\u662f0V\u3002<\/p>\n<p>Final E (V): \u6700\u540e\u4e00\u5708\u7ed3\u675f\u65f6\u7684\u7535\u4f4d\uff0c\u4e00\u822c\u4e5f\u662f0V\u3002<\/p>\n<p>Initial Scan Polarity: \u521d\u59cb\u626b\u63cf\u6781\u6027\uff0c\u65e0\u975e\u5c31\u662f\u7535\u6d41\u65b9\u5411\u4e0d\u4e00\u6837\uff0c\u8d85\u7535\u6b63\u8d1f\u6781\u90fd\u662f\u4e00\u6837\u7684\u6240\u4ee5\u5e94\u8be5\u9009\u54ea\u4e2a\u90fd\u884c\uff0c\u6211\u90fd\u662f\u9009Positive\u3002<\/p>\n<p>Scan Rate (V\/s): \u6d4b\u91cf\u7a97\u53e3\u4e00\u822c\u4e0d\u80fd\u8d85\u8fc75mV\/s\uff0c\u8fd9\u662f\u5927\u90e8\u5206\u6587\u7ae0\u7684\u8981\u6c42\uff0c\u670d\u4ece\u5c31\u884c\u3002<\/p>\n<p>Sweep Segments: \u8bbe\u7f6e\u6bb5\u6570\uff0c\u5145\u7535\u548c\u653e\u7535\u5404\u7b97\u4e00\u6bb5\uff0c\u6240\u4ee5\u4e00\u5708\u662f\u4e24\u6bb5\uff0c\u4ee5\u6b64\u7c7b\u63a8\u3002<\/p>\n<p>Sample Interval (V): \u53ef\u80fd\u662f\u6309\u7167\u7535\u4f4d\u7684\u53d6\u70b9\u95f4\u9694\uff0c\u6ca1\u6539\u8fc7\uff0c\u9ed8\u8ba40.001\u3002<\/p>\n<p>Quiet Time (sec): \u9759\u7f6e\u65f6\u95f4\uff1f\u8fd8\u662f\u5565\uff1f\u4e5f\u6ca1\u6539\u8fc7\uff0c\u9ed8\u8ba42\u3002<\/p>\n<p>Sensitivity (A\/V): \u7075\u654f\u5ea6\uff0c\u5176\u5b9e\u5c31\u662f\u91cf\u7a0b\uff0c\u5f97\u6839\u636e\u7535\u6d41\u5927\u5c0f\u8bbe\uff0c5mV\/s\u7684\u626b\u901f\u4e00\u822c\u8bbe1 e-003\u5c31\u884c\u3002<\/p><\/blockquote>\n<p>\u6211\u4e00\u822c\u7528\u6709\u673a\u7535\u89e3\u6db2\u6d4b3V\u4ee5\u4e0a\u7684\u7535\u4f4d\u6bd4\u8f83\u591a\uff0cPC\u4f5c\u6eb6\u5242\u7a97\u53e3\u6d4b\u4e2a\u4e09\u56db\u5708\uff0c\u57fa\u672c\u4e0a\u5c31\u80fd\u7a33\u5b9a\u3002<\/p>\n<p>\u91cd\u70b9\u662fAN\u7684\u8bdd\uff0c\u76ee\u524d\u8bd5\u8fc7\u5e02\u9762\u4e0a\u7684\u56fd\u836f\u548c\u963f\u62c9\u4e01\u90fd\u6709\u6742\u8d28\uff0c\u5176\u4e2d\u963f\u62c9\u4e01\u7eaf\u5ea6\u90fd\u523099.9%\u4e86\u8fd8\u662f\u4e0d\u884c\uff0c\u636e\u8001\u5e08\u8bf4\u7535\u89e3\u6db2\u7ea7\u522b\u7684AN\u90fd\u8981\u6c4299.999%\uff0c\u4f46\u662f\u5de8\u8d35\uff0c\u6240\u4ee5\u81ea\u7528\u7684\u8bdd\u76ee\u524d\u5bf9\u56fd\u836fAN\u63d0\u7eaf\u540e\u6548\u679c\u8fd8\u884c\uff0c\u4f46\u662f\u8fd8\u662f\u9700\u8981\u7528CV\u6d3b\u5316\u5341\u51e0\u751a\u81f3\u51e0\u5341\u5708\u624d\u7a33\u5b9a\u3002<\/p>\n<p>\u4e00\u822c\u8fd8\u9700\u8981\u6d4b\u8bd5\u4e0d\u540c\u626b\u901f\uff085mV\/s\u300110&hellip;\u300120&hellip;\u3001 50&hellip;\u3001 100&hellip;\u3001200&hellip;\uff09\u7684\u5bf9\u6bd4\uff0c\u53ea\u9700\u8981\u6539Scan Rate\u5c31\u597d\u3002<\/p>\n<h2 id=\"\u7ebf\u6027\u4f0f\u5b89\u626b\u63cflsv\">\u7ebf\u6027\u4f0f\u5b89\u626b\u63cf\uff08LSV\uff09\n<\/h2><hr>\n<p>\u6587\u7ae0\u91cc\u7ecf\u5e38\u7528\u7684\u6d4b\u8bd5\u7535\u89e3\u6db2\u7535\u5316\u5b66\u7a33\u5b9a\u6027\u7684\u65b9\u6cd5\uff0c\u8fd9\u4e2a\u6d4b\u8bd5\u7ed3\u679c\u6216\u8bb8\u80fd\u591f&quot;\u4e00\u5b9a\u7a0b\u5ea6&quot;\u4e0a\u53cd\u6620\u7535\u89e3\u6db2\u7cfb\u7edf\u7684\u7a33\u5b9a\u6027\uff0c\u4f46\u5b9e\u9645\u4e0a\u5e76\u4e0d\u80fd\u53cd\u6620\u7535\u89e3\u6db2\u5728\u7ebd\u6263\u7535\u6c60\u4e2d\u7684\u5de5\u4f5c\u7535\u538b\u3002<\/p>\n<p>\u4e0b\u9762\u6b65\u5165\u6b63\u9898\uff0c\u5927\u6982\u4ecb\u7ecd\u4e00\u4e0b\uff0c\u5176\u5b9e\u5c31\u662f\u770b\u770b\u4f60\u8fd9\u74f6\u6db2\u4f53\u80fd\u8010\u591a\u5927\u7684\u8d1f\u538b\u548c\u6b63\u538b\uff0c\u9700\u8981\u7528\u4e09\u7535\u6781\u4f53\u7cfb\uff0c\u8fd9\u4e2a\u8d1f\u538b\u548c\u6b63\u538b\u4e0d\u540c\u4f53\u7cfb\u4e0d\u592a\u4e00\u6837\uff0c\u6709\u65f6\u5019\u9700\u8981\u8bd5\u51fa\u6765\uff0c\u53ef\u4ee5\u770b\u770b\u6587\u732e\u8bbe\u591a\u5927\uff0c\u81ea\u5df1\u6709\u4e2a\u6570\uff0c\u6d4b\u8bd5\u7ed3\u679c\u5c31\u770b\u5de6\u53f3\u4e24\u4fa7\u5206\u522b\u4ece\u591a\u5c11\u4f0f\u5f00\u59cb\u51fa\u73b0\u7535\u6d41\uff0c\u901a\u5e38\u8bba\u6587\u4e2d\u4f1a\u5c06\u622a\u81f3\u7535\u6d41\u53d6\u5230\u00b10.1 mA cm<sup>-2<\/sup>\uff0c\u8fd9\u4e2a\u622a\u81f3\u7535\u6d41\u4e0b\u7684\u7535\u538b\u8303\u56f4\u5c31\u662f\u6240\u8c13\u7684\u7535\u5316\u5b66\u7a33\u5b9a\u7535\u4f4d\u3002<\/p>\n<p>\u6211\u76ee\u524d\u4f7f\u7528\u7684\u4e09\u7535\u6781\uff1a<\/p>\n<blockquote>\n<p>\u5de5\u4f5c\u7535\u6781\uff1a\u73bb\u78b3\u7535\u6781<\/p>\n<p>\u53c2\u6bd4\u7535\u6781\uff1a\u94f6\u6c2f\u5316\u94f6\uff08\u9996\u9009\uff09\u3001\u94f6\u76d8\u7535\u6781<\/p>\n<p>\u5bf9\u7535\u6781\uff1a\u94c2\u67f1\u7535\u6781<\/p><\/blockquote>\n<p><strong>\u8bbe\u7f6e\u53c2\u6570\uff1a<\/strong><\/p>\n<blockquote>\n<p>Init E (V): \u8bbe\u7f6e\u8d1f\u538b\uff0c\u53ef\u80fd\u9700\u8981\u8bd5\u8bd5\uff0c\u6216\u8005\u770b\u770b\u6587\u732e\u3002<\/p>\n<p>Final E (V): \u8bbe\u7f6e\u6b63\u538b\uff0c\u540c\u7406\u3002<\/p>\n<p>Scan Rate (V\/s): \u626b\u901f\uff0c\u4e0d\u80fd\u8bbe\u9ad8\uff0c\u901a\u5e382mV\/s\u3002<\/p>\n<p>Sample Interval (V): \u4e0d\u7528\u52a8\uff0c\u9ed8\u8ba40.001\u3002<\/p>\n<p>Quiet Time (sec): \u4e0d\u7528\u52a8\uff0c\u9ed8\u8ba42\u3002<\/p>\n<p>Sensitivity (A\/V): \u7075\u654f\u5ea6\uff0c\u6839\u636e\u60c5\u51b5\u8bbe\u5b9a\uff0c\u4e00\u822c1e-003\u3002<\/p><\/blockquote>\n<h2 id=\"\u4ea4\u6d41\u963b\u6297imp\">\u4ea4\u6d41\u963b\u6297\uff08IMP\uff09\n<\/h2><hr>\n<p>\u6700\u5e38\u7528\u7684\u963b\u6297\u6d4b\u8bd5\u6280\u672f\uff0c\u4f46\u9664\u4e86\u7528\u6765\u5206\u6790\u963b\u6297\uff0c\u8fd8\u53ef\u4ee5\u7528\u6765\u5206\u6790\u7535\u89e3\u6db2\u4e2d\u79bb\u5b50\u7684\u884c\u4e3a\u3002<\/p>\n<p><strong>\u8bbe\u7f6e\u53c2\u6570\uff1a<\/strong><\/p>\n<blockquote>\n<p>Init E (V): \u521d\u59cb\u7535\u4f4d\uff0c\u8bbe\u7f6e\u5f00\u8def\u7535\u4f4d<\/p>\n<p>High Frequency (Hz): \u9ad8\u9891\uff0c\u4e00\u822c\u8bbe\u7f6e100000Hz<\/p>\n<p>Low Frequency (Hz): \u4f4e\u9891\uff0c\u4e00\u822c\u8bbe\u7f6e0.01Hz<\/p>\n<p>Amplitude (V): \u4e0d\u8ba4\u8bc6\u5565\u610f\u601d\uff0c\u53cd\u6b63\u4e0d\u91cd\u8981\uff0c\u6ca1\u52a8\u8fc7\uff0c\u9ed8\u8ba40.005<\/p>\n<p>Quiet Time (sec): \u4e0d\u7528\u6539\uff0c\u9ed8\u8ba42<\/p><\/blockquote>\n<p>\u5173\u4e8e\u521d\u59cb\u7535\u4f4d\uff0c\u4e00\u822c\u6765\u8bf4\u90fd\u662f\u5728\u7535\u6c60\u653e\u5b8c\u7535\u7684\u72b6\u6001\u4e0b\u6d4b\u8bd5\uff0c\u4e5f\u5c31\u662f\u57280V\u9644\u8fd1\uff0c\u4f46\u4e5f\u53ef\u4ee5\u5c06\u5176\u5145\u7535\u81f3\u67d0\u4e00\u4e2a\u7535\u4f4d\u4e0b\u8fdb\u884c\u6d4b\u8bd5\uff0c\u7528\u4e8e\u89c2\u5bdf\u5728\u9ad8\u7535\u4f4d\u4e0b\u7684\u4e00\u4e9b\u884c\u4e3a\u3002\u603b\u4e4b\u5c31\u662f\u63d0\u4e00\u53e5\uff0c\u5728\u9ad8\u7535\u4f4d\u548c0\u7535\u4f4d\u4e0b\u6d4b\u8bd5\u53ef\u80fd\u4f1a\u6709\u5dee\u8ddd\uff08\u5c24\u5176\u662f\u4e00\u4e9b\u6709\u673a\u7535\u89e3\u6db2\uff09\uff0c\u6ca1\u6709\u7279\u6b8a\u9700\u6c42\uff0c\u6700\u597d\u57280V\u9644\u8fd1\u6d4b\u8bd5\u3002<\/p>\n<h2 id=\"\u8ba1\u65f6\u7535\u4f4d\u6cd5gcd\">\u8ba1\u65f6\u7535\u4f4d\u6cd5\uff08GCD\uff09\n<\/h2><hr>\n<p>\u6709\u65f6\u5019\u4e5f\u4f1a\u53ebPT\uff08\u56e0\u4e3a\u6d4b\u8bd5\u7ed3\u679c\u7684\u6a2a\u7eb5\u5750\u6807\u5206\u522b\u662fTime-Potential\uff09\u3002\u8be5\u65b9\u6cd5\u4e3b\u8981\u7528\u4e8e\u6d4b\u8bd5\u4e0d\u540c\u7535\u6d41\u5bc6\u5ea6\u4e0b\u7684\u6bd4\u7535\u5bb9\uff0c\u5176\u5b9e\u4e5f\u5c31\u662f\u500d\u7387\u6027\u80fd\u6216\u8005\u8bf4\u500d\u7387\u5bb9\u91cf\u4fdd\u6301\u60c5\u51b5\u3002<\/p>\n<p>\u53e6\u5916\u6ce8\u610f\u5de5\u4f5c\u7ad9\u7684\u6d4b\u8bd5\u65b9\u6cd5\u9009\u62e9CP-chronopotentiomethy\u3002<\/p>\n<p>\u8ba1\u7b97\u7535\u5bb9\u9700\u8981\u4e0b\u9762\u7684\u516c\u5f0f\uff1a\n<\/p>\n$$C=\\frac {I\\times T}{U}$$<p>\n\u5176\u4e2d\uff1a<\/p>\n<blockquote>\n<p>C: \u8868\u793a\u653e\u7535\u6bd4\u7535\u5bb9\uff08F\/g\uff09<\/p>\n<p>I: \u8868\u793a\u7535\u6d41\u5bc6\u5ea6\uff08A\/g\uff09<\/p>\n<p>T: \u653e\u7535\u65f6\u95f4\uff08s\uff09<\/p>\n<p>U: \u5de5\u4f5c\u7535\u4f4d\uff08V\uff09<\/p>\n<p>\u6ce8\uff1a\u4e00\u822c\u5c31\u8ba1\u7b97\u653e\u7535\uff0c\u5145\u7535\u4e5f\u540c\u7406<\/p><\/blockquote>\n<p><strong>\u8bbe\u7f6e\u53c2\u6570\uff1a<\/strong><\/p>\n<blockquote>\n<p>Cathodic Current (A): \u9634\u6781\u7535\u6d41\uff0c\u6839\u636e\u7535\u6d41\u5bc6\u5ea6\u548c\u6d3b\u6027\u7269\u8d28\u8d28\u91cf\u8ba1\u7b97\u51fa\u6765\u3002<\/p>\n<p>Anodic Current (A): \u9633\u6781\u7535\u6d41\uff0c\u8ba1\u7b97\u540c\u4e0a\u3002<\/p>\n<p>High E Limit (V): \u5145\u7535\u7535\u4f4d\uff0c\u60f3\u5145\u5230\u591a\u5c11\u4f0f\u5c31\u8bbe\u591a\u5c11\u3002<\/p>\n<p>High E Hold Time (sec): \u5145\u7535\u4fdd\u6301\u65f6\u95f4\uff0c\u5e94\u8be5\u5c31\u662f\u5145\u4e0a\u7535\u540e\u4fdd\u6301\u591a\u4e45\uff0c\u6211\u6ca1\u7528\u8fc7\uff0c\u9ed8\u8ba40\u3002<\/p>\n<p>Low E Limit (V): \u653e\u7535\u7535\u4f4d\uff0c\u4e5f\u662f\u653e\u7535\u5230\u591a\u5c11\u4f0f\u3002<\/p>\n<p>Low E Hold Time (sec): \u653e\u7535\u4fdd\u6301\u65f6\u95f4\uff0c\u540c\u4e0a\u3002<\/p>\n<p>Cathodic Time (sec): \u6ca1\u6539\u8fc7\uff0c\u9ed8\u8ba410\u3002<\/p>\n<p>Anodic Time (sec): \u6ca1\u6539\u8fc7\uff0c\u9ed8\u8ba410\u3002<\/p>\n<p>Initial Polarity: \u521d\u59cb\u6781\u6027\uff0c\u53ef\u4ee5\u7b80\u5355\u7406\u89e3\u4e3a\u5148\u5145\u7535\u8fd8\u662f\u5148\u653e\u7535\uff0c\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u4f60\u7684\u5f00\u8def\u7535\u4f4d\u4e00\u5f00\u59cb\u5927\u4e8e0\uff0c\u5efa\u8bae\u5148\u653e\u7535\uff0c\u8bbe\u7f6eCathodic\u3002<\/p>\n<p>Data Storage Intvl (sec): \u6ca1\u6539\u8fc7\uff0c\u9ed8\u8ba40.1\u3002<\/p>\n<p>Number of Segments:  \u6bb5\u6570\uff0c\u5145\u7535\u548c\u653e\u7535\u5404\u7b971\u6bb5\uff0c\u56e0\u4e3a\u8d77\u7801\u8981\u5b8c\u6210\u4e00\u6b21\u5b8c\u6574\u7684\u5145\u653e\u7535\u6240\u4ee5\u4e00\u822c\u8bbe3\u3002<\/p><\/blockquote>\n<h2 id=\"\u7535\u5bfc\u7387\u6d4b\u8bd5\">\u7535\u5bfc\u7387\u6d4b\u8bd5\n<\/h2><hr>\n<p>\u5176\u5b9e\u7535\u5bfc\u7387\u6709\u4e13\u95e8\u7684\u4eea\u5668\u53ef\u4ee5\u6d4b\uff0c\u8fd9\u91cc\u4ecb\u7ecd\u7684\u662f\u5229\u7528\u4ea4\u6d41\u963b\u6297\u81ea\u884c\u8ba1\u7b97\u6d4b\u91cf\uff0c\u4e0d\u5dee\u94b1\u7684\u8bdd\uff0c\u6700\u597d\u8fd8\u662f\u7528\u4eea\u5668\u6d4b\u3002<\/p>\n<p>\u6d4b\u8bd5\u6b65\u9aa4\uff1a<\/p>\n<blockquote>\n<p>\u4f7f\u75280.2mm\u539a\u7684\u77f3\u58a8\u7247\u4f5c\u4e3a\u7535\u6781\uff0c\u73bb\u7483\u7ea4\u7ef4\u4f5c\u4e3a\u9694\u819c\uff0c\u5c06\u73bb\u7483\u7ea4\u7ef4\u9694\u819c\u4f7f\u7528\u7535\u89e3\u6db2\u5b8c\u5168\u6d78\u6da6\uff0c\u7136\u540e\u7528\u77f3\u58a8\u7247\u5b8c\u5168\u5b8c\u5168\u5305\u88f9\u4f4f\uff0c\u4f7f\u7528\u5de5\u4f5c\u7535\u6781\u548c\u5bf9\u7535\u6781\uff08\u548c\u53c2\u6bd4\u7535\u6781\u5939\u5728\u4e00\u8d77\uff09\u5206\u522b\u5939\u4f4f<strong>2<\/strong>\u5f20\u77f3\u58a8\u7247\uff0c\u7136\u540e\u4f7f\u7528\u5de5\u4f5c\u7ad9\u6d4b\u8bd5\u963b\u6297\u3002<\/p><\/blockquote>\n<p>\u7535\u5bfc\u7387\u8ba1\u7b97\u516c\u5f0f\uff1a\n<\/p>\n$$\\sigma=\\frac{L}{R\\times A}$$<p>\n\u5176\u4e2d\uff1a<\/p>\n<blockquote>\n<p>R\uff1a\u4f53\u7535\u89e3\u8d28\u7535\u963b\uff08\u534a\u5706\u7684\u5de6\u7aef\u70b9\uff09<\/p>\n<p>L\uff1a\u73bb\u7483\u7ea4\u7ef4\u9694\u819c\u539a\u5ea6\uff081mm\uff09<\/p>\n<p>A\uff1a\u63a5\u89e6\u9762\u79ef<\/p><\/blockquote>\n"},{"title":"\u7b80\u8ff0 0.0.0.0\uff0c127.0.0.1\u548clocalhost \u4e09\u8005\u7684\u533a\u522b","link":"https:\/\/been.ee\/p\/0-0-0-2\/","pubDate":"Wed, 21 Jun 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-2\/","description":"<h2 id=\"0000\">0.0.0.0\n<\/h2><hr>\n<p>\u5728\u670d\u52a1\u5668\u4e2d\uff0c0.0.0.0\u6307\u7684\u662f\u672c\u673a\u4e0a\u6240\u6709\u7684IPv4\u5730\u5740\uff0c\u5982\u679c\u4e00\u4e2a\u4e3b\u673a\u6709\u4e24\u4e2aIP\u5730\u5740\uff0c\u5e76\u4e14\u8be5\u4e3b\u673a\u4e0a\u7684\u4e00\u4e2a\u670d\u52a1\u76d1\u542c\u7684\u5730\u5740\u662f0.0.0.0\uff0c\u90a3\u4e48\u901a\u8fc7\u8fd9\u4e24\u4e2a\u5730\u5740\u90fd\u80fd\u8bbf\u95ee\u8be5\u670d\u52a1\u3002<\/p>\n<h2 id=\"127001\">127.0.0.1\n<\/h2><hr>\n<p>\u5f53\u670d\u52a1\u5668\u76d1\u542c127.0.0.1\u65f6\uff0c\u5b83\u4ec5\u4ec5\u76d1\u542c\u672c\u5730\u56de\u73af\u63a5\u53e3\uff08loopback interface\uff09\u4e0a\u7684\u8bf7\u6c42\uff0c\u4e5f\u5c31\u662f\u8bf4\u53ea\u6709\u672c\u5730\u53d1\u8d77\u7684\u8bf7\u6c42\u80fd\u591f\u88ab\u5904\u7406\u3002\u8fd9\u79cd\u914d\u7f6e\u901a\u5e38\u7528\u4e8e\u5f00\u53d1\u6216\u6d4b\u8bd5\u73af\u5883\u4e2d\uff0c\u56e0\u4e3a\u5728\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u670d\u52a1\u5668\u9700\u8981\u76d1\u542c\u6765\u81ea\u5176\u4ed6\u8ba1\u7b97\u673a\u7684\u8bf7\u6c42\u3002<\/p>\n<h2 id=\"localhost\">localhost\n<\/h2><hr>\n<p>\u800clocalhost\u5219\u662f\u4e00\u4e2a\u4e3b\u673a\u540d\uff08hostname\uff09\uff0c\u901a\u5e38\u6307\u5411\u672c\u5730\u56de\u73af\u5730\u5740127.0.0.1\u3002\u56e0\u6b64\uff0c\u5f53\u670d\u52a1\u5668\u76d1\u542clocalhost\u65f6\uff0c\u4e5f\u76f8\u5f53\u4e8e\u53ea\u76d1\u542c\u672c\u5730\u56de\u73af\u63a5\u53e3\u4e0a\u7684\u8bf7\u6c42\u3002\u4e0e\u76d1\u542c127.0.0.1\u7c7b\u4f3c\uff0c\u8fd9\u79cd\u914d\u7f6e\u4e5f\u4e3b\u8981\u7528\u4e8e\u5f00\u53d1\u6216\u6d4b\u8bd5\u73af\u5883\u4e2d\u3002<\/p>\n<h2 id=\"\u603b\u7ed3\">\u603b\u7ed3\n<\/h2><hr>\n<p>\u56e0\u6b64\uff0c\u5982\u679c\u4f60\u60f3\u8ba9\u4f60\u7684\u670d\u52a1\u5668\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1\uff0c\u5e94\u8be5\u4f7f\u75280.0.0.0\uff1b\u5982\u679c\u4f60\u53ea\u60f3\u8ba9\u670d\u52a1\u5668\u5728\u672c\u673a\u4e0a\u8fd0\u884c\uff0c\u5e76\u4e14\u53ea\u7528\u4e8e\u672c\u673a\u8bbf\u95ee\uff0c\u53ef\u4ee5\u4f7f\u7528127.0.0.1\u6216localhost\u3002<\/p>\n"},{"title":"Windows \u4e0b\u4f7f\u7528 schtasks \u8bbe\u7f6e\u8ba1\u5212\u4efb\u52a1","link":"https:\/\/been.ee\/p\/0-0-0-1\/","pubDate":"Sun, 28 May 2023 00:00:00 +0000","guid":"https:\/\/been.ee\/p\/0-0-0-1\/","description":"<p>\u547d\u4ee4\u884c\u5de5\u5177\uff1aschtasks\uff08Windows\u7cfb\u7edf\u81ea\u5e26\uff09<\/p>\n<h2 id=\"\u521b\u5efa\u8ba1\u5212\u4efb\u52a1\">\u521b\u5efa\u8ba1\u5212\u4efb\u52a1\n<\/h2><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-powershell\" data-lang=\"powershell\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">schtasks<\/span> <span class=\"p\">\/<\/span><span class=\"n\">create<\/span> <span class=\"p\">\/<\/span><span class=\"n\">tn<\/span> <span class=\"s2\">&#34;\u4efb\u52a1\u540d\u79f0&#34;<\/span> <span class=\"p\">\/<\/span><span class=\"n\">tr<\/span> <span class=\"s2\">&#34;\u6267\u884c\u7684\u547d\u4ee4\u6216\u7a0b\u5e8f\u8def\u5f84&#34;<\/span> <span class=\"p\">\/<\/span><span class=\"nb\">sc <\/span><span class=\"s2\">&#34;\u89e6\u53d1\u5668&#34;<\/span> <span class=\"p\">\/<\/span><span class=\"n\">st<\/span> <span class=\"s2\">&#34;\u5f00\u59cb\u65f6\u95f4&#34;<\/span> <span class=\"p\">\/<\/span><span class=\"n\">sd<\/span> <span class=\"s2\">&#34;\u5f00\u59cb\u65e5\u671f&#34;<\/span> <span class=\"p\">\/<\/span><span class=\"n\">ru<\/span> <span class=\"s2\">&#34;\u8fd0\u884c\u4efb\u52a1\u7684\u7528\u6237\u540d&#34;<\/span> <span class=\"p\">\/<\/span><span class=\"nb\">rp <\/span><span class=\"s2\">&#34;\u7528\u6237\u5bc6\u7801&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p><code>\/sc schedule<\/code> \u6307\u5b9a\u8ba1\u5212\u7c7b\u578b\uff1b\u6709\u6548\u503c\u4e3a MINUTE\u3001HOURLY\u3001DAILY\u3001WEEKLY\u3001MONTHLY\u3001ONCE\u3001ONSTART\u3001ONLOGON\u3001ONIDLE<\/p>\n<p>\u7b80\u8981\u8bf4\u660e\uff1a\nMINUTE\u3001HOURLY\u3001DAILY\u3001WEEKLY\u3001MONTHLY\uff0c\u6307\u5b9a\u8ba1\u5212\u7684\u65f6\u95f4\u5355\u4f4d\u3002\nONCE\uff0c\u4efb\u52a1\u5728\u6307\u5b9a\u7684\u65e5\u671f\u548c\u65f6\u95f4\u8fd0\u884c\u4e00\u6b21\u3002\nONSTART\uff0c\u4efb\u52a1\u5728\u6bcf\u6b21\u7cfb\u7edf\u542f\u52a8\u7684\u65f6\u5019\u8fd0\u884c\u3002\u53ef\u4ee5\u6307\u5b9a\u542f\u52a8\u7684\u65e5\u671f\uff0c\u6216\u4e0b\u4e00\u6b21\u7cfb\u7edf\u542f\u52a8\u7684\u65f6\u5019\u8fd0\u884c\u4efb\u52a1\u3002 ONLOGON\uff0c\u6bcf\u5f53\u7528\u6237\uff08\u4efb\u610f\u7528\u6237\uff09\u767b\u5f55\u7684\u65f6\u5019\uff0c\u4efb\u52a1\u5c31\u8fd0\u884c\u3002\u53ef\u4ee5\u6307\u5b9a\u65e5\u671f\uff0c\u6216\u5728\u4e0b\u6b21\u7528\u6237\u767b\u5f55\u7684\u65f6\u5019\u8fd0\u884c\u4efb\u52a1\u3002 ONIDLE\uff0c\u53ea\u8981\u7cfb\u7edf\u7a7a\u95f2\u4e86\u6307\u5b9a\u7684\u65f6\u95f4\uff0c\u4efb\u52a1\u5c31\u8fd0\u884c\u3002\u53ef\u4ee5\u6307\u5b9a\u65e5\u671f\uff0c\u6216\u5728\u4e0b\u6b21\u7cfb\u7edf\u7a7a\u95f2\u7684\u65f6\u5019\u8fd0\u884c\u4efb\u52a1\u3002<\/p>\n<p><code>\/st\u00a0StartTime<\/code> \u4ee5 HH:MM:SS 24 \u5c0f\u65f6\u683c\u5f0f\u6307\u5b9a\u65f6\u95f4\u3002\u9ed8\u8ba4\u503c\u662f\u547d\u4ee4\u5b8c\u6210\u65f6\u7684\u5f53\u524d\u672c\u5730\u65f6\u95f4\u3002<code>\/st<\/code>\u00a0\u53c2\u6570\u53ea\u5bf9\u4e8e MINUTE\u3001HOURLY\u3001DAILY\u3001WEEKLY\u3001MONTHLY \u548c ONCE \u8ba1\u5212\u6709\u6548\u3002\u5b83\u53ea\u5bf9\u4e8e ONCE \u8ba1\u5212\u662f\u5fc5\u9700\u7684\u3002<\/p>\n<p><code>\/sd\u00a0StartDate<\/code> \u4ee5\u00a0MM\/DD\/YYYY\u00a0\u683c\u5f0f\u6307\u5b9a\u4efb\u52a1\u542f\u52a8\u7684\u65e5\u671f\u3002\u9ed8\u8ba4\u503c\u662f\u5f53\u524d\u65e5\u671f\u3002\/sd\u00a0\u53c2\u6570\u5bf9\u4e8e\u6240\u6709\u7684\u8ba1\u5212\u6709\u6548\uff0c\u4f46\u53ea\u5bf9\u4e8e ONCE \u8ba1\u5212\u662f\u5fc5\u9700\u7684\u3002<\/p>\n<p><code>\/ru Username<\/code> \u6307\u5b9a\u4efb\u52a1\u8fd0\u884c\u7684\u7528\u6237\uff0c\u5bf9\u4e8e\u7cfb\u7edf\u8d26\u6237\uff0c\u6709\u6548\u503c\u4e3a&quot;&quot;\uff0c&ldquo;SYSTEM&quot;\u6216&quot;NT AUTHORITYSYSTEM&rdquo;<\/p>\n<h2 id=\"\u8bbe\u7f6e\u6bcf\u9694\u4e00\u5206\u949f\u6267\u884ccxxxexe\">\u8bbe\u7f6e\u6bcf\u9694\u4e00\u5206\u949f\u6267\u884cc:\\xxx.exe\n<\/h2><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">schtasks \/creare \/sc minute \/mo <span class=\"m\">1<\/span> \/tn taskname \/tr c:<span class=\"se\">\\x<\/span>xx.exe\n<\/span><\/span><\/code><\/pre><\/div><p><code>\/mo\u00a0modifier<\/code> \u6307\u5b9a\u4efb\u52a1\u5728\u5176\u8ba1\u5212\u7c7b\u578b\u5185\u7684\u8fd0\u884c\u9891\u7387\u3002\u8fd9\u4e2a\u53c2\u6570\u5bf9\u4e8e MONTHLY \u8ba1\u5212\u662f\u5fc5\u9700\u7684\u3002<\/p>\n<p>\u5bf9\u4e8e MINUTE\u3001HOURLY\u3001DAILY \u6216 WEEKLY \u8ba1\u5212\uff0c\u8fd9\u4e2a\u53c2\u6570\u6709\u6548\uff0c\u4f46\u4e5f\u53ef\u9009\u3002\u9ed8\u8ba4\u503c\u4e3a 1\u3002<\/p>\n<p>\u8ba1\u5212\u7c7b\u578b\u4fee\u9970\u7b26\u8bf4\u660e\nMINUTE1\u00a0\uff5e\u00a01439\u4efb\u52a1\u6bcf\u00a0n\u00a0\u5206\u949f\u8fd0\u884c\u4e00\u6b21\u3002 HOURLY1\u00a0\uff5e\u00a023\u4efb\u52a1\u6bcf\u00a0n\u00a0\u5c0f\u65f6\u8fd0\u884c\u4e00\u6b21\u3002 DAILY1\u00a0\uff5e\u00a0365\u4efb\u52a1\u6bcf\u00a0n\u00a0\u5929\u8fd0\u884c\u4e00\u6b21\u3002 WEEKLY1\u00a0\uff5e\u00a052\u4efb\u52a1\u6bcf\u00a0n\u00a0\u5468\u8fd0\u884c\u4e00\u6b21\u3002 MONTHLY1\u00a0\uff5e\u00a012\u4efb\u52a1\u6bcf\u00a0n\u00a0\u6708\u8fd0\u884c\u4e00\u6b21\u3002 LASTDAY\u4efb\u52a1\u5728\u6708\u4efd\u7684\u6700\u540e\u4e00\u5929\u8fd0\u884c\u3002 FIRST\u3001SECOND\u3001THIRD\u3001FOURTH\u3001LAST\u4e0e\u00a0<code>\/d\u00a0day<\/code>\u00a0\u53c2\u6570\u5171\u540c\u4f7f\u7528,\u5e76\u5728\u7279\u5b9a\u7684\u5468\u548c\u5929\u8fd0\u884c\u4efb\u52a1\u3002\u4f8b\u5982\uff0c\u5728\u6708\u4efd\u7684\u7b2c\u4e09\u4e2a\u5468\u4e09\u3002<\/p>\n<p><strong>\u503c\u5f97\u6ce8\u610f\u7684\u662f\u5982\u679c\u8fd9\u4e2axxx.exe\u8fdb\u7a0b\u6267\u884c\u540e\u6ca1\u6709\u5173\u95ed\uff0c\u90a3\u4e48\u53ea\u4f1a\u6267\u884c\u4e00\u6b21\uff1b\u82e5\u8fdb\u7a0b\u88ab\u6740\u6b7b\uff0c\u5219\u4e00\u5206\u949f\u540e\u4f1a\u518d\u6b21\u6267\u884c<\/strong><\/p>\n<h2 id=\"\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\">\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\n<\/h2><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">schtasks \/create \/tn <span class=\"s2\">&#34;\u4efb\u52a1\u540d\u79f0&#34;<\/span> \/tr <span class=\"s2\">&#34;\u6267\u884c\u7684\u547d\u4ee4\u6216\u7a0b\u5e8f\u8def\u5f84&#34;<\/span> \/sc <span class=\"s2\">&#34;ONSTART&#34;<\/span> \/ru <span class=\"s2\">&#34;\u8fd0\u884c\u4efb\u52a1\u7684\u7528\u6237\u540d&#34;<\/span> \/rp <span class=\"s2\">&#34;\u7528\u6237\u5bc6\u7801&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5217\u51fa\u4efb\u52a1\u8ba1\u5212\">\u5217\u51fa\u4efb\u52a1\u8ba1\u5212\n<\/h2><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">schtasks \/query <span class=\"c1\">#\u5217\u51fa\u5168\u90e8\u8ba1\u5212\u4efb\u52a1<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">schtasks \/query \/tn <span class=\"s2\">&#34;MyTask&#34;<\/span> <span class=\"c1\">#\u67e5\u8be2\u7279\u5b9a\u7684\u8ba1\u5212\u4efb\u52a1<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u4fee\u6539\u8ba1\u5212\u4efb\u52a1\">\u4fee\u6539\u8ba1\u5212\u4efb\u52a1\n<\/h2><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">schtasks \/change \/tn <span class=\"s2\">&#34;\u4efb\u52a1\u540d\u79f0&#34;<\/span> <span class=\"o\">[<\/span>\u53c2\u6570<span class=\"o\">]<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5220\u9664\u8ba1\u5212\u4efb\u52a1\">\u5220\u9664\u8ba1\u5212\u4efb\u52a1\n<\/h2><hr>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">schtasks \/delete \/tn <span class=\"s2\">&#34;\u4efb\u52a1\u540d\u79f0&#34;<\/span> \n<\/span><\/span><span class=\"line\"><span class=\"cl\">schtasks \/delete \/tn <span class=\"s2\">&#34;\u4efb\u52a1\u540d\u79f0&#34;<\/span> \/f <span class=\"c1\"># \/f\u4ee3\u8868\u5f3a\u5236\u5220\u9664<\/span>\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"\u5f52\u6863","link":"https:\/\/been.ee\/archives\/","pubDate":"Tue, 28 May 2019 00:00:00 +0000","guid":"https:\/\/been.ee\/archives\/","description":{}},{"title":"\u5173\u4e8e","link":"https:\/\/been.ee\/about\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/been.ee\/about\/","description":"<blockquote>\n<p style=\"font-size:20px; font-weight:bold;\">\"\u7ecf\u5386\uff0c\u6216\u8bb8\u53ea\u662f\u4e3a\u4e86\u4f53\u9a8c\u90a3\u4e0d\u4e00\u6837\u7684\u98ce\u666f\"<\/p><\/blockquote>\n<hr>\n<p style=\"font-size:22px; font-weight:bold; color:#ee7f87;\">\u5173\u4e8e\u535a\u4e3b<\/p>\n<p>\u5750\u6807\u897f\u5b89\u67d0\u6821\u6750\u6599\u535a\u58eb\u5728\u8bfb\uff0c\u6b63\u5728\u52aa\u529b\u4e3a\u6bd5\u4e1a\u800c\u594b\u6597<\/p>\n<ul>\n<li>\n<p>&ldquo;INFP-A&rdquo;<\/p>\n<\/li>\n<li>\n<p>&ldquo;\u5b66\u672f\u5e9f\u67f4&rdquo;<\/p>\n<\/li>\n<li>\n<p>&ldquo;\u767d\u65e5\u68a6\u60f3\u5bb6&rdquo;<\/p>\n<\/li>\n<li>\n<p>&ldquo;\u91cd\u5ea6\u6536\u85cf\u7656&rdquo;<\/p>\n<\/li>\n<li>\n<p>&ldquo;\u9009\u62e9\u6027\u5f3a\u8feb\u75c7&rdquo;<\/p>\n<\/li>\n<li>\n<p>&ldquo;\u61d2\uff0c\u4f46\u7231\u6298\u817e&rdquo;<\/p>\n<\/li>\n<li>\n<p>&ldquo;50.01% \u7406\u60f3 + 49.99% \u73b0\u5b9e&rdquo;<\/p>\n<\/li>\n<\/ul>\n<hr>\n<p style=\"font-size:22px; font-weight:bold; color:#ee7f87;\">\u5173\u4e8e\u672c\u7ad9<\/p>\n<ul>\n<li><strong>\u4e3a\u4ec0\u4e48\u8981\u5199\u535a\u5ba2\uff1f<\/strong><\/li>\n<\/ul>\n<p>\u6216\u8bb8\u662f\u60f3\u7559\u4e0b\u4e9b\u5b58\u5728\u7684\u75d5\u8ff9\uff0c\u6216\u8bb8\u662f\u4e3a\u4e86\u6ee1\u8db3\u81ea\u5df1\u7684\u865a\u8363\u5fc3\uff0c\u4ea6\u6216\u662f\u5e76\u6ca1\u6709\u4ec0\u4e48\u5fc5\u8981\u7684\u7406\u7531\uff0c\u53ea\u662f\u4eab\u53d7\u8bb0\u5f55\u7684\u8fc7\u7a0b\u800c\u5df2\uff0c<strong>[\u4f46\u4eba\u884c\u4e3a\u7684\u52a8\u673a\u5f80\u5f80\u590d\u6742\u7684\uff0c\u5f88\u96be\u7528\u51e0\u53e5\u8bdd\u53bb\u8bf4\u6e05]<\/strong><\/p>\n<ul>\n<li><strong>\u672c\u7ad9\u5185\u5bb9<\/strong><\/li>\n<\/ul>\n<p>\u672c\u7ad9\u535a\u5ba2\u7684\u5185\u5bb9\u4e3b\u9898\u5e76\u4e0d\u56fa\u5b9a\uff0c\u4e3b\u8981\u7bc7\u5e45\u5c06\u4f1a\u8bb0\u5f55\u81ea\u5df1\u4e0d\u540c\u65f6\u95f4\u6bb5\u7684\u5b66\u4e60\u3001\u751f\u6d3b\u3001\u7075\u611f\u548c\u601d\u8003<\/p>\n<p>\u672c\u7ad9\u6240\u6709\u5185\u5bb9\u5747\u4e3a\u539f\u521b\uff0c\u5982\u6709\u53c2\u8003\u4f1a\u5728\u6587\u7ae0\u6700\u540e\u6807\u6ce8<\/p>\n<ul>\n<li><strong>\u66f4\u65b0\u9891\u7387<\/strong><\/li>\n<\/ul>\n<p>\u73b0\u9636\u6bb5\uff0c\u66f4\u65b0\u9891\u7387\u4f1a\u53d7\u9650\u4e8e\u5de5\u4f5c\u7e41\u5fd9\u7a0b\u5ea6\u3001\u535a\u5ba2\u5185\u5bb9\u548c\u7075\u611f\u4ee5\u53ca\u5f53\u524d\u4e2a\u4eba\u72b6\u6001\uff0c\u968f\u7f18\u66f4\u65b0\uff0c\u4f46\u4f1a<strong>\u5c3d\u91cf<\/strong>\u4fdd\u8bc1\u6bcf\u67081-2\u7bc7\u5427<\/p>\n<hr>\n<p style=\"font-size:22px; font-weight:bold; color:#ee7f87;\">\u788e\u788e\u5ff5<\/p>\n<blockquote>\n<ul>\n<li>\n<p>\u4eba\u771f\u7684\u662f\u975e\u5e38\u590d\u6742\u7684\u751f\u7269\uff0c\u6709\u65f6\u5019\u6211\u89c9\u5f97\u6211\u4eec\u81ea\u5df1\u7528\u5c3d\u4e00\u751f\u7684\u65f6\u95f4\u90fd\u4e0d\u4e00\u5b9a\u8ba4\u8bc6\u81ea\u5df1\uff0c\u66f4\u4e0d\u8981\u8bf4\u53bb\u8ba4\u8bc6\u4ed6\u4eba<\/p>\n<\/li>\n<li>\n<p>\u6709\u4e9b\u4eba\u7684\u6210\u957f\uff0c\u662f\u9700\u8981\u8ba9\u4ed6\u81ea\u5df1\u5b8c\u6574\u7684\u8d70\u8fc7\u8fd9\u6bb5\u75db\u5f7b\u5fc3\u6249\u7684\u7ecf\u5386<\/p>\n<\/li>\n<li>\n<p>\u7ecf\u5386\u7684\u8d8a\u591a\uff0c\u5c31\u89c9\u5f97\u8d8a\u6765\u8d8a\u96be\u548c\u522b\u4eba\u5efa\u7acb\u4fe1\u4efb\u5173\u7cfb<\/p>\n<\/li>\n<li>\n<p>\u5f53\u5c40\u8005\u8ff7\uff0c\u65c1\u89c2\u8005\u65e0\u529b<\/p>\n<\/li>\n<\/ul><\/blockquote>\n<hr>\n<p style=\"font-size:22px; font-weight:bold; color:#ee7f87;\">\u8054\u7cfb\u535a\u4e3b<\/p>\n<ul>\n<li>\n<p><strong>Email<\/strong><\/p>\n<p><a class=\"link\" href=\"mailto:i@hjm.ee\" >i@hjm.ee<\/a><\/p>\n<p><a class=\"link\" href=\"mailto:manjusaka@misscel.com\" >manjusaka@misscel.com<\/a><\/p>\n<\/li>\n<li>\n<p><strong>Telegram<\/strong><\/p>\n<p><a class=\"link\" href=\"https:\/\/t.me\/privmsg_bot\"  target=\"_blank\" rel=\"noopener\"\n    >@privmsg_bot<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u957f\u8def\u6f2b\u6f2b\uff01<\/p>\n"},{"title":"\u641c\u7d22","link":"https:\/\/been.ee\/search\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/been.ee\/search\/","description":{}},{"title":"\u53cb\u94fe","link":"https:\/\/been.ee\/link\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/been.ee\/link\/","description":"<p>\u4ee5\u4e0b\u662f\u6211\u7684\u535a\u5ba2\u4fe1\u606f\uff0c\u4ea4\u6362\u53cb\u94fe\u7684\u53cb\u53cb\u4eec\u53ef\u4ee5\u5148\u6dfb\u52a0\u672c\u535a\u5ba2\u7684\u53cb\u94fe\uff0c\u7136\u540e\u5c06\u81ea\u5df1\u7684\u535a\u5ba2\u4fe1\u606f\u6309\u7167\u8fd9\u4e2a\u683c\u5f0f\u7f16\u8f91\u597d\u540e\u53d1\u9001\u5230<a class=\"link\" href=\"mailto:manjusaka@misscel.com\" ><strong>manjusaka@misscel.com<\/strong><\/a>\u90ae\u7bb1\uff0c\u6216\u53d1\u9001\u81f3<a class=\"link\" href=\"https:\/\/t.me\/privmsg_bot\"  target=\"_blank\" rel=\"noopener\"\n    ><strong>@privmsg_bot<\/strong><\/a><\/p>\n<blockquote>\n<ul>\n<li>title: \u5fd8\u5ddd\u6cb3\u7554<\/li>\n<li>description: \u6728\u5df2\u6210\u821f\uff0c\u6e21\u6211\u8005\u4f55\u4eba\uff1f<\/li>\n<li>website: <a class=\"link\" href=\"https:\/\/been.ee\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/been.ee<\/a><\/li>\n<li>image: <a class=\"link\" href=\"https:\/\/been.ee\/link\/flower.jpg\"  target=\"_blank\" rel=\"noopener\"\n    >https:\/\/been.ee\/link\/flower.jpg<\/a><\/li>\n<\/ul><\/blockquote>\n<hr>\n<p>\ud83d\ude0a\ud83d\ude0a<\/p>\n"}]}}