【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 官方手册
相关推荐
龙湾开发9 分钟前
轻量级高性能推理引擎MNN 学习笔记 02.MNN主要API
人工智能·笔记·学习·机器学习·mnn
铁锚12 分钟前
一个WordPress连续登录失败的问题排查
java·linux·服务器·nginx·tomcat
华颉科技17 分钟前
机架式服务器是什么?机架式/塔式/刀片式三大服务器类型区别与选型全解析
服务器·科技·服务器类型·刀片服务器·机架服务器·塔式服务器
DavieLau19 分钟前
Python开发后端InfluxDB数据库测试接口
服务器·数据库·python·时序数据库
生命不息战斗不止(王子晗)42 分钟前
mybatis中${}和#{}的区别
java·服务器·tomcat
.生产的驴43 分钟前
Docker 部署Nexus仓库 搭建Maven私服仓库 公司内部仓库
java·运维·数据库·spring·docker·容器·maven
HappyAcmen1 小时前
线代第二章矩阵第八节逆矩阵、解矩阵方程
笔记·学习·线性代数·矩阵
cwywsx1 小时前
Linux:进程控制2
linux·运维·算法
南棱笑笑生1 小时前
20250512给NanoPi NEO core开发板在Ubuntu core20.04系统下重新编译boot.img
linux·运维·ubuntu
Ha-gd1 小时前
Linux基础开发工具一(yum/apt ,vim)
linux·服务器