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

License Updater 7b113a2d06 licenses: update tailscale{,d} licenses 2 年之前
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 年之前
.github 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 年之前
appc 0957258f84 appc,ipn: prevent undesirable route advertisements 2 年之前
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) 2 年之前
chirp 71029cea2d all: update copyright and license headers 3 年之前
client 55d302b48e client/web: rename Disconnect to Log out 2 年之前
clientupdate d8493d4bd5 clientupdate: add explicit Track to Arguments (#10548) 2 年之前
cmd 133699284e cmd/containerboot: add EXPERIMENTAL_TS_CONFIGFILE_PATH env var to allow passing tailscaled config in a file (#10759) 2 年之前
control 124dc10261 controlclient,tailcfg,types: expose MaxKeyDuration via localapi (#10401) 2 年之前
derp 2716250ee8 all: cleanup unused code, part 2 (#10670) 2 年之前
disco 706e30d49e disco: correct noun for nacl box type in disco docs 2 年之前
docs d50303bef7 docs: add Windows administrative template 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 c05c4bdce4 ipn: apply ControlURL policy before login 2 年之前
jsondb 71029cea2d all: update copyright and license headers 3 年之前
k8s-operator 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 年之前
kube c919ff540f cmd/k8s-operator,ipn/store/kubestore: patch secrets instead of updating 2 年之前
licenses 7b113a2d06 licenses: update tailscale{,d} licenses 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 35c303227a net/dns/resolver: add ID to verbose logs in forwarder 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 2716250ee8 all: cleanup unused code, part 2 (#10670) 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 124dc10261 controlclient,tailcfg,types: expose MaxKeyDuration via localapi (#10401) 2 年之前
taildrop dbe70962b1 taildrop: Allow category Z unicode characters (#10750) 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 1302bd1181 all: cleanup unused code, part 1 (#10661) 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 1302bd1181 all: cleanup unused code, part 1 (#10661) 2 年之前
tsweb 1f1ab74250 tsweb: use object-src instead of plugin-types (#10719) 2 年之前
types 124dc10261 controlclient,tailcfg,types: expose MaxKeyDuration via localapi (#10401) 2 年之前
util aed2cfec4e util/winutil: add some missing docs to restartmgr errors 2 年之前
version 1302bd1181 all: cleanup unused code, part 1 (#10661) 2 年之前
wf 71029cea2d all: update copyright and license headers 3 年之前
wgengine b084888e4d wgengine/magicsock: fix typos in docs (#10729) 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 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 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 971fa8dc56 VERSION.txt: this is v1.57.0 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 1b1b6bb634 ALPINE.txt,Dockerfile{.base},build_docker.sh: bump alpine (#10543) 2 年之前
flake.lock fe91160775 flake.nix: use Go 1.21 to build tailscale flake 2 年之前
flake.nix 1406a9d494 go.mod.sri: update SRI hash for go.mod changes 2 年之前
go.mod e72f2b7791 go.{mod,sum}: bump mkctr (#10722) 2 年之前
go.mod.sri 1406a9d494 go.mod.sri: update SRI hash for go.mod changes 2 年之前
go.sum e72f2b7791 go.{mod,sum}: bump mkctr (#10722) 2 年之前
go.toolchain.branch fbacc0bd39 go.toolchain: switch to tailscale.go1.21 (#8415) 2 年之前
go.toolchain.rev aad5fb28b1 go.toolchain.rev: bump to 1.21.5 (#10475) 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 1406a9d494 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 71029cea2d all: update copyright and license headers 3 年之前

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.