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

相关推荐
yaoxin521123几秒前
388. Java IO API - 处理事件
java·服务器·数据库
zzzsde2 分钟前
【Linux】线程概念与控制(1)线程基础与分页式存储管理
linux·运维·服务器·开发语言·算法
小樱花的樱花4 分钟前
Linux进程管理相关命令
linux·运维·服务器
计算机安禾4 分钟前
【Linux从入门到精通】第13篇:磁盘管理与文件系统——数据存在哪了?
linux·运维·服务器
温柔一只鬼.8 分钟前
Ubuntu 安装 Python 3.10 完整指南
linux·运维·ubuntu
飞舞花下10 分钟前
redis部署在A服务器,B服务器无法访问
运维·服务器
天空属于哈夫克312 分钟前
行为审计与全链路追踪:私域自动化执行的安全性设计
java·运维·微服务
keyipatience15 分钟前
10.Makefile构建奥秘:从基础到高效编译
linux·运维·服务器
空中海21 分钟前
Nginx 知识体系 · 上篇:基础与核心
运维·nginx
说再见再也见不到22 分钟前
华为交换机端口隔离(port-isolate)
linux·服务器·网络·华为·交换机·端口隔离·port-isolate