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

Kristoffer Dalby b4e587c3bd tailcfg,ipn: add c2n endpoint for posture identity 2 years ago
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 years ago
.github 7ce1c6f981 .github/workflows: fix slack-action format in govulncheck.yml (#9390) 2 years ago
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) 2 years ago
chirp 71029cea2d all: update copyright and license headers 3 years ago
client 3befc0ef02 client/web: restrict full management client behind browser sessions 2 years ago
clientupdate e6aa7b815d clientupdate,cmd/tailscale/cli: use cli.Stdout/Stderr (#9694) 2 years ago
cmd 9593cd3871 posture: add get serial stub for all platforms 2 years ago
control 3655fb3ba0 control/controlclient: fix deadlock in shutdown 2 years ago
derp 8b492b4121 net/wsconn: accept a remote addr string and plumb it through 2 years ago
disco 25a7204bb4 wgengine,ipn,cmd/tailscale: add size option to ping (#8739) 2 years ago
docs 13767e5108 docs/sysv: add a sysv style init script 2 years ago
doctor c98652c333 doctor/permissions: add new check to print process permissions 2 years ago
envknob a61caea911 tailcfg: define a type for NodeCapability 2 years ago
health dc7aa98b76 all: use set.Set consistently instead of map[T]struct{} 2 years ago
hostinfo b4816e19b6 hostinfo, ipnlocal: flesh out Wake-on-LAN support, send MACs, add c2n sender 2 years ago
internal 280255acae various: add golangci-lint, fix issues (#7905) 2 years ago
ipn b4e587c3bd tailcfg,ipn: add c2n endpoint for posture identity 2 years ago
jsondb 71029cea2d all: update copyright and license headers 3 years ago
kube c919ff540f cmd/k8s-operator,ipn/store/kubestore: patch secrets instead of updating 2 years ago
licenses 5efd5e093e licenses: update win/apple licenses 2 years ago
log 239ad57446 tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2 years ago
logpolicy e3d6236606 winutil: refactor methods to get values from registry to also return (#9536) 2 years ago
logtail d61494db68 adjust build tags for tamago 2 years ago
metrics 18b2638b07 metrics: add missing comma in histogram JSON export 2 years ago
net 7868393200 net/dns/resolver, ipnlocal: fix ExitDNS on Android and iOS 2 years ago
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 years ago
paths 6fd1961cd7 safesocket, paths: add Plan 9 support 2 years ago
portlist 52e4f24c58 portlist: populate Pid field on Linux 2 years ago
posture 9593cd3871 posture: add get serial stub for all platforms 2 years ago
prober f314fa4a4a prober: fix data race when altering derpmap (#8397) 2 years ago
proxymap 3d37328af6 wgengine, proxymap: split out port mapping from Engine to new type 2 years ago
release e499a6bae8 release/dist/unixpkgs: revert iptables move to Recommends, make it Depends 2 years ago
safesocket 6fd1961cd7 safesocket, paths: add Plan 9 support 2 years ago
scripts 535db01b3f scripts/installer: add Kaisen, Garuda, Fedora-Asahi. 2 years ago
smallzstd 71029cea2d all: update copyright and license headers 3 years ago
ssh b775a3799e util/httpm, all: add a test to make sure httpm is used consistently 2 years ago
syncs 498f7ec663 syncs: add Map.LoadOrInit for lazily initialized values 2 years ago
tailcfg b4e587c3bd tailcfg,ipn: add c2n endpoint for posture identity 2 years ago
taildrop e4cb83b18b taildrop: document and cleanup the package (#9699) 2 years ago
tempfork e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 years ago
tka dc7aa98b76 all: use set.Set consistently instead of map[T]struct{} 2 years ago
tool c761d102ea tool/gocross: don't absorb --tags flags passed to subcommand 2 years ago
tsconst 71029cea2d all: update copyright and license headers 3 years ago
tsd 3d37328af6 wgengine, proxymap: split out port mapping from Engine to new type 2 years ago
tsnet 246e0ccdca tsnet: add a test for restarting a tsnet server, fix Windows 2 years ago
tstest f991c8a61f tstest: make ResourceCheck panic on parallel tests 2 years ago
tstime a1b8d703d6 tstime/mono: remove unsafe 2 years ago
tsweb 5ee349e075 tsweb/varz: fix exporting histograms 2 years ago
types da1b917575 net/tstun: finish wiring IPv6 NAT support 2 years ago
util 5902d51ba4 util/race: add test to confirm we don't leak goroutines 2 years ago
version 306deea03a cmd/tailscale/cli,version/distro: update support for Alpine (#8701) 2 years ago
wf 71029cea2d all: update copyright and license headers 3 years ago
wgengine 6f36f8842c cmd/tailscale, magicsock: add debug command to flip DERP homes 2 years ago
words e91e96dfa5 words: i can't help but rave about these additions 2 years ago
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 years ago
.gitignore d74c771fda client/web: always use new web client; remove old client 2 years ago
.golangci.yml f85dc6f97c ci: add more lints (#7909) 2 years ago
ALPINE.txt 88133c361e Docker: add ALPINE.txt to manage alpine versions 3 years ago
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 years ago
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file 2 years ago
CODE_OF_CONDUCT.md 452b81d56b Add a code of conduct. 6 years ago
Dockerfile 66f27c4beb all: require Go 1.21 2 years ago
Dockerfile.base 1302295299 Dockerfile.base: install iputils 2 years ago
LICENSE 947c14793a all: update tools that manage copyright headers 3 years ago
Makefile 35ad2aafe3 Makefile: make it possibe to pass a custom tag when building dev images (#9461) 2 years ago
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 years ago
README.md 652f77d236 client/web: switch to using prebuilt web client assets 2 years ago
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 years ago
VERSION.txt 098d110746 VERSION.txt: this is v1.51.0 2 years ago
api.md b7988b3825 api.md: remove clientConnectivity.derp field 2 years ago
build_dist.sh 652f77d236 client/web: switch to using prebuilt web client assets 2 years ago
build_docker.sh f9667e4946 Dockerfile: fix docker build 3 years ago
flake.lock fe91160775 flake.nix: use Go 1.21 to build tailscale flake 2 years ago
flake.nix 72e53749c1 go.mod.sri: update SRI hash for go.mod changes 2 years ago
go.mod 41b05e6910 go.mod: bump wireguard-go 2 years ago
go.mod.sri 72e53749c1 go.mod.sri: update SRI hash for go.mod changes 2 years ago
go.sum 41b05e6910 go.mod: bump wireguard-go 2 years ago
go.toolchain.branch fbacc0bd39 go.toolchain: switch to tailscale.go1.21 (#8415) 2 years ago
go.toolchain.rev 559f560d2d go.toolchain.rev: bump go to 1.21.2 (#9677) 2 years ago
gomod_test.go aae1a28a2b go.mod: add test that replace directives aren't added in oss 2 years ago
pull-toolchain.sh 0e4f2bdd0c pull-toolchain.sh: don't run update-flake.sh 3 years ago
shell.nix 72e53749c1 go.mod.sri: update SRI hash for go.mod changes 2 years ago
staticcheck.conf ece138ffc3 staticcheck.conf: remove unnecessary warning 4 years ago
update-flake.sh f145c2b65b .github/workflows: add workflow to update go.mod Nix SRI hash 3 years ago
version-embed.go da75e49223 version: return correct Meta.MajorMinorPatch in non-dev builds 3 years ago
version_test.go 71029cea2d all: update copyright and license headers 3 years ago

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.