当前位置: 首页 > news >正文

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

文章目录

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


效果

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

在这里插入图片描述
在这里插入图片描述
手机使用移动流量,测试一下 ping

在这里插入图片描述
再试试进入游戏

在这里插入图片描述
可以看到是没问题的!

为什么要用 Headscale

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

在这里插入图片描述

在这里插入图片描述

云服务器安装 Headscale

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

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

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

在这里插入图片描述

sudo apt install ./headscale.deb

开机自动启动

sudo systemctl enable --now headscale

配置 config.yaml

修改 etc/headscale/config.yaml 文件

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

在这里插入图片描述

创建反向代理

apt install -y nginx

这里会卡一下
在这里插入图片描述

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

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

在这里插入图片描述

systemctl start headscale
systemctl restart nginx

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

headscale apikeys create --expiration 9999d 

在这里插入图片描述

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


授权管理 UI

在这里插入图片描述

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

在这里插入图片描述


添加互联设备

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

参考

  1. Tailscale玩法之内网穿透、异地组网、全隧道模式、纯IP的双栈DERP搭建、Headscale协调服务器搭建,用一期搞定,看一看不亏吧?
  2. Tailscale 官方手册

相关文章:

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

文章目录 效果为什么要用 Headscale云服务器安装 Headscale配置 config.yaml创建反向代理搭建管理 UI授权管理 UI添加互联设备参考 效果 首先是连接情况,双端都连接上自建的 Headscale, 手机使用移动流量,测试一下 ping 值 再试试进入游戏 可…...

C++ 编程基础(8)模版 | 8.2、函数模版

文章目录 一、函数模版1、声明与定义2、模版参数3、模板的实例化3.1、隐式实例化3.2、显示实例化 4、模版的特化5、注意事项6、总结 前言: C 函数模板是一种强大的特性,它允许程序员编写与类型无关的代码。通过使用模板,函数或类可以处理不同…...

Android Studio音频视频播放器课程设计

这个项目适合刚刚学习Android studio的初学者,实现音视频的基本播放功能,各项功能的页面都做的比较简单,特别适用于初学者,其特点在于本项目抛开了各种花里胡哨的制作,以最接近初学者的样式画面呈现,完全不…...

速盾:CDN是否支持屏蔽IP?

CDN(内容分发网络)是一种用于提高网站性能和可靠性的技术,通过将内容分发到距离终端用户更近的节点,减少了数据传输的延迟并提高了用户体验。在CDN中,屏蔽IP是一项重要的功能,可以帮助网站屏蔽无效或恶意请…...

机器学习—学习曲线

学习曲线是帮助理解学习算法如何工作的一种方法,作为它所拥有的经验的函数。 绘制一个符合二阶模型的学习曲线,多项式或二次函数,画出交叉验证错误Jcv,以及Jtrain训练错误,所以在这个曲线中,横轴将是Mtrai…...

在 macOS 和 Linux 中,波浪号 `~`的区别

文章目录 1、在 macOS 和 Linux 中,波浪号 ~macOS示例 Linux示例 区别总结其他注意事项示例macOSLinux 结论 2、root 用户的主目录通常是 /root解释示例切换用户使用 su 命令使用 sudo 命令 验证当前用户总结 1、在 macOS 和 Linux 中,波浪号 ~ 在 macO…...

【Java】实战:多数元素

一、题目描述 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:nums [3,2,3] 输出&#x…...

一文解决Latex中的eps报错eps-converted-to.pdf not found: using draft setting.

在使用Vscode配的PDFLatex编译IEEE TII的Latex模板时,出现eps文件不能转换为pdf错误,看了几十篇方法都没用,自己研究了半天终于可以正常运行了。主要原因还是Settings.JSON中的PDFLatex模块缺少:"--shell-escape", 命令…...

计算光纤色散带来的相位移动 matlab

需要注意的地方 1.以下内容纯属个人理解,很有可能不准确,请大家仅做参考 2.光速不要直接用3e8 m/s,需要用精确的2.9979.... 3.光的频率无论在真空还是光纤(介质)都是不变的,是固有属性,但是波长lambdac/f在不同的介…...

国内docker pull拉取镜像的解决方法

访问网站,查找该网站上可用的镜像源,然后替换掉下面代码中的hub-mirror.c.163.com: docker pull hub-mirror.c.163.com/library/nginx:latest 另外,进入到镜像之后,可以使用下面的命令查看操作系统版本。 lsb_releas…...

