Tailscale+Headscale搭建p2p组网系统
零、介绍
-
p2p(peer to peer)点对点通信,通信双方通过最优的物理路径直连通信,数据不需经过服务器,双方即是服务端也是客户端。
-
ipv6是天生支持p2p的,但是ipv4由于NAT的存在,需要辅助才能建立p2p通信。NAT是网络地址转换,由于IPV4的公网IP不够用而设计的技术,即多个主机共享同一个公网IP。所以在IPV4上建立p2p需要打通NAT(打洞)。
-
Headscale是一个开源的协调服务器,用于帮助打洞。
-
Tailscale客户端用于和服务器通信。
-
工作原理:主机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
-
配置文件位置:
/etc/headscale/config.yaml -
数据位置:
/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

浙公网安备 33010602011771号