最新消息:前端博客、web前端博客、Angularjs、javascript、jQuery、HTML5、CSS3

使用Headscale v0.25.1自建tailscale服务端,配合Headplane v0.5.5实现Web UI管理你的服务

佛系更新 AZ 1236浏览 0评论

前提要点

  • 使用Headscale v0.25.1自建tailscale服务端,配合Headplane v0.5.5实现Web UI管理你的服务,可以选择原生安装或 Docker 方式,具体方法视需求而定。
  • 原生安装需要下载二进制文件并配置,Docker 安装则使用容器镜像,相对更易于管理。
  • Headplane 需要配置与 Headscale 的连接,需确保网络和端口设置正确。
  • 当然,使用Docker生产环境能更快速创建、删除,但原生安装对资源占用更低。

原生安装

Headscale v0.25.1

  • GitHub 发布页 下载适合您架构的 v0.25.1 二进制文件。
  • 根据 示例配置 创建并编辑 config.yaml 文件。
  • 运行二进制文件,这里我选择的是linux aamd64的文件,命令如下:
    cd ~
    mkdir -p headscale
    wget -O headscale_linux_amd64 https://github.com/juanfont/headscale/releases/download/v0.25.1/headscale_0.25.1_linux_amd64
    sudo chmod +x headscale_linux_amd64
    wget -O /etc/headscale/config.yaml https://github.com/juanfont/headscale/blob/v0.25.1/config-example.yaml
    ./headscale_linux_amd64 serve -c /etc/headscale/config.yaml
    

 

  • 根据需要配置成系统服务
    sudo vi /usr/lib/systemd/headscale.service
    
    [Unit]
    Description=headscale
    After=network.target
    
    [Service]
    Type=simple
    User=headscale
    Group=headscale
    WorkingDirectory=~/headscale
    ExecStop=/bin/kill $MAINPID
    ExecStart=headscale_linux_amd64 serve -c /etc/headscale/config.yaml
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
    sudo systemctl enable --now headplane
    sudo systemctl status headplane
    

Headplane v0.5.5

  • 检测所需环境
    • Headscale 0.25或以上
    • Nodejs 22或以上
    • PNPM 10.x以上
    • 正确配置的 config.yaml(https://raw.githubusercontent.com/tale/headplane/refs/tags/0.5.5/config.example.yaml) 文件
  • 以下操作假设你安装 Nodejs PNPM,克隆 Headplane 仓库:
    git clone https://github.com/tale/headplane
    cd headplane
    pnpm install
    pnpm build
    
  • 运行应用:
    node build/headplane/server.js
    
  • 根据需要配置成系统服务
    sudo vi /usr/lib/systemd/headplane.service
    
    [Unit]
    Description=Headplane
    After=network.target
    
    [Service]
    Type=simple
    User=headplane
    Group=headplane
    WorkingDirectory=~/headplane
    ExecStop=/bin/kill $MAINPID
    ExecStart=/usr/bin/node ~/headplane/build/headplane/server.js
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
    sudo systemctl enable --now headplane
    sudo systemctl status headplane
    
  • 配置 config.yaml,设置 headscale.url 为 Headscale 实例的 URL,例如本地运行时为 https://localhost:8080

Docker 安装

Headscale v0.25.1

  • 拉取官方镜像:
    docker pull headscale/headscale:0.25.1
    
  • 创建配置和数据目录:
    cd ~
    mkdir -p headscale/config
    mkdir -p headscale/data
    
  • 下载并编辑示例配置:
    wget -O headscale/config/config.yaml https://raw.githubusercontent.com/juanfont/headscale/v0.25.1/config-example.yaml
    
  • 运行容器:
    docker run -d --name headscale \
      -v $(pwd)/headscale/config:/etc/headscale \
      -v $(pwd)/headscale/data:/var/lib/headscale \
      -p 8080:8080 \
      headscale/headscale:0.25.1 serve
    

Headplane v0.5.5

  • 克隆仓库并切换版本:
    cd ~
    git clone https://github.com/tale/headplane
    cd headplane
    git checkout v0.5.5
    
  • 构建 Docker 镜像:
    docker build -t headplane:v0.5.5 .
    
  • 创建配置目录并编辑:
    mkdir -p headplane/config
    cp config.example.yaml headplane/config/config.yaml
    
  • 确保 config.yamlheadscale.url 设置正确。
  • 运行容器:
    docker run -d --name headplane \
      -v $(pwd)/headplane/config:/etc/headplane \
      -p 3000:3000 \
      headplane:v0.5.5
    
  • 安全考虑
    • 生产环境中建议使用 HTTPS,确保 Headscale 和 Headplane 均配置 SSL/TLS。Headscale 支持通过配置启用 HTTPS,Headplane 可通过反向代理(如 Nginx)实现。
    • 示例反向代理配置可参考 Headplane 文档,但需确保 CORS 设置正确。
  • 端口冲突:Headscale 默认使用 8080,Headplane 使用 3000,确保主机或容器端口不冲突。
  • 版本兼容性:确保 Headscale v0.25.1 与 Headplane v0.5.5 兼容,参考 CHANGELOG 确认。

意外细节

一个可能未预料到的细节是,Headplane 的 Docker 镜像需用户自行构建(基于 GitHub 仓库),而非直接从 Docker Hub 拉取官方镜像,这可能增加初次部署的复杂性。

官方文档参考

转载请注明:TUTERM.COM » 使用Headscale v0.25.1自建tailscale服务端,配合Headplane v0.5.5实现Web UI管理你的服务

如果您觉得本文的内容对您的学习有所帮助,您可以支付宝(左)或微信(右):
alipay weichat

您必须 登录 才能发表评论!