headscale - Tailscale 控制服务器的开源自托管实现

Created at: 2020-06-21 17:21:05
Language: Go
License: BSD-3-Clause

头秤

词

Tailscale 控制服务器的开源自承载实现。

加入我们的Discord服务器进行聊天。

注意:始终选择与已发布版本相同的 GitHub 标记,以确保具有正确的示例配置和文档。分支可能包含未发布的更改。

main

什么是尾部尺度

Tailscale是建立在Wireguard之上的现代VPN。它的工作方式类似于网络计算机之间的覆盖网络 - 使用NAT遍历

Tailscale中的所有内容都是开源的,除了用于专有操作系统(Windows和macOS / iOS)的GUI客户端和控制服务器。

控制服务器充当Tailscale网络中节点的Wireguard公钥交换点。它分配客户端的 IP 地址,在每个用户之间创建边界,在用户之间启用共享计算机,并公开节点的播发路由。

Tailscale网络(tailnet)是Tailscale根据私有用户或组织分配给用户的专用网络。

设计目标

headscale
旨在实现Tailscale控制服务器的自托管开源替代方案。 具有较窄的范围和实现单个Tailnet的实例,这通常是单个组织或家庭/个人设置将使用的。
headscale
headscale

headscale
使用映射到Tailscale控制服务器的术语,请参阅词汇表进行解释。

支持

如果你喜欢并发现它很有用,则存储库中提供了赞助和捐赠按钮。

headscale

如果你想赞助功能,错误或优先级,请联系其中一位维护者。

特征

  • 对Tailscale功能的完全“基本”支持
  • 可配置的域名解析
  • 节点注册
    • 单点登录(通过开放式 ID 连接)
    • 预验证密钥
  • Taildrop (File Sharing)
  • 访问控制列表
  • 魔术
  • 支持尾网中的多个 IP 范围
  • 双堆栈(IPv4 和 IPv6)
  • 路由通告(包括出口节点)
  • 临时节点
  • 嵌入式 DERP 服务器

客户端操作系统支持

操作系统 支持头秤
Linux 是的
OpenBSD 是的
FreeBSD 是的
苹果操作系统 是(有关详细信息,请参阅头秤上的信息)
/apple
窗户 文档
人造人 文档
苹果操作系统 还没有

运行头秤

请查看 docs/ 下的文档。

免責聲明

  1. 我们与Tailscale或Tailscale Inc.无关。
  2. Headscale的目的是维护一个工作,自托管的Tailscale控制面板。

贡献

要为headscale做出贡献,你需要最新版本的GoBuf(Protobuf生成器)。

我们建议使用 Nix 来设置开发环境。这可以通过 来完成,这将安装工具并为你提供一个shell。这可以保证你将拥有与维护者相同的开发环境。

nix develop
headscale

欢迎提出效绩报告和建议。

代码样式

为了确保我们与越来越多的贡献保持一致,该项目采用了linting和样式/格式规则:

Go 代码使用 golangci-lint 进行 lint,并使用 golines(宽度 88)和 gofumpt 进行格式化。请将编辑器配置为在开发时运行这些工具,并确保在提交任何代码之前运行这些工具。

make lint
make fmt

Proto 代码使用 buf 进行 lin,并使用 clang 格式进行格式化

其余的(Markdown,YAML等)的格式更漂亮

查看 和 以查看特定配置。

.golangci.yaml
Makefile

安装开发工具

  • 布夫
  • 原型工具

安装并激活:

nix develop

测试和构建

项目的某些部分需要从 Protobuf 生成 Go 代码(如果在 中进行了更改),并且必须(重新)生成:

proto/

make generate

注意:请从单独的提交中签入更改,以便于查看。

gen/

运行测试:

make test

要构建程序:

nix build

make build

贡献

克里斯托弗
克里斯托弗·多尔比
胡安
胡安·丰特
阿德里安
阿德里安·拉芬-卡波瓦斯
病房
沃德·范德维格
蒋
朱江
尼科/
尼科
e-zk/
e-zk
贾斯汀
贾斯汀·安吉尔
亚力桑德罗
亚历山德罗(阿莱)塞加拉
不真实/
虚幻
ohdearaugustin/
ohdearaugustin
莫里茨
莫里茨·波尔德拉克
格里戈里·米哈尔金/
格里戈里·米哈尔金
尼克
尼克·范德马斯
欧根
欧根·比格勒
安东
安东·舒伯特
亚伦
亚伦·比伯
费尔南多
费尔南多·德·卢基
Hoàng
Hoàng Đức Hiếu
勇敢的混蛋/
勇敢的尚
迪昂
迪恩·托马斯
赤邦LW/
赤邦
梅万
梅万·萨马拉通加
迈克尔
迈克尔·
保罗
保罗·托特曼
塞缪尔
塞缪尔·洛克
斯特凡
斯特凡·马杰尔
阿尔乔姆
阿尔乔姆·克莱夫佐夫
凯西
凯西·马歇尔
帕夫洛斯
帕夫洛斯·维涅拉托斯
银
银弹
拉契2849/
拉奇2849
托马斯/
托马斯
亚伯拉罕
亚伯拉罕·英格索尔
安东尼
安托万·波皮诺
奥飞
盛奥飞
亚瑟
亚瑟·沃因比
布莱恩
布莱恩·斯坦森
卡森
杨嘉森
昆德尔/
昆德尔
费利克斯
费利克斯·克朗拉格-达默斯
费利克斯
JJGadgets/
JJGadgets
杰米
杰米·格里夫
吉姆
吉姆·蒂茨勒
皮尔
皮埃尔·卡鲁
拉斯穆斯
拉斯穆斯·穆拉茨
rcursaru/
rcursaru
白源
白源翻新
莱恩
瑞安·福勒
陕南
陕南科尼
sophware/
索菲
制革/
坦纳
泰罗斯/
泰特斯
这
吉特獾
天农
田农·格拉维
Tjerk
Tjerk Woudsma
阳
杨斌
扎哈尔
扎哈尔·贝萨拉布
资源
韩子源
derelm/
derelm
亨宁
亨宁·穆勒
无知/
无知
狮子24/
狮子24
珀尼拉/
珀尼拉
唤醒云/
唤醒云
zy/
zy