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

文章目录

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

效果

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


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

再试试进入游戏

可以看到是没问题的!

为什么要用 Headscale

比较 WireguardHeadscale 增加了 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 官方手册
相关推荐
天水幼麟23 分钟前
Python学习笔记
笔记·python·学习
凤年徐28 分钟前
【C/C++】深入理解指针(二)
c语言·开发语言·c++·经验分享·笔记·指针
嘿rasa32 分钟前
2025最新系统 Linux 教程(三)
linux·运维·服务器
网硕互联的小客服35 分钟前
服务器风扇故障导致过热问题的解决方案
运维·服务器·chrome
facaixxx202442 分钟前
应用镜像是什么?轻量应用服务器的镜像大全
linux·运维·服务器
noravinsc1 小时前
Linux 下 Module 工具的介绍与使用
linux·运维·服务器
c无序2 小时前
【Docker-13】Docker Container容器
运维·docker·容器
Sunlight_7772 小时前
第五章 SQLite数据库:1、SQLite 基础语法及使用案例
java·linux·服务器·jvm·数据库·tcp/ip·sqlite
明明真系叻2 小时前
2025.4.20机器学习笔记:文献阅读
人工智能·笔记·机器学习
kfepiza3 小时前
HttpSessionListener 的用法笔记250417
java·笔记·servlet·tomcat