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

Joe Tsai 674beabc73 syncs: add Map.LoadFunc (#9869) hace 2 años
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. hace 4 años
.github afb72ecd73 .github/workflows: update golangci-lint hace 2 años
appctype ce0830837d appctype: introduce a configuration schema for app connectors hace 2 años
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) hace 2 años
chirp 71029cea2d all: update copyright and license headers hace 3 años
client 851536044a client/web: add tests for authorizeRequest hace 2 años
clientupdate 77127a2494 clientupdate: fix background install for linux tarballs (#9852) hace 2 años
cmd 33bb2bbfe9 tailcfg,cmd/tailscale: add UrgentSecurityUpdate flag to ClientVersion (#9848) hace 2 años
control 754fb9a8a8 tailcfg: add tailnet field to register request (#9675) hace 2 años
derp 8b492b4121 net/wsconn: accept a remote addr string and plumb it through hace 2 años
disco 893bdd729c disco,net/tstun,wgengine/magicsock: probe peer MTU hace 2 años
docs f53c3be07c cmd/k8s-operator: use our own container image instead of busybox hace 2 años
doctor c98652c333 doctor/permissions: add new check to print process permissions hace 3 años
envknob a61caea911 tailcfg: define a type for NodeCapability hace 2 años
health dc7aa98b76 all: use set.Set consistently instead of map[T]struct{} hace 2 años
hostinfo b4816e19b6 hostinfo, ipnlocal: flesh out Wake-on-LAN support, send MACs, add c2n sender hace 2 años
internal 280255acae various: add golangci-lint, fix issues (#7905) hace 2 años
ipn 3f27087e9d taildrop: switch hashing to be streaming based (#9861) hace 2 años
jsondb 71029cea2d all: update copyright and license headers hace 3 años
kube c919ff540f cmd/k8s-operator,ipn/store/kubestore: patch secrets instead of updating hace 2 años
licenses 756a4c43b6 licenses: update win/apple licenses hace 2 años
log 239ad57446 tailcfg: move LogHeapPprof from Debug to c2n [capver 69] hace 2 años
logpolicy e3d6236606 winutil: refactor methods to get values from registry to also return (#9536) hace 2 años
logtail d61494db68 adjust build tags for tamago hace 2 años
metrics 18b2638b07 metrics: add missing comma in histogram JSON export hace 2 años
net 95faefd1f6 net/dnsfallback: disable recursive resolver for now hace 2 años
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) hace 2 años
paths 6fd1961cd7 safesocket, paths: add Plan 9 support hace 2 años
portlist 52e4f24c58 portlist: populate Pid field on Linux hace 2 años
posture d0b8bdf8f7 posture: add get serial support for macOS hace 2 años
prober f314fa4a4a prober: fix data race when altering derpmap (#8397) hace 2 años
proxymap 3d37328af6 wgengine, proxymap: split out port mapping from Engine to new type hace 2 años
release e499a6bae8 release/dist/unixpkgs: revert iptables move to Recommends, make it Depends hace 2 años
safesocket 6fd1961cd7 safesocket, paths: add Plan 9 support hace 2 años
scripts 535db01b3f scripts/installer: add Kaisen, Garuda, Fedora-Asahi. hace 2 años
smallzstd 71029cea2d all: update copyright and license headers hace 3 años
ssh b775a3799e util/httpm, all: add a test to make sure httpm is used consistently hace 2 años
syncs 674beabc73 syncs: add Map.LoadFunc (#9869) hace 2 años
tailcfg 33bb2bbfe9 tailcfg,cmd/tailscale: add UrgentSecurityUpdate flag to ClientVersion (#9848) hace 2 años
taildrop a8fbe284b2 taildrop: fix theoretical race condition (#9866) hace 2 años
tempfork e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} hace 2 años
tka dc7aa98b76 all: use set.Set consistently instead of map[T]struct{} hace 2 años
tool 56c0a75ea9 tool/gocross: handle VERSION file not found hace 2 años
tsconst 71029cea2d all: update copyright and license headers hace 3 años
tsd 18bd98d35b cmd/tailscaled,*: add start of configuration file support hace 2 años
tsnet e89927de2b tsnet: fix data race in TestFallbackTCPHandler hace 2 años
tstest 1fc3573446 ipn/{conffile,ipnlocal}: start booting tailscaled from a config file w/ auth key hace 2 años
tstime 1a78f240b5 tstime: add DefaultClock (#9691) hace 2 años
tsweb 5ee349e075 tsweb/varz: fix exporting histograms hace 2 años
types 18bd98d35b cmd/tailscaled,*: add start of configuration file support hace 2 años
util c3a8e63100 util/linuxfw: add additional nftable detection logic hace 2 años
version 306deea03a cmd/tailscale/cli,version/distro: update support for Alpine (#8701) hace 2 años
wf 71029cea2d all: update copyright and license headers hace 3 años
wgengine c363b9055d tstest/integration: add tests for tun mode (requiring root) hace 2 años
words d62af8e643 words: flappy birds, but real life hace 2 años
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver hace 4 años
.gitignore d74c771fda client/web: always use new web client; remove old client hace 2 años
.golangci.yml f85dc6f97c ci: add more lints (#7909) hace 2 años
ALPINE.txt 88133c361e Docker: add ALPINE.txt to manage alpine versions hace 3 años
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. hace 6 años
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file hace 2 años
CODE_OF_CONDUCT.md 452b81d56b Add a code of conduct. hace 6 años
Dockerfile 66f27c4beb all: require Go 1.21 hace 2 años
Dockerfile.base 1302295299 Dockerfile.base: install iputils hace 2 años
LICENSE 947c14793a all: update tools that manage copyright headers hace 3 años
Makefile 35ad2aafe3 Makefile: make it possibe to pass a custom tag when building dev images (#9461) hace 2 años
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. hace 6 años
README.md 652f77d236 client/web: switch to using prebuilt web client assets hace 2 años
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. hace 6 años
VERSION.txt 098d110746 VERSION.txt: this is v1.51.0 hace 2 años
api.md b7988b3825 api.md: remove clientConnectivity.derp field hace 2 años
build_dist.sh 652f77d236 client/web: switch to using prebuilt web client assets hace 2 años
build_docker.sh f9667e4946 Dockerfile: fix docker build hace 3 años
flake.lock fe91160775 flake.nix: use Go 1.21 to build tailscale flake hace 2 años
flake.nix 51078b6486 go.mod.sri: update SRI hash for go.mod changes hace 2 años
go.mod 7fd6cc3caa go.mod: bump alexbrainman/sspi hace 2 años
go.mod.sri 51078b6486 go.mod.sri: update SRI hash for go.mod changes hace 2 años
go.sum 7fd6cc3caa go.mod: bump alexbrainman/sspi hace 2 años
go.toolchain.branch fbacc0bd39 go.toolchain: switch to tailscale.go1.21 (#8415) hace 2 años
go.toolchain.rev 3749a3bbbb go.toolchain.rev: bump for CVE-2023-39325 hace 2 años
gomod_test.go aae1a28a2b go.mod: add test that replace directives aren't added in oss hace 2 años
pull-toolchain.sh 0e4f2bdd0c pull-toolchain.sh: don't run update-flake.sh hace 3 años
shell.nix 51078b6486 go.mod.sri: update SRI hash for go.mod changes hace 2 años
staticcheck.conf ece138ffc3 staticcheck.conf: remove unnecessary warning hace 4 años
update-flake.sh f145c2b65b .github/workflows: add workflow to update go.mod Nix SRI hash hace 3 años
version-embed.go da75e49223 version: return correct Meta.MajorMinorPatch in non-dev builds hace 3 años
version_test.go 71029cea2d all: update copyright and license headers hace 3 años

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.