“Kafka面试攻略:核心问题与高效回答”

1,生产者发送消息的原理 发送消息的过程中,涉及到两个线程,main线程和sender线程,main线程会创建一个双端队列,main线程向双端队列发送消息,sender线程从双端队列里拉取消息,发送给Kafka Broke…...

C++ 多线程std::thread以及条件变量和互斥量的使用

前言 本文章主要介绍C11语法中std::thread的使用,以及条件变量和互斥量的使用。 std::thread介绍 构造函数 std::thread 有4个构造函数 // 默认构造函,构造一个线程对象,在这个线程中不执行任何处理动作 thread() noexcept;// 移动构造函…...

新华三H3CNE网络工程师认证—子接口技术

子接口(subinterface)是通过协议和技术将一个物理接口(interface)虚拟出来的多个逻辑接口。在VLAN虚拟局域网中,通常是一个物理接口对应一个 VLAN。在多个 VLAN 的网络上,无法使用单台路由器的一个物理接口…...

【MySQL】InnoDB内存结构

目录 InnoDB内存结构 主要组成 缓冲池 缓冲池的作用 缓冲池的结构 缓冲池中页与页之间连接方式分析 缓冲池如何组织数据 控制块初始化 页面初始化 缓冲池中页的管理 缓冲区淘汰策略 查看缓冲池信息 总结 变更缓冲区-Chang Buffer 变更缓冲区的作用 主要配置选项…...

基于大数据爬虫数据挖掘技术+Python的网络用户购物行为分析与可视化平台(源码+论文+PPT+部署文档教程等)

#1024程序员节|征文# 博主介绍:CSDN毕设辅导第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老…...

蓝桥杯每日真题 - 第19天

题目:(费用报销) 题目描述(13届 C&C B组F题) 解题思路: 1. 问题抽象 本问题可以看作一个限制条件较多的优化问题,核心是如何在金额和时间约束下选择最优方案: 动态规划是理想…...

CentOS7.9.2009的yum更换vault地窖保险库过期源,epel的archive归档源 笔记241117

CentOS7.9.2009的yum更换vault地窖保险库过期源,epel的archive归档源 笔记241117 备份 /etc/yum.repos.d 文件夹 tempUri/etc/yum.repos.d ; sudo cp -a $tempUri $tempUri.$(date %0y%0m%0d%0H%0M%0Sns%0N).bak清空 /etc/yum.repos.d 文件夹 sudo rm -rf /etc…...

Spark SQL大数据分析快速上手-完全分布模式安装

【图书介绍】《Spark SQL大数据分析快速上手》-CSDN博客 《Spark SQL大数据分析快速上手》【摘要 书评 试读】- 京东图书 大数据与数据分析_夏天又到了的博客-CSDN博客 Hadoop完全分布式环境搭建步骤-CSDN博客,前置环境安装参看此博文 完全分布模式也叫集群模式。将Spark目…...

Java面试题2024-Java基础

Java基础 1、 Java语言有哪些特点 1、简单易学、有丰富的类库 2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) 3、与平台无关性(JVM是Java跨平台使用的根本) 4、可靠安全 5、支持多线程 2、…...

局域网协同办公软件,2024安全的协同办公软件推荐

在2024年,随着数字化转型的深入和远程工作需求的增加,协同办公软件已成为企业提升工作效率、优化沟通流程的重要工具。 以下是一些值得推荐的安全的协同办公软件: 钉钉 功能全面:钉钉是一款综合性极强的企业级协同软件&#xff…...

osg、osgearth简介及学习环境准备

一、osg简介(三维场景图渲染与调度引擎) OSG是Open Scene Graphic 的缩写,OSG于1997年诞生于以为滑翔机爱好者之手,Don burns 为了对滑翔机的飞行进行模拟,对openGL的库进行了封装,osg的雏形就这样诞生了&…...

nodejs基于微信小程序的云校园的设计与实现

摘 要 相比于传统的校园管理方式,智能化的管理方式可以大幅提高校园的管理效率,实现了云校园管理的标准化、制度化、程序化的管理,有效地防止了云校园信息的不规范管理,提高了信息的处理速度和精确度,能够及时、准确地…...

uni-app快速入门(十)--常用内置组件(下)

本文介绍uni-app的textarea多行文本框组件、web-view组件、image图片组件、switch开关组件、audio音频组件、video视频组件。 一、textarea多行文本框组件 textarea组件在HTML 中相信大家非常熟悉,组件的官方介绍见: textarea | uni-app官网uni-app,un…...

