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

Andrea Gottardo 543e7ed596 licenses: mention tvOS in apple.md (#10872) 2 anni fa
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 anni fa
.github 7df9af2f5c .github/workflows/govulncheck: migrate to a Github App (#10793) 2 anni fa
appc 0957258f84 appc,ipn: prevent undesirable route advertisements 2 anni fa
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) 2 anni fa
chirp 71029cea2d all: update copyright and license headers 3 anni fa
client b89c113365 client/web: skip connectivity check on https 2 anni fa
clientupdate d8493d4bd5 clientupdate: add explicit Track to Arguments (#10548) 2 anni fa
cmd c25968e1c5 all: make use of ctxkey everywhere (#10846) 2 anni fa
control 124dc10261 controlclient,tailcfg,types: expose MaxKeyDuration via localapi (#10401) 2 anni fa
derp 7100b6e721 derp: optimize another per client field alignment 2 anni fa
disco 706e30d49e disco: correct noun for nacl box type in disco docs 2 anni fa
docs d50303bef7 docs: add Windows administrative template 2 anni fa
doctor 2716250ee8 all: cleanup unused code, part 2 (#10670) 2 anni fa
envknob 7a4ba609d9 client/web: show features based on platform support 2 anni fa
health 727acf96a6 net/netcheck: use DERP frames as a signal for home region liveness 2 anni fa
hostinfo 01604c06d2 hostinfo: fix a couple of logic simplification lints 2 anni fa
internal 280255acae various: add golangci-lint, fix issues (#7905) 2 anni fa
ipn c25968e1c5 all: make use of ctxkey everywhere (#10846) 2 anni fa
jsondb 71029cea2d all: update copyright and license headers 3 anni fa
k8s-operator 05093ea7d9 cmd/k8s-operator,k8s-operator: allow the operator to deploy exit nodes via Connector custom resource (#10724) 2 anni fa
kube c919ff540f cmd/k8s-operator,ipn/store/kubestore: patch secrets instead of updating 2 anni fa
licenses 543e7ed596 licenses: mention tvOS in apple.md (#10872) 2 anni fa
log 239ad57446 tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2 anni fa
logpolicy 3d57c885bf logpolicy: use syspolicy to override LogTarget 2 anni fa
logtail 3fb6ee7fdb tailscale/logtail: redact public ipv6 and ipv4 ip addresses within tailscaled. (#10531) 2 anni fa
metrics 18b2638b07 metrics: add missing comma in histogram JSON export 2 anni fa
net c9fd166cc6 net/netmon: when a new network is added, trigger netmon update (#10840) 2 anni fa
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 anni fa
paths 6fd1961cd7 safesocket, paths: add Plan 9 support 2 anni fa
portlist 2716250ee8 all: cleanup unused code, part 2 (#10670) 2 anni fa
posture 3f576fc4ca ci: run 'go vet' in golangci-lint; fix errors in tests 2 anni fa
prober 869b34ddeb prober: log HTTP response body on failure 2 anni fa
proxymap 3d37328af6 wgengine, proxymap: split out port mapping from Engine to new type 2 anni fa
release 1d22265f69 release: add shebang to the debian postinst script 2 anni fa
safesocket 84ab040f02 safesocket: detect macsys from within tailscaled 2 anni fa
scripts 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 anni fa
smallzstd 71029cea2d all: update copyright and license headers 3 anni fa
ssh 29e98e18f8 ssh/tailssh: use a local error instead of gossh.ErrDenied (#10743) 2 anni fa
syncs b88929edf8 Fix potential goroutine leak in syncs/watchdog.go 2 anni fa
tailcfg 331a6d105f client/web: add initial types for using peer capabilities 2 anni fa
taildrop 4ce33c9758 taildrop: remove breaking abstraction layers for apple (#10728) 2 anni fa
tempfork e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 anni fa
tka 1302bd1181 all: cleanup unused code, part 1 (#10661) 2 anni fa
tool 1302bd1181 all: cleanup unused code, part 1 (#10661) 2 anni fa
tsconst 71029cea2d all: update copyright and license headers 3 anni fa
tsd 18bd98d35b cmd/tailscaled,*: add start of configuration file support 2 anni fa
tsnet 46bdbb3878 cmd/tailscaled, tsnet: don't return an interface containing a nil pointer 2 anni fa
tstest d96e0a553f tstest/integration: add tests for auto-update defaulting behavior (#10763) 2 anni fa
tstime 7732377cd7 tstime/rate: implement Value.{Marshal,Unmarshal}JSON (#8481) 2 anni fa
tsweb c25968e1c5 all: make use of ctxkey everywhere (#10846) 2 anni fa
types c25968e1c5 all: make use of ctxkey everywhere (#10846) 2 anni fa
util c25968e1c5 all: make use of ctxkey everywhere (#10846) 2 anni fa
version 86e476c8d1 version/mkversion: allow version override with $TS_VERSION_OVERRIDE (#10799) 2 anni fa
wf 71029cea2d all: update copyright and license headers 3 anni fa
wgengine 6540d1f018 wgengine/router: look up absolute path to netsh.exe on Windows 2 anni fa
words 7370f3e3a7 words: some stellar additions 2 anni fa
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 anni fa
.gitignore d74c771fda client/web: always use new web client; remove old client 2 anni fa
.golangci.yml 3f576fc4ca ci: run 'go vet' in golangci-lint; fix errors in tests 2 anni fa
ALPINE.txt 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 anni fa
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 anni fa
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file 2 anni fa
CODE_OF_CONDUCT.md 452b81d56b Add a code of conduct. 6 anni fa
Dockerfile 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 anni fa
Dockerfile.base 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 anni fa
LICENSE 947c14793a all: update tools that manage copyright headers 3 anni fa
Makefile ca48db0d60 Makefile,build_docker.sh: allow to configure target platform. (#10806) 2 anni fa
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 anni fa
README.md 652f77d236 client/web: switch to using prebuilt web client assets 2 anni fa
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 anni fa
VERSION.txt 971fa8dc56 VERSION.txt: this is v1.57.0 2 anni fa
api.md f815d66a88 api.md: add docs for setting an IP address 2 anni fa
build_dist.sh 652f77d236 client/web: switch to using prebuilt web client assets 2 anni fa
build_docker.sh ca48db0d60 Makefile,build_docker.sh: allow to configure target platform. (#10806) 2 anni fa
flake.lock fe91160775 flake.nix: use Go 1.21 to build tailscale flake 2 anni fa
flake.nix 91c7dfe85c go.mod.sri: update SRI hash for go.mod changes 2 anni fa
go.mod d841ddcb13 go.mod: update web-client-prebuilt module 2 anni fa
go.mod.sri 91c7dfe85c go.mod.sri: update SRI hash for go.mod changes 2 anni fa
go.sum d841ddcb13 go.mod: update web-client-prebuilt module 2 anni fa
go.toolchain.branch fbacc0bd39 go.toolchain: switch to tailscale.go1.21 (#8415) 2 anni fa
go.toolchain.rev aad5fb28b1 go.toolchain.rev: bump to 1.21.5 (#10475) 2 anni fa
gomod_test.go aae1a28a2b go.mod: add test that replace directives aren't added in oss 2 anni fa
header.txt 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 anni fa
pull-toolchain.sh 0e4f2bdd0c pull-toolchain.sh: don't run update-flake.sh 3 anni fa
shell.nix 91c7dfe85c go.mod.sri: update SRI hash for go.mod changes 2 anni fa
staticcheck.conf 2716250ee8 all: cleanup unused code, part 2 (#10670) 2 anni fa
update-flake.sh f145c2b65b .github/workflows: add workflow to update go.mod Nix SRI hash 3 anni fa
version-embed.go da75e49223 version: return correct Meta.MajorMinorPatch in non-dev builds 3 anni fa
version_test.go 71029cea2d all: update copyright and license headers 3 anni fa

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.