要求
只要满足以下要求,Headscale 就应该工作:
- 具有 headscale 公共 IP 地址的服务器。建议使用公共 IPv4 和公共 IPv6 地址的双堆栈设置。
- Headscale 通过端口 443 上的 HTTPS 提供服务。
- 一个基于 Linux 的操作系统。本次部署环境为Ubuntu22.04。
- 了解 Linux 以及 网络 基础知识
- 一个用于运行 Headscale 的专用本地用户账户。
- 一个域名以及对应的域名证书(crt+key)
使用 Debian/Ubuntu 的软件包
-
下载您平台上的最新 headscale 软件包(Ubuntu 和 Debian 使用
.deb
格式)。 -
安装 headscale:
bashsudo apt install ./headscale.deb
-
arduino
sudo vim /etc/headscale/config.yaml
-
启用并启动 headscale 服务:
bashsudo systemctl enable --now headscale
-
验证 headscale 是否按预期运行:
luasudo 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