headscale安装与使用(linux)

1、安装

下载二进制文件

https://github.com/juanfont/headscale/releases/download/v0.28.0/headscale_0.28.0_linux_amd64

下载上传至服务器安装

bash 复制代码
sudo mv /tmp/headscale_0.28.0_linux_amd64 /usr/local/bin/headscale
sudo chmod +x /usr/local/bin/headscale
headscale version

2、配置

写配置文件

bash 复制代码
sudo nano /etc/headscale/config.yaml


server_url: 你的公网ip:8889
listen_addr: 0.0.0.0:8889
grpc_listen_addr: 0.0.0.0:41641

database:
  type: sqlite3
  sqlite:
    path: /var/lib/headscale/db.sqlite

prefixes:
  v4: 100.64.0.0/10
  v6: fd7a:115c:a1e0::/48

noise:
  private_key_path: /var/lib/headscale/private.key

tls:
  letsencrypt:
    enabled: false

dns:
  override_local_dns: false
  magic_dns: true
  base_domain: headscale.net

log:
  level: info

derp:
  server:
    enabled: true
    region_id: 999
    region_code: "headscale"
    region_name: "Headscale Embedded DERP"
    stun_listen_addr: "0.0.0.0:3478"
    private_key_path: /var/lib/headscale/derp_server.key
  urls: []
  auto_update_enabled: false

配置文件测试

bash 复制代码
sudo headscale configtest
或者
sudo headscale configtest -c /etc/headscale/config.yaml

检查防火墙状态放行相应端口

bash 复制代码
sudo ufw allow 8080/tcp
sudo ufw allow 3478/udp
sudo ufw allow 41641/udp
sudo ufw reload
  1. 写 systemd 服务文件

创建 /etc/systemd/system/headscale.service:

bash 复制代码
sudo nano /etc/systemd/system/headscale.service

内容(如果 which headscale 显示的路径不是 /usr/local/bin/headscale,这里要改):

bash 复制代码
[Unit]
Description=Headscale coordination server
After=network.target

[Service]
User=headscale
Group=nogroup
ExecStart=/usr/local/bin/headscale serve -c /etc/headscale/config.yaml
WorkingDirectory=/var/lib/headscale
Restart=on-failure
RestartSec=5s

# 限制权限(可选,安全一点)
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

重新加载并启动服务

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable --now headscale
sudo systemctl status headscale

启动成功

3、失败踩坑

1、文件权限不对会导致失败

2、配置格式不对,配置参数不同版本可能有区别

3、报错可以通过下面命令检查

bash 复制代码
sudo journalctl -u headscale --no-pager -n 50

4、使用

下载tailscale客户端

https://tailscale.com/download/windows

安装后在客户端输入命令

复制代码
tailscale up --login-server=http://ip:8889

成功后会返回

在浏览器打开返回的地址

复制命令到客户端执行

服务端执行

1、先创建用户

复制代码
sudo headscale users create ccc

2、给用户授权

复制代码
sudo headscale nodes register --key NWVSGZZ3qpXYrblx41x_xBLx --user ccc

在客户端查看链接状态

tailscale status

相关推荐
huainingning9 小时前
RJ SW Console口忘记密码处理方法
linux·运维·服务器
布裘9 小时前
【银河麒麟】桌面系统循环登录,无法进入桌面?
linux·运维·服务器
慧都小项9 小时前
程序到了Linux才出错?用CLion把调试接到目标环境
linux·运维·服务器
Lsetea10 小时前
OpenSSL verify报unhandled critical extension:error 34与关键扩展排查
运维·https·ssl证书·openssl·证书链
guo_wen_qiang10 小时前
docker的备份与迁移
运维·docker·容器
Ruiery12 小时前
Linux 6.6内核内存管理深度解析(一):物理内存初始化 — memblock 怎么把内存交给 buddy
linux·运维·服务器
2401_8685347812 小时前
无线网络规划设计
服务器·网络
库拉镜像AI牛牛12 小时前
短剧内容自动化生产:知漫剧工作室落地教程
大数据·服务器·前端·人工智能·语音识别
天蓝蓝的本我12 小时前
conda日常用到的命令积累1-登录linux,安装pycharm
linux·pycharm·conda
Android系统攻城狮12 小时前
Linux Gstreamer深度解析之gst_audio_encoder_get_frame_max调用流程与实战(五十九)
linux·运维·服务器·gstreamer音视频·音视频进阶·gstreamer音视频进阶