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

Irbe Krumina fa655e6ed3 cmd/containerboot: add more tests, check that egress service config only set on kube (#14360) 1 an în urmă
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 ani în urmă
.github d54cd59390 .github: Bump github/codeql-action from 3.27.1 to 3.27.6 (#14332) 1 an în urmă
appc 380a3a0834 appc: track metrics for route info storing 1 an în urmă
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) 2 ani în urmă
chirp 71029cea2d all: update copyright and license headers 3 ani în urmă
client 7f9ebc0a83 cmd/tailscale,net/netcheck: add debug feature to force preferred DERP 1 an în urmă
clientupdate 1938685d39 clientupdate: don't link distsign on platforms that don't download 1 an în urmă
cmd fa655e6ed3 cmd/containerboot: add more tests, check that egress service config only set on kube (#14360) 1 an în urmă
control e87b71ec3c control/controlhttp: set *health.Tracker in tests 1 an în urmă
derp ea3d0bcfd4 prober,derp/derphttp: make dev-mode DERP probes work without TLS (#14347) 1 an în urmă
disco 706e30d49e disco: correct noun for nacl box type in disco docs 2 ani în urmă
docs eabb424275 cmd/k8s-operator,docs/k8s: run tun mode proxies in privileged containers (#14262) 1 an în urmă
doctor b9adbe2002 net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 1 an în urmă
drive 35423fcf69 drive/driveimpl: use su instead of sudo 1 an în urmă
envknob 8ba9b558d2 envknob,kube/kubetypes,cmd/k8s-operator: add app type for ProxyGroup (#14029) 1 an în urmă
gokrazy f572286bf9 gokrazy, various: use point versions of Go and update Nix deps 1 an în urmă
health dc6728729e health: fix TestHealthMetric to pass on release branch 1 an în urmă
hostinfo 06c5e83c20 hostinfo: fix testing in container (#14330) 1 an în urmă
internal c6af5bbfe8 all: add test for package comments, fix, add comments as needed 1 an în urmă
ipn 7f9ebc0a83 cmd/tailscale,net/netcheck: add debug feature to force preferred DERP 1 an în urmă
jsondb 71029cea2d all: update copyright and license headers 3 ani în urmă
k8s-operator 9f9063e624 cmd/k8s-operator,k8s-operator,go.mod: optionally create ServiceMonitor (#14248) 1 an în urmă
kube 2aac916888 cmd/{containerboot,k8s-operator},kube/kubetypes: kube Ingress L7 proxies only advertise HTTPS endpoint when ready (#14171) 1 an în urmă
licenses bb3d0cae5f licenses: update license notices 1 an în urmă
log 5d61d1c7b0 log/sockstatlog: don't block for more than 5s on shutdown 1 an în urmă
logpolicy a482dc037b logpolicy: cleanup options API and allow setting http.Client (#11503) 1 an în urmă
logtail bac3af06f5 logtail: avoid bytes.Buffer allocation (#11858) 1 an în urmă
metrics 717d589149 metrics: revert changes to MultiLabelMap's String method 1 an în urmă
net 614c612643 net/netcheck: preserve STUN port defaulting to 3478 (#14289) 1 an în urmă
omit 1ea100e2e5 cmd/tailscaled, ipn/conffile: support ec2 user-data config file 1 an în urmă
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 ani în urmă
paths 7c1d6e35a5 all: use Go 1.22 range-over-int 1 an în urmă
portlist 7c1d6e35a5 all: use Go 1.22 range-over-int 1 an în urmă
posture 11d205f6c4 control/controlclient,posture,util/syspolicy: use predefined syspolicy keys instead of string literals 1 an în urmă
prober ea3d0bcfd4 prober,derp/derphttp: make dev-mode DERP probes work without TLS (#14347) 1 an în urmă
proxymap 9f9470fc10 ipnlocal,proxymap,wgengine/netstack: add optional WhoIs/proxymap debug 1 an în urmă
release e711ee5d22 release/dist: clamp min / max version for synology package centre (#13857) 1 an în urmă
safesocket fb420be176 safesocket: don't depend on go-ps on iOS 1 an în urmă
safeweb 6ff85846bc safeweb: add a Shutdown method to the Server type (#14048) 1 an în urmă
scripts 72587ab03c scripts/installer.sh: allow Archcraft for Arch packages (#13870) 1 an în urmă
sessionrecording c2a7f17f2b sessionrecording: implement v2 recording endpoint support (#14105) 1 an în urmă
smallzstd 7c1d6e35a5 all: use Go 1.22 range-over-int 1 an în urmă
ssh c2a7f17f2b sessionrecording: implement v2 recording endpoint support (#14105) 1 an în urmă
syncs 5b7303817e syncs: allocate map with Map.WithLock (#13755) 1 an în urmă
tailcfg 9f33aeb649 wgengine/filter: actually use the passed CapTestFunc [capver 109] 1 an în urmă
taildrop 52ef27ab7c taildrop: fix defer in loop (#13757) 1 an în urmă
tempfork 82394debb7 cmd/tailscale: add shell tab-completion 1 an în urmă
tka fd6686d81a tka: truncate long rotation signature chains 1 an în urmă
tool 0d76d7d21c tool/gocross: remove trimpath from test builds 1 an în urmă
tsconst 4c2e978f1e cmd/tailscale/cli: support passing network lock keys via files 1 an în urmă
tsd 0e0e53d3b3 util/usermetrics: make usermetrics non-global 1 an în urmă
tsnet 61dd2662ec tsnet: remove flaky test marker from metrics 1 an în urmă
tstest c3c4c05331 tstest/integration/testcontrol: remove a vestigial unused parameter 1 an în urmă
tstime 4a8cb1d9f3 all: use math/rand/v2 more 1 an în urmă
tsweb 02cafbe1ca tsweb: change RequestID format to have a date in it 1 an în urmă
types 4e0fc037e6 all: use iterators over slice views more 1 an în urmă
util a68efe2088 cmd/checkmetrics: add command for checking metrics against kb 1 an în urmă
version 810da91a9e version: fix earlier test/wording mistakes 1 an în urmă
wf d837e0252f wf/firewall: allow link-local multicast for permitted local routes when the killswitch is on on Windows 1 an în urmă
wgengine 7f9ebc0a83 cmd/tailscale,net/netcheck: add debug feature to force preferred DERP 1 an în urmă
words 0c9ade46a4 words: Add scoville to scales.txt (#14084) 1 an în urmă
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 ani în urmă
.gitignore 8fad8c4b9b tstest/tailmac: add customized macOS virtualization tooling (#13146) 1 an în urmă
.golangci.yml 3f576fc4ca ci: run 'go vet' in golangci-lint; fix errors in tests 2 ani în urmă
ALPINE.txt 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 ani în urmă
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 ani în urmă
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file 2 ani în urmă
CODE_OF_CONDUCT.md 452b81d56b Add a code of conduct. 6 ani în urmă
Dockerfile 696711cc17 all: switch to and require Go 1.23 1 an în urmă
Dockerfile.base 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 ani în urmă
LICENSE 947c14793a all: update tools that manage copyright headers 3 ani în urmă
Makefile 44c8892c18 Makefile,./build_docker.sh: update kube operator image build target name (#14251) 1 an în urmă
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 ani în urmă
README.md 696711cc17 all: switch to and require Go 1.23 1 an în urmă
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 ani în urmă
VERSION.txt f817860079 VERSION.txt: this is v1.79.0 1 an în urmă
api.md 124ff3b034 {api.md,publicapi}: remove old API docs (#13468) 1 an în urmă
assert_ts_toolchain_match.go 1005cbc1e4 tailscaleroot: panic if tailscale_go build tag but Go toolchain mismatch 1 an în urmă
build_dist.sh 82394debb7 cmd/tailscale: add shell tab-completion 1 an în urmă
build_docker.sh 44c8892c18 Makefile,./build_docker.sh: update kube operator image build target name (#14251) 1 an în urmă
flake.lock e93c160a39 nix: update nix and use go 1.23 1 an în urmă
flake.nix f572286bf9 gokrazy, various: use point versions of Go and update Nix deps 1 an în urmă
go.mod b37a478cac go.mod: bump x/net and dependencies 1 an în urmă
go.mod.sri 4f2a2bfa42 go.mod.sri: update SRI hash for go.mod changes 1 an în urmă
go.sum b37a478cac go.mod: bump x/net and dependencies 1 an în urmă
go.toolchain.branch 696711cc17 all: switch to and require Go 1.23 1 an în urmă
go.toolchain.rev e73cfd9700 go.toolchain.rev: bump from Go 1.23.1 to Go 1.23.3 1 an în urmă
gomod_test.go aae1a28a2b go.mod: add test that replace directives aren't added in oss 2 ani în urmă
header.txt 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 ani în urmă
pkgdoc_test.go c6af5bbfe8 all: add test for package comments, fix, add comments as needed 1 an în urmă
pull-toolchain.sh 0e4f2bdd0c pull-toolchain.sh: don't run update-flake.sh 3 ani în urmă
shell.nix 4f2a2bfa42 go.mod.sri: update SRI hash for go.mod changes 1 an în urmă
staticcheck.conf 2716250ee8 all: cleanup unused code, part 2 (#10670) 2 ani în urmă
update-flake.sh 50a570a83f Code Improvements (#11311) 2 ani în urmă
version-embed.go 1005cbc1e4 tailscaleroot: panic if tailscale_go build tag but Go toolchain mismatch 1 an în urmă
version_tailscale_test.go 1005cbc1e4 tailscaleroot: panic if tailscale_go build tag but Go toolchain mismatch 1 an în urmă
version_test.go 7e3bcd297e go.mod,wgengine/netstack: bump gvisor 2 ani în urmă

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.23. (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.