<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>自托管 on E7Coding</title><link>https://www.e7coding.com/tags/%E8%87%AA%E6%89%98%E7%AE%A1/</link><description>Recent content in 自托管 on E7Coding</description><generator>Hugo</generator><language>zh-cn</language><managingEditor>Joy</managingEditor><webMaster>Joy</webMaster><lastBuildDate>Tue, 16 Jun 2026 13:00:00 +0800</lastBuildDate><atom:link href="https://www.e7coding.com/tags/%E8%87%AA%E6%89%98%E7%AE%A1/index.xml" rel="self" type="application/rss+xml"/><item><title>把设备接进自建 Headscale：从 tailscale up 登录到 headscale-ui 管理</title><link>https://www.e7coding.com/posts/tailscale-device-join/</link><pubDate>Tue, 16 Jun 2026 13:00:00 +0800</pubDate><author>Joy</author><guid>https://www.e7coding.com/posts/tailscale-device-join/</guid><description>&lt;blockquote&gt;
&lt;p&gt;折腾背景：&lt;a href="https://www.e7coding.com/posts/tailscale-intro/"&gt;序章&lt;/a&gt;讲了原理，&lt;a href="https://www.e7coding.com/posts/headscale-ui-setup/"&gt;headscale-ui&lt;/a&gt; 配好了管理界面，&lt;a href="https://www.e7coding.com/posts/self-hosted-derp/"&gt;自建 DERP&lt;/a&gt; 也把中继搬到了国内。这是系列收尾——把最日常的一环讲清楚：&lt;strong&gt;一台新设备怎么用 Tailscale 客户端登录进自建 Headscale，并在 headscale-ui 里管理它&lt;/strong&gt;。下面文字配模拟截图走一遍。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="整体流程"&gt;整体流程&lt;/h2&gt;
&lt;p&gt;接入一台设备就五步，控制面在 Headscale，登录指向它，设备入网后在 Web 界面里管：&lt;/p&gt;

&lt;pre class="mermaid"&gt;
flowchart TD
 A["① 装 Tailscale 客户端"] --&gt; B["② tailscale up&lt;br/&gt;--login-server=自建地址"]
 B --&gt; C["③ 终端输出 register 链接&lt;br/&gt;（含 nodekey）"]
 C --&gt; D["④ headscale-ui 批准设备&lt;br/&gt;归到某个 user"]
 D --&gt; E["⑤ 设备上线&lt;br/&gt;分到 100.64.x.x"]
 E --&gt; F["⑥ 日常管理&lt;br/&gt;路由 / Tag / 过期 / 删除"]

 style B fill:#ffe9d5,stroke:#b71d18
 style D fill:#ffe9d5,stroke:#b71d18
&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;关键就两处（标橙）：&lt;strong&gt;登录时把 &lt;code&gt;--login-server&lt;/code&gt; 指向自己的 Headscale&lt;/strong&gt;，以及&lt;strong&gt;入网要在 headscale-ui 里批准&lt;/strong&gt;——官方 Tailscale 是自动的，自建则要这一步人工确认，这正是「自己掌控」的体现。&lt;/p&gt;</description></item><item><title>给 Headscale 配个 Web 界面：headscale-ui 安装折腾记</title><link>https://www.e7coding.com/posts/headscale-ui-setup/</link><pubDate>Tue, 16 Jun 2026 11:00:00 +0800</pubDate><author>Joy</author><guid>https://www.e7coding.com/posts/headscale-ui-setup/</guid><description>&lt;blockquote&gt;
&lt;p&gt;折腾背景：&lt;a href="https://www.e7coding.com/posts/tailscale-intro/"&gt;序章&lt;/a&gt;里我把 Tailscale / 自建 Headscale 的原理讲过了，假设你已经有一套 Headscale 跑起来。但 Headscale 原生&lt;strong&gt;只有命令行&lt;/strong&gt;——加节点、批准设备、建用户、配子网路由，全得 SSH 上去敲 &lt;code&gt;headscale&lt;/code&gt; 命令。设备一多就烦。&lt;a href="https://github.com/gurucomputing/headscale-ui" target="_blank" rel="noopener noreferrer"&gt;headscale-ui&lt;/a&gt; 是社区做的一个纯静态 Web 前端，直接调 Headscale 的 API，把这些操作搬进浏览器。这篇记一下它的安装和两个反代/登录的坑。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="它是怎么工作的"&gt;它是怎么工作的&lt;/h2&gt;
&lt;p&gt;headscale-ui 本身&lt;strong&gt;没有后端&lt;/strong&gt;，就是一堆静态 HTML/JS。它在你浏览器里，拿着你填的 &lt;strong&gt;API Key&lt;/strong&gt; 直接去敲 Headscale 的 HTTP API。所以部署的核心其实是两件事：&lt;/p&gt;</description></item></channel></rss>