基于WireGuard的VPN。免费支持最多20个节点。 https://tailscale.com/

Mike Beaumont ce4bf41dcf cmd/k8s-operator: support being the default loadbalancer controller 2 years ago
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 years ago
.github 98a5116434 all: adjust some build tags for plan9 2 years ago
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) 2 years ago
chirp 71029cea2d all: update copyright and license headers 3 years ago
client 4828e4c2db client/web: move api handler into web.go 2 years ago
clientupdate de9ba1c621 clientupdate/distsign/roots: add temporary dev root key (#9080) 2 years ago
cmd ce4bf41dcf cmd/k8s-operator: support being the default loadbalancer controller 2 years ago
control 947def7688 types/netmap: remove redundant Netmap.Hostinfo 2 years ago
derp 6c791f7d60 derp: include src IPs in mesh watch messages 2 years ago
disco 25a7204bb4 wgengine,ipn,cmd/tailscale: add size option to ping (#8739) 2 years ago
docs 0c427f23bd docs/k8s: don't call kubectl directly from Makefile 2 years ago
doctor c98652c333 doctor/permissions: add new check to print process permissions 2 years ago
envknob 84b94b3146 types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2 years ago
health abcb7ec1ce cmd/tailscale: warn if node is locked out on bringup 2 years ago
hostinfo 7ed3681cbe tailcfg: Add FirewallMode to NetInfo to record wether host using iptables or nftables 2 years ago
internal 280255acae various: add golangci-lint, fix issues (#7905) 2 years ago
ipn 9c07f4f512 all: replace deprecated ioutil references 2 years ago
jsondb 71029cea2d all: update copyright and license headers 3 years ago
kube e0d291ab8a ipn/store: add support for stores to hook into a custom dialer 2 years ago
licenses 699f9699ca licenses: update tailscale{,d} licenses 2 years ago
log 239ad57446 tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2 years ago
logpolicy 682fd72f7b util/testenv: add new package to hold InTest 2 years ago
logtail 98a5116434 all: adjust some build tags for plan9 2 years ago
metrics e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 years ago
net 98a5116434 all: adjust some build tags for plan9 2 years ago
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 years ago
paths a5dcc4c87b paths: remove wasm file, no-op stubs, make OS-specific funcs consistent 2 years ago
portlist e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 years ago
prober f314fa4a4a prober: fix data race when altering derpmap (#8397) 2 years ago
release ce5909dafc release/dist: remove extra Close on a signed file (#9094) 2 years ago
safesocket f844791e15 safesocket: enable test to run on Windows unpriviliged 2 years ago
scripts 535db01b3f scripts/installer: add Kaisen, Garuda, Fedora-Asahi. 2 years ago
smallzstd 71029cea2d all: update copyright and license headers 3 years ago
ssh 9c07f4f512 all: replace deprecated ioutil references 2 years ago
syncs e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 years ago
tailcfg ad9b711a1b tailcfg: bump capver to 72 to restore UPnP 2 years ago
tempfork e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 years ago
tka 767e839db5 all: implement lock revoke-keys command 2 years ago
tool 3722b05465 release/dist: run yarn build before building CLI 2 years ago
tsconst 71029cea2d all: update copyright and license headers 3 years ago
tsd 6e967446e4 tsd: add package with System type to unify subsystem init, discovery 2 years ago
tsnet f3077c6ab5 client/web: add self node cache 2 years ago
tstest 98a5116434 all: adjust some build tags for plan9 2 years ago
tstime a1b8d703d6 tstime/mono: remove unsafe 2 years ago
tsweb 7b18ed293b tsweb: check for key-based debug access before XFF check (#9093) 2 years ago
types e7d1538a2d types/views: add SliceEqual, like std slices.Equal 2 years ago
util 4af22f3785 util/deephash: add IncludeFields, ExcludeFields HasherForType Options 2 years ago
version 306deea03a cmd/tailscale/cli,version/distro: update support for Alpine (#8701) 2 years ago
wf 71029cea2d all: update copyright and license headers 3 years ago
wgengine 98a5116434 all: adjust some build tags for plan9 2 years ago
words 3f1f906b63 words: ack Miles Prower (#8479) 2 years ago
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 years ago
.gitignore 9c4364e0b7 client/web: copy existing UI to basic react components 2 years ago
.golangci.yml f85dc6f97c ci: add more lints (#7909) 2 years ago
ALPINE.txt 88133c361e Docker: add ALPINE.txt to manage alpine versions 3 years ago
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 years ago
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file 2 years ago
CODE_OF_CONDUCT.md 452b81d56b Add a code of conduct. 6 years ago
Dockerfile 66f27c4beb all: require Go 1.21 2 years ago
Dockerfile.base 1302295299 Dockerfile.base: install iputils 2 years ago
LICENSE 947c14793a all: update tools that manage copyright headers 3 years ago
Makefile 98a5116434 all: adjust some build tags for plan9 2 years ago
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 years ago
README.md 66f27c4beb all: require Go 1.21 2 years ago
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 years ago
VERSION.txt cf31b58ed1 VERSION.txt: this is v1.49.0 (#8907) 2 years ago
api.md aa37be70cf api.md: update device authorize API docs to allow for deauth (#8728) 2 years ago
build_dist.sh 6554a0cbec build_dist.sh: use $go consistently. 2 years ago
build_docker.sh f9667e4946 Dockerfile: fix docker build 3 years ago
flake.lock fe91160775 flake.nix: use Go 1.21 to build tailscale flake 2 years ago
flake.nix b407fdef70 flake.nix: use Go 1.21 to build tailscale, for real this time 2 years ago
go.mod 320f77bd24 cmd/containerboot: add support for setting ServeConfig 2 years ago
go.mod.sri e80ba4ce79 go.mod.sri: update SRI hash for go.mod changes 2 years ago
go.sum 98a5116434 all: adjust some build tags for plan9 2 years ago
go.toolchain.branch fbacc0bd39 go.toolchain: switch to tailscale.go1.21 (#8415) 2 years ago
go.toolchain.rev a1b8d703d6 tstime/mono: remove unsafe 2 years ago
pull-toolchain.sh 0e4f2bdd0c pull-toolchain.sh: don't run update-flake.sh 3 years ago
shell.nix e80ba4ce79 go.mod.sri: update SRI hash for go.mod changes 2 years ago
staticcheck.conf ece138ffc3 staticcheck.conf: remove unnecessary warning 4 years ago
update-flake.sh f145c2b65b .github/workflows: add workflow to update go.mod Nix SRI hash 3 years ago
version-embed.go da75e49223 version: return correct Meta.MajorMinorPatch in non-dev builds 3 years ago
version_test.go 71029cea2d all: update copyright and license headers 3 years ago

README.md

Tailscale

https://tailscale.com

Private WireGuard® networks made easy

Overview

This repository contains the majority of Tailscale's open source code. Notably, it includes the tailscaled daemon and the tailscale CLI tool. The tailscaled daemon runs on Linux, Windows, macOS, and to varying degrees on FreeBSD and OpenBSD. The Tailscale iOS and Android apps use this repo's code, but this repo doesn't contain the mobile GUI code.

Other Tailscale repos of note:

For background on which parts of Tailscale are open source and why, see https://tailscale.com/opensource/.

Using

We serve packages for a variety of distros and platforms at https://pkgs.tailscale.com.

Other clients

The macOS, iOS, and Windows clients use the code in this repository but additionally include small GUI wrappers. The GUI wrappers on non-open source platforms are themselves not open source.

Building

We always require the latest Go release, currently Go 1.21. (While we build releases with our Go fork, its use is not required.)

go install tailscale.com/cmd/tailscale{,d}

If you're packaging Tailscale for distribution, use build_dist.sh instead, to burn commit IDs and version info into the binaries:

./build_dist.sh tailscale.com/cmd/tailscale
./build_dist.sh tailscale.com/cmd/tailscaled

If your distro has conventions that preclude the use of build_dist.sh, please do the equivalent of what it does in your distro's way, so that bug reports contain useful version information.

Bugs

Please file any issues about this code or the hosted service on the issue tracker.

Contributing

PRs welcome! But please file bugs. Commit messages should reference bugs.

We require Developer Certificate of Origin Signed-off-by lines in commits.

See git log for our commit message style. It's basically the same as Go's style.

About Us

Tailscale is primarily developed by the people at https://github.com/orgs/tailscale/people. For other contributors, see:

Legal

WireGuard is a registered trademark of Jason A. Donenfeld.