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

Maisem Ali 8feb4ff5d2 version: add GitCommitTime to Meta преди 1 година
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. преди 4 години
.github 13e1355546 scripts/installer.sh: remove unnecessary escaping in grep (#11950) преди 1 година
appc 6a0fbacc28 appc: setting AdvertiseRoutes explicitly discards app connector routes преди 1 година
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) преди 2 години
chirp 71029cea2d all: update copyright and license headers преди 3 години
client 3c4c9dc1d2 web: use EditPrefs instead of passing UpdatePrefs to starting (#12040) преди 1 година
clientupdate ce5c80d0fe clientupdate: exec systemctl instead of using dbus to restart (#11923) преди 1 година
cmd 486a423716 tsnet: split user facing and backend logging преди 1 година
control e968b0ecd7 cmd/tailscale,controlclient,ipnlocal: fix 'up', deflake tests more преди 1 година
derp c6d42b1093 derp: remove stats goroutine, use a timer преди 1 година
disco 706e30d49e disco: correct noun for nacl box type in disco docs преди 2 години
docs c8b0adb382 docs/windows/policy: add missing key expiration warning interval преди 1 година
doctor b9adbe2002 net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon преди 1 година
drive 7209c4f91e drive: parse depth 1 PROPFIND results to include children in cache преди 1 година
envknob da7c3d1753 envknob: ensure f is not nil before using it преди 2 години
health 96712e10a7 health, ipn/ipnlocal: move more health warning code into health.Tracker преди 1 година
hostinfo 7132b782d4 hostinfo: use Distro field for distinguishing Windows Server builds преди 1 година
internal 280255acae various: add golangci-lint, fix issues (#7905) преди 2 години
ipn 8aa5c3534d ipn/ipnlocal: simplify authURL vs authURLSticky, remove interact field преди 1 година
jsondb 71029cea2d all: update copyright and license headers преди 3 години
k8s-operator d86d1e7601 cmd/k8s-operator,cmd/containerboot,ipn,k8s-operator: turn off stateful filter for egress proxies. (#12075) преди 1 година
kube 1452faf510 cmd/containerboot,kube,ipn/store/kubestore: allow interactive login on kube, check Secret create perms, allow empty state Secret (#11326) преди 1 година
licenses 258b5042fe licenses: update license notices преди 1 година
log 3672f29a4e net/netns, net/dns/resolver, etc: make netmon required in most places преди 1 година
logpolicy 3672f29a4e net/netns, net/dns/resolver, etc: make netmon required in most places преди 1 година
logtail 3672f29a4e net/netns, net/dns/resolver, etc: make netmon required in most places преди 1 година
metrics 7c1d6e35a5 all: use Go 1.22 range-over-int преди 1 година
net 7f83f9fc83 Net/DNS/Publicdns: update the IPv6 range that we use to recreate route endpoint for control D преди 1 година
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) преди 2 години
paths 7c1d6e35a5 all: use Go 1.22 range-over-int преди 1 година
portlist 7c1d6e35a5 all: use Go 1.22 range-over-int преди 1 година
posture a1abd12f35 cmd/tailscaled, net/tstun: build for aix/ppc64 преди 1 година
prober 6877d44965 prober: plumb a now-required netmon to derphttp преди 1 година
proxymap 3d37328af6 wgengine, proxymap: split out port mapping from Engine to new type преди 2 години
release 18765cd4f9 release/dist/qnap: omit .qpkg.codesigning files преди 1 година
safesocket 7c1d6e35a5 all: use Go 1.22 range-over-int преди 1 година
safeweb 7349b274bd safeweb: handle mux pattern collisions more generally (#11801) преди 1 година
scripts 13e1355546 scripts/installer.sh: remove unnecessary escaping in grep (#11950) преди 1 година
smallzstd 7c1d6e35a5 all: use Go 1.22 range-over-int преди 1 година
ssh 46f3feae96 ssh/tailssh: plumb health.Tracker in test преди 1 година
syncs 5db80cf2d8 syncs: fix AtomicValue for interface kinds (#11943) преди 1 година
tailcfg 482890b9ed tailcfg: bump capver for using NodeAttrUserDialUseRoutes for DNS преди 1 година
taildrop 2e404b769d all: use new AppendEncode methods available in Go 1.22 (#11079) преди 2 години
tempfork 82394debb7 cmd/tailscale: add shell tab-completion преди 1 година
tka 7c1d6e35a5 all: use Go 1.22 range-over-int преди 1 година
tool e37eded256 tool/gocross: add android autoflags (#11465) преди 2 години
tsconst 71029cea2d all: update copyright and license headers преди 3 години
tsd 745931415c health, all: remove health.Global, finish plumbing health.Tracker преди 1 година
tsnet 486a423716 tsnet: split user facing and backend logging преди 1 година
tstest e968b0ecd7 cmd/tailscale,controlclient,ipnlocal: fix 'up', deflake tests more преди 1 година
tstime 7c1d6e35a5 all: use Go 1.22 range-over-int преди 1 година
tsweb 80decd83c1 tsweb: remove redundant bumpStartIfNeeded func преди 1 година
types 79b2d425cf types/views: move AsMap to Map from *Map преди 1 година
util 7ef2f72135 util/linuxfw: fix IPv6 availability check for nftables (#12009) преди 1 година
version 8feb4ff5d2 version: add GitCommitTime to Meta преди 1 година
wf 61a1644c2a go.mod, all: move away from inet.af domain seized by Taliban преди 2 години
wgengine e070af7414 ipnlocal, magicsock: add more description to storing last suggested exit (#11998) преди 1 година
words 7b3e30f391 words: add some fruit with scales (#8460) преди 1 година
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver преди 4 години
.gitignore 843afe7c53 ssh/tailssh: add integration test преди 1 година
.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 5ea071186e Dockerfile: use Go 1.22 преди 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 843afe7c53 ssh/tailssh: add integration test преди 1 година
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. преди 6 години
README.md b6153efb7d go.mod, README.md: use Go 1.22 преди 2 години
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. преди 6 години
VERSION.txt 7901925ad3 VERSION.txt: this is v1.67.0 (#12063) преди 1 година
api.md 89947606b2 api.md: document device invite apis преди 1 година
build_dist.sh 82394debb7 cmd/tailscale: add shell tab-completion преди 1 година
build_docker.sh 44aa809cb0 cmd/{k8s-nameserver,k8s-operator},k8s-operator: add a kube nameserver, make operator deploy it (#11919) преди 1 година
flake.lock 58b8f78e7e flake.nix: build tailscale with go 1.22 преди 2 години
flake.nix 65f215115f go.mod.sri: update SRI hash for go.mod changes преди 1 година
go.mod 19b31ac9a6 cmd/{k8s-operator,k8s-nameserver},k8s-operator: update nameserver config with records for ingress/egress proxies (#11019) преди 1 година
go.mod.sri 65f215115f go.mod.sri: update SRI hash for go.mod changes преди 1 година
go.sum a47ce618bd net/tstun: implement env var for disabling UDP GRO on Linux (#11924) преди 1 година
go.toolchain.branch db3776d5bf go.toolchain.rev: bump to Go 1.22.0 (#11055) преди 2 години
go.toolchain.rev d7bdd8e2a7 go.toolchain.rev: update to Go 1.22.3 преди 1 година
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 65f215115f go.mod.sri: update SRI hash for go.mod changes преди 1 година
staticcheck.conf 2716250ee8 all: cleanup unused code, part 2 (#10670) преди 2 години
update-flake.sh 50a570a83f Code Improvements (#11311) преди 2 години
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.22. (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.