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

Maisem Ali 3e255d76e1 ipn/ipnlocal: fix profile duplication 2 lat temu
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 lat temu
.github c19b5bfbc3 .github/workflows: add govulncheck workflow (#8623) 2 lat temu
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) 2 lat temu
chirp 71029cea2d all: update copyright and license headers 3 lat temu
client 25a7204bb4 wgengine,ipn,cmd/tailscale: add size option to ping (#8739) 2 lat temu
cmd 6aaf1d48df types/persist: drop duplicated Persist.LoginName 2 lat temu
control 734928d3cb control/controlclient: make Direct own all changes to Persist 2 lat temu
derp 5ebb271322 derp/derphttp: add optional Client.BaseContext hook 2 lat temu
disco 25a7204bb4 wgengine,ipn,cmd/tailscale: add size option to ping (#8739) 2 lat temu
docs 0c427f23bd docs/k8s: don't call kubectl directly from Makefile 2 lat temu
doctor c98652c333 doctor/permissions: add new check to print process permissions 2 lat temu
envknob 73d128238e envknob: support tailscaled-env.txt on macOS too 2 lat temu
health abcb7ec1ce cmd/tailscale: warn if node is locked out on bringup 2 lat temu
hostinfo 2cf6e12790 hostinfo: make lxcfs container check more specific 2 lat temu
internal 280255acae various: add golangci-lint, fix issues (#7905) 2 lat temu
ipn 3e255d76e1 ipn/ipnlocal: fix profile duplication 2 lat temu
jsondb 71029cea2d all: update copyright and license headers 3 lat temu
kube e0d291ab8a ipn/store: add support for stores to hook into a custom dialer 2 lat temu
licenses a3f11e7710 licenses: update android licenses 2 lat temu
log 60ab8089ff logpolicy, various: allow overriding log function 2 lat temu
logpolicy 60ab8089ff logpolicy, various: allow overriding log function 2 lat temu
logtail e1bcecc393 logtail: use tstime (#8607) 2 lat temu
metrics 3304819739 metrics: add histogram support 2 lat temu
net 66e46bf501 ipnlocal, net/*: deprecate interfaces.GetState, use netmon more for it 2 lat temu
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 lat temu
paths 67e912824a all: adjust some build tags for wasi 2 lat temu
portlist f8f0b981ac portlist: remove async functionality 2 lat temu
prober f314fa4a4a prober: fix data race when altering derpmap (#8397) 2 lat temu
release 371e1ebf07 cmd/dist,release/dist: expose RPM signing hook (#8789) 2 lat temu
safesocket f844791e15 safesocket: enable test to run on Windows unpriviliged 2 lat temu
scripts 4321d1d6e9 scripts/installer.sh: add sle-micro-rancher. 2 lat temu
smallzstd 71029cea2d all: update copyright and license headers 3 lat temu
ssh bb4b35e923 ssh: ignore io.EOF from sftp.Server.Serve 2 lat temu
syncs cafd9a2bec syncs: add ShardedMap.Mutate 2 lat temu
tailcfg 301e59f398 tailcfg,ipn/localapi,client/tailscale: add QueryFeature endpoint 2 lat temu
tempfork cb53846717 tempfork/heap: add copy of Go's container/heap but using generics 2 lat temu
tka 767e839db5 all: implement lock revoke-keys command 2 lat temu
tool bfe5623a86 tool/gocross: make gocross behave with pre-release Go toolchains 2 lat temu
tsconst 71029cea2d all: update copyright and license headers 3 lat temu
tsd 6e967446e4 tsd: add package with System type to unify subsystem init, discovery 2 lat temu
tsnet 24f0e91169 tsnet: add examples (#8289) 2 lat temu
tstest 37925b3e7a go.mod, cmd/tailscaled, ipn/localapi, util/osdiag, util/winutil, util/winutil/authenticode: add Windows module list to OS-specific logs that are written upon bugreport 2 lat temu
tstime 0573f6e953 tstime: add Since method (#8622) 2 lat temu
tsweb 7c04846eac tsweb: relax CSP for debug handlers (#8649) 2 lat temu
types 6aaf1d48df types/persist: drop duplicated Persist.LoginName 2 lat temu
util ae63c51ff1 wgengine/router: add auto selection heuristic for iptables/nftables 2 lat temu
version 306deea03a cmd/tailscale/cli,version/distro: update support for Alpine (#8701) 2 lat temu
wf 71029cea2d all: update copyright and license headers 3 lat temu
wgengine ae63c51ff1 wgengine/router: add auto selection heuristic for iptables/nftables 2 lat temu
words 3f1f906b63 words: ack Miles Prower (#8479) 2 lat temu
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 lat temu
.gitignore fc4b25d9fd release: open-source release build logic for unix packages 3 lat temu
.golangci.yml f85dc6f97c ci: add more lints (#7909) 2 lat temu
ALPINE.txt 88133c361e Docker: add ALPINE.txt to manage alpine versions 3 lat temu
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 lat temu
CODE_OF_CONDUCT.md 452b81d56b Add a code of conduct. 6 lat temu
Dockerfile 80692edcb8 .github/workflows: Add docker build check (#8345) 2 lat temu
Dockerfile.base 1302295299 Dockerfile.base: install iputils 2 lat temu
LICENSE 947c14793a all: update tools that manage copyright headers 3 lat temu
Makefile 32e0ba5e68 release/dist/synology: build synology packages with cmd/dist 2 lat temu
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 lat temu
README.md b1248442c3 all: update to Go 1.20, use strings.CutPrefix/Suffix instead of our fork 3 lat temu
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 lat temu
VERSION.txt 486ab427b4 VERSION.txt: this is v1.47.0 (#8654) 2 lat temu
api.md aa37be70cf api.md: update device authorize API docs to allow for deauth (#8728) 2 lat temu
build_dist.sh 6554a0cbec build_dist.sh: use $go consistently. 2 lat temu
build_docker.sh f9667e4946 Dockerfile: fix docker build 3 lat temu
flake.lock 30e0156430 nix: update nixpkgs flake, override go_1_20 for tailscale_go (#7139) 3 lat temu
flake.nix 10acc06389 go.mod.sri: update SRI hash for go.mod changes 2 lat temu
go.mod eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 lat temu
go.mod.sri 10acc06389 go.mod.sri: update SRI hash for go.mod changes 2 lat temu
go.sum eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 lat temu
go.toolchain.branch fbacc0bd39 go.toolchain: switch to tailscale.go1.21 (#8415) 2 lat temu
go.toolchain.rev ab7749aed7 go.toolchain.rev: go1.21rc4 (now that VERSION file is updated upstream) 2 lat temu
pull-toolchain.sh 0e4f2bdd0c pull-toolchain.sh: don't run update-flake.sh 3 lat temu
shell.nix 10acc06389 go.mod.sri: update SRI hash for go.mod changes 2 lat temu
staticcheck.conf ece138ffc3 staticcheck.conf: remove unnecessary warning 4 lat temu
update-flake.sh f145c2b65b .github/workflows: add workflow to update go.mod Nix SRI hash 3 lat temu
version-embed.go da75e49223 version: return correct Meta.MajorMinorPatch in non-dev builds 3 lat temu
version_test.go 71029cea2d all: update copyright and license headers 3 lat temu

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.20. (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.