Headscale 的部署方法和使用教程

要求

只要满足以下要求,Headscale 就应该工作:

  • 具有 headscale 公共 IP 地址的服务器。建议使用公共 IPv4 和公共 IPv6 地址的双堆栈设置。
  • Headscale 通过端口 443 上的 HTTPS 提供服务。
  • 一个基于 Linux 的操作系统。本次部署环境为Ubuntu22.04。
  • 了解 Linux 以及 网络 基础知识
  • 一个用于运行 Headscale 的专用本地用户账户。
  • 一个域名以及对应的域名证书(crt+key)

使用 Debian/Ubuntu 的软件包

  1. 下载您平台上的最新 headscale 软件包(Ubuntu 和 Debian 使用 .deb 格式)。

  2. 安装 headscale:

    bash 复制代码
    sudo apt install ./headscale.deb
  3. 通过编辑配置文件来配置 headscale

    arduino 复制代码
    sudo vim /etc/headscale/config.yaml
  4. 启用并启动 headscale 服务:

    bash 复制代码
    sudo systemctl enable --now headscale
  5. 验证 headscale 是否按预期运行:

    lua 复制代码
    sudo systemctl status headscale

配置模板

yaml 复制代码
```
# 服务地址 采用域名或者ip形式
# server_url: http://10.10.10.10:9999
server_url: https://xxx.euyan.cloud:9999

# 生产环境配置为0.0.0.0
listen_addr: 0.0.0.0:9999
metrics_listen_addr: 0.0.0.0:9090
grpc_listen_addr: 0.0.0.0:50443

# 私网地址
prefixes:
  v4: 100.64.0.0/10

# 如果采用https 需要配置ssl证书
tls_cert_path: "/etc/headscale/xxx.euyan.cloud.pem"
tls_key_path: "/etc/headscale/xxx.euyan.cloud.key"

# DNS部分 可修改为国内dns
dns:
  magic_dns: true
  base_domain: example.com
  override_local_dns: false
  nameservers:
    global:
      - 114.114.114.114
      - 8.8.8.8
    split: {}
  search_domains: []
  extra_records: []

```

常用命令

bash 复制代码
```
# 创建用户
headscale users create mynetwork

# 查看用户列表
headscale users list

# 创建预共享密钥
headscale preauthkeys create --user 1

# 客户端通过服务地址以及密钥进行注册
tailscale up --login-server=http://「地址」 --authkey=「密钥」

# 清楚用户信息
headscale users destroy --name REDMIK70

# 查看节点列表
headscale nodes list

# 基于ID删除节点
headscale nodes delete -i 3

# 修改节点名称 [名称必须为小写]
headscale nodes rename lenovo-r7000p -i 5
```

配置举例

为用户K001分配预共享密钥 K001进行注册操作

ini 复制代码
```
# 第一步 创建用户
headscale users create K001

# 第二步 创建密钥
headscale preauthkeys create --user 1

# 第三部 客户端注册
tailscale up --login-server=http://172.16.40.227:9999 --authkey=a2bd538966bbe17fe41ba49f175c50f2d4be33131893bae9

# 第四步 查看节点
headscale nodes list
```

更新时区以及同步时间

csharp 复制代码
sudo timedatectl set-timezone Asia/Shanghai

sudo timedatectl set-ntp on

timedatectl status
相关推荐
2601_9632827720 分钟前
极寒专网技术拆解:黑龙江零下 40℃场景数字对讲组网全方案|黑龙江移远科技寒地通信底层技术解析
运维·网络·人工智能·科技
LedgerNinja42 分钟前
WEEX API 稳定性实战:限频、重试与风控的工程化清单
运维·区块链
ZJH__GO1 小时前
网络编程v2--多客户端互通
java·运维·服务器·开发语言·计算机网络
Meya11271 小时前
实时采集 + 全域可视化,打造跨站点机房一体化U位管理方案
大数据·运维·人工智能
Gofarlic_OMS1 小时前
NX浮动许可调度黑名单机制,对比两款谁更合理
java·大数据·运维·开源·制造
三言老师2 小时前
CentOS7.9:Redis服务器部署结构化实战教程
linux·运维·服务器·数据库
tiannian12204 小时前
RFID资产管理系统投入产出全拆解:硬件、软件、部署、运维四笔账一次算清
运维·rfid·资产管理系统
我头发多我先学4 小时前
Linux入门:简要认识Linux和基础指令
linux·运维·服务器
Urbano4 小时前
职业工装外套核心缝制工序自动化替代分析与多品牌设备选型报告
运维·自动化
逍遥德4 小时前
运维技术栈Linux+docker+Kubernetes+Jenkins/GitLab CI 知识点详细列表
linux·运维·docker