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

Brad Fitzpatrick 5c555cdcbb tstest/integration: set race flag when cross compiling, conditionally fail on race 2 năm trước cách đây
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 năm trước cách đây
.github 7ce1c6f981 .github/workflows: fix slack-action format in govulncheck.yml (#9390) 2 năm trước cách đây
appctype ce0830837d appctype: introduce a configuration schema for app connectors 2 năm trước cách đây
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) 2 năm trước cách đây
chirp 71029cea2d all: update copyright and license headers 3 năm trước cách đây
client 7783a960e8 client/web: add metric for exit node advertising (#9781) 2 năm trước cách đây
clientupdate 9f05018419 clientupdate/distsign: add new prod root signing key to keychain 2 năm trước cách đây
cmd 1294b89792 cmd/k8s-operator: allow setting same host value for tls and ingress rules 2 năm trước cách đây
control 754fb9a8a8 tailcfg: add tailnet field to register request (#9675) 2 năm trước cách đây
derp 8b492b4121 net/wsconn: accept a remote addr string and plumb it through 2 năm trước cách đây
disco 893bdd729c disco,net/tstun,wgengine/magicsock: probe peer MTU 2 năm trước cách đây
docs 13767e5108 docs/sysv: add a sysv style init script 2 năm trước cách đây
doctor c98652c333 doctor/permissions: add new check to print process permissions 2 năm trước cách đây
envknob a61caea911 tailcfg: define a type for NodeCapability 2 năm trước cách đây
health dc7aa98b76 all: use set.Set consistently instead of map[T]struct{} 2 năm trước cách đây
hostinfo b4816e19b6 hostinfo, ipnlocal: flesh out Wake-on-LAN support, send MACs, add c2n sender 2 năm trước cách đây
internal 280255acae various: add golangci-lint, fix issues (#7905) 2 năm trước cách đây
ipn 8c7169105e ipn/{ipnlocal/peerapi, localapi}: cleaning up http statuses for consistency and readability (#9796) 2 năm trước cách đây
jsondb 71029cea2d all: update copyright and license headers 3 năm trước cách đây
kube c919ff540f cmd/k8s-operator,ipn/store/kubestore: patch secrets instead of updating 2 năm trước cách đây
licenses 0ccfcb515c licenses: update tailscale{,d} licenses 2 năm trước cách đây
log 239ad57446 tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2 năm trước cách đây
logpolicy e3d6236606 winutil: refactor methods to get values from registry to also return (#9536) 2 năm trước cách đây
logtail d61494db68 adjust build tags for tamago 2 năm trước cách đây
metrics 18b2638b07 metrics: add missing comma in histogram JSON export 2 năm trước cách đây
net 9d96e05267 net/packet: split off checksum munging into different pkg 2 năm trước cách đây
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 năm trước cách đây
paths 6fd1961cd7 safesocket, paths: add Plan 9 support 2 năm trước cách đây
portlist 52e4f24c58 portlist: populate Pid field on Linux 2 năm trước cách đây
posture d0b8bdf8f7 posture: add get serial support for macOS 2 năm trước cách đây
prober f314fa4a4a prober: fix data race when altering derpmap (#8397) 2 năm trước cách đây
proxymap 3d37328af6 wgengine, proxymap: split out port mapping from Engine to new type 2 năm trước cách đây
release e499a6bae8 release/dist/unixpkgs: revert iptables move to Recommends, make it Depends 2 năm trước cách đây
safesocket 6fd1961cd7 safesocket, paths: add Plan 9 support 2 năm trước cách đây
scripts 535db01b3f scripts/installer: add Kaisen, Garuda, Fedora-Asahi. 2 năm trước cách đây
smallzstd 71029cea2d all: update copyright and license headers 3 năm trước cách đây
ssh b775a3799e util/httpm, all: add a test to make sure httpm is used consistently 2 năm trước cách đây
syncs 498f7ec663 syncs: add Map.LoadOrInit for lazily initialized values 2 năm trước cách đây
tailcfg 754fb9a8a8 tailcfg: add tailnet field to register request (#9675) 2 năm trước cách đây
taildrop 8f948638c5 taildrop: minor cleanups and fixes (#9786) 2 năm trước cách đây
tempfork e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 năm trước cách đây
tka dc7aa98b76 all: use set.Set consistently instead of map[T]struct{} 2 năm trước cách đây
tool 56c0a75ea9 tool/gocross: handle VERSION file not found 2 năm trước cách đây
tsconst 71029cea2d all: update copyright and license headers 3 năm trước cách đây
tsd 3d37328af6 wgengine, proxymap: split out port mapping from Engine to new type 2 năm trước cách đây
tsnet 7a0de2997e client/web: remove unused context param from NewServer 2 năm trước cách đây
tstest 5c555cdcbb tstest/integration: set race flag when cross compiling, conditionally fail on race 2 năm trước cách đây
tstime 1a78f240b5 tstime: add DefaultClock (#9691) 2 năm trước cách đây
tsweb 5ee349e075 tsweb/varz: fix exporting histograms 2 năm trước cách đây
types c1ef55249a types/ipproto: import and test string parsing for ipproto 2 năm trước cách đây
util 9cb6c5bb78 util/httphdr: add new package for parsing HTTP headers (#9797) 2 năm trước cách đây
version 306deea03a cmd/tailscale/cli,version/distro: update support for Alpine (#8701) 2 năm trước cách đây
wf 71029cea2d all: update copyright and license headers 3 năm trước cách đây
wgengine 8b630c91bc wgengine/filter: use slices.Contains in another place 2 năm trước cách đây
words d62af8e643 words: flappy birds, but real life 2 năm trước cách đây
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 năm trước cách đây
.gitignore d74c771fda client/web: always use new web client; remove old client 2 năm trước cách đây
.golangci.yml f85dc6f97c ci: add more lints (#7909) 2 năm trước cách đây
ALPINE.txt 88133c361e Docker: add ALPINE.txt to manage alpine versions 3 năm trước cách đây
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 năm trước cách đây
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file 2 năm trước cách đây
CODE_OF_CONDUCT.md 452b81d56b Add a code of conduct. 6 năm trước cách đây
Dockerfile 66f27c4beb all: require Go 1.21 2 năm trước cách đây
Dockerfile.base 1302295299 Dockerfile.base: install iputils 2 năm trước cách đây
LICENSE 947c14793a all: update tools that manage copyright headers 3 năm trước cách đây
Makefile 35ad2aafe3 Makefile: make it possibe to pass a custom tag when building dev images (#9461) 2 năm trước cách đây
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 năm trước cách đây
README.md 652f77d236 client/web: switch to using prebuilt web client assets 2 năm trước cách đây
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 năm trước cách đây
VERSION.txt 098d110746 VERSION.txt: this is v1.51.0 2 năm trước cách đây
api.md b7988b3825 api.md: remove clientConnectivity.derp field 2 năm trước cách đây
build_dist.sh 652f77d236 client/web: switch to using prebuilt web client assets 2 năm trước cách đây
build_docker.sh f9667e4946 Dockerfile: fix docker build 3 năm trước cách đây
flake.lock fe91160775 flake.nix: use Go 1.21 to build tailscale flake 2 năm trước cách đây
flake.nix 00977f6de9 go.mod.sri: update SRI hash for go.mod changes 2 năm trước cách đây
go.mod 6b1ed732df go.mod: bump x/net to 0.17 for CVE-2023-39325 2 năm trước cách đây
go.mod.sri 00977f6de9 go.mod.sri: update SRI hash for go.mod changes 2 năm trước cách đây
go.sum 6b1ed732df go.mod: bump x/net to 0.17 for CVE-2023-39325 2 năm trước cách đây
go.toolchain.branch fbacc0bd39 go.toolchain: switch to tailscale.go1.21 (#8415) 2 năm trước cách đây
go.toolchain.rev 3749a3bbbb go.toolchain.rev: bump for CVE-2023-39325 2 năm trước cách đây
gomod_test.go aae1a28a2b go.mod: add test that replace directives aren't added in oss 2 năm trước cách đây
pull-toolchain.sh 0e4f2bdd0c pull-toolchain.sh: don't run update-flake.sh 3 năm trước cách đây
shell.nix 00977f6de9 go.mod.sri: update SRI hash for go.mod changes 2 năm trước cách đây
staticcheck.conf ece138ffc3 staticcheck.conf: remove unnecessary warning 4 năm trước cách đây
update-flake.sh f145c2b65b .github/workflows: add workflow to update go.mod Nix SRI hash 3 năm trước cách đây
version-embed.go da75e49223 version: return correct Meta.MajorMinorPatch in non-dev builds 3 năm trước cách đây
version_test.go 71029cea2d all: update copyright and license headers 3 năm trước cách đây

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.