【Tealscale + Headscale + 自建服务器】异地组网笔记

文章目录

  • 效果
  • [为什么要用 Headscale](#为什么要用 Headscale)
  • [云服务器安装 Headscale](#云服务器安装 Headscale)
  • [配置 config.yaml](#配置 config.yaml)
  • 创建反向代理
  • [搭建管理 UI](#搭建管理 UI)
  • [授权管理 UI](#授权管理 UI)
  • 添加互联设备
  • 参考

效果

首先是连接情况,双端都连接上自建的 Headscale,


手机使用移动流量,测试一下 ping 值

再试试进入游戏

可以看到是没问题的!

为什么要用 Headscale

比较 Wireguard,Headscale 增加了 p2p 的模式,Headscale 会在保证两台异地设备相连的同时,尝试升级到 p2p

云服务器安装 Headscale

可以看 Headscale 的官网的安装教程 ,进入云服务器,然后输入如下命令

这里的 HEADSCALE_VERSION 以及 HEADSCALE_ARCH 是版本和你云系统的架构的变量名,填写对应的值,回车

bash 复制代码
HEADSCALE_VERSION="0.23.0" # See above URL for latest version, e.g. "X.Y.Z" (NOTE: do not add the "v" prefix!)
HEADSCALE_ARCH="amd64" # Your system architecture, e.g. "amd64"
wget --output-document=headscale.deb \
 "https://github.com/juanfont/headscale/releases/download/v${HEADSCALE_VERSION}/headscale_${HEADSCALE_VERSION}_linux_${HEADSCALE_ARCH}.deb"

然后等待下载即可,或者可以下载到本地,然后上传到服务器中

下载完成后安装 Headscale

bash 复制代码
sudo apt install ./headscale.deb

开机自动启动

bash 复制代码
sudo systemctl enable --now headscale

配置 config.yaml

修改 etc/headscale/config.yaml 文件

bash 复制代码
# 这里改成你云服务器的 ip 加上 开放的 tcp 端口
server_url: http://你自己的ip/tcp端口

创建反向代理

bash 复制代码
apt install -y nginx

这里会卡一下

然后到 /etc/nginx/sites-available 这个目录下,编辑 default 文件,替换一下的命令

bash 复制代码
map $http_upgrade $connection_upgrade {
    default      keep-alive;
    'websocket'  upgrade;
    ''           close;
}
server {
    listen 3355;
    listen [::]:3355;
    server_name 云服务器IP;
    location / {
    
    	proxy_pass http://127.0.0.1:8080;
        	proxy_http_version 1.1;
       	proxy_set_header Upgrade $http_upgrade;
        	proxy_set_header Connection $connection_upgrade;
        	proxy_set_header Host $server_name;
        	proxy_buffering off;
        	proxy_set_header X-Real-IP $remote_addr;
        	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        	proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
        	add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;

    }
    
    location /web {
		index  index.html;
       	alias  /var/www/web;
	}
}

搭建管理 UI

然后下载这个 ui 项目 https://github.com/gurucomputing/headscale-ui,解压到制定目录

之后开启 headscale 服务,重启 nginx

bash 复制代码
systemctl start headscale
systemctl restart nginx

创建一个 apikeys 用于给网页授权

bash 复制代码
headscale apikeys create --expiration 9999d 

之后访问 http://ip:端口号/web 就可以了


授权管理 UI

接着把生成的密钥粘贴到这里


添加互联设备

之后新增一个User view 即可,这是我添加的两个设备

然后我在安卓端,用流量连接服务器,并 ping 我的 mac

之后我的 mac 端也可以链接并 ping 通我的手机

参考

  1. Tailscale玩法之内网穿透、异地组网、全隧道模式、纯IP的双栈DERP搭建、Headscale协调服务器搭建,用一期搞定,看一看不亏吧?
  2. Tailscale 官方手册
相关推荐
无足鸟ICT6 小时前
【RHCA+】vmstat命令(监控系统资源)
linux·服务器
垆边人似月.6 小时前
RDMA 文件传输踩坑(五):READY 发送成功后,为什么出现 Work Request Flushed Error?
服务器·网络·tcp/ip
闪亮的路灯6 小时前
Linux 安装mqtt服务mosquitto
linux·运维·服务器
夕除6 小时前
Redis 过期策略
redis·笔记·面试
HideF6 小时前
nmcli
linux·服务器·网络
qetfw7 小时前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
明航咨询-陈老师8 小时前
ITSS运行维护服务能力成熟度认证技术纵深:标准模型、等级路径、2026审核趋势与CS/CMMI对比
服务器·数据库·cmmi
Nuanyt8 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
szxinmai主板定制专家8 小时前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x
缓慢更新9 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能