Tailscale+Headscale搭建p2p组网系统

零、介绍

  1. p2p(peer to peer)点对点通信,通信双方通过最优的物理路径直连通信,数据不需经过服务器,双方即是服务端也是客户端。

  2. ipv6是天生支持p2p的,但是ipv4由于NAT的存在,需要辅助才能建立p2p通信。NAT是网络地址转换,由于IPV4的公网IP不够用而设计的技术,即多个主机共享同一个公网IP。所以在IPV4上建立p2p需要打通NAT(打洞)。

  3. Headscale是一个开源的协调服务器,用于帮助打洞。

  4. Tailscale客户端用于和服务器通信。

  5. 工作原理:主机A使用Tailscale客户端告诉Headscale服务器,我要加入网络组。当主机A第一次尝试和组内主机B建立网络连接时,请求Headscale服务器辅助打通NAT,如果成功就建立了p2p连接,失败可能降级为使用DERP 中继节点​转发。

一、部署Headscale服务

1.下载

wget --output-document=headscale.deb https://github.com/juanfont/headscale/releases/download/v0.26.1/headscale_0.26.1_linux_arm64
#linux-amd64
https://github.com/juanfont/headscale/releases/download/v0.26.1/headscale_0.26.1_linux_amd64

2.安装

sudo apt install ./headscale.deb

3.编辑配置文件

sudo vi /etc/headscale/config.yaml

4.允许服务自启动

sudo systemctl enable --now headscale

5.查看状态

sudo systemctl status headscale
  1. 配置文件位置:/etc/headscale/config.yaml

  2. 数据位置:/var/lib/headscale

二、配置headscale服务

1.创建用户

sudo headscale users create <user_name>
sudo headscale users list

2. 见(三、客户端 2.登录)

3.直接在服务端添加客户端设备节点

sudo headscale nodes register --user <user_name> --key <客户端公钥>

三、Tailscale客户端

1.安装-官网链接选择系统

https://tailscale.com/download/linux
https://tailscale.com/download/windows

2.登录

#1. 执行指令
tailscale login --login-server http://x.x.x.x:11000
#2. 打开链接获取指令,去服务端执行指令完成登录
#例:sudo headscale nodes register --user <user_name> --key <客户端公钥>

3.连接

tailscale up --login-server http://x.x.x.x:11000
posted @ 2026-04-16 20:33  longan55  阅读(137)  评论(0)    收藏  举报