golang基础

在 Go 中字符串是不可变的,例如下面的代码编译时会报错: cannot assign to s[0] 但如果真的想要修改怎么办呢?下面的代码可以实现: var s string "hello" s [ 0 ] c s : "hello" c : [] b…...

Selenium + 数据驱动测试:从入门到实战!

引言 在软件测试中,测试数据的多样性和灵活性对测试覆盖率至关重要。而数据驱动测试(Data-Driven Testing)通过将测试逻辑与数据分离,极大地提高了测试用例的可维护性和可扩展性。本文将结合Selenium这一流行的测试工具&#xff0…...

LLaMA与ChatGLM选用比较

目录 1. 开发背景 2. 目标与应用 3. 训练数据 4. 模型架构与规模 5. 开源与社区支持 6. 对话能力 7. 微调与应用 8. 推理速度与资源消耗 总结 LLaMA(Large Language Model Meta AI)和 ChatGLM(Chat Generative Language Model)都是强大的大型语言模型,但它们有一…...

GPTZero:高效识别AI生成文本,保障学术诚信与内容原创性

产品描述 GPTZero 是一款先进的AI文本检测工具,专为识别由大型语言模型(如ChatGPT、GPT-4、Bard等)生成的文本而设计。它通过分析文本的复杂性和一致性,判断文本是否可能由人类编写。GPTZero 已经得到了超过100家媒体机构的报道&…...

C/C++ 优化,strlen 示例

目录 C/C optimization, the strlen examplehttps://hallowed-blinker-3ca.notion.site/C-C-optimization-the-strlen-example-108719425da080338d94c79add2bb372 揭开优化的神秘面纱... 让我们来谈谈 CPU 等等,SIMD 是什么? 为什么 strlen 是一个很…...

【动手学深度学习Pytorch】1. 线性回归代码

零实现 导入所需要的包: # %matplotlib inline import random import torch from d2l import torch as d2l import matplotlib.pyplot as plt import matplotlib import os构造人造数据集:假设w[2, -3.4],b4.2,存在随机噪音&…...

深入理解PyTorch中的卷积层:工作原理、参数解析与实际应用示例

深入理解PyTorch中的卷积层:工作原理、参数解析与实际应用示例 在PyTorch中,卷积层是构建卷积神经网络(CNNs)的基本单元,广泛用于处理图像和视频中的特征提取任务。通过卷积操作,网络可以有效地学习输入数…...

服务完善的网站建设/关键词优化策略

展开全部//栈接口/*** 2016/10/31 10:19** author 3306 TODO*/public interface StackInterface {/*** 压入元素** param element 元素*/void push(T element);/*** 弹出栈顶元素** return T*/T pop();}//固定长度栈62616964757a686964616fe78988e69d8331333361323037/*** 2016…...

用php做的大型网站/如何在百度发广告推广

罗志祥 搞笑 人物图片: http://tieba.baidu.com/%BF%D5%D6%AE%B9%EC%BC%A3/tupian/list/fc%E4%BA%BA%E7%89%A9%E7%B4%A0%E6%9D%90_%E5%85%88%E8%BF%99%E4%B9%88%E5%A4%9A%E5%90%A7 精通direct3d图形与动画程序设计...

工信部网站用户名/舆情分析报告

1,rand 生成均匀分布的伪随机数。分布在(0~1)之间主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数rand(m,n,‘double’)生成指定精度的均匀分布的伪随机数,参数还可以是’single’rand(RandStream,m,n)利用指定的Ra…...

甘肃省级建设主管部门网站/百度网站流量查询

简介 splay tree其实就是不停的旋转,没进行一个操作都要进行旋转;例如,当访问某一个结点的时候,会通过旋转其结点使得该结点变为树根,这样保证其的平均复杂度为O(nlogn); 其的操作包括: 查找:如…...

承接网站建设广告语/一键关键词优化

20165107 《网络对抗技术》Exp1 PC平台逆向破解 实践内容 本次实践的对象是一个名为pwn1的linux可执行文件,该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。该程序同时包含另一个代码片段,getShell&#xff0…...

4在线做网站/百度官网电话

高德地图右键菜单类ContextMenu,在实际应用中为了交互更方便有时不仅需要地图的右键菜单,还需要在marker、circle、polyline、polygon上添加右键菜单,我采用ContextMenu类实现,以polygon为例,通过响应”rightclick”事…...