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
如果你想赞助功能,错误或优先级,请联系其中一位维护者。
操作系统 | 支持头秤 |
---|---|
Linux | 是的 |
OpenBSD | 是的 |
FreeBSD | 是的 |
苹果操作系统 | 是(有关详细信息,请参阅头秤上的信息)/apple |
窗户 | 是文档 |
人造人 | 是文档 |
苹果操作系统 | 还没有 |
请查看 docs/
下的文档。
要为headscale做出贡献,你需要最新版本的Go和Buf(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