开源版tailscale,headscale搭建 - DongVPS
type
status
date
Feb 22, 2024 08:12 AM
category
tags
summary
slug
password
URL
icon

Headscale 是什么 上一期视频讲了tailscale,Tailscale 是一个收费的vpn服务,免费用户有诸多限制,为了破除这些限制,有开源项目重新把tailscale实现了一遍,项目名称叫headscale
是由欧洲航天局的 Juan Font 使用 Go 语言开发,在 BSD 许可下发布,实现了 Tailscale 控制服务器的所有主要功能,可以部署在企业内部,没有任何设备数量的限制,且所有的网络流量都由自己控制。
目前 Headscale 还没有可视化界面,所有的操作都需要在命令行中完成,但是命令并不多,操作也不复杂。
因为是自建服务,那能自定义的配置就多了,任意定义网段,任意定义命名空间
udp直连会被运营商限速,所以会出现速度骤降,但是ping非常稳定,传速速度页非常稳定。
Headscale 部署
Headscale 部署在 Linux 主机上,随便找台有独立ip的vps就可以了,但是要注意,如果需要穿透的内网无法打洞成功那么流量就会由服务器中转,这意味着穿透后的速度会直接的受限于节点跟服务器之间的网络情况,所以尽量选择离你近的服务器,即使打洞失败了,至少网络还是稳定的,通畅的。
准备
server_url
设置为http://<PUBLIC_IP>:8080
,将<PUBLIC_IP>
替换为公网 IP 或者域名。
- 可自定义私有网段,也可同时开启 IPv4 和 IPv6:
ip_prefixes: # - fd7a:115c:a1e0::/48 - 10.1.0.0/16
- 随机端口要打开,否则同一个内网中多个终端会有问题
- randomize_client_port: true
创建 SystemD service 配置文件:
客户端安装
目前除了 iOS 客户端,其他平台的客户端都有办法自定义 Tailscale 的控制服务器,headscale仅仅是实现了tailscale服务端的功能。
OS
Supports headscale
Linux
Yes
OpenBSD
Yes
FreeBSD
Yes
macOS
Yes (see
/apple
on your headscale for more information)Windows
Yes docs
Android
Yes docs
iOS
Not yet
Windows客户端
打开http://ip:8080/windows
下载一个注册表修改工具,执行一下
安装tailscale客户端
启动,登陆的时候就会去我们自己的服务器认证了
认证成功获取到ip,客户端就加入网络了
而且windows端做路由也是可以的,如果需要,加上参数–advertise-routes=192.168.188.0/24
打开cmd,执行
再去服务器端查看route,激活路由
linux客户端
直接下载。查看最新版本:https://pkgs.tailscale.com/stable/
将二进制文件复制到官方软件包默认的路径下:
将 systemD service 配置文件复制到系统路径下:
将环境变量配置文件复制到系统路径下:
Tailscale 接入:
执行完上面的命令后,会出现下面的信息:
To authenticate, visit:
在浏览器中打开该链接,就会出现如下的界面:

将其中的命令复制粘贴到 headscale 所在机器的终端中,并将 NAMESPACE 替换为前面所创建的 namespace。
回到 Tailscale 客户端所在的 Linux 主机,可以看到 Tailscale 会自动创建相关的路由表和 iptables 规则。路由表可通过以下命令查看:
群晖客户端
项目地址:https://github.com/tailscale/tailscale-synology
下载安装包手动上传到webui,安装启用
登录到ssh命令行
剩下的步骤跟linux一致
如果需要群晖做虚拟网关的话,添加参数–advertise-routes=192.168.199.0/24
openwrt客户端
项目地址:https://github.com/adyanth/openwrt-tailscale-enabler
按照项目的安装说明安装即可
安装完成,启动服务后,执行跟linux和群晖相同的命令
安卓客户端
稍微麻烦些,需要自己去github上生成release,这里就不写了,直接提供包出来
重点就是指定服务器的地址,如果不指定的话认证服务器是指向tailscale的
要想自己指定服务器需要从项目代码中自己生成一个
可以在github上操作,总体来说费劲一点,这不是本期视频的重点,我就直接把我生成的客户端放到蓝凑云了
安装完成后别直接登录,
登陆页面,右上角有一个use login server,
打开,填上自己的服务器的ip和端口登录,同样会跳转到一个页面
复制给出的命令,修改namespace为default
去服务端命令行执行一下,认证成功
安卓端就搞定了
总体而言,除了安卓端麻烦些,openwrt端耗费的时间长一些,难度不高
韩风版教程
视频教程: