<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Code Server on 武成龙</title><link>https://orangon.github.io/tags/code-server/</link><description>Recent content in Code Server on 武成龙</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Fri, 24 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://orangon.github.io/tags/code-server/index.xml" rel="self" type="application/rss+xml"/><item><title>用Code Server随时随地打开你的VS Code</title><link>https://orangon.github.io/posts/2026-07-24-code-server-vscode-anywhere/</link><pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate><guid>https://orangon.github.io/posts/2026-07-24-code-server-vscode-anywhere/</guid><description>&lt;h1 id="用code-server随时随地打开你的vs-code"&gt;用Code Server随时随地打开你的VS Code
&lt;/h1&gt;&lt;p&gt;想把家里电脑变成一个永远在线的开发环境，出门用 iPad、公司电脑、酒店商务机，只要能上网就能打开「自己那台 VS Code」继续写代码？开源项目 &lt;a class="link" href="https://github.com/coder/code-server" target="_blank" rel="noopener"
 &gt;code-server&lt;/a&gt; 就是干这个的：它在你的电脑上跑一个服务，把完整的 VS Code 编辑器通过浏览器渲染出来，任何联网设备打开网址就是熟悉的编辑器界面。&lt;/p&gt;
&lt;p&gt;下面按「需求描述 → 解决方案 → 配置过程」三步走。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="需求描述"&gt;需求描述
&lt;/h2&gt;&lt;p&gt;典型场景很明确：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;代码、环境、插件、终端全都装在自己电脑上，不想到处同步；&lt;/li&gt;
&lt;li&gt;不想被设备绑死——iPad、别人的 Mac、网吧 Windows，只要能开浏览器就想直接接着写；&lt;/li&gt;
&lt;li&gt;不想为了&amp;quot;换个地方写代码&amp;quot;去买云服务器、搞 SSH 隧道、装客户端。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;换句话说，目标是：&lt;strong&gt;把电脑上的 VS Code 变成一个网址，任何联网设备访问即用&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="解决方案"&gt;解决方案
&lt;/h2&gt;&lt;p&gt;code-server 会以服务形式跑在你的电脑上，监听一个端口，对外提供 HTTPS 的编辑器页面。访问端不需要装任何东西，浏览器即是客户端。&lt;/p&gt;
&lt;p&gt;对外暴露服务时需要一张 SSL 证书，让浏览器走 &lt;code&gt;https://&lt;/code&gt; 而不是被拦截的 &lt;code&gt;http://&lt;/code&gt;。code-server 官方在文档里给出了几种证书路线，其中最省事的是 &lt;strong&gt;自签名证书（self-signed certificate）&lt;/strong&gt;，前提是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你的电脑（实例）需要能被互联网访问到；&lt;/li&gt;
&lt;li&gt;你&lt;strong&gt;不想&lt;/strong&gt;买域名、也不想用 SSH 端口转发。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;需要提前知道自签名证书的几个限制（来自官方文档，务必留意）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;iPad 不支持自签名证书&lt;/strong&gt;，iPad 上直接访问会失败，详细情况见官方 &lt;code&gt;ipad.md&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;自签名证书可能给 code-server 带来一些意外的小问题；&lt;/li&gt;
&lt;li&gt;因此官方把它定位成「&lt;strong&gt;最后手段（last resort）&lt;/strong&gt;」——只有在你确实不想买域名 / 无法做端口转发时才用。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你能接受这些限制，自签名这条路就足够轻量，继续看配置过程。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="配置过程"&gt;配置过程
&lt;/h2&gt;&lt;p&gt;以下命令基于 code-server 官方文档，目标是在电脑（实例）上启用自签名证书、监听 443 端口，然后通过 &lt;code&gt;https://&amp;lt;你的IP&amp;gt;&lt;/code&gt; 访问。&lt;/p&gt;
&lt;h3 id="1-ssh-进入你的电脑--实例"&gt;1. SSH 进入你的电脑 / 实例
&lt;/h3&gt;&lt;p&gt;确认这台机器对公网开放了 HTTP/HTTPS 流量（防火墙、安全组放行 443）。&lt;/p&gt;
&lt;h3 id="2-修改-code-server-配置"&gt;2. 修改 code-server 配置
&lt;/h3&gt;&lt;p&gt;code-server 的配置文件在 &lt;code&gt;~/.config/code-server/config.yaml&lt;/code&gt;。用官方给的两条 &lt;code&gt;sed&lt;/code&gt; 一键改：开启自签名证书、把监听地址从本机回环改成全网卡 + 443 端口。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 把 &amp;#34;cert: false&amp;#34; 改成 &amp;#34;cert: true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sed -i.bak &lt;span class="s1"&gt;&amp;#39;s/cert: false/cert: true/&amp;#39;&lt;/span&gt; ~/.config/code-server/config.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 把 &amp;#34;bind-addr: 127.0.0.1:8080&amp;#34; 改成 &amp;#34;bind-addr: 0.0.0.0:443&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sed -i.bak &lt;span class="s1"&gt;&amp;#39;s/bind-addr: 127.0.0.1:8080/bind-addr: 0.0.0.0:443/&amp;#39;&lt;/span&gt; ~/.config/code-server/config.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 允许 code-server 监听 443 这个特权端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo setcap &lt;span class="nv"&gt;cap_net_bind_service&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;+ep /usr/lib/code-server/lib/node
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;code&gt;sed -i.bak&lt;/code&gt; 会同时生成一个 &lt;code&gt;.bak&lt;/code&gt; 备份，方便回滚。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="3-重启-code-server"&gt;3. 重启 code-server
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemctl restart code-server@&lt;span class="nv"&gt;$USER&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-浏览器访问"&gt;4. 浏览器访问
&lt;/h3&gt;&lt;p&gt;现在在任意联网设备的浏览器里打开：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://&amp;lt;你的实例IP&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;就会看到 code-server 的登录页，输入 &lt;code&gt;config.yaml&lt;/code&gt; 里的密码即可进入编辑器。&lt;/p&gt;
&lt;h3 id="5-可选消除自签名证书的浏览器警告"&gt;5. （可选）消除自签名证书的浏览器警告
&lt;/h3&gt;&lt;p&gt;自签名证书浏览器会报「不安全」并弹警告。官方推荐用 &lt;a class="link" href="https://github.com/FiloSottile/mkcert" target="_blank" rel="noopener"
 &gt;mkcert&lt;/a&gt; 生成一张被本机操作系统信任的自签名证书，然后把证书路径填进 code-server 配置里的 &lt;code&gt;cert&lt;/code&gt; 和 &lt;code&gt;cert-key&lt;/code&gt; 两个字段即可消除警告。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;注意：mkcert 让本机信任这张证书，并不等于让 iPad / 其他设备也信任。跨设备无警告访问仍然需要一张正规证书（域名 + Let&amp;rsquo;s Encrypt 等）。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="小结"&gt;小结
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;code-server = 把本机 VS Code 变成网址，浏览器即客户端；&lt;/li&gt;
&lt;li&gt;自签名证书路线最省事，但 &lt;strong&gt;iPad 不支持&lt;/strong&gt;、可能伴随小问题，仅当不想买域名 / 不想端口转发时使用；&lt;/li&gt;
&lt;li&gt;核心就改两行配置（&lt;code&gt;cert: true&lt;/code&gt;、&lt;code&gt;bind-addr: 0.0.0.0:443&lt;/code&gt;）+ 一条 &lt;code&gt;setcap&lt;/code&gt; + 重启，之后 &lt;code&gt;https://&amp;lt;IP&amp;gt;&lt;/code&gt; 即可访问。&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>