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

Will Norris d01fa857b1 client/web: allow login client to still run tailscale up 2 ani în urmă
.bencher babd163aac bencher: add config to suppress failures on benchmark regressions. 4 ani în urmă
.github 7399e56acd .github: add action for updating web-client-prebuilt module 2 ani în urmă
appc 245ddb157b appc: fix DomainRoutes copy 2 ani în urmă
atomicfile 280255acae various: add golangci-lint, fix issues (#7905) 2 ani în urmă
chirp 71029cea2d all: update copyright and license headers 3 ani în urmă
client d01fa857b1 client/web: allow login client to still run tailscale up 2 ani în urmă
clientupdate c3f1bd4c0a clientupdate: fix auto-update on Windows over RDP (#10242) 2 ani în urmă
cmd 3bd382f369 wgengine/magicsock: add DERP homeless debug mode for testing 2 ani în urmă
control e848736927 control/controlknobs,wgengine/magicsock: implement SilentDisco toggle (#10195) 2 ani în urmă
derp ef6a6e94f1 derp/derphttp: use a getter method to read server key 2 ani în urmă
disco 893bdd729c disco,net/tstun,wgengine/magicsock: probe peer MTU 2 ani în urmă
docs f53c3be07c cmd/k8s-operator: use our own container image instead of busybox 2 ani în urmă
doctor c98652c333 doctor/permissions: add new check to print process permissions 2 ani în urmă
envknob a61caea911 tailcfg: define a type for NodeCapability 2 ani în urmă
health dc7aa98b76 all: use set.Set consistently instead of map[T]struct{} 2 ani în urmă
hostinfo 01604c06d2 hostinfo: fix a couple of logic simplification lints 2 ani în urmă
internal 280255acae various: add golangci-lint, fix issues (#7905) 2 ani în urmă
ipn 3bd382f369 wgengine/magicsock: add DERP homeless debug mode for testing 2 ani în urmă
jsondb 71029cea2d all: update copyright and license headers 3 ani în urmă
kube c919ff540f cmd/k8s-operator,ipn/store/kubestore: patch secrets instead of updating 2 ani în urmă
licenses a97ead9ce4 licenses: update win/apple licenses 2 ani în urmă
log 239ad57446 tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2 ani în urmă
logpolicy e3d6236606 winutil: refactor methods to get values from registry to also return (#9536) 2 ani în urmă
logtail d852c616c6 logtail: fix Logger.Write return result 2 ani în urmă
metrics 18b2638b07 metrics: add missing comma in histogram JSON export 2 ani în urmă
net e33bc64cff net/dnsfallback: add singleflight to recursive resolver 2 ani în urmă
packages eb6883bb5a go.mod: upgrade nfpm to v2 (#8786) 2 ani în urmă
paths 6fd1961cd7 safesocket, paths: add Plan 9 support 2 ani în urmă
portlist 52e4f24c58 portlist: populate Pid field on Linux 2 ani în urmă
posture 05d4210dbe adjust build tags for tamago 2 ani în urmă
prober 96a80fcce3 Add support for custom DERP port in TLS prober 2 ani în urmă
proxymap 3d37328af6 wgengine, proxymap: split out port mapping from Engine to new type 2 ani în urmă
release e499a6bae8 release/dist/unixpkgs: revert iptables move to Recommends, make it Depends 2 ani în urmă
safesocket b4be4f089f safesocket: make clear which net.Conns are winio types 2 ani în urmă
scripts 535db01b3f scripts/installer: add Kaisen, Garuda, Fedora-Asahi. 2 ani în urmă
smallzstd 71029cea2d all: update copyright and license headers 3 ani în urmă
ssh 53c4adc982 ssh/tailssh: add envknobs to force override forwarding, sftp, pty 2 ani în urmă
syncs 674beabc73 syncs: add Map.LoadFunc (#9869) 2 ani în urmă
tailcfg 9b537f7c97 ipn: remove the preview-webclient node capability 2 ani în urmă
taildrop 975c5f7684 taildrop: lazily perform full deletion scan after first taildrop use (#10137) 2 ani în urmă
tempfork e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 ani în urmă
tka dc7aa98b76 all: use set.Set consistently instead of map[T]struct{} 2 ani în urmă
tool 452f900589 tool: download helm CLI (#9981) 2 ani în urmă
tsconst 71029cea2d all: update copyright and license headers 3 ani în urmă
tsd 18bd98d35b cmd/tailscaled,*: add start of configuration file support 2 ani în urmă
tsnet 2dbd546766 client/web: remove DebugMode from GET /api/data 2 ani în urmă
tstest e9de59a315 tstest/deptest: fix minor escaping error in regex 2 ani în urmă
tstime 1a78f240b5 tstime: add DefaultClock (#9691) 2 ani în urmă
tsweb 5ee349e075 tsweb/varz: fix exporting histograms 2 ani în urmă
types e866ee9268 types/appctype: correct app-connector cap name in documentation 2 ani în urmă
util b8ac3c5191 util/syspolicy: add some additional policy keys 2 ani în urmă
version d3bc575f35 cmd/tailscale/cli: set Sparkle auto-update on macsys (#9952) 2 ani în urmă
wf 71029cea2d all: update copyright and license headers 3 ani în urmă
wgengine 3bd382f369 wgengine/magicsock: add DERP homeless debug mode for testing 2 ani în urmă
words d62af8e643 words: flappy birds, but real life 2 ani în urmă
.gitattributes 1813c2a162 .: add .gitattributes entry to use Go hunk-header driver 4 ani în urmă
.gitignore d74c771fda client/web: always use new web client; remove old client 2 ani în urmă
.golangci.yml f85dc6f97c ci: add more lints (#7909) 2 ani în urmă
ALPINE.txt 88133c361e Docker: add ALPINE.txt to manage alpine versions 3 ani în urmă
AUTHORS a8d8b8719a Move Linux client & common packages into a public repo. 6 ani în urmă
CODEOWNERS 0913ec023b CODEOWNERS: add the start of an owners file 2 ani în urmă
CODE_OF_CONDUCT.md 452b81d56b Add a code of conduct. 6 ani în urmă
Dockerfile 66f27c4beb all: require Go 1.21 2 ani în urmă
Dockerfile.base 1302295299 Dockerfile.base: install iputils 2 ani în urmă
LICENSE 947c14793a all: update tools that manage copyright headers 3 ani în urmă
Makefile 35ad2aafe3 Makefile: make it possibe to pass a custom tag when building dev images (#9461) 2 ani în urmă
PATENTS a8d8b8719a Move Linux client & common packages into a public repo. 6 ani în urmă
README.md 652f77d236 client/web: switch to using prebuilt web client assets 2 ani în urmă
SECURITY.md e59605595e Add a SECURITY.md for vulnerability reports. 6 ani în urmă
VERSION.txt a40e918d63 VERSION.txt: this is v1.55.0 2 ani în urmă
api.md b7988b3825 api.md: remove clientConnectivity.derp field 2 ani în urmă
build_dist.sh 652f77d236 client/web: switch to using prebuilt web client assets 2 ani în urmă
build_docker.sh f9667e4946 Dockerfile: fix docker build 3 ani în urmă
flake.lock fe91160775 flake.nix: use Go 1.21 to build tailscale flake 2 ani în urmă
flake.nix e3dacb3e5e go.mod.sri: update SRI hash for go.mod changes 2 ani în urmă
go.mod 7d4221c295 cmd/tsidp: add start of OIDC Tailscale IdP 2 ani în urmă
go.mod.sri e3dacb3e5e go.mod.sri: update SRI hash for go.mod changes 2 ani în urmă
go.sum 7d4221c295 cmd/tsidp: add start of OIDC Tailscale IdP 2 ani în urmă
go.toolchain.branch fbacc0bd39 go.toolchain: switch to tailscale.go1.21 (#8415) 2 ani în urmă
go.toolchain.rev 6cce5fe001 go.toolchain.rev: bump to Go 1.21.4 (#10189) 2 ani în urmă
gomod_test.go aae1a28a2b go.mod: add test that replace directives aren't added in oss 2 ani în urmă
pull-toolchain.sh 0e4f2bdd0c pull-toolchain.sh: don't run update-flake.sh 3 ani în urmă
shell.nix e3dacb3e5e go.mod.sri: update SRI hash for go.mod changes 2 ani în urmă
staticcheck.conf ece138ffc3 staticcheck.conf: remove unnecessary warning 4 ani în urmă
update-flake.sh f145c2b65b .github/workflows: add workflow to update go.mod Nix SRI hash 3 ani în urmă
version-embed.go da75e49223 version: return correct Meta.MajorMinorPatch in non-dev builds 3 ani în urmă
version_test.go 71029cea2d all: update copyright and license headers 3 ani în urmă

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.