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

Aaron Klotz 7d60c19d7d clientupdate/distsign: add ability to validate a binary that is already located on disk 2 år sedan
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 år sedan
.github 3280c81c95 .github,cmd/gitops-pusher: update to checkout@v4 2 år sedan
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) 2 år sedan
chirp 71029cea2d all: update copyright and license headers 3 år sedan
client 8683ce78c2 client/web, clientupdate, util/linuxfw, wgengine/magicsock: Use %v verb for errors 2 år sedan
clientupdate 7d60c19d7d clientupdate/distsign: add ability to validate a binary that is already located on disk 2 år sedan
cmd a4aa6507fa ipn, ipn/ipnlocal: add session identifier for WatchIPNBus 2 år sedan
control f6a203fe23 control/controlclient: check c.closed in waitUnpause 2 år sedan
derp 8b492b4121 net/wsconn: accept a remote addr string and plumb it through 2 år sedan
disco 25a7204bb4 wgengine,ipn,cmd/tailscale: add size option to ping (#8739) 2 år sedan
docs 0c427f23bd docs/k8s: don't call kubectl directly from Makefile 2 år sedan
doctor c98652c333 doctor/permissions: add new check to print process permissions 2 år sedan
envknob 84b94b3146 types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2 år sedan
health 14320290c3 control/controlclient: merge, simplify two health check calls 2 år sedan
hostinfo 7ed3681cbe tailcfg: Add FirewallMode to NetInfo to record wether host using iptables or nftables 2 år sedan
internal 280255acae various: add golangci-lint, fix issues (#7905) 2 år sedan
ipn 45eeef244e ipn, ipn/ipnlocal: add Foreground field to ServeConfig 2 år sedan
jsondb 71029cea2d all: update copyright and license headers 3 år sedan
kube c919ff540f cmd/k8s-operator,ipn/store/kubestore: patch secrets instead of updating 2 år sedan
licenses 699f9699ca licenses: update tailscale{,d} licenses 2 år sedan
log 239ad57446 tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2 år sedan
logpolicy 682fd72f7b util/testenv: add new package to hold InTest 2 år sedan
logtail 0a74d46568 adjust build tags for tamago 2 år sedan
metrics e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 år sedan
net 1262df0578 net/netmon, net/tsdial: add some link change metrics 2 år sedan
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 år sedan
paths 0a74d46568 adjust build tags for tamago 2 år sedan
portlist e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 år sedan
prober f314fa4a4a prober: fix data race when altering derpmap (#8397) 2 år sedan
release 9a3bc9049c client/web,cmd/tailscale: add prefix flag for web command 2 år sedan
safesocket f844791e15 safesocket: enable test to run on Windows unpriviliged 2 år sedan
scripts 535db01b3f scripts/installer: add Kaisen, Garuda, Fedora-Asahi. 2 år sedan
smallzstd 71029cea2d all: update copyright and license headers 3 år sedan
ssh 9c07f4f512 all: replace deprecated ioutil references 2 år sedan
syncs e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 år sedan
tailcfg c6fadd6d71 all: implement AppendText alongside MarshalText (#9207) 2 år sedan
tempfork e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 år sedan
tka c6fadd6d71 all: implement AppendText alongside MarshalText (#9207) 2 år sedan
tool 3722b05465 release/dist: run yarn build before building CLI 2 år sedan
tsconst 71029cea2d all: update copyright and license headers 3 år sedan
tsd 6e967446e4 tsd: add package with System type to unify subsystem init, discovery 2 år sedan
tsnet 47cf836720 tsnet: remove redundant ephemeral logout on close 2 år sedan
tstest 7175f06e62 util/rands: add package with HexString func 2 år sedan
tstime a1b8d703d6 tstime/mono: remove unsafe 2 år sedan
tsweb 7b18ed293b tsweb: check for key-based debug access before XFF check (#9093) 2 år sedan
types c6fadd6d71 all: implement AppendText alongside MarshalText (#9207) 2 år sedan
util 7175f06e62 util/rands: add package with HexString func 2 år sedan
version 306deea03a cmd/tailscale/cli,version/distro: update support for Alpine (#8701) 2 år sedan
wf 71029cea2d all: update copyright and license headers 3 år sedan
wgengine 8683ce78c2 client/web, clientupdate, util/linuxfw, wgengine/magicsock: Use %v verb for errors 2 år sedan
words 3f1f906b63 words: ack Miles Prower (#8479) 2 år sedan
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 år sedan
.gitignore d74c771fda client/web: always use new web client; remove old client 2 år sedan
.golangci.yml f85dc6f97c ci: add more lints (#7909) 2 år sedan
ALPINE.txt 88133c361e Docker: add ALPINE.txt to manage alpine versions 3 år sedan
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 år sedan
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file 2 år sedan
CODE_OF_CONDUCT.md 452b81d56b Add a code of conduct. 6 år sedan
Dockerfile 66f27c4beb all: require Go 1.21 2 år sedan
Dockerfile.base 1302295299 Dockerfile.base: install iputils 2 år sedan
LICENSE 947c14793a all: update tools that manage copyright headers 3 år sedan
Makefile 98a5116434 all: adjust some build tags for plan9 2 år sedan
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 år sedan
README.md d74c771fda client/web: always use new web client; remove old client 2 år sedan
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 år sedan
VERSION.txt cf31b58ed1 VERSION.txt: this is v1.49.0 (#8907) 2 år sedan
api.md aa37be70cf api.md: update device authorize API docs to allow for deauth (#8728) 2 år sedan
build_dist.sh d74c771fda client/web: always use new web client; remove old client 2 år sedan
build_docker.sh f9667e4946 Dockerfile: fix docker build 3 år sedan
flake.lock fe91160775 flake.nix: use Go 1.21 to build tailscale flake 2 år sedan
flake.nix 77060c4d89 go.mod.sri: update SRI hash for go.mod changes 2 år sedan
go.mod 4e72992900 clientupdate: add linux tarball updates (#9144) 2 år sedan
go.mod.sri 77060c4d89 go.mod.sri: update SRI hash for go.mod changes 2 år sedan
go.sum 4e72992900 clientupdate: add linux tarball updates (#9144) 2 år sedan
go.toolchain.branch fbacc0bd39 go.toolchain: switch to tailscale.go1.21 (#8415) 2 år sedan
go.toolchain.rev a1b8d703d6 tstime/mono: remove unsafe 2 år sedan
pull-toolchain.sh 0e4f2bdd0c pull-toolchain.sh: don't run update-flake.sh 3 år sedan
shell.nix 77060c4d89 go.mod.sri: update SRI hash for go.mod changes 2 år sedan
staticcheck.conf ece138ffc3 staticcheck.conf: remove unnecessary warning 4 år sedan
update-flake.sh f145c2b65b .github/workflows: add workflow to update go.mod Nix SRI hash 3 år sedan
version-embed.go da75e49223 version: return correct Meta.MajorMinorPatch in non-dev builds 3 år sedan
version_test.go 71029cea2d all: update copyright and license headers 3 år sedan

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.

Building the web client

To include the embedded web client (accessed via the tailscale web command), you'll need to build the client assets using:

./tool/yarn --cwd client/web build

Do this before building the tailscale.com/cmd/tailscale binary.

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.