{"id":221,"date":"2023-01-29T04:35:40","date_gmt":"2023-10-31T21:28:31","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/index.php\/2023\/11\/30\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/"},"modified":"2025-08-01T02:34:09","modified_gmt":"2025-07-31T18:34:09","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/","title":{"rendered":"Ubuntu 22.04\u642d\u5efacode-server\uff1a\u6253\u9020\u4f60\u7684\u4e91\u7aefVS Code\u5f00\u53d1\u73af\u5883"},"content":{"rendered":"<h3>\u5f15\u8a00<\/p>\n<p>\u968f\u7740\u5f00\u53d1\u8005\u5de5\u5177\u5411\u4e91\u7aef\u8fc1\u79fb\uff0c\u4e91\u96c6\u6210\u5f00\u53d1\u73af\u5883\uff08Cloud IDE\uff09\u5e73\u53f0\u7684\u521b\u5efa\u548c\u91c7\u7528\u6b63\u5728\u589e\u957f\u3002\u4e91IDE\u53ef\u4ee5\u5b9e\u73b0\u5f00\u53d1\u56e2\u961f\u4e4b\u95f4\u7684\u5b9e\u65f6\u534f\u4f5c\uff0c\u5728\u7edf\u4e00\u7684\u5f00\u53d1\u73af\u5883\u4e2d\u5de5\u4f5c\uff0c\u6700\u5927\u7a0b\u5ea6\u5730\u51cf\u5c11\u4e0d\u517c\u5bb9\u6027\uff0c\u5e76\u63d0\u9ad8\u5de5\u4f5c\u6548\u7387\u3002\u901a\u8fc7Web\u6d4f\u89c8\u5668\u53ef\u4ee5\u8bbf\u95ee\u4e91IDE\uff0c\u9002\u7528\u4e8e\u6240\u6709\u7c7b\u578b\u7684\u73b0\u4ee3\u8bbe\u5907\u3002<\/p>\n<p>code-server \u662f Microsoft Visual Studio Code \u5728\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\u8fd0\u884c\uff0c\u5e76\u53ef\u76f4\u63a5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u3002Visual Studio Code \u662f\u4e00\u4e2a\u73b0\u4ee3\u5316\u7684\u4ee3\u7801\u7f16\u8f91\u5668\uff0c\u5177\u6709\u96c6\u6210\u7684 Git \u652f\u6301\u3001\u4ee3\u7801\u8c03\u8bd5\u5668\u3001\u667a\u80fd\u81ea\u52a8\u8865\u5168\u548c\u53ef\u81ea\u5b9a\u4e49\u548c\u53ef\u6269\u5c55\u7684\u529f\u80fd\u3002\u901a\u8fc7 code-server\uff0c\u60a8\u53ef\u4ee5\u5728\u8fd0\u884c\u4e0d\u540c\u64cd\u4f5c\u7cfb\u7edf\u7684\u5404\u79cd\u8bbe\u5907\u4e0a\u4f7f\u7528\uff0c\u5e76\u59cb\u7ec8\u62e5\u6709\u4e00\u4e2a\u4e00\u81f4\u7684\u5f00\u53d1\u73af\u5883\u53ef\u7528\u3002<\/p>\n<p>\u5728\u672c\u6559\u7a0b\u4e2d\uff0c\u60a8\u5c06\u5728Ubuntu 22.04\u673a\u5668\u4e0a\u8bbe\u7f6ecode-server\u4e91IDE\u5e73\u53f0\uff0c\u5e76\u5c06\u5176\u6620\u5c04\u5230\u60a8\u7684\u57df\u540d\u4e0a\uff0c\u5e76\u4f7f\u7528\u514d\u8d39\u7684Let&#8217;s Encrypt TLS\u8bc1\u4e66\u8fdb\u884c\u4fdd\u62a4\u3002\u5728\u6559\u7a0b\u7ed3\u675f\u65f6\uff0c\u60a8\u5c06\u80fd\u591f\u5728\u60a8\u7684Ubuntu 22.04\u670d\u52a1\u5668\u4e0a\u8fd0\u884cMicrosoft Visual Studio Code\uff0c\u5e76\u4e14\u53ef\u4ee5\u901a\u8fc7\u60a8\u7684\u57df\u540d\u8fdb\u884c\u8bbf\u95ee\uff0c\u5e76\u4f7f\u7528\u5bc6\u7801\u8fdb\u884c\u4fdd\u62a4\u3002<\/p>\n<h2>\u5148\u51b3\u6761\u4ef6<\/p>\n<ul class=\"post-ul\">\n<li>\nA server running Ubuntu 22.04 with at least 2GB RAM, root access, and a sudo, non-root account. You can set this up by following this initial server setup guide.\n<\/li>\n<li>\nNginx installed on your server. For a guide on how to do this, complete Steps 1 to 4 of How To Install Nginx on Ubuntu 22.04.\n<\/li>\n<li>\nA fully registered domain name to host code-server, pointed to your server. This tutorial will use code-server.your-domain throughout. You can purchase a domain name on Namecheap, get one for free on Freenom, or use the domain registrar of your choice. For Silicon Cloud, you can follow this introduction to Silicon Cloud DNS for details on how to add them.\n<\/li>\n<\/ul>\n<h2>\u6b65\u9aa41 \u2014 \u5b89\u88c5code-server<\/p>\n<p>\u5728\u8fd9\u4e00\u6b65\u4e2d\uff0c\u60a8\u5c06\u901a\u8fc7\u4e0b\u8f7d\u6700\u65b0\u7248\u672c\u5e76\u521b\u5efa\u4e00\u4e2a\u7cfb\u7edf\u670d\u52a1\u5728\u670d\u52a1\u5668\u4e0a\u8bbe\u7f6ecode-server\u3002\u60a8\u8fd8\u5c06\u6307\u5b9a\u4e00\u4e2a\u91cd\u542f\u7b56\u7565\uff0c\u4ee5\u4fbf\u5728\u53ef\u80fd\u7684\u5d29\u6e83\u6216\u91cd\u65b0\u542f\u52a8\u540e\uff0ccode-server\u4fdd\u6301\u53ef\u7528\u3002<\/p>\n<p>\u60a8\u5c06\u5b58\u50a8\u4e0ecode-server\u76f8\u5173\u7684\u6240\u6709\u6570\u636e\u5728\u540d\u4e3a~\/code-server\u7684\u6587\u4ef6\u5939\u4e2d\u3002\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u521b\u5efa\u5b83\uff1a<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">mkdir<\/span> ~\/code-server\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u7136\u540e\u5bfc\u822a\u5230\u5b83\uff1a<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token builtin class-name\">cd<\/span> ~\/code-server\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u4f60\u9700\u8981\u4ececode-server\u7684Github releases\u83b7\u53d6\u6700\u65b0\u7684Linux\u7248\u672c\uff08\u6587\u4ef6\u540d\u4e2d\u4f1a\u5305\u542blinux\uff09\u3002\u5728\u64b0\u5199\u672c\u6587\u65f6\uff0c\u6700\u65b0\u7684\u7248\u672c\u662f4.8.2\u3002\u901a\u8fc7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u4f7f\u7528wget\u8fdb\u884c\u4e0b\u8f7d\uff1a<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">wget<\/span> https:\/\/github.com\/coder\/code-server\/releases\/download\/<mark>v4.8.2\/code-server-4.8.2-linux-amd64.tar.gz<\/mark>\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u7136\u540e\u901a\u8fc7\u8fd0\u884c\u89e3\u538b\u7f29\u5b58\u6863\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">tar<\/span> <span class=\"token parameter variable\">-xzvf<\/span> <mark>code-server-4.8.2-linux-amd64.tar.gz<\/mark>\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u4f60\u5c06\u4f1a\u5f97\u5230\u4e00\u4e2a\u540d\u79f0\u4e0e\u4f60\u4e0b\u8f7d\u7684\u539f\u59cb\u6587\u4ef6\u5b8c\u5168\u76f8\u540c\u7684\u6587\u4ef6\u5939\uff0c\u5176\u4e2d\u5305\u542b\u4e86 code-server \u7684\u6e90\u4ee3\u7801\u3002\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5c06\u5176\u590d\u5236\u5230 \/usr\/lib\/code-server\uff0c\u8fd9\u6837\u4f60\u5c31\u53ef\u4ee5\u5728\u6574\u4e2a\u7cfb\u7edf\u4e2d\u8bbf\u95ee\u5b83\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> <span class=\"token function\">cp<\/span> <span class=\"token parameter variable\">-r<\/span> <mark>code-server-4.8.2-linux-amd64<\/mark> \/usr\/lib\/code-server\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u7136\u540e\u5728\/usr\/bin\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a\u7b26\u53f7\u94fe\u63a5\uff0c\u5c06\u5b83\u6307\u5411code-server\u53ef\u6267\u884c\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> <span class=\"token function\">ln<\/span> <span class=\"token parameter variable\">-s<\/span> \/usr\/lib\/code-server\/bin\/code-server \/usr\/bin\/code-server\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\uff0c\u8bf7\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939\uff0c\u7528\u4e8e\u5b58\u50a8 code-server \u7684\u7528\u6237\u6570\u636e\u3002<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> <span class=\"token function\">mkdir<\/span> \/var\/lib\/code-server\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u73b0\u5728\uff0c\u60a8\u5df2\u7ecf\u4e0b\u8f7d\u4e86code-server\u5e76\u4f7f\u5176\u5728\u6574\u4e2a\u7cfb\u7edf\u4e2d\u53ef\u7528\uff0c\u60a8\u5c06\u521b\u5efa\u4e00\u4e2asystemd\u670d\u52a1\uff0c\u4ee5\u4f7fcode-server\u4e00\u76f4\u5728\u540e\u53f0\u8fd0\u884c\u3002<\/p>\n<p>\u5c06\u670d\u52a1\u914d\u7f6e\u5b58\u50a8\u5728\/lib\/systemd\/system\u76ee\u5f55\u4e0b\u7684\u540d\u4e3acode-server.service\u7684\u6587\u4ef6\u4e2d\uff0c\u8be5\u76ee\u5f55\u662fsystemd\u5b58\u50a8\u5176\u670d\u52a1\u7684\u4f4d\u7f6e\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528\u6587\u672c\u7f16\u8f91\u5668\uff08\u672c\u6559\u7a0b\u4f7f\u7528nano\uff09\u521b\u5efa\u8be5\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> <span class=\"token function\">nano<\/span> \/lib\/systemd\/system\/code-server.service\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u8bf7\u6dfb\u52a0\u4ee5\u4e0b\u7684\u5185\u5bb9\uff1a<\/p>\n<div>\/lib\/systemd\/system\/code-server.service \u7684\u4e2d\u6587\u8868\u8fbe: \u4ee3\u7801\u670d\u52a1\u5668\u670d\u52a1\u3002<\/p>\n<pre class=\"post-pre\"><code>[Unit]\r\nDescription=code-server\r\nAfter=nginx.service\r\n\r\n[Service]\r\nType=simple\r\nEnvironment=PASSWORD=<mark>your_password<\/mark>\r\nExecStart=\/usr\/bin\/code-server --bind-addr 127.0.0.1:8080 --user-data-dir \/var\/lib\/code-server --auth password\r\nRestart=always\r\n\r\n[Install]\r\nWantedBy=multi-user.target\r\n<\/code><\/pre>\n<p>\u9996\u5148\uff0c\u4f60\u9700\u8981\u6307\u5b9a\u670d\u52a1\u7684\u63cf\u8ff0\u3002\u7136\u540e\uff0c\u4f60\u8981\u8bf4\u660e\u5728\u542f\u52a8\u672c\u670d\u52a1\u4e4b\u524d\u5fc5\u987b\u5148\u542f\u52a8nginx\u670d\u52a1\u3002\u5728[Unit]\u90e8\u5206\u4e4b\u540e\uff0c\u4f60\u9700\u8981\u5b9a\u4e49\u670d\u52a1\u7684\u7c7b\u578b\uff08\u7b80\u5355\u610f\u5473\u7740\u8fdb\u7a0b\u53ea\u9700\u8981\u7b80\u5355\u8fd0\u884c\uff09\uff0c\u5e76\u63d0\u4f9b\u5c06\u8981\u6267\u884c\u7684\u547d\u4ee4\u3002<\/p>\n<p>\u4f60\u4e5f\u53ef\u4ee5\u6307\u5b9a\u5168\u5c40\u7684 code-server \u53ef\u6267\u884c\u6587\u4ef6\u5e94\u8be5\u4f7f\u7528\u4e00\u4e9b\u7279\u5b9a\u4e8e code-server \u7684\u53c2\u6570\u542f\u52a8\u3002<\/p>\n<ul class=\"post-ul\">\n<li>&#8211;bind-addr 127.0.0.1:8080 binds it to localhost at port 8080, so it\u2019s only directly accessible from inside of your server.<\/li>\n<li>&#8211;user-data-dir \/var\/lib\/code-server sets its user data directory.<\/li>\n<li>&#8211;auth password specifies that it should authenticate visitors with a password, specified in the PASSWORD environment variable declared on the line above it.<\/li>\n<\/ul>\n<p>\u8bf7\u8bb0\u4f4f\u5c06\u201cyour_password\u201d\u66ff\u6362\u4e3a\u60a8\u60f3\u4f7f\u7528\u7684\u5bc6\u7801\u3002\u4e0b\u4e00\u884c\u544a\u8bc9systemd\u5728\u6240\u6709\u6545\u969c\u4e8b\u4ef6\u4e2d\u91cd\u65b0\u542f\u52a8code-server\uff08\u4f8b\u5982\uff0c\u5d29\u6e83\u6216\u8fdb\u7a0b\u88ab\u7ec8\u6b62\u65f6\uff09\u3002<\/p>\n<p>[\u5b89\u88c5] \u90e8\u5206\u6307\u793a systemd \u5728\u53ef\u4ee5\u767b\u5f55\u5230\u670d\u52a1\u5668\u65f6\u5f00\u59cb\u542f\u52a8\u6b64\u670d\u52a1\u3002<\/p>\n<p>\u4fdd\u5b58\u5e76\u5173\u95ed\u6587\u4ef6\u3002<\/p>\n<p>\u901a\u8fc7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u542f\u52a8code-server\u670d\u52a1\u3002<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> systemctl start code-server\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u901a\u8fc7\u89c2\u5bdf\u5176\u72b6\u6001\u6765\u786e\u8ba4\u5b83\u5df2\u6b63\u786e\u542f\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> systemctl status code-server\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u4f60\u4f1a\u6536\u5230\u7c7b\u4f3c\u4e8e\u8fd9\u6837\u7684\u8f93\u51fa\uff1a<\/p>\n<pre class=\"post-pre\"><code><div class=\"secondary-code-label\" title=\"Output\">Output\u25cf code-server.service - code-server\r\n     Loaded: loaded (\/lib\/systemd\/system\/code-server.service; disabled; preset: enabled)\r\n     Active: active (running) since Thu 2022-11-03 12:39:26 UTC; 5s ago\r\n   Main PID: 2670 (node)\r\n      Tasks: 22 (limit: 1116)\r\n     Memory: 90.9M\r\n        CPU: 799ms\r\n     CGroup: \/system.slice\/code-server.service\r\n             \u251c\u25002670 \/usr\/lib\/code-server\/lib\/node \/usr\/lib\/code-server --bind-addr 127.0.0.1:8080 --user-data-dir \/var\/lib\/code-server --auth password\r\n             \u2514\u25002692 \/usr\/lib\/code-server\/lib\/node \/usr\/lib\/code-server\/out\/node\/entry\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u5728\u670d\u52a1\u5668\u91cd\u542f\u540e\u81ea\u52a8\u542f\u52a8 code-server\uff0c\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u542f\u7528\u5176\u670d\u52a1\uff1a<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> systemctl <span class=\"token builtin class-name\">enable<\/span> code-server\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u60a8\u5c06\u6536\u5230\u4e00\u4e2a\u54cd\u5e94\uff0c\u63d0\u793a\u5df2\u751f\u6210\u7b26\u53f7\u94fe\u63a5\uff1a<\/p>\n<pre class=\"post-pre\"><code><div class=\"secondary-code-label\" title=\"Output\">OutputCreated symlink \/etc\/systemd\/system\/multi-user.target.wants\/code-server.service \u2192 \/lib\/systemd\/system\/code-server.service.\r\n<\/code><\/pre>\n<p>\u81f3\u6b64\uff0c\u60a8\u5df2\u4e0b\u8f7d\u5e76\u5168\u5c40\u53ef\u7528\u5316\u4e86 code-server\u3002\u63a5\u7740\uff0c\u60a8\u4e3a code-server \u521b\u5efa\u4e86\u4e00\u4e2a systemd \u670d\u52a1\u5e76\u542f\u7528\u4e86\u5b83\uff0c\u786e\u4fdd code-server \u4f1a\u5728\u6bcf\u6b21\u670d\u52a1\u5668\u542f\u52a8\u65f6\u81ea\u52a8\u8fd0\u884c\u3002\u63a5\u4e0b\u6765\uff0c\u60a8\u5c06\u901a\u8fc7\u914d\u7f6e Nginx\uff0c\u5c06\u5176\u4f5c\u4e3a\u8bbf\u95ee\u8005\u4e0e code-server \u4e4b\u95f4\u7684\u53cd\u5411\u4ee3\u7406\uff0c\u4ece\u800c\u5728\u60a8\u7684\u57df\u540d\u4e0a\u516c\u5f00 code-server\u3002<\/p>\n<h2>\u6b65\u9aa42 \u2014 \u5728\u60a8\u7684\u57df\u540d\u4e0a\u516c\u5f00 code-server<\/h2>\n<p>\u5728\u672c\u90e8\u5206\u4e2d\uff0c\u60a8\u5c06\u914d\u7f6e Nginx \u4f5c\u4e3a code-server \u7684\u53cd\u5411\u4ee3\u7406\u3002<\/p>\n<p>\u6b63\u5982\u60a8\u5728\u8bbe\u7f6e Nginx \u7684\u5148\u51b3\u6761\u4ef6\u6b65\u9aa4\u4e2d\u6240\u4e86\u89e3\u7684\uff0c\u7f51\u7ad9\u914d\u7f6e\u6587\u4ef6\u5b58\u50a8\u5728 <code>\/etc\/nginx\/sites-available<\/code> \u76ee\u5f55\u4e0b\uff0c\u4f46\u5fc5\u987b\u901a\u8fc7\u7b26\u53f7\u94fe\u63a5\u5c06\u5176\u94fe\u63a5\u5230 <code>\/etc\/nginx\/sites-enabled<\/code> \u76ee\u5f55\u624d\u80fd\u6b63\u5f0f\u751f\u6548\u3002<\/p>\n<p>\u4f7f\u7528\u7f16\u8f91\u5668\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a <code>code-server.conf<\/code> \u7684\u6587\u4ef6\uff0c\u7528\u4e8e\u5b58\u50a8\u5728\u60a8\u7684\u57df\u540d\u4e0b\u516c\u5f00 code-server \u7684\u914d\u7f6e\uff0c\u6587\u4ef6\u8def\u5f84\u4e3a <code>\/etc\/nginx\/sites-available\/code-server.conf<\/code>\u3002<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> <span class=\"token function\">nano<\/span> \/etc\/nginx\/sites-available\/code-server.conf\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u8bf7\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div>\u4ee5\u4e0b\u662f <code>\/etc\/nginx\/sites-available\/code-server.conf<\/code> \u7684\u914d\u7f6e\u5185\u5bb9\uff1a<\/div>\n<pre class=\"post-pre\"><code>server {\r\n\tlisten 80;\r\n\tlisten [::]:80;\r\n\r\n\tserver_name <mark>code-server.your-domain<\/mark>;\r\n\r\n\tlocation \/ {\r\n\t  proxy_pass http:\/\/localhost:8080\/;\r\n\t  proxy_set_header Upgrade $http_upgrade;\r\n\t  proxy_set_header Connection upgrade;\r\n\t  proxy_set_header Accept-Encoding gzip;\r\n\t}\r\n}\r\n<\/code><\/pre>\n<p>\u8bf7\u5c06 <code>code-server.your-domain<\/code> \u66ff\u6362\u4e3a\u60a8\u5e0c\u671b\u4f7f\u7528\u7684\u57df\u540d\u3002<\/p>\n<p>\u5728\u6b64\u6587\u4ef6\u4e2d\uff0c\u60a8\u5b9a\u4e49\u4e86 Nginx \u5e94\u8be5\u76d1\u542c HTTP \u7aef\u53e3 80\u3002\u7136\u540e\uff0c\u60a8\u6307\u5b9a\u4e86\u4e00\u4e2a <code>server_name<\/code> \u6765\u544a\u8bc9 Nginx \u63a5\u53d7\u8bf7\u6c42\u5e76\u5e94\u7528\u8be5\u7279\u5b9a\u914d\u7f6e\u7684\u57df\u540d\u3002<\/p>\n<p>\u5728\u6839\u4f4d\u7f6e\uff08<code>\/<\/code>\uff09\u5757\u4e2d\uff0c\u60a8\u6307\u5b9a\u8bf7\u6c42\u5e94\u8be5\u5728\u672c\u5730\u4e3b\u673a <code>localhost:8080<\/code> \u4e0a\u8fd0\u884c\u7684 code-server \u4e4b\u95f4\u4f20\u9012\u3002\u63a5\u4e0b\u6765\u7684\u4e09\u884c\uff08\u4ee5 <code>proxy_set_header<\/code> \u5f00\u5934\uff09\u6307\u793a Nginx \u4f20\u9012\u4e00\u4e9b HTTP \u8bf7\u6c42\u5934\uff0c\u8fd9\u4e9b\u8bf7\u6c42\u5934\u5bf9\u4e8e code-server \u5e7f\u6cdb\u4f7f\u7528\u7684 WebSockets \u7684\u6b63\u786e\u8fd0\u884c\u81f3\u5173\u91cd\u8981\u3002<\/p>\n<p>\u4fdd\u5b58\u5e76\u5173\u95ed\u6587\u4ef6\u3002<\/p>\n<p>\u8981\u4f7f\u6b64\u7f51\u7ad9\u914d\u7f6e\u751f\u6548\uff0c\u60a8\u9700\u8981\u5728 <code>\/etc\/nginx\/sites-enabled<\/code> \u6587\u4ef6\u5939\u4e2d\u521b\u5efa\u5176\u7b26\u53f7\u94fe\u63a5\u3002\u8bf7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u6765\u6267\u884c\u6b64\u64cd\u4f5c\uff1a<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> <span class=\"token function\">ln<\/span> <span class=\"token parameter variable\">-s<\/span> \/etc\/nginx\/sites-available\/code-server.conf \/etc\/nginx\/sites-enabled\/code-server.conf\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u6d4b\u8bd5\u914d\u7f6e\u7684\u6709\u6548\u6027\uff0c\u8bf7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> nginx <span class=\"token parameter variable\">-t<\/span>\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u60a8\u5c06\u4f1a\u6536\u5230\u4ee5\u4e0b\u8f93\u51fa\u7ed3\u679c\uff1a<\/p>\n<pre class=\"post-pre\"><code><div class=\"secondary-code-label\" title=\"Output\">Outputnginx: the configuration file \/etc\/nginx\/nginx.conf syntax is ok\r\nnginx: configuration file \/etc\/nginx\/nginx.conf test is successful\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u4f7f\u914d\u7f6e\u751f\u6548\uff0c\u60a8\u9700\u8981\u91cd\u65b0\u542f\u52a8 Nginx\u3002<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> systemctl restart nginx\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u60a8\u73b0\u5728\u53ef\u4ee5\u901a\u8fc7\u60a8\u7684\u57df\u540d\u8bbf\u95ee\u60a8\u7684 code-server \u5b89\u88c5\u3002\u63a5\u4e0b\u6765\uff0c\u60a8\u5c06\u4f7f\u7528\u514d\u8d39\u7684 Let&#8217;s Encrypt TLS \u8bc1\u4e66\u6765\u4fdd\u8bc1\u5176\u5b89\u5168\u6027\u3002<\/p>\n<h2>\u6b65\u9aa43 \u2014 \u4fdd\u62a4\u60a8\u7684\u57df\u540d<\/h2>\n<p>\u5728\u672c\u8282\u4e2d\uff0c\u60a8\u5c06\u4f7f\u7528 Let&#8217;s Encrypt TLS \u8bc1\u4e66\u6765\u4fdd\u62a4\u60a8\u7684\u57df\u540d\uff0c\u8fd9\u5c06\u901a\u8fc7 Certbot \u8fdb\u884c\u914d\u7f6e\u3002\u4e00\u65e6\u914d\u7f6e\u5b8c\u6210\uff0c\u60a8\u7684 code-server \u5b89\u88c5\u5c06\u5728 HTTPS \u4e0b\u8fd0\u884c\u3002<\/p>\n<p>\u4f5c\u4e3a\u5148\u51b3\u6761\u4ef6\u7684\u4e00\u90e8\u5206\uff0c\u60a8\u5df2\u7ecf\u542f\u7528\u4e86 UFW\uff08\u7b80\u5316\u9632\u706b\u5899\uff09\u5e76\u914d\u7f6e\u5176\u5141\u8bb8\u672a\u52a0\u5bc6\u7684 HTTP \u6d41\u91cf\u3002\u4e3a\u4e86\u80fd\u591f\u8bbf\u95ee\u5b89\u5168\u7684\u7f51\u7ad9\uff0c\u60a8\u9700\u8981\u914d\u7f6e\u5b83\u63a5\u53d7\u52a0\u5bc6\u6d41\u91cf\uff0c\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u6765\u5b9e\u73b0\uff1a<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> ufw allow https\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u8f93\u51fa\u7ed3\u679c\u5c06\u662f\uff1a<\/p>\n<pre class=\"post-pre\"><code><div class=\"secondary-code-label\" title=\"Output\">OutputRule added\r\nRule added (v6)\r\n<\/code><\/pre>\n<p>\u4e0e Nginx \u7c7b\u4f3c\uff0c\u60a8\u9700\u8981\u91cd\u65b0\u52a0\u8f7d\u9632\u706b\u5899\u4ee5\u4f7f\u914d\u7f6e\u751f\u6548\u3002<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> ufw reload\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u6b64\u547d\u4ee4\u5c06\u6253\u5370\u51fa\uff1a<\/p>\n<pre class=\"post-pre\"><code><div class=\"secondary-code-label\" title=\"Output\">OutputFirewall reloaded\r\n<\/code><\/pre>\n<p>\u7136\u540e\uff0c\u5728\u60a8\u7684\u6d4f\u89c8\u5668\u4e2d\uff0c\u5bfc\u822a\u5230\u60a8\u7528\u4e8e code-server \u7684\u57df\u540d\u3002code-server \u7684\u767b\u5f55\u63d0\u793a\u5c06\u52a0\u8f7d\u3002<\/p>\n<div><img decoding=\"async\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/65645ceba4b2f92e6c7232ed\/78-0.png\" class=\"post-images\" alt=\"code-server\u767b\u5f55\u63d0\u793a\u7684\u5c4f\u5e55\u622a\u56fe\" title=\"code-server\u767b\u5f55\u63d0\u793a\u7684\u5c4f\u5e55\u622a\u56fe\"\/><\/p>\n<p>code-server \u6b63\u5728\u8be2\u95ee\u60a8\u7684\u5bc6\u7801\u3002\u8f93\u5165\u60a8\u5728\u4e4b\u524d\u6b65\u9aa4\u4e2d\u8bbe\u7f6e\u7684\u5bc6\u7801\uff0c\u7136\u540e\u6309\u4e0b\u56de\u8f66\u952e\u8fdb\u5165 IDE\u3002\u60a8\u73b0\u5728\u5c06\u8fdb\u5165 code-server \u5e76\u7acb\u5373\u8bbf\u95ee\u5176\u7f16\u8f91\u5668 GUI \u754c\u9762\u3002<\/p>\n<div><img decoding=\"async\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/65645ceba4b2f92e6c7232ed\/80-0.png\" class=\"post-images\" alt=\"code-server GUI\u7684\u5c4f\u5e55\u622a\u56fe\" title=\"code-server GUI\u7684\u5c4f\u5e55\u622a\u56fe\"\/><\/p>\n<p>\u73b0\u5728\u60a8\u5df2\u7ecf\u786e\u8ba4 code-server \u5728\u60a8\u7684\u57df\u540d\u4e0a\u6b63\u786e\u516c\u5f00\uff0c\u60a8\u5c06\u4f7f\u7528 Certbot \u5b89\u88c5 Let&#8217;s Encrypt TLS \u8bc1\u4e66\u6765\u4fdd\u62a4\u5b83\u3002<\/p>\n<p>\u4e3a\u5b89\u88c5\u6700\u65b0\u7248\u672c\u7684 Certbot \u53ca\u5176 Nginx \u63d2\u4ef6\uff0c\u8bf7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> certbot python3-certbot-nginx <span class=\"token parameter variable\">-y<\/span>\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u8981\u4e3a\u60a8\u7684\u57df\u540d\u7533\u8bf7\u8bc1\u4e66\uff0c\u8bf7\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n<pre class=\"post-pre\"><code><ol><li data-prefix=\"$\"><span class=\"token function\">sudo<\/span> certbot <span class=\"token parameter variable\">--nginx<\/span> <span class=\"token parameter variable\">-d<\/span> code-server.<mark>\u60a8\u7684\u57df\u540d<\/mark>\r\n<\/li><\/ol>\r\n<\/code><\/pre>\n<p>\u5728\u6b64\u547d\u4ee4\u4e2d\uff0c\u60a8\u8fd0\u884c Certbot \u6765\u8bf7\u6c42\u60a8\u57df\u540d\u7684\u8bc1\u4e66\u3002\u60a8\u4f7f\u7528 <code>-d<\/code> \u53c2\u6570\u4f20\u9012\u57df\u540d\u3002<code>--nginx<\/code> \u6807\u5fd7\u544a\u8bc9 Certbot \u81ea\u52a8\u66f4\u6539 Nginx \u7ad9\u70b9\u914d\u7f6e\u4ee5\u652f\u6301 HTTPS\u3002\u8bf7\u8bb0\u4f4f\u5c06 <code>code-server.\u60a8\u7684\u57df\u540d<\/code> \u66ff\u6362\u4e3a\u60a8\u7684\u5b9e\u9645\u57df\u540d\u3002<\/p>\n<p>\u5982\u679c\u8fd9\u662f\u60a8\u7b2c\u4e00\u6b21\u8fd0\u884c Certbot\uff0c\u7cfb\u7edf\u4f1a\u8981\u6c42\u60a8\u63d0\u4f9b\u4e00\u4e2a\u7528\u4e8e\u7d27\u6025\u901a\u77e5\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\uff0c\u5e76\u63a5\u53d7 EFF \u7684\u670d\u52a1\u6761\u6b3e\u3002\u7136\u540e\uff0cCertbot \u5c06\u4ece Let&#8217;s Encrypt \u8bf7\u6c42\u60a8\u57df\u540d\u7684\u8bc1\u4e66\u3002<\/p>\n<p>\u8f93\u51fa\u5c06\u7c7b\u4f3c\u4e8e\uff1a<\/p>\n<pre class=\"post-pre\"><code><div class=\"secondary-code-label\" title=\"Output\">\u8f93\u51fa<\/div>\u8bf7\u6c42 code-server.<mark>\u60a8\u7684\u57df\u540d<\/mark> \u7684\u8bc1\u4e66\r\n\r\n\u6210\u529f\u63a5\u6536\u8bc1\u4e66\u3002\r\n\u8bc1\u4e66\u5df2\u4fdd\u5b58\u81f3\uff1a\/etc\/letsencrypt\/live\/code-server.<mark>\u60a8\u7684\u57df\u540d<\/mark>\/fullchain.pem\r\n\u5bc6\u94a5\u5df2\u4fdd\u5b58\u81f3\uff1a         \/etc\/letsencrypt\/live\/code-server.<mark>\u60a8\u7684\u57df\u540d<\/mark>\/privkey.pem\r\n\u6b64\u8bc1\u4e66\u5c06\u4e8e 2023-02-01 \u5230\u671f\u3002\r\n\u8fd9\u4e9b\u6587\u4ef6\u5c06\u5728\u8bc1\u4e66\u7eed\u8ba2\u65f6\u66f4\u65b0\u3002\r\nCertbot \u5df2\u8bbe\u7f6e\u8ba1\u5212\u4efb\u52a1\u4ee5\u5728\u540e\u53f0\u81ea\u52a8\u7eed\u8ba2\u6b64\u8bc1\u4e66\u3002\r\n\r\n\u90e8\u7f72\u8bc1\u4e66\r\n\u5df2\u6210\u529f\u5c06\u8bc1\u4e66\u90e8\u7f72\u5230 code-server.<mark>\u60a8\u7684\u57df\u540d<\/mark>.com \u7684 \/etc\/nginx\/sites-enabled\/code-server.conf\r\n\u606d\u559c\uff01\u60a8\u5df2\u6210\u529f\u5728 https:\/\/code-server.<mark>\u60a8\u7684\u57df\u540d<\/mark> \u4e0a\u542f\u7528 HTTPS\r\n\r\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n\u5982\u679c\u60a8\u559c\u6b22 Certbot\uff0c\u8bf7\u8003\u8651\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u652f\u6301\u6211\u4eec\u7684\u5de5\u4f5c\uff1a\r\n * \u5411 ISRG \/ Let's Encrypt \u6350\u6b3e\uff1a   https:\/\/letsencrypt.org\/donate\r\n * \u5411 EFF \u6350\u6b3e\uff1a                    https:\/\/eff.org\/donate-le\r\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n<\/code><\/pre>\n<p>\u6b64\u8f93\u51fa\u8868\u660e Certbot \u5df2\u6210\u529f\u751f\u6210 TLS \u8bc1\u4e66\u5e76\u5c06\u5176\u5e94\u7528\u4e8e\u60a8\u57df\u540d\u7684 Nginx \u914d\u7f6e\u3002\u60a8\u73b0\u5728\u53ef\u4ee5\u5728\u6d4f\u89c8\u5668\u4e2d\u91cd\u65b0\u52a0\u8f7d\u60a8\u7684 code-server \u57df\uff0c\u5e76\u89c2\u5bdf\u5230\u7ad9\u70b9\u5730\u5740\u5de6\u4fa7\u51fa\u73b0\u4e00\u4e2a\u6302\u9501\u56fe\u6807\uff0c\u8fd9\u610f\u5473\u7740\u60a8\u7684\u8fde\u63a5\u5df2\u5f97\u5230\u9002\u5f53\u7684\u5b89\u5168\u4fdd\u62a4\u3002<\/p>\n<p>\u73b0\u5728\u60a8\u5df2\u901a\u8fc7\u5b89\u5168\u7684 Nginx \u53cd\u5411\u4ee3\u7406\u5728\u60a8\u7684\u57df\u540d\u4e0a\u4f7f\u7528 code-server\uff0c\u60a8\u53ef\u4ee5\u5f00\u59cb\u63a2\u7d22 code-server \u7684\u7528\u6237\u754c\u9762\u4e86\u3002<\/p>\n<h2>\u7b2c\u56db\u6b65 &#8211; \u4f7f\u7528 code-server \u754c\u9762<\/h2>\n<p>\u5728\u672c\u90e8\u5206\u4e2d\uff0c\u60a8\u5c06\u4f7f\u7528 code-server \u754c\u9762\u7684\u4e00\u4e9b\u529f\u80fd\u3002\u7531\u4e8e code-server \u662f\u5728\u4e91\u7aef\u8fd0\u884c\u7684 Visual Studio Code\uff0c\u56e0\u6b64\u5b83\u5177\u6709\u4e0e\u72ec\u7acb\u684c\u9762\u7248\u76f8\u540c\u7684\u754c\u9762\u3002<\/p>\n<p>\u5728 IDE \u7684\u5de6\u4fa7\uff0c\u6709\u4e00\u5217\u5782\u76f4\u6309\u94ae\uff0c\u5b83\u4eec\u662f\u5e38\u7528\u529f\u80fd\u7684\u4fa7\u8fb9\u680f\uff0c\u79f0\u4e3a\u6d3b\u52a8\u680f\u3002<\/p>\n<div><img decoding=\"async\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/65645ceba4b2f92e6c7232ed\/95-0.png\" class=\"post-images\" alt=\"code-server GUI \u4fa7\u9762\u677f\u7684\u5c4f\u5e55\u622a\u56fe\uff0c\u5305\u542b\u516d\u4e2a\u56fe\u6807\u6309\u94ae\u3002\u5df2\u9009\u62e9\u6587\u4ef6\u5939\u6309\u94ae\uff0c\u8fd9\u4f1a\u4ece\u4fa7\u8fb9\u680f\u5c55\u5f00\u4e00\u4e2a\u83dc\u5355\uff0c\u4ece\u4e2d\u53ef\u4ee5\u6253\u5f00\u6587\u4ef6\u5939\u3002\" title=\"\"><\/div>\n<p>\u6b64\u5de5\u5177\u680f\u53ef\u81ea\u5b9a\u4e49\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u79fb\u52a8\u8fd9\u4e9b\u6309\u94ae\u6216\u4ece\u5de5\u5177\u680f\u4e2d\u5220\u9664\u5b83\u4eec\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u7b2c\u4e00\u4e2a\u6309\u94ae\uff08\u6c49\u5821\u83dc\u5355\u56fe\u6807\uff09\u5728\u4e0b\u62c9\u83dc\u5355\u4e2d\u6253\u5f00\u5e38\u89c4\u83dc\u5355\uff0c\u800c\u7b2c\u4e8c\u4e2a\u6309\u94ae\uff08\u6587\u4ef6\u5939\u56fe\u6807\uff09\u6253\u5f00\u8d44\u6e90\u7ba1\u7406\u5668\u9762\u677f\uff0c\u63d0\u4f9b\u7c7b\u4f3c\u6811\u5f62\u5bfc\u822a\u7684\u9879\u76ee\u7ed3\u6784\u3002\u60a8\u53ef\u4ee5\u5728\u6b64\u5904\u7ba1\u7406\u6587\u4ef6\u5939\u548c\u6587\u4ef6\uff0c\u6839\u636e\u9700\u8981\u521b\u5efa\u3001\u5220\u9664\u3001\u79fb\u52a8\u548c\u91cd\u547d\u540d\u5b83\u4eec\u3002\u653e\u5927\u955c\u6309\u94ae\u63d0\u4f9b\u8bbf\u95ee\u641c\u7d22\u548c\u66ff\u6362\u529f\u80fd\u7684\u9014\u5f84\u3002<\/p>\n<p>\u63a5\u4e0b\u6765\u662f\u6309\u9ed8\u8ba4\u987a\u5e8f\u6392\u5217\u7684\u56fe\u6807\uff0c\u5b83\u53ef\u663e\u793a\u6e90\u4ee3\u7801\u7ba1\u7406\u7cfb\u7edf\uff08\u5982 Git\uff09\u7684\u89c6\u56fe\u3002Visual Studio Code \u8fd8\u652f\u6301\u5176\u4ed6\u6e90\u4ee3\u7801\u7ba1\u7406\u63d0\u4f9b\u8005\u3002<\/p>\n<div><img decoding=\"async\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/65645ceba4b2f92e6c7232ed\/98-0.png\" class=\"post-images\" alt=\"\u6e90\u4ee3\u7801\u63a7\u5236\u83dc\u5355\u6253\u5f00\u4ee5\u663e\u793a Git \u9762\u677f\u7684\u5c4f\u5e55\u622a\u56fe\" title=\"\"><\/div>\n<p>\u8c03\u8bd5\u5668\u9009\u9879\uff08\u5e26\u6709\u4e00\u4e2a\u5c0f\u866b\u5b50\u56fe\u6807\u7684\u4e09\u89d2\u5f62\uff09\u5728\u9762\u677f\u4e2d\u63d0\u4f9b\u4e86\u5e38\u7528\u7684\u8c03\u8bd5\u64cd\u4f5c\u3002Visual Studio Code \u5185\u7f6e\u652f\u6301 Node.js \u8fd0\u884c\u65f6\u8c03\u8bd5\u5668\u4ee5\u53ca\u4efb\u4f55\u7f16\u8bd1\u4e3a JavaScript \u7684\u8bed\u8a00\u3002\u5bf9\u4e8e\u5176\u4ed6\u8bed\u8a00\uff0c\u60a8\u53ef\u4ee5\u5b89\u88c5\u6240\u9700\u8c03\u8bd5\u5668\u7684\u6269\u5c55\u3002\u56db\u4e2a\u65b9\u5757\u6309\u94ae\u662f\u6d3b\u52a8\u680f\u4e2d\u7684\u6700\u540e\u4e00\u4e2a\u89c6\u56fe\uff0c\u63d0\u4f9b\u4e86\u4e00\u4e2a\u83dc\u5355\uff0c\u7528\u4e8e\u8bbf\u95ee VSCode Marketplace \u4e0a\u53ef\u7528\u7684\u6269\u5c55\u3002<\/p>\n<p>GUI \u7684\u4e3b\u8981\u533a\u57df\u662f\u7f16\u8f91\u5668\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u6807\u7b7e\u6765\u5206\u5272\u5b83\u8fdb\u884c\u4ee3\u7801\u7f16\u8f91\u3002\u60a8\u53ef\u4ee5\u5c06\u7f16\u8f91\u89c6\u56fe\u66f4\u6539\u4e3a\u7f51\u683c\u7cfb\u7edf\u6216\u5e76\u6392\u7684\u6587\u4ef6\u3002<\/p>\n<p>\u5728\u6d4f\u89c8\u5668\u4e2d\u6253\u5f00 <code>code-server.\u60a8\u7684\u57df\u540d\/?folder=\/var\/lib\/code-server\/User<\/code>\uff0c\u5b83\u5c06\u52a0\u8f7d\u4e00\u4e2a\u73b0\u6709\u6587\u4ef6\u5939\u3002<\/p>\n<p>\u70b9\u51fb\u6c49\u5821\u83dc\u5355\u56fe\u6807\u4ee5\u6253\u5f00\u9009\u9879\u83dc\u5355\uff0c\u7136\u540e\u9009\u62e9\u201c\u6587\u4ef6\u201d\u83dc\u5355\uff0c\u5728\u90a3\u91cc\u60a8\u5c06\u521b\u5efa\u4e00\u4e2a\u65b0\u6587\u4ef6\u3002\u4e3a\u6587\u4ef6\u547d\u540d\u5e76\u4fdd\u5b58\u5230\u9ed8\u8ba4\u6587\u4ef6\u5939\u4f4d\u7f6e\u3002<\/p>\n<p>\u4e00\u65e6\u4fdd\u5b58\uff0c\u6587\u4ef6\u5c06\u663e\u793a\u5728\u8d44\u6e90\u7ba1\u7406\u5668\u4fa7\u8fb9\u680f\u4e2d\u3002\u901a\u8fc7\u53f3\u952e\u5355\u51fb\u8d44\u6e90\u7ba1\u7406\u5668\u4fa7\u8fb9\u680f\u5e76\u70b9\u51fb\u201c\u65b0\u5efa\u6587\u4ef6\u5939\u201d\u53ef\u521b\u5efa\u6587\u4ef6\u5939\u3002\u60a8\u8fd8\u53ef\u4ee5\u901a\u8fc7\u5355\u51fb\u6587\u4ef6\u5939\u540d\u79f0\u6765\u5c55\u5f00\u6587\u4ef6\u5939\uff0c\u5e76\u901a\u8fc7\u62d6\u653e\u6587\u4ef6\u548c\u6587\u4ef6\u5939\u5230\u5c42\u6b21\u7ed3\u6784\u7684\u4e0a\u5c42\u6765\u5c06\u5b83\u4eec\u79fb\u52a8\u5230\u65b0\u4f4d\u7f6e\u3002<\/p>\n<div><img decoding=\"async\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/65645ceba4b2f92e6c7232ed\/104-0.png\" class=\"post-images\" alt=\"code-server GUI \u7f16\u8f91\u5668\u6253\u5f00\u4e00\u4e2a\u793a\u4f8b\u6587\u4ef6\u7684\u5c4f\u5e55\u622a\u56fe\" title=\"\"><\/div>\n<p>\u70b9\u51fb\u4e0a\u90e8\u83dc\u5355\u4e0b\u62c9\u5217\u8868\u4e2d\u7684\u201c\u7ec8\u7aef\u201d\uff0c\u7136\u540e\u9009\u62e9\u201c\u65b0\u5efa\u7ec8\u7aef\u201d\u5373\u53ef\u8fdb\u5165\u7ec8\u7aef\u3002\u60a8\u4e5f\u53ef\u4ee5\u4f7f\u7528\u83dc\u5355\u4e2d\u5217\u51fa\u7684\u952e\u76d8\u5feb\u6377\u65b9\u5f0f\u3002\u7ec8\u7aef\u5c06\u5728\u4e0b\u65b9\u9762\u677f\u4e2d\u6253\u5f00\uff0c\u5e76\u5c06\u5176\u5de5\u4f5c\u76ee\u5f55\u8bbe\u7f6e\u4e3a\u9879\u76ee\u7684\u5de5\u4f5c\u533a\uff0c\u5176\u4e2d\u5305\u542b\u8d44\u6e90\u7ba1\u7406\u5668\u4fa7\u9762\u677f\u4e2d\u663e\u793a\u7684\u6587\u4ef6\u548c\u6587\u4ef6\u5939\u3002<\/p>\n<p>\u5728\u8fd9\u4e00\u6b65\u4e2d\uff0c\u60a8\u56de\u987e\u4e86 code-server \u754c\u9762\u548c\u4e00\u4e9b\u5e38\u7528\u529f\u80fd\u3002<\/p>\n<h2>\u7ed3\u8bba<\/h2>\n<p>\u60a8\u73b0\u5728\u5df2\u5728\u60a8\u7684 Ubuntu 22.04 \u670d\u52a1\u5668\u4e0a\u5b89\u88c5\u4e86 code-server\uff0c\u4e00\u4e2a\u591a\u529f\u80fd\u7684\u4e91\u7aef\u96c6\u6210\u5f00\u53d1\u73af\u5883\uff0c\u5e76\u4e14\u5df2\u5728\u60a8\u7684\u57df\u540d\u4e0b\u66b4\u9732\u51fa\u6765\uff0c\u5e76\u4f7f\u7528\u4e86 Let&#8217;s Encrypt \u8bc1\u4e66\u8fdb\u884c\u4e86\u5b89\u5168\u4fdd\u62a4\u3002\u73b0\u5728\u60a8\u53ef\u4ee5\u4e2a\u4eba\u6216\u56e2\u961f\u5408\u4f5c\u5730\u8fdb\u884c\u9879\u76ee\u5de5\u4f5c\u4e86\u3002\u8fd0\u884c\u4e91\u7aef IDE \u53ef\u4ee5\u91ca\u653e\u672c\u5730\u673a\u5668\u7684\u8d44\u6e90\uff0c\u5e76\u5728\u9700\u8981\u65f6\u8fdb\u884c\u8d44\u6e90\u6269\u5c55\u3002\u60f3\u8981\u4e86\u89e3\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u8003 Visual Studio Code \u7684\u6587\u6863\uff0c\u4e86\u89e3\u5176\u4ed6\u7ec4\u4ef6\u7684\u9644\u52a0\u529f\u80fd\u548c\u8be6\u7ec6\u6307\u5357\u3002<\/p>\n<p>\u5982\u679c\u60a8\u60f3\u5728\u60a8\u7684 Silicon Cloud Kubernetes \u96c6\u7fa4\u4e0a\u8fd0\u884c code-server\uff0c\u8bf7\u67e5\u9605\u6211\u4eec\u7684\u6559\u7a0b\u300a\u5982\u4f55\u5728 Silicon Cloud Kubernetes \u4e0a\u8bbe\u7f6e code-server \u4e91 IDE \u5e73\u53f0\u300b\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5f15\u8a00 \u968f\u7740\u5f00\u53d1\u8005\u5de5\u5177\u5411\u4e91\u7aef\u8fc1\u79fb\uff0c\u4e91\u96c6\u6210\u5f00\u53d1\u73af\u5883\uff08Cloud IDE\uff09\u5e73\u53f0\u7684\u521b\u5efa\u548c\u91c7\u7528\u6b63\u5728\u589e\u957f\u3002\u4e91IDE\u53ef\u4ee5\u5b9e\u73b0 [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[849,300,851,850,852],"class_list":["post-221","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-code-server","tag-ubuntu-22-04","tag-vs-code","tag-ide","tag-852"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ubuntu 22.04\u642d\u5efacode-server\uff1a\u6253\u9020\u4f60\u7684\u4e91\u7aefVS Code\u5f00\u53d1\u73af\u5883 - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u672c\u6559\u7a0b\u8be6\u7ec6\u6307\u5bfc\u5982\u4f55\u5728Ubuntu 22.04\u7cfb\u7edf\u4e0a\u8f7b\u677e\u90e8\u7f72code-server\uff0c\u5c06VS Code\u642c\u5230\u4e91\u7aef\uff0c\u968f\u65f6\u968f\u5730\u901a\u8fc7\u6d4f\u89c8\u5668\u8fdb\u884c\u9ad8\u6548\u7f16\u7a0b\uff0c\u5b9e\u73b0\u771f\u6b63\u7684\u8fdc\u7a0b\u5f00\u53d1\u4f53\u9a8c\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5982\u4f55\u5728ubuntu-22-04\u4e0a\u8bbe\u7f6ecode-server\u4e91ide\u5e73\u53f0\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 22.04\u642d\u5efacode-server\uff1a\u6253\u9020\u4f60\u7684\u4e91\u7aefVS Code\u5f00\u53d1\u73af\u5883\" \/>\n<meta property=\"og:description\" content=\"\u672c\u6559\u7a0b\u8be6\u7ec6\u6307\u5bfc\u5982\u4f55\u5728Ubuntu 22.04\u7cfb\u7edf\u4e0a\u8f7b\u677e\u90e8\u7f72code-server\uff0c\u5c06VS Code\u642c\u5230\u4e91\u7aef\uff0c\u968f\u65f6\u968f\u5730\u901a\u8fc7\u6d4f\u89c8\u5668\u8fdb\u884c\u9ad8\u6548\u7f16\u7a0b\uff0c\u5b9e\u73b0\u771f\u6b63\u7684\u8fdc\u7a0b\u5f00\u53d1\u4f53\u9a8c\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5982\u4f55\u5728ubuntu-22-04\u4e0a\u8bbe\u7f6ecode-server\u4e91ide\u5e73\u53f0\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-31T21:28:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T18:34:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/65645ceba4b2f92e6c7232ed\/78-0.png\" \/>\n<meta name=\"author\" content=\"\u6587, \u7fd4\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6587, \u7fd4\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/\",\"name\":\"Ubuntu 22.04\u642d\u5efacode-server\uff1a\u6253\u9020\u4f60\u7684\u4e91\u7aefVS Code\u5f00\u53d1\u73af\u5883 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-10-31T21:28:31+00:00\",\"dateModified\":\"2025-07-31T18:34:09+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\"},\"description\":\"\u672c\u6559\u7a0b\u8be6\u7ec6\u6307\u5bfc\u5982\u4f55\u5728Ubuntu 22.04\u7cfb\u7edf\u4e0a\u8f7b\u677e\u90e8\u7f72code-server\uff0c\u5c06VS Code\u642c\u5230\u4e91\u7aef\uff0c\u968f\u65f6\u968f\u5730\u901a\u8fc7\u6d4f\u89c8\u5668\u8fdb\u884c\u9ad8\u6548\u7f16\u7a0b\uff0c\u5b9e\u73b0\u771f\u6b63\u7684\u8fdc\u7a0b\u5f00\u53d1\u4f53\u9a8c\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 22.04\u642d\u5efacode-server\uff1a\u6253\u9020\u4f60\u7684\u4e91\u7aefVS Code\u5f00\u53d1\u73af\u5883\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\",\"name\":\"\u6587, \u7fd4\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"caption\":\"\u6587, \u7fd4\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ubuntu 22.04\u642d\u5efacode-server\uff1a\u6253\u9020\u4f60\u7684\u4e91\u7aefVS Code\u5f00\u53d1\u73af\u5883 - Blog - Silicon Cloud","description":"\u672c\u6559\u7a0b\u8be6\u7ec6\u6307\u5bfc\u5982\u4f55\u5728Ubuntu 22.04\u7cfb\u7edf\u4e0a\u8f7b\u677e\u90e8\u7f72code-server\uff0c\u5c06VS Code\u642c\u5230\u4e91\u7aef\uff0c\u968f\u65f6\u968f\u5730\u901a\u8fc7\u6d4f\u89c8\u5668\u8fdb\u884c\u9ad8\u6548\u7f16\u7a0b\uff0c\u5b9e\u73b0\u771f\u6b63\u7684\u8fdc\u7a0b\u5f00\u53d1\u4f53\u9a8c\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5982\u4f55\u5728ubuntu-22-04\u4e0a\u8bbe\u7f6ecode-server\u4e91ide\u5e73\u53f0\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"Ubuntu 22.04\u642d\u5efacode-server\uff1a\u6253\u9020\u4f60\u7684\u4e91\u7aefVS Code\u5f00\u53d1\u73af\u5883","og_description":"\u672c\u6559\u7a0b\u8be6\u7ec6\u6307\u5bfc\u5982\u4f55\u5728Ubuntu 22.04\u7cfb\u7edf\u4e0a\u8f7b\u677e\u90e8\u7f72code-server\uff0c\u5c06VS Code\u642c\u5230\u4e91\u7aef\uff0c\u968f\u65f6\u968f\u5730\u901a\u8fc7\u6d4f\u89c8\u5668\u8fdb\u884c\u9ad8\u6548\u7f16\u7a0b\uff0c\u5b9e\u73b0\u771f\u6b63\u7684\u8fdc\u7a0b\u5f00\u53d1\u4f53\u9a8c\u3002","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5982\u4f55\u5728ubuntu-22-04\u4e0a\u8bbe\u7f6ecode-server\u4e91ide\u5e73\u53f0\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-10-31T21:28:31+00:00","article_modified_time":"2025-07-31T18:34:09+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/65645ceba4b2f92e6c7232ed\/78-0.png"}],"author":"\u6587, \u7fd4","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6587, \u7fd4","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/","name":"Ubuntu 22.04\u642d\u5efacode-server\uff1a\u6253\u9020\u4f60\u7684\u4e91\u7aefVS Code\u5f00\u53d1\u73af\u5883 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-10-31T21:28:31+00:00","dateModified":"2025-07-31T18:34:09+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c"},"description":"\u672c\u6559\u7a0b\u8be6\u7ec6\u6307\u5bfc\u5982\u4f55\u5728Ubuntu 22.04\u7cfb\u7edf\u4e0a\u8f7b\u677e\u90e8\u7f72code-server\uff0c\u5c06VS Code\u642c\u5230\u4e91\u7aef\uff0c\u968f\u65f6\u968f\u5730\u901a\u8fc7\u6d4f\u89c8\u5668\u8fdb\u884c\u9ad8\u6548\u7f16\u7a0b\uff0c\u5b9e\u73b0\u771f\u6b63\u7684\u8fdc\u7a0b\u5f00\u53d1\u4f53\u9a8c\u3002","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 22.04\u642d\u5efacode-server\uff1a\u6253\u9020\u4f60\u7684\u4e91\u7aefVS Code\u5f00\u53d1\u73af\u5883"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c","name":"\u6587, \u7fd4","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","caption":"\u6587, \u7fd4"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%a6%82%e4%bd%95%e5%9c%a8ubuntu-22-04%e4%b8%8a%e8%ae%be%e7%bd%aecode-server%e4%ba%91ide%e5%b9%b3%e5%8f%b0%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=221"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/221\/revisions"}],"predecessor-version":[{"id":109701,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/221\/revisions\/109701"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}