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

David Bond 42a5262016 cmd/k8s-operator: add multi replica support for recorders (#17864) 3 miesięcy temu
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 lat temu
.github 2a6cbb70d9 .github/workflows: make go_generate check detect new files 3 miesięcy temu
appc da508c504d appc: add ippool type 3 miesięcy temu
atomicfile c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
chirp c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
client a0d059d74c cmd/tailscale/cli: allow remote target as service destination (#17607) 3 miesięcy temu
clientupdate c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
cmd 42a5262016 cmd/k8s-operator: add multi replica support for recorders (#17864) 3 miesięcy temu
control c09c95ef67 types/key,wgengine/magicsock,control/controlclient,ipn: add debug disco key rotation 3 miesięcy temu
derp 99b06eac49 syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 3 miesięcy temu
disco 09bfee2e06 disco: add missing message types to MessageSummary (#17081) 6 miesięcy temu
docs 0ce88aa343 all: use a consistent capitalisation for "Tailnet Lock" 4 miesięcy temu
doctor 5be6ff9b62 all: remove non-applicable "linux" deps on Android 10 miesięcy temu
drive c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
envknob 99b06eac49 syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 3 miesięcy temu
feature 408336a089 feature/featuretags: add CacheNetMap feature tag for upcoming work 3 miesięcy temu
gokrazy 5eafce7e25 gokrazy/natlab: update gokrazy, wire up natlab tests to GitHub CI 1 rok temu
health 1723cb83ed ipn/ipnlocal: use an in-memory TKA store if FS is unavailable 3 miesięcy temu
hostinfo d6fd865d41 hostinfo, ipnlocal: add optional os-specific callback for querying the hostname (#15647) 11 miesięcy temu
internal 6a73c0bdf5 cmd/tailscale/cli,feature: add support for identity federation (#17529) 4 miesięcy temu
ipn a0d059d74c cmd/tailscale/cli: allow remote target as service destination (#17607) 3 miesięcy temu
jsondb 71029cea2d all: update copyright and license headers 3 lat temu
k8s-operator 42a5262016 cmd/k8s-operator: add multi replica support for recorders (#17864) 3 miesięcy temu
kube c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
licenses 12c598de28 licenses: update license notices 3 miesięcy temu
log c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
logpolicy c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
logtail c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
maths 820bdb870a maths: add exponentially weighted moving average type 1 rok temu
metrics 99b06eac49 syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 3 miesięcy temu
net 682172ca2d net/netns: remove spammy logs for interface binding caps 3 miesięcy temu
omit 1ea100e2e5 cmd/tailscaled, ipn/conffile: support ec2 user-data config file 1 rok temu
packages c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
paths fbc6a9ec5a all: detect JetKVM and specialize a handful of things for it 8 miesięcy temu
portlist 5e305032a9 portlist: add Plan 9 support 11 miesięcy temu
posture d05e6dc09e util/syspolicy/policyclient: add policyclient.Client interface, start plumbing 6 miesięcy temu
prober c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
proxymap 99b06eac49 syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 3 miesięcy temu
release c2f37c891c all: use Go 1.20's errors.Join instead of our multierr package 5 miesięcy temu
safesocket c45f8813b4 feature/featuretags, all: add build features, use existing ones in more places 5 miesięcy temu
safeweb 3177e50b14 safeweb: Set Cross-Origin-Opener-Policy for browser requests (#15936) 10 miesięcy temu
scripts bd36817e84 scripts/installer.sh: compare major versions numerically (#17904) 3 miesięcy temu
sessionrecording 8996254647 sessionrecording: fix regression in recent http2 package change 4 miesięcy temu
ssh 41662f5128 ssh/tailssh: fix incubator tests on macOS arm64 3 miesięcy temu
syncs 99b06eac49 syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 3 miesięcy temu
tailcfg 5b0c57f497 tailcfg: add some omitzero, adjust some omitempty to omitzero 3 miesięcy temu
tempfork 2e381557b8 feature/c2n: move answerC2N code + deps out of control/controlclient 5 miesięcy temu
tka e1dd9222d4 ipn/ipnlocal, tka: compact TKA state after every sync 3 miesięcy temu
tool 4bb03609bc tool/gocross: ensure child process error codes are propagated on non-Unix 5 miesięcy temu
tsconsensus c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
tsconst 7418583e47 health: compare warnable codes to avoid errors on release branch (#17637) 4 miesięcy temu
tsd f715ee2be9 cmd/tailscaled: start implementing ts_omit_netstack 5 miesięcy temu
tsnet c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
tstest e1dd9222d4 ipn/ipnlocal, tka: compact TKA state after every sync 3 miesięcy temu
tstime aff8f1b358 tstime: add GoDuration which JSON serializes with time.Duration.String (#15726) 10 miesięcy temu
tsweb c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
types bd29b189fe types/netmap,*: remove some redundant fields from NetMap 3 miesięcy temu
util 6ac4356bce util/eventbus: simplify some reflect in Bus.pump 3 miesięcy temu
version 7c49cab1a6 clientupdate, util/osshare, util/winutil, version: improve Windows GUI filename resolution and WinUI build awareness 5 miesięcy temu
wf c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 miesięcy temu
wgengine c09c95ef67 types/key,wgengine/magicsock,control/controlclient,ipn: add debug disco key rotation 3 miesięcy temu
words 05d2dcaf49 words: remove a fish (#17704) 4 miesięcy temu
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 lat temu
.gitignore b75fe9eeca cmd/k8s-operator: Add NOTES.txt to Helm chart (#16364) 8 miesięcy temu
.golangci.yml d8e3bce0b4 .github: Bump golangci/golangci-lint-action from 6.5.0 to 7.0.0 (#15476) 10 miesięcy temu
ALPINE.txt bb38bf7414 docker: bump alpine v3.19 -> 3.22 (#17155) 5 miesięcy temu
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 lat temu
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file 2 lat temu
CODE_OF_CONDUCT.md 0a5ba8280f CODE_OF_CONDUCT.md: update code of conduct 4 miesięcy temu
Dockerfile bb38bf7414 docker: bump alpine v3.19 -> 3.22 (#17155) 5 miesięcy temu
Dockerfile.base bb38bf7414 docker: bump alpine v3.19 -> 3.22 (#17155) 5 miesięcy temu
LICENSE 947c14793a all: update tools that manage copyright headers 3 lat temu
Makefile 801aac59db Makefile, cmd/*/depaware.txt: split out vendor packages explicitly 5 miesięcy temu
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 lat temu
README.md 1aaa1648c4 README: update the version of Go in the README 5 miesięcy temu
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 lat temu
VERSION.txt bf47d8e72b VERSION.txt: this is v1.91.0 4 miesięcy temu
api.md 124ff3b034 {api.md,publicapi}: remove old API docs (#13468) 1 rok temu
assert_ts_toolchain_match.go 1005cbc1e4 tailscaleroot: panic if tailscale_go build tag but Go toolchain mismatch 1 rok temu
build_dist.sh 10cb59fa87 build_dist.sh: keep --extra-small making a usable build, add --min 5 miesięcy temu
build_docker.sh 16e0abe031 build_docker.sh: support including extra files (#17405) 5 miesięcy temu
flake.lock e4031daa08 .github/Makefile/flake: update nix flake support (#16636) 6 miesięcy temu
flake.nix d01081683c go.mod: bump golang.org/x/crypto (#17907) 3 miesięcy temu
go.mod d01081683c go.mod: bump golang.org/x/crypto (#17907) 3 miesięcy temu
go.mod.sri d01081683c go.mod: bump golang.org/x/crypto (#17907) 3 miesięcy temu
go.sum d01081683c go.mod: bump golang.org/x/crypto (#17907) 3 miesięcy temu
go.toolchain.branch c5429cd49c go.toolchain.branch: bump to go1.25 (#16954) 6 miesięcy temu
go.toolchain.rev 54cee33bae go.toolchain.rev: update to Go 1.25.3 4 miesięcy temu
go.toolchain.rev.sri 54cee33bae go.toolchain.rev: update to Go 1.25.3 4 miesięcy temu
go.toolchain.version 54cee33bae go.toolchain.rev: update to Go 1.25.3 4 miesięcy temu
gomod_test.go aae1a28a2b go.mod: add test that replace directives aren't added in oss 2 lat temu
header.txt 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 lat temu
license_test.go 39e35379d4 wgengine/router{,/osrouter}: split OS router implementations into subpackage 5 miesięcy temu
pkgdoc_test.go 6bbf98bef4 all: skip looking for package comments in .git/ repository (#15384) 11 miesięcy temu
pull-toolchain.sh 7edb5b7d43 flake.nix: update Nix to use tailscale/go 1.25.2 (#17500) 5 miesięcy temu
shell.nix d01081683c go.mod: bump golang.org/x/crypto (#17907) 3 miesięcy temu
staticcheck.conf 2716250ee8 all: cleanup unused code, part 2 (#10670) 2 lat temu
update-flake.sh 7edb5b7d43 flake.nix: update Nix to use tailscale/go 1.25.2 (#17500) 5 miesięcy temu
version-embed.go 36ea792f06 Fix various linting, vet & static check issues 1 rok temu
version_tailscale_test.go 1005cbc1e4 tailscaleroot: panic if tailscale_go build tag but Go toolchain mismatch 1 rok temu
version_test.go d7770d2b81 .github/workflows: test that ./go/tool version matches go mod version 8 miesięcy temu

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.25. (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 commit-messages.md (or skim git log) for our commit message 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.