新版 Headscale 异地组网教程

51次阅读
没有评论

共计 2349 个字符,预计需要花费 6 分钟才能阅读完成。

针对之前的教程 Docker 搭建 headscale 异地组网完整教程,由于再次自建 headscale 某些内容已经不适用,并且使用的面板也发生了改变,所以准备再次记录一下搭建较新版本的 headscale。

  1. headscale 配置文件

注意这里 headscale.example.com 修改为自己的域名。

# 下载配置文件
mkdir -p /home/docker/network/headscale/config && \
mkdir -p /home/docker/network/headscale/data && \
touch /home/docker/network/headscale/data/db.sqlite && \
wget https://github.com/juanfont/headscale/raw/v0.27.1/config-example.yaml -O /home/docker/network/headscale/config/config.yaml

# 修改配置
sed -i 's/127.0.0.1/0.0.0.0/g' /home/docker/network/headscale/config/config.yaml
sed -i 's#http://0.0.0.0:8080#https://headscale.example.com#g' /home/docker/network/headscale/config/config.yaml
sed -i 's/randomize_client_port: false/randomize_client_port: true/' /home/docker/network/headscale/config/config.yaml
  1. headplane 配置文件
# 下载配置文件
mkdir -p /home/docker/network/headplane/config && \
wget https://github.com/tale/headplane/raw/v0.6.1/config.example.yaml -O /home/docker/network/headplane/config/config.yaml

# 修改配置
sed -i "s|cookie_secret:.*|cookie_secret: \"$(openssl rand -base64 24 | cut -c1-32)\"|" /home/docker/network/headplane/config/config.yaml
sed -i 's|http://headscale:5000|http://headscale:8080|g' /home/docker/network/headplane/config/config.yaml

# 删除 oidc 相关内容,防止报错
sed -i '/^oidc:/,/^[^[:space:]]/d' /home/docker/network/headplane/config/config.yaml
  1. docker-compose 文件
services:
  headscale:
    image: headscale/headscale:0.27.1
    container_name: headscale
    restart: unless-stopped
    command: serve
    labels:
      me.tale.headplane.target: headscale
    ports:
      - 127.0.0.1:18080:8080
    volumes:
      - './headscale/config:/etc/headscale'
      - './headscale/data:/var/lib/headscale'
      - './headscale/run:/var/run/headscale'
  headplane:
    image: ghcr.io/tale/headplane:0.6.1
    container_name: headplane
    restart: unless-stopped
    ports:
      - 127.0.0.1:13000:3000
    volumes:
      - './headplane/config/config.yaml:/etc/headplane/config.yaml'
      - './headscale/config/config.yaml:/etc/headscale/config.yaml'
      - './headplane/data:/var/lib/headplane'
      - '/var/run/docker.sock:/var/run/docker.sock:ro'
  1. 创建 apikey

作为面板,Headplane 需使用 API Key 连接 Headscale,否则无法通过鉴权。

docker exec -it headscale headscale apikeys create
tXz4PVY.CJnpTSKGivoafNobanr2POSnYWfqtrRr

浏览器打开 https://headscale.example.com/admin,输入上面得到的 API Key,可以在网页管理已加入的客户端,创建用户、预授权密钥等。

新版 Headscale 异地组网教程

  1. 创建用户和预授权密钥

这里可以根据自己需要设置密钥过期时间和是否可重复使用,我为了方便就设置了一个比较长的时间,并且可以重复使用。

docker exec -it headscale headscale users create xxx && \
docker exec -it headscale headscale preauthkeys create -e 10000d --reusable -u 1

这里将得到预授权密钥,就可以给客户端使用了。

具体看:Docker 搭建 headscale 异地组网完整教程 里面的第五节客户端安装。

AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 0
阿蛮君
版权声明:本站原创文章,由 阿蛮君 于2026-02-05发表,共计2349字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2023-2026 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 又拍云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock