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

James Tucker 0957258f84 appc,ipn: prevent undesirable route advertisements 2 tahun lalu
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 tahun lalu
.github 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 tahun lalu
appc 0957258f84 appc,ipn: prevent undesirable route advertisements 2 tahun lalu
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) 2 tahun lalu
chirp 71029cea2d all: update copyright and license headers 3 tahun lalu
client c6a274611e client/web: use Tailscale IP known by peer node 2 tahun lalu
clientupdate d8493d4bd5 clientupdate: add explicit Track to Arguments (#10548) 2 tahun lalu
cmd 865ee25a57 cmd/tailscale/cli: update debug.go (#10644) 2 tahun lalu
control 945cf836ee ipn: apply tailnet-wide default for auto-updates (#10508) 2 tahun lalu
derp ef6a6e94f1 derp/derphttp: use a getter method to read server key 2 tahun lalu
disco 706e30d49e disco: correct noun for nacl box type in disco docs 2 tahun lalu
docs f53c3be07c cmd/k8s-operator: use our own container image instead of busybox 2 tahun lalu
doctor c98652c333 doctor/permissions: add new check to print process permissions 3 tahun lalu
envknob 7a4ba609d9 client/web: show features based on platform support 2 tahun lalu
health 727acf96a6 net/netcheck: use DERP frames as a signal for home region liveness 2 tahun lalu
hostinfo 01604c06d2 hostinfo: fix a couple of logic simplification lints 2 tahun lalu
internal 280255acae various: add golangci-lint, fix issues (#7905) 2 tahun lalu
ipn 0957258f84 appc,ipn: prevent undesirable route advertisements 2 tahun lalu
jsondb 71029cea2d all: update copyright and license headers 3 tahun lalu
k8s-operator 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 tahun lalu
kube c919ff540f cmd/k8s-operator,ipn/store/kubestore: patch secrets instead of updating 2 tahun lalu
licenses bac0df6949 licenses: update android licenses 2 tahun lalu
log 239ad57446 tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2 tahun lalu
logpolicy e3d6236606 winutil: refactor methods to get values from registry to also return (#9536) 2 tahun lalu
logtail 3fb6ee7fdb tailscale/logtail: redact public ipv6 and ipv4 ip addresses within tailscaled. (#10531) 2 tahun lalu
metrics 18b2638b07 metrics: add missing comma in histogram JSON export 2 tahun lalu
net d05a572db4 net/portmapper: handle multiple UPnP discovery responses 2 tahun lalu
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 tahun lalu
paths 6fd1961cd7 safesocket, paths: add Plan 9 support 2 tahun lalu
portlist a217f1fccf all: fix nilness issues 2 tahun lalu
posture 3f576fc4ca ci: run 'go vet' in golangci-lint; fix errors in tests 2 tahun lalu
prober 869b34ddeb prober: log HTTP response body on failure 2 tahun lalu
proxymap 3d37328af6 wgengine, proxymap: split out port mapping from Engine to new type 2 tahun lalu
release e499a6bae8 release/dist/unixpkgs: revert iptables move to Recommends, make it Depends 2 tahun lalu
safesocket b4be4f089f safesocket: make clear which net.Conns are winio types 2 tahun lalu
scripts 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 tahun lalu
smallzstd 71029cea2d all: update copyright and license headers 3 tahun lalu
ssh 719ee4415e ssh/tailssh: use control server time instead of local time 2 tahun lalu
syncs b88929edf8 Fix potential goroutine leak in syncs/watchdog.go 2 tahun lalu
tailcfg 945cf836ee ipn: apply tailnet-wide default for auto-updates (#10508) 2 tahun lalu
taildrop 975c5f7684 taildrop: lazily perform full deletion scan after first taildrop use (#10137) 2 tahun lalu
tempfork e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 tahun lalu
tka 09b4914916 tka: clarify field comment 2 tahun lalu
tool 17501ea31a ci: report test coverage to coveralls.io 2 tahun lalu
tsconst 71029cea2d all: update copyright and license headers 3 tahun lalu
tsd 18bd98d35b cmd/tailscaled,*: add start of configuration file support 2 tahun lalu
tsnet 67f3b2a525 tsnet: add CapturePcap method for debugging 2 tahun lalu
tstest 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 tahun lalu
tstime 1a78f240b5 tstime: add DefaultClock (#9691) 2 tahun lalu
tsweb b819f66eb1 tsweb: propagate RequestID via context and entire request 2 tahun lalu
types a661287c4b util/cmpx: remove code that's in the stdlib now 2 tahun lalu
util a661287c4b util/cmpx: remove code that's in the stdlib now 2 tahun lalu
version d3bc575f35 cmd/tailscale/cli: set Sparkle auto-update on macsys (#9952) 2 tahun lalu
wf 71029cea2d all: update copyright and license headers 3 tahun lalu
wgengine 685b853763 wgengine/magicsock: fix handling of derp.PeerGoneMessage (#10589) 2 tahun lalu
words 7370f3e3a7 words: some stellar additions 2 tahun lalu
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 tahun lalu
.gitignore d74c771fda client/web: always use new web client; remove old client 2 tahun lalu
.golangci.yml 3f576fc4ca ci: run 'go vet' in golangci-lint; fix errors in tests 2 tahun lalu
ALPINE.txt 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 tahun lalu
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 tahun lalu
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file 2 tahun lalu
CODE_OF_CONDUCT.md 452b81d56b Add a code of conduct. 6 tahun lalu
Dockerfile 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 tahun lalu
Dockerfile.base 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 tahun lalu
LICENSE 947c14793a all: update tools that manage copyright headers 3 tahun lalu
Makefile 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 tahun lalu
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 tahun lalu
README.md 652f77d236 client/web: switch to using prebuilt web client assets 2 tahun lalu
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 tahun lalu
VERSION.txt 971fa8dc56 VERSION.txt: this is v1.57.0 2 tahun lalu
api.md b7988b3825 api.md: remove clientConnectivity.derp field 2 tahun lalu
build_dist.sh 652f77d236 client/web: switch to using prebuilt web client assets 2 tahun lalu
build_docker.sh 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 tahun lalu
flake.lock fe91160775 flake.nix: use Go 1.21 to build tailscale flake 2 tahun lalu
flake.nix dc2792aaee go.mod.sri: update SRI hash for go.mod changes 2 tahun lalu
go.mod 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 tahun lalu
go.mod.sri dc2792aaee go.mod.sri: update SRI hash for go.mod changes 2 tahun lalu
go.sum 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 tahun lalu
go.toolchain.branch fbacc0bd39 go.toolchain: switch to tailscale.go1.21 (#8415) 2 tahun lalu
go.toolchain.rev aad5fb28b1 go.toolchain.rev: bump to 1.21.5 (#10475) 2 tahun lalu
gomod_test.go aae1a28a2b go.mod: add test that replace directives aren't added in oss 2 tahun lalu
header.txt 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 tahun lalu
pull-toolchain.sh 0e4f2bdd0c pull-toolchain.sh: don't run update-flake.sh 3 tahun lalu
shell.nix dc2792aaee go.mod.sri: update SRI hash for go.mod changes 2 tahun lalu
staticcheck.conf ece138ffc3 staticcheck.conf: remove unnecessary warning 4 tahun lalu
update-flake.sh f145c2b65b .github/workflows: add workflow to update go.mod Nix SRI hash 3 tahun lalu
version-embed.go da75e49223 version: return correct Meta.MajorMinorPatch in non-dev builds 3 tahun lalu
version_test.go 71029cea2d all: update copyright and license headers 3 tahun lalu

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.