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

James Tucker 0e2cb76abe appc: add test to ensure that individual IPs are not removed during route updates 2 лет назад
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 лет назад
.github 7e3bcd297e go.mod,wgengine/netstack: bump gvisor 2 лет назад
appc 0e2cb76abe appc: add test to ensure that individual IPs are not removed during route updates 2 лет назад
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) 2 лет назад
chirp 71029cea2d all: update copyright and license headers 3 лет назад
client b89c113365 client/web: skip connectivity check on https 2 лет назад
clientupdate d8493d4bd5 clientupdate: add explicit Track to Arguments (#10548) 2 лет назад
cmd 370ec6b46b cmd/k8s-operator: don't proceed with Ingress that has no valid backends (#10919) 2 лет назад
control 38a1cf748a control/controlclient,util/execqueue: extract execqueue into a package 2 лет назад
derp 7100b6e721 derp: optimize another per client field alignment 2 лет назад
disco 706e30d49e disco: correct noun for nacl box type in disco docs 2 лет назад
docs 2ce596ea7a cmd/k8s-operator/deploy: allow modifying operator tags via Helm values 2 лет назад
doctor 2716250ee8 all: cleanup unused code, part 2 (#10670) 2 лет назад
envknob 7a4ba609d9 client/web: show features based on platform support 2 лет назад
health 727acf96a6 net/netcheck: use DERP frames as a signal for home region liveness 2 лет назад
hostinfo 01604c06d2 hostinfo: fix a couple of logic simplification lints 2 лет назад
internal 280255acae various: add golangci-lint, fix issues (#7905) 2 лет назад
ipn ce4553b988 appc,ipn/ipnlocal: optimize preference adjustments when routes update 2 лет назад
jsondb 71029cea2d all: update copyright and license headers 3 лет назад
k8s-operator 05093ea7d9 cmd/k8s-operator,k8s-operator: allow the operator to deploy exit nodes via Connector custom resource (#10724) 2 лет назад
kube c919ff540f cmd/k8s-operator,ipn/store/kubestore: patch secrets instead of updating 2 лет назад
licenses 543e7ed596 licenses: mention tvOS in apple.md (#10872) 2 лет назад
log 239ad57446 tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2 лет назад
logpolicy 3d57c885bf logpolicy: use syspolicy to override LogTarget 2 лет назад
logtail 3fb6ee7fdb tailscale/logtail: redact public ipv6 and ipv4 ip addresses within tailscaled. (#10531) 2 лет назад
metrics 18b2638b07 metrics: add missing comma in histogram JSON export 2 лет назад
net b45089ad85 net/portmapper: handle cases where we have no supported clients 2 лет назад
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 лет назад
paths 6fd1961cd7 safesocket, paths: add Plan 9 support 2 лет назад
portlist 2716250ee8 all: cleanup unused code, part 2 (#10670) 2 лет назад
posture 3f576fc4ca ci: run 'go vet' in golangci-lint; fix errors in tests 2 лет назад
prober 869b34ddeb prober: log HTTP response body on failure 2 лет назад
proxymap 3d37328af6 wgengine, proxymap: split out port mapping from Engine to new type 2 лет назад
release 1d22265f69 release: add shebang to the debian postinst script 2 лет назад
safesocket 84ab040f02 safesocket: detect macsys from within tailscaled 2 лет назад
scripts 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 лет назад
smallzstd 71029cea2d all: update copyright and license headers 3 лет назад
ssh 29e98e18f8 ssh/tailssh: use a local error instead of gossh.ErrDenied (#10743) 2 лет назад
syncs b88929edf8 Fix potential goroutine leak in syncs/watchdog.go 2 лет назад
tailcfg 331a6d105f client/web: add initial types for using peer capabilities 2 лет назад
taildrop 4ce33c9758 taildrop: remove breaking abstraction layers for apple (#10728) 2 лет назад
tempfork e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 лет назад
tka 1302bd1181 all: cleanup unused code, part 1 (#10661) 2 лет назад
tool 17eae5b0d3 tool/gocross: force use of our custom toolchain 2 лет назад
tsconst 71029cea2d all: update copyright and license headers 3 лет назад
tsd 18bd98d35b cmd/tailscaled,*: add start of configuration file support 2 лет назад
tsnet 46bdbb3878 cmd/tailscaled, tsnet: don't return an interface containing a nil pointer 2 лет назад
tstest d96e0a553f tstest/integration: add tests for auto-update defaulting behavior (#10763) 2 лет назад
tstime 7732377cd7 tstime/rate: implement Value.{Marshal,Unmarshal}JSON (#8481) 2 лет назад
tsweb ae79b2e784 tsweb: add a helper to validate redirect URLs 2 лет назад
types 24df1ef1ee appc,ipn/ipnlocal,types/appctype: implement control provided routes 2 лет назад
util 832e5c781d util/nocasemaps: add AppendSliceElem method to nocasemaps (#10871) 2 лет назад
version 86e476c8d1 version/mkversion: allow version override with $TS_VERSION_OVERRIDE (#10799) 2 лет назад
wf 71029cea2d all: update copyright and license headers 3 лет назад
wgengine 7e3bcd297e go.mod,wgengine/netstack: bump gvisor 2 лет назад
words 7370f3e3a7 words: some stellar additions 2 лет назад
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 лет назад
.gitignore d74c771fda client/web: always use new web client; remove old client 2 лет назад
.golangci.yml 3f576fc4ca ci: run 'go vet' in golangci-lint; fix errors in tests 2 лет назад
ALPINE.txt 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 лет назад
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 лет назад
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file 2 лет назад
CODE_OF_CONDUCT.md 452b81d56b Add a code of conduct. 6 лет назад
Dockerfile 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 лет назад
Dockerfile.base 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 лет назад
LICENSE 947c14793a all: update tools that manage copyright headers 3 лет назад
Makefile ca48db0d60 Makefile,build_docker.sh: allow to configure target platform. (#10806) 2 лет назад
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 лет назад
README.md 652f77d236 client/web: switch to using prebuilt web client assets 2 лет назад
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 лет назад
VERSION.txt 62b056d677 VERSION.txt: this is v1.59.0 (#10884) 2 лет назад
api.md f815d66a88 api.md: add docs for setting an IP address 2 лет назад
build_dist.sh 652f77d236 client/web: switch to using prebuilt web client assets 2 лет назад
build_docker.sh ca48db0d60 Makefile,build_docker.sh: allow to configure target platform. (#10806) 2 лет назад
flake.lock fe91160775 flake.nix: use Go 1.21 to build tailscale flake 2 лет назад
flake.nix b787c27c00 go.mod.sri: update SRI hash for go.mod changes 2 лет назад
go.mod 7e3bcd297e go.mod,wgengine/netstack: bump gvisor 2 лет назад
go.mod.sri b787c27c00 go.mod.sri: update SRI hash for go.mod changes 2 лет назад
go.sum 7e3bcd297e go.mod,wgengine/netstack: bump gvisor 2 лет назад
go.toolchain.branch fbacc0bd39 go.toolchain: switch to tailscale.go1.21 (#8415) 2 лет назад
go.toolchain.rev 4e822c031f go.toolchain.rev: bump Tailscale Go version to 1.21.6 2 лет назад
gomod_test.go aae1a28a2b go.mod: add test that replace directives aren't added in oss 2 лет назад
header.txt 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 лет назад
pull-toolchain.sh 0e4f2bdd0c pull-toolchain.sh: don't run update-flake.sh 3 лет назад
shell.nix b787c27c00 go.mod.sri: update SRI hash for go.mod changes 2 лет назад
staticcheck.conf 2716250ee8 all: cleanup unused code, part 2 (#10670) 2 лет назад
update-flake.sh f145c2b65b .github/workflows: add workflow to update go.mod Nix SRI hash 3 лет назад
version-embed.go da75e49223 version: return correct Meta.MajorMinorPatch in non-dev builds 3 лет назад
version_test.go 7e3bcd297e go.mod,wgengine/netstack: bump gvisor 2 лет назад

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.