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

Claus Lensbøl 1dfdee8521 net/dns: retrample resolve.conf when another process has trampled it (#18069) 3 ay önce
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 yıl önce
.github dd1bb8ee42 .github: add cigocacher release workflow 3 ay önce
appc 076d5c7214 appc,feature: add the start of new conn25 app connector 3 ay önce
atomicfile c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
chirp c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
client d349370e55 client/systray: change systray to start after graphical.target (#18138) 3 ay önce
clientupdate c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
cmd 1dfdee8521 net/dns: retrample resolve.conf when another process has trampled it (#18069) 3 ay önce
control 77dcdc223e cleanup: fix typos across multiple files 3 ay önce
derp 5ee0c6bf1d derp/derpserver: add a unique sender cardinality estimate 3 ay önce
disco 09bfee2e06 disco: add missing message types to MessageSummary (#17081) 6 ay önce
docs 0ce88aa343 all: use a consistent capitalisation for "Tailnet Lock" 4 ay önce
doctor 5be6ff9b62 all: remove non-applicable "linux" deps on Android 10 ay önce
drive c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
envknob 99b06eac49 syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 3 ay önce
feature 076d5c7214 appc,feature: add the start of new conn25 app connector 3 ay önce
gokrazy 5eafce7e25 gokrazy/natlab: update gokrazy, wire up natlab tests to GitHub CI 1 yıl önce
health 1723cb83ed ipn/ipnlocal: use an in-memory TKA store if FS is unavailable 3 ay önce
hostinfo d6fd865d41 hostinfo, ipnlocal: add optional os-specific callback for querying the hostname (#15647) 11 ay önce
internal 6a73c0bdf5 cmd/tailscale/cli,feature: add support for identity federation (#17529) 4 ay önce
ipn 378ee20b9a cmd/tailscale/cli: stabilise the output of `tailscale lock status --json` 3 ay önce
jsondb 71029cea2d all: update copyright and license headers 3 yıl önce
k8s-operator 42a5262016 cmd/k8s-operator: add multi replica support for recorders (#17864) 3 ay önce
kube c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
licenses 8976b34cb8 licenses: update license notices 3 ay önce
log c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
logpolicy c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
logtail c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
maths 820bdb870a maths: add exponentially weighted moving average type 1 yıl önce
metrics 99b06eac49 syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 3 ay önce
net 1dfdee8521 net/dns: retrample resolve.conf when another process has trampled it (#18069) 3 ay önce
omit 1ea100e2e5 cmd/tailscaled, ipn/conffile: support ec2 user-data config file 1 yıl önce
packages c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
paths fbc6a9ec5a all: detect JetKVM and specialize a handful of things for it 8 ay önce
portlist 16587746ed portlist,tstest: skip tests on kernels with /proc/net/tcp regression 3 ay önce
posture d05e6dc09e util/syspolicy/policyclient: add policyclient.Client interface, start plumbing 6 ay önce
prober c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
proxymap 99b06eac49 syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 3 ay önce
release c2f37c891c all: use Go 1.20's errors.Join instead of our multierr package 5 ay önce
safesocket c45f8813b4 feature/featuretags, all: add build features, use existing ones in more places 5 ay önce
safeweb 3177e50b14 safeweb: Set Cross-Origin-Opener-Policy for browser requests (#15936) 10 ay önce
scripts c7b10cb39f scripts/installer.sh: add SteamOS handling (#18159) 3 ay önce
sessionrecording 8996254647 sessionrecording: fix regression in recent http2 package change 4 ay önce
ssh 41662f5128 ssh/tailssh: fix incubator tests on macOS arm64 3 ay önce
syncs 74ed589042 syncs: add means of declare locking assumptions for debug mode validation 3 ay önce
tailcfg ac0b15356d tailcfg, control/controlclient: start moving MapResponse.DefaultAutoUpdate to a nodeattr 3 ay önce
tempfork 2e381557b8 feature/c2n: move answerC2N code + deps out of control/controlclient 5 ay önce
tka 7d3097d3b5 tka: add some more tests for Bootstrap() 3 ay önce
tool 22a815b6d2 tool: bump binaryen wasm optimiser version 111 -> 125 3 ay önce
tsconsensus f4a4bab105 tsconsensus: skip integration tests in CI 3 ay önce
tsconst 7418583e47 health: compare warnable codes to avoid errors on release branch (#17637) 4 ay önce
tsd f4d34f38be cmd/tailscale,ipn: add Unix socket support for serve 3 ay önce
tsnet 536188c1b5 tsnet: enable node registration via federated identity 3 ay önce
tstest b7658a4ad2 tstest/integration: add integration test for Tailnet Lock 3 ay önce
tstime aff8f1b358 tstime: add GoDuration which JSON serializes with time.Duration.String (#15726) 10 ay önce
tsweb c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
types ac0b15356d tailcfg, control/controlclient: start moving MapResponse.DefaultAutoUpdate to a nodeattr 3 ay önce
util 8af7778ce0 util/execqueue: don't hold mutex in RunSync 3 ay önce
version 7c49cab1a6 clientupdate, util/osshare, util/winutil, version: improve Windows GUI filename resolution and WinUI build awareness 5 ay önce
wf c2e474e729 all: rename variables with lowercase-l/uppercase-I 3 ay önce
wgengine 1dfdee8521 net/dns: retrample resolve.conf when another process has trampled it (#18069) 3 ay önce
words 05d2dcaf49 words: remove a fish (#17704) 4 ay önce
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 yıl önce
.gitignore b75fe9eeca cmd/k8s-operator: Add NOTES.txt to Helm chart (#16364) 8 ay önce
.golangci.yml d8e3bce0b4 .github: Bump golangci/golangci-lint-action from 6.5.0 to 7.0.0 (#15476) 11 ay önce
ALPINE.txt bb38bf7414 docker: bump alpine v3.19 -> 3.22 (#17155) 5 ay önce
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 yıl önce
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file 2 yıl önce
CODE_OF_CONDUCT.md 0a5ba8280f CODE_OF_CONDUCT.md: update code of conduct 4 ay önce
Dockerfile bb38bf7414 docker: bump alpine v3.19 -> 3.22 (#17155) 5 ay önce
Dockerfile.base bb38bf7414 docker: bump alpine v3.19 -> 3.22 (#17155) 5 ay önce
LICENSE 947c14793a all: update tools that manage copyright headers 3 yıl önce
Makefile 801aac59db Makefile, cmd/*/depaware.txt: split out vendor packages explicitly 5 ay önce
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 yıl önce
README.md 1aaa1648c4 README: update the version of Go in the README 5 ay önce
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 yıl önce
VERSION.txt 3f9f0ed93c VERSION.txt: this is v1.93.0 (#18074) 3 ay önce
api.md 124ff3b034 {api.md,publicapi}: remove old API docs (#13468) 1 yıl önce
assert_ts_toolchain_match.go 1005cbc1e4 tailscaleroot: panic if tailscale_go build tag but Go toolchain mismatch 1 yıl önce
build_dist.sh 10cb59fa87 build_dist.sh: keep --extra-small making a usable build, add --min 5 ay önce
build_docker.sh 16e0abe031 build_docker.sh: support including extra files (#17405) 5 ay önce
flake.lock e4031daa08 .github/Makefile/flake: update nix flake support (#16636) 6 ay önce
flake.nix e33f6aa3ba go.mod: bump the version of setec 3 ay önce
go.mod 7bc25f77f4 go.toolchain.rev: update to Go 1.25.5 (#18123) 3 ay önce
go.mod.sri e33f6aa3ba go.mod: bump the version of setec 3 ay önce
go.sum e33f6aa3ba go.mod: bump the version of setec 3 ay önce
go.toolchain.branch c5429cd49c go.toolchain.branch: bump to go1.25 (#16954) 6 ay önce
go.toolchain.rev 7bc25f77f4 go.toolchain.rev: update to Go 1.25.5 (#18123) 3 ay önce
go.toolchain.rev.sri 7bc25f77f4 go.toolchain.rev: update to Go 1.25.5 (#18123) 3 ay önce
go.toolchain.version 7bc25f77f4 go.toolchain.rev: update to Go 1.25.5 (#18123) 3 ay önce
gomod_test.go aae1a28a2b go.mod: add test that replace directives aren't added in oss 2 yıl önce
header.txt 1a08ea5990 cmd/k8s-operator: operator can create subnetrouter (#9505) 2 yıl önce
license_test.go 39e35379d4 wgengine/router{,/osrouter}: split OS router implementations into subpackage 5 ay önce
pkgdoc_test.go 6bbf98bef4 all: skip looking for package comments in .git/ repository (#15384) 11 ay önce
pull-toolchain.sh 7edb5b7d43 flake.nix: update Nix to use tailscale/go 1.25.2 (#17500) 5 ay önce
shell.nix e33f6aa3ba go.mod: bump the version of setec 3 ay önce
staticcheck.conf 2716250ee8 all: cleanup unused code, part 2 (#10670) 2 yıl önce
update-flake.sh 7edb5b7d43 flake.nix: update Nix to use tailscale/go 1.25.2 (#17500) 5 ay önce
version-embed.go 36ea792f06 Fix various linting, vet & static check issues 1 yıl önce
version_tailscale_test.go 1005cbc1e4 tailscaleroot: panic if tailscale_go build tag but Go toolchain mismatch 1 yıl önce
version_test.go d7770d2b81 .github/workflows: test that ./go/tool version matches go mod version 8 ay önce

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.25. (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 commit-messages.md (or skim git log) for our commit message 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.