tailscaleroot

package module
v1.64.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2024 License: BSD-3-Clause Imports: 1 Imported by: 8

README

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.22. (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:

WireGuard is a registered trademark of Jason A. Donenfeld.

Documentation

Overview

Package tailscaleroot embeds VERSION.txt into the binary.

Index

Constants

This section is empty.

Variables

View Source
var AlpineDockerTag string
View Source
var GoToolchainRev string

GoToolchainRev is the git hash from github.com/tailscale/go that this release should be built using. It may end in a newline.

View Source
var VersionDotTxt string

VersionDotTxt is the contents of VERSION.txt. Despite the tempting filename, this does not necessarily contain the accurate version number of the build, which depends on the branch type and how it was built. To get version information, use the version package instead.

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
Package appc implements App Connectors.
Package appc implements App Connectors.
Package atomicfile contains code related to writing to filesystems atomically.
Package atomicfile contains code related to writing to filesystems atomically.
Package chirp implements a client to communicate with the BIRD Internet Routing Daemon.
Package chirp implements a client to communicate with the BIRD Internet Routing Daemon.
client
tailscale
Package tailscale contains Go clients for the Tailscale LocalAPI and Tailscale control plane API.
Package tailscale contains Go clients for the Tailscale LocalAPI and Tailscale control plane API.
tailscale/apitype
Package apitype contains types for the Tailscale LocalAPI and control plane API.
Package apitype contains types for the Tailscale LocalAPI and control plane API.
tailscale/example/servetls
The servetls program shows how to run an HTTPS server using a Tailscale cert via LetsEncrypt.
The servetls program shows how to run an HTTPS server using a Tailscale cert via LetsEncrypt.
web
Package web provides the Tailscale client for web.
Package web provides the Tailscale client for web.
Package clientupdate implements tailscale client update for all supported platforms.
Package clientupdate implements tailscale client update for all supported platforms.
distsign
Package distsign implements signature and validation of arbitrary distributable files.
Package distsign implements signature and validation of arbitrary distributable files.
cmd
addlicense
Program addlicense adds a license header to a file.
Program addlicense adds a license header to a file.
build-webclient
The build-webclient tool generates the static resources needed for the web client (code at client/web).
The build-webclient tool generates the static resources needed for the web client (code at client/web).
cloner
Cloner is a tool to automate the creation of a Clone method.
Cloner is a tool to automate the creation of a Clone method.
connector-gen
connector-gen is a tool to generate app connector configuration and flags from service provider address data.
connector-gen is a tool to generate app connector configuration and flags from service provider address data.
containerboot
The containerboot binary is a wrapper for starting tailscaled in a container.
The containerboot binary is a wrapper for starting tailscaled in a container.
derper
The derper binary is a simple DERP server.
The derper binary is a simple DERP server.
derpprobe
The derpprobe binary probes derpers.
The derpprobe binary probes derpers.
dist
The dist command builds Tailscale release packages for distribution.
The dist command builds Tailscale release packages for distribution.
get-authkey
get-authkey allocates an authkey using an OAuth API client https://tailscale.com/s/oauth-clients and prints it to stdout for scripts to capture and use.
get-authkey allocates an authkey using an OAuth API client https://tailscale.com/s/oauth-clients and prints it to stdout for scripts to capture and use.
gitops-pusher
Command gitops-pusher allows users to use a GitOps flow for managing Tailscale ACLs.
Command gitops-pusher allows users to use a GitOps flow for managing Tailscale ACLs.
hello
The hello binary runs hello.ts.net.
The hello binary runs hello.ts.net.
k8s-operator
tailscale-operator provides a way to expose services running in a Kubernetes cluster to your Tailnet.
tailscale-operator provides a way to expose services running in a Kubernetes cluster to your Tailnet.
mkmanifest
The mkmanifest command is a simple helper utility to create a '.syso' file that contains a Windows manifest file.
The mkmanifest command is a simple helper utility to create a '.syso' file that contains a Windows manifest file.
mkpkg
mkpkg builds the Tailscale rpm and deb packages.
mkpkg builds the Tailscale rpm and deb packages.
mkversion
mkversion gets version info from git and outputs a bunch of shell variables that get used elsewhere in the build system to embed version numbers into binaries.
mkversion gets version info from git and outputs a bunch of shell variables that get used elsewhere in the build system to embed version numbers into binaries.
nardump
nardump is like nix-store --dump, but in Go, writing a NAR file (tar-like, but focused on being reproducible) to stdout or to a hash with the --sri flag.
nardump is like nix-store --dump, but in Go, writing a NAR file (tar-like, but focused on being reproducible) to stdout or to a hash with the --sri flag.
netlogfmt
netlogfmt parses a stream of JSON log messages from stdin and formats the network traffic logs produced by "tailscale.com/wgengine/netlog" according to the schema in "tailscale.com/types/netlogtype.Message" in a more humanly readable format.
netlogfmt parses a stream of JSON log messages from stdin and formats the network traffic logs produced by "tailscale.com/wgengine/netlog" according to the schema in "tailscale.com/types/netlogtype.Message" in a more humanly readable format.
nginx-auth
Command nginx-auth is a tool that allows users to use Tailscale Whois authentication with NGINX as a reverse proxy.
Command nginx-auth is a tool that allows users to use Tailscale Whois authentication with NGINX as a reverse proxy.
pgproxy
The pgproxy server is a proxy for the Postgres wire protocol.
The pgproxy server is a proxy for the Postgres wire protocol.
printdep
The printdep command is a build system tool for printing out information about dependencies.
The printdep command is a build system tool for printing out information about dependencies.
proxy-to-grafana
proxy-to-grafana is a reverse proxy which identifies users based on their originating Tailscale identity and maps them to corresponding Grafana users, creating them if needed.
proxy-to-grafana is a reverse proxy which identifies users based on their originating Tailscale identity and maps them to corresponding Grafana users, creating them if needed.
sniproxy
The sniproxy is an outbound SNI proxy.
The sniproxy is an outbound SNI proxy.
speedtest
Example usage for client command: go run cmd/speedtest -host 127.0.0.1:20333 -t 5s This will connect to the server on 127.0.0.1:20333 and start a 5 second download speedtest.
Example usage for client command: go run cmd/speedtest -host 127.0.0.1:20333 -t 5s This will connect to the server on 127.0.0.1:20333 and start a 5 second download speedtest.
ssh-auth-none-demo
ssh-auth-none-demo is a demo SSH server that's meant to run on the public internet (at 188.166.70.128 port 2222) and highlight the unique parts of the Tailscale SSH server so SSH client authors can hit it easily and fix their SSH clients without needing to set up Tailscale and Tailscale SSH.
ssh-auth-none-demo is a demo SSH server that's meant to run on the public internet (at 188.166.70.128 port 2222) and highlight the unique parts of the Tailscale SSH server so SSH client authors can hit it easily and fix their SSH clients without needing to set up Tailscale and Tailscale SSH.
stunc
Command stunc makes a STUN request to a STUN server and prints the result.
Command stunc makes a STUN request to a STUN server and prints the result.
stund
The stund binary is a standalone STUN server.
The stund binary is a standalone STUN server.
sync-containers
The sync-containers command synchronizes container image tags from one registry to another.
The sync-containers command synchronizes container image tags from one registry to another.
tailscale
The tailscale command is the Tailscale command-line client.
The tailscale command is the Tailscale command-line client.
tailscale/cli
Package cli contains the cmd/tailscale CLI code in a package that can be included in other wrapper binaries such as the Mac and Windows clients.
Package cli contains the cmd/tailscale CLI code in a package that can be included in other wrapper binaries such as the Mac and Windows clients.
tailscaled
The tailscaled program is the Tailscale client daemon.
The tailscaled program is the Tailscale client daemon.
tailscaled/childproc
Package childproc allows other packages to register "tailscaled be-child" child process hook code.
Package childproc allows other packages to register "tailscaled be-child" child process hook code.
testcontrol
Program testcontrol runs a simple test control server.
Program testcontrol runs a simple test control server.
testwrapper
testwrapper is a wrapper for retrying flaky tests.
testwrapper is a wrapper for retrying flaky tests.
testwrapper/flakytest
Package flakytest contains test helpers for marking a test as flaky.
Package flakytest contains test helpers for marking a test as flaky.
tsconnect
The tsconnect command builds and serves the static site that is generated for the Tailscale Connect JS/WASM client.
The tsconnect command builds and serves the static site that is generated for the Tailscale Connect JS/WASM client.
tsconnect/wasm
The wasm package builds a WebAssembly module that provides a subset of Tailscale APIs to JavaScript.
The wasm package builds a WebAssembly module that provides a subset of Tailscale APIs to JavaScript.
tsidp
The tsidp command is an OpenID Connect Identity Provider server.
The tsidp command is an OpenID Connect Identity Provider server.
viewer
Viewer is a tool to automate the creation of "view" wrapper types that provide read-only accessor methods to underlying fields.
Viewer is a tool to automate the creation of "view" wrapper types that provide read-only accessor methods to underlying fields.
viewer/tests
Package tests serves a list of tests for tailscale.com/cmd/viewer.
Package tests serves a list of tests for tailscale.com/cmd/viewer.
control
controlbase
Package controlbase implements the base transport of the Tailscale 2021 control protocol.
Package controlbase implements the base transport of the Tailscale 2021 control protocol.
controlclient
Package controlclient implements the client for the Tailscale control plane.
Package controlclient implements the client for the Tailscale control plane.
controlhttp
Package controlhttp implements the Tailscale 2021 control protocol base transport over HTTP.
Package controlhttp implements the Tailscale 2021 control protocol base transport over HTTP.
controlknobs
Package controlknobs contains client options configurable from control which can be turned on or off.
Package controlknobs contains client options configurable from control which can be turned on or off.
Package derp implements the Designated Encrypted Relay for Packets (DERP) protocol.
Package derp implements the Designated Encrypted Relay for Packets (DERP) protocol.
derphttp
Package derphttp implements DERP-over-HTTP.
Package derphttp implements DERP-over-HTTP.
Package disco contains the discovery message types.
Package disco contains the discovery message types.
docs
webhooks
Command webhooks provides example consumer code for Tailscale webhooks.
Command webhooks provides example consumer code for Tailscale webhooks.
Package doctor contains more in-depth healthchecks that can be run to aid in diagnosing Tailscale issues.
Package doctor contains more in-depth healthchecks that can be run to aid in diagnosing Tailscale issues.
ethtool
Package ethtool provides a doctor.Check that prints diagnostic information obtained from the 'ethtool' utility on the current system.
Package ethtool provides a doctor.Check that prints diagnostic information obtained from the 'ethtool' utility on the current system.
permissions
Package permissions provides a doctor.Check that prints the process permissions for the running process.
Package permissions provides a doctor.Check that prints the process permissions for the running process.
routetable
Package routetable provides a doctor.Check that dumps the current system's route table to the log.
Package routetable provides a doctor.Check that dumps the current system's route table to the log.
Package drive provides a filesystem that allows sharing folders between Tailscale nodes using WebDAV.
Package drive provides a filesystem that allows sharing folders between Tailscale nodes using WebDAV.
driveimpl
Package driveimpl provides an implementation of package drive.
Package driveimpl provides an implementation of package drive.
driveimpl/compositedav
Package compositedav provides an http.Handler that composes multiple WebDAV services into a single WebDAV service that presents each of them as its own folder.
Package compositedav provides an http.Handler that composes multiple WebDAV services into a single WebDAV service that presents each of them as its own folder.
driveimpl/dirfs
Package dirfs provides a webdav.FileSystem that looks like a read-only directory containing only subdirectories.
Package dirfs provides a webdav.FileSystem that looks like a read-only directory containing only subdirectories.
driveimpl/shared
Package shared contains types and functions shared by different drive packages.
Package shared contains types and functions shared by different drive packages.
Package envknob provides access to environment-variable tweakable debug settings.
Package envknob provides access to environment-variable tweakable debug settings.
logknob
Package logknob provides a helpful wrapper that allows enabling logging based on either an envknob or other methods of enablement.
Package logknob provides a helpful wrapper that allows enabling logging based on either an envknob or other methods of enablement.
Package health is a registry for other packages to report & check overall health status of the node.
Package health is a registry for other packages to report & check overall health status of the node.
healthmsg
Package healthmsg contains some constants for health messages.
Package healthmsg contains some constants for health messages.
Package hostinfo answers questions about the host environment that Tailscale is running on.
Package hostinfo answers questions about the host environment that Tailscale is running on.
ipn
Package ipn implements the interactions between the Tailscale cloud control plane and the local network stack.
Package ipn implements the interactions between the Tailscale cloud control plane and the local network stack.
conffile
Package conffile contains code to load, manipulate, and access config file settings.
Package conffile contains code to load, manipulate, and access config file settings.
ipnauth
Package ipnauth controls access to the LocalAPI.
Package ipnauth controls access to the LocalAPI.
ipnstate
Package ipnstate captures the entire state of the Tailscale network.
Package ipnstate captures the entire state of the Tailscale network.
localapi
Package localapi contains the HTTP server handlers for tailscaled's API server.
Package localapi contains the HTTP server handlers for tailscaled's API server.
policy
Package policy contains various policy decisions that need to be shared between the node client & control server.
Package policy contains various policy decisions that need to be shared between the node client & control server.
store
Package store provides various implementation of ipn.StateStore.
Package store provides various implementation of ipn.StateStore.
store/awsstore
Package awsstore contains an ipn.StateStore implementation using AWS SSM.
Package awsstore contains an ipn.StateStore implementation using AWS SSM.
store/mem
Package mem provides an in-memory ipn.StateStore implementation.
Package mem provides an in-memory ipn.StateStore implementation.
Package jsondb provides a trivial "database": a Go object saved to disk as JSON.
Package jsondb provides a trivial "database": a Go object saved to disk as JSON.
apis/v1alpha1
+kubebuilder:object:generate=true +groupName=tailscale.com
+kubebuilder:object:generate=true +groupName=tailscale.com
Package kube provides a client to interact with Kubernetes.
Package kube provides a client to interact with Kubernetes.
Package licenses provides utilities for working with open source licenses.
Package licenses provides utilities for working with open source licenses.
log
filelogger
Package filelogger provides localdisk log writing & rotation, primarily for Windows clients.
Package filelogger provides localdisk log writing & rotation, primarily for Windows clients.
sockstatlog
Package sockstatlog provides a logger for capturing network socket stats for debugging.
Package sockstatlog provides a logger for capturing network socket stats for debugging.
Package logpolicy manages the creation or reuse of logtail loggers, caching collection instance state on disk for use on future runs of programs on the same machine.
Package logpolicy manages the creation or reuse of logtail loggers, caching collection instance state on disk for use on future runs of programs on the same machine.
Package logtail sends logs to log.tailscale.io.
Package logtail sends logs to log.tailscale.io.
backoff
Package backoff provides a back-off timer type.
Package backoff provides a back-off timer type.
example/logreprocess
The logreprocess program tails a log and reprocesses it.
The logreprocess program tails a log and reprocesses it.
example/logtail
The logtail program logs stdin.
The logtail program logs stdin.
filch
Package filch is a file system queue that pilfers your stderr.
Package filch is a file system queue that pilfers your stderr.
Package metrics contains expvar & Prometheus types and code used by Tailscale for monitoring.
Package metrics contains expvar & Prometheus types and code used by Tailscale for monitoring.
net
art
Package art provides a routing table that implements the Allotment Routing Table (ART) algorithm by Donald Knuth, as described in the paper by Yoichi Hariguchi.
Package art provides a routing table that implements the Allotment Routing Table (ART) algorithm by Donald Knuth, as described in the paper by Yoichi Hariguchi.
connstats
Package connstats maintains statistics about connections flowing through a TUN device (which operate at the IP layer).
Package connstats maintains statistics about connections flowing through a TUN device (which operate at the IP layer).
dns
dns/publicdns
Package publicdns contains mapping and helpers for working with public DNS providers.
Package publicdns contains mapping and helpers for working with public DNS providers.
dns/recursive
Package recursive implements a simple recursive DNS resolver.
Package recursive implements a simple recursive DNS resolver.
dns/resolvconffile
Package resolvconffile parses & serializes /etc/resolv.conf-style files.
Package resolvconffile parses & serializes /etc/resolv.conf-style files.
dns/resolver
Package resolver implements a stub DNS resolver that can also serve records out of an internal local zone.
Package resolver implements a stub DNS resolver that can also serve records out of an internal local zone.
dnscache
Package dnscache contains a minimal DNS cache that makes a bunch of assumptions that are only valid for us.
Package dnscache contains a minimal DNS cache that makes a bunch of assumptions that are only valid for us.
dnsfallback
Package dnsfallback contains a DNS fallback mechanism for starting up Tailscale when the system DNS is broken or otherwise unavailable.
Package dnsfallback contains a DNS fallback mechanism for starting up Tailscale when the system DNS is broken or otherwise unavailable.
flowtrack
Package flowtrack contains types for tracking TCP/UDP flows by 4-tuples.
Package flowtrack contains types for tracking TCP/UDP flows by 4-tuples.
interfaces
Package interfaces contains helpers for looking up system network interfaces.
Package interfaces contains helpers for looking up system network interfaces.
ktimeout
Package ktimeout configures kernel TCP stack timeouts via the provided control functions.
Package ktimeout configures kernel TCP stack timeouts via the provided control functions.
memnet
Package memnet implements an in-memory network implementation.
Package memnet implements an in-memory network implementation.
netaddr
Package netaddr is a transitional package while we finish migrating from inet.af/netaddr to Go 1.18's net/netip.
Package netaddr is a transitional package while we finish migrating from inet.af/netaddr to Go 1.18's net/netip.
netcheck
Package netcheck checks the network conditions from the current host.
Package netcheck checks the network conditions from the current host.
neterror
Package neterror classifies network errors.
Package neterror classifies network errors.
netkernelconf
Package netkernelconf contains code for checking kernel netdev config.
Package netkernelconf contains code for checking kernel netdev config.
netknob
Package netknob has Tailscale network knobs.
Package netknob has Tailscale network knobs.
netmon
Package monitor provides facilities for monitoring network interface and route changes.
Package monitor provides facilities for monitoring network interface and route changes.
netns
Package netns contains the common code for using the Go net package in a logical "network namespace" to avoid routing loops where Tailscale-created packets would otherwise loop back through Tailscale routes.
Package netns contains the common code for using the Go net package in a logical "network namespace" to avoid routing loops where Tailscale-created packets would otherwise loop back through Tailscale routes.
netstat
Package netstat returns the local machine's network connection table.
Package netstat returns the local machine's network connection table.
netutil
Package netutil contains misc shared networking code & types.
Package netutil contains misc shared networking code & types.
packet
Package packet contains packet parsing and marshaling utilities.
Package packet contains packet parsing and marshaling utilities.
packet/checksum
Package checksum provides functions for updating checksums in parsed packets.
Package checksum provides functions for updating checksums in parsed packets.
ping
Package ping allows sending ICMP echo requests to a host in order to determine network latency.
Package ping allows sending ICMP echo requests to a host in order to determine network latency.
portmapper
Package portmapper is a UDP port mapping client.
Package portmapper is a UDP port mapping client.
proxymux
Package proxymux splits a net.Listener in two, routing SOCKS5 connections to one and HTTP requests to the other.
Package proxymux splits a net.Listener in two, routing SOCKS5 connections to one and HTTP requests to the other.
routetable
Package routetable provides functions that operate on the system's route table.
Package routetable provides functions that operate on the system's route table.
socks5
Package socks5 is a SOCKS5 server implementation.
Package socks5 is a SOCKS5 server implementation.
sockstats
Package sockstats collects statistics about network sockets used by the Tailscale client.
Package sockstats collects statistics about network sockets used by the Tailscale client.
speedtest
Package speedtest contains both server and client code for running speedtests between tailscale nodes.
Package speedtest contains both server and client code for running speedtests between tailscale nodes.
stun
Package STUN generates STUN request packets and parses response packets.
Package STUN generates STUN request packets and parses response packets.
stun/stuntest
Package stuntest provides a STUN test server.
Package stuntest provides a STUN test server.
stunserver
Package stunserver implements a STUN server.
Package stunserver implements a STUN server.
tcpinfo
Package tcpinfo provides platform-agnostic accessors to information about a TCP connection (e.g.
Package tcpinfo provides platform-agnostic accessors to information about a TCP connection (e.g.
tlsdial
Package tlsdial generates tls.Config values and does x509 validation of certs.
Package tlsdial generates tls.Config values and does x509 validation of certs.
tsaddr
Package tsaddr handles Tailscale-specific IPs and ranges.
Package tsaddr handles Tailscale-specific IPs and ranges.
tsdial
Package tsdial provides a Dialer type that can dial out of tailscaled.
Package tsdial provides a Dialer type that can dial out of tailscaled.
tshttpproxy
Package tshttpproxy contains Tailscale additions to httpproxy not available in golang.org/x/net/http/httpproxy.
Package tshttpproxy contains Tailscale additions to httpproxy not available in golang.org/x/net/http/httpproxy.
tstun
Package tun creates a tuntap device, working around OS-specific quirks if necessary.
Package tun creates a tuntap device, working around OS-specific quirks if necessary.
wsconn
Package wsconn contains an adapter type that turns a websocket connection into a net.Conn.
Package wsconn contains an adapter type that turns a websocket connection into a net.Conn.
packages
deb
Package deb extracts metadata from Debian packages.
Package deb extracts metadata from Debian packages.
Package paths returns platform and user-specific default paths to Tailscale files and directories.
Package paths returns platform and user-specific default paths to Tailscale files and directories.
The portlist package contains code that checks what ports are open and listening on the current machine.
The portlist package contains code that checks what ports are open and listening on the current machine.
Package prober implements a simple blackbox prober.
Package prober implements a simple blackbox prober.
Package proxymap contains a mapping table for ephemeral localhost ports used by tailscaled on behalf of remote Tailscale IPs for proxied connections.
Package proxymap contains a mapping table for ephemeral localhost ports used by tailscaled on behalf of remote Tailscale IPs for proxied connections.
Package release provides functionality for building client releases.
Package release provides functionality for building client releases.
dist
Package dist is a release artifact builder library.
Package dist is a release artifact builder library.
dist/cli
Package cli provides the skeleton of a CLI for building release packages.
Package cli provides the skeleton of a CLI for building release packages.
dist/synology
Package synology contains dist Targets for building Synology Tailscale packages.
Package synology contains dist Targets for building Synology Tailscale packages.
dist/unixpkgs
Package unixpkgs contains dist Targets for building unix Tailscale packages.
Package unixpkgs contains dist Targets for building unix Tailscale packages.
Package safesocket creates either a Unix socket, if possible, or otherwise a localhost TCP connection.
Package safesocket creates either a Unix socket, if possible, or otherwise a localhost TCP connection.
Package safeweb provides a wrapper around an http.Server that applies basic web application security defenses by default.
Package safeweb provides a wrapper around an http.Server that applies basic web application security defenses by default.
Package smallzstd produces zstd encoders and decoders optimized for low memory usage, at the expense of compression efficiency.
Package smallzstd produces zstd encoders and decoders optimized for low memory usage, at the expense of compression efficiency.
ssh
tailssh
Package tailssh is an SSH server integrated into Tailscale.
Package tailssh is an SSH server integrated into Tailscale.
Package syncs contains additional sync types and functionality.
Package syncs contains additional sync types and functionality.
Package taildrop contains the implementation of the Taildrop functionality including sending and retrieving files.
Package taildrop contains the implementation of the Taildrop functionality including sending and retrieving files.
tempfork
gliderlabs/ssh
Package ssh wraps the crypto/ssh package with a higher-level API for building SSH servers.
Package ssh wraps the crypto/ssh package with a higher-level API for building SSH servers.
heap
Package heap provides heap operations for any type that implements heap.Interface.
Package heap provides heap operations for any type that implements heap.Interface.
Package tka (WIP) implements the Tailnet Key Authority.
Package tka (WIP) implements the Tailnet Key Authority.
tool
Package tsconst exports some constants used elsewhere in the codebase.
Package tsconst exports some constants used elsewhere in the codebase.
Package tsd (short for "Tailscale Daemon") contains a System type that containing all the subsystems a Tailscale node (tailscaled or platform equivalent) uses.
Package tsd (short for "Tailscale Daemon") contains a System type that containing all the subsystems a Tailscale node (tailscaled or platform equivalent) uses.
Package tsnet provides Tailscale as a library.
Package tsnet provides Tailscale as a library.
example/tshello
The tshello server demonstrates how to use Tailscale as a library.
The tshello server demonstrates how to use Tailscale as a library.
example/tsnet-funnel
The tsnet-funnel server demonstrates how to use tsnet with Funnel.
The tsnet-funnel server demonstrates how to use tsnet with Funnel.
example/tsnet-http-client
The tshello server demonstrates how to use Tailscale as a library.
The tshello server demonstrates how to use Tailscale as a library.
example/web-client
The web-client command demonstrates serving the Tailscale web client over tsnet.
The web-client command demonstrates serving the Tailscale web client over tsnet.
Package tstest provides utilities for use in unit tests.
Package tstest provides utilities for use in unit tests.
deptest
The deptest package contains a shared implementation of negative dependency tests for other packages, making sure we don't start depending on certain packages.
The deptest package contains a shared implementation of negative dependency tests for other packages, making sure we don't start depending on certain packages.
integration
Package integration contains Tailscale integration tests.
Package integration contains Tailscale integration tests.
integration/testcontrol
Package testcontrol contains a minimal control plane server for testing purposes.
Package testcontrol contains a minimal control plane server for testing purposes.
integration/vms
Package vms does VM-based integration/functional tests by using qemu and a bank of pre-made VM images.
Package vms does VM-based integration/functional tests by using qemu and a bank of pre-made VM images.
iosdeps
Package iosdeps is a just a list of the packages we import on iOS, to let us test that our transitive closure of dependencies on iOS doesn't accidentally grow too large, as we've historically been memory constrained there.
Package iosdeps is a just a list of the packages we import on iOS, to let us test that our transitive closure of dependencies on iOS doesn't accidentally grow too large, as we've historically been memory constrained there.
jsdeps
Package jsdeps is a just a list of the packages we import in the JavaScript/WASM build, to let us test that our transitive closure of dependencies doesn't accidentally grow too large, since binary size is more of a concern.
Package jsdeps is a just a list of the packages we import in the JavaScript/WASM build, to let us test that our transitive closure of dependencies doesn't accidentally grow too large, since binary size is more of a concern.
natlab
Package natlab lets us simulate different types of networks all in-memory without running VMs or requiring root, etc.
Package natlab lets us simulate different types of networks all in-memory without running VMs or requiring root, etc.
Package tstime defines Tailscale-specific time utilities.
Package tstime defines Tailscale-specific time utilities.
mono
Package mono provides fast monotonic time.
Package mono provides fast monotonic time.
rate
Package rate provides a rate limiter.
Package rate provides a rate limiter.
Package tsweb contains code used in various Tailscale webservers.
Package tsweb contains code used in various Tailscale webservers.
promvarz
Package promvarz combines Prometheus metrics exported by our expvar converter (tsweb/varz) with metrics exported by the official Prometheus client.
Package promvarz combines Prometheus metrics exported by our expvar converter (tsweb/varz) with metrics exported by the official Prometheus client.
varz
Package varz contains code to export metrics in Prometheus format.
Package varz contains code to export metrics in Prometheus format.
types
appctype
Package appcfg contains an experimental configuration structure for "tailscale.com/app-connectors" capmap extensions.
Package appcfg contains an experimental configuration structure for "tailscale.com/app-connectors" capmap extensions.
dnstype
Package dnstype defines types for working with DNS.
Package dnstype defines types for working with DNS.
empty
Package empty defines an empty struct type.
Package empty defines an empty struct type.
flagtype
Package flagtype defines flag.Value types.
Package flagtype defines flag.Value types.
ipproto
Package ipproto contains IP Protocol constants.
Package ipproto contains IP Protocol constants.
key
lazy
Package lazy provides types for lazily initialized values.
Package lazy provides types for lazily initialized values.
logger
Package logger defines a type for writing to logs.
Package logger defines a type for writing to logs.
logid
Package logid contains ID types for interacting with the log service.
Package logid contains ID types for interacting with the log service.
netlogtype
Package netlogtype defines types for network logging.
Package netlogtype defines types for network logging.
netmap
Package netmap contains the netmap.NetworkMap type.
Package netmap contains the netmap.NetworkMap type.
nettype
Package nettype defines an interface that doesn't exist in the Go net package.
Package nettype defines an interface that doesn't exist in the Go net package.
opt
Package opt defines optional types.
Package opt defines optional types.
persist
Package persist contains the Persist type.
Package persist contains the Persist type.
preftype
Package preftype is a leaf package containing types for various preferences.
Package preftype is a leaf package containing types for various preferences.
ptr
Package ptr contains the ptr.To function.
Package ptr contains the ptr.To function.
structs
Package structs contains the Incomparable type.
Package structs contains the Incomparable type.
tkatype
Package tkatype defines types for working with the tka package.
Package tkatype defines types for working with the tka package.
views
Package views provides read-only accessors for commonly used value types.
Package views provides read-only accessors for commonly used value types.
util
cache
Package cache contains an interface for a cache around a typed value, and various cache implementations that implement that interface.
Package cache contains an interface for a cache around a typed value, and various cache implementations that implement that interface.
cibuild
Package cibuild reports runtime CI information.
Package cibuild reports runtime CI information.
clientmetric
Package clientmetric provides client-side metrics whose values get occasionally logged.
Package clientmetric provides client-side metrics whose values get occasionally logged.
cloudenv
Package cloudenv reports which known cloud environment we're running in.
Package cloudenv reports which known cloud environment we're running in.
cmpver
Package cmpver implements a variant of debian version number comparison.
Package cmpver implements a variant of debian version number comparison.
codegen
Package codegen contains shared utilities for generating code.
Package codegen contains shared utilities for generating code.
cstruct
Package cstruct provides a helper for decoding binary data that is in the form of a padded C structure.
Package cstruct provides a helper for decoding binary data that is in the form of a padded C structure.
ctxkey
ctxkey provides type-safe key-value pairs for use with context.Context.
ctxkey provides type-safe key-value pairs for use with context.Context.
deephash
Package deephash hashes a Go value recursively, in a predictable order, without looping.
Package deephash hashes a Go value recursively, in a predictable order, without looping.
deephash/testtype
Package testtype contains types for testing deephash.
Package testtype contains types for testing deephash.
dirwalk
Package dirwalk contains code to walk a directory.
Package dirwalk contains code to walk a directory.
dnsname
Package dnsname contains string functions for working with DNS names.
Package dnsname contains string functions for working with DNS names.
execqueue
Package execqueue implements an ordered asynchronous queue for executing functions.
Package execqueue implements an ordered asynchronous queue for executing functions.
expvarx
Package expvarx provides some extensions to the expvar package.
Package expvarx provides some extensions to the expvar package.
fastuuid
Package fastuuid implements a UUID construction using an in process CSPRNG.
Package fastuuid implements a UUID construction using an in process CSPRNG.
goroutines
The goroutines package contains utilities for getting active goroutines.
The goroutines package contains utilities for getting active goroutines.
groupmember
Package groupmember verifies group membership of the provided user on the local system.
Package groupmember verifies group membership of the provided user on the local system.
hashx
Package hashx provides a concrete implementation of hash.Hash that operates on a particular block size.
Package hashx provides a concrete implementation of hash.Hash that operates on a particular block size.
httphdr
Package httphdr implements functionality for parsing and formatting standard HTTP headers.
Package httphdr implements functionality for parsing and formatting standard HTTP headers.
httpm
Package httpm has shorter names for HTTP method constants.
Package httpm has shorter names for HTTP method constants.
jsonutil
Package jsonutil provides utilities to improve JSON performance.
Package jsonutil provides utilities to improve JSON performance.
lineread
Package lineread reads lines from files.
Package lineread reads lines from files.
linuxfw/linuxfwtest
Package linuxfwtest contains tests for the linuxfw package.
Package linuxfwtest contains tests for the linuxfw package.
lru
Package lru contains a typed Least-Recently-Used cache.
Package lru contains a typed Least-Recently-Used cache.
mak
Package mak helps make maps.
Package mak helps make maps.
multierr
Package multierr provides a simple multiple-error type.
Package multierr provides a simple multiple-error type.
must
Package must assists in calling functions that must succeed.
Package must assists in calling functions that must succeed.
nocasemaps
nocasemaps provides efficient functions to set and get entries in Go maps keyed by a string, where the string is always lower-case.
nocasemaps provides efficient functions to set and get entries in Go maps keyed by a string, where the string is always lower-case.
osdiag
Package osdiag provides loggers for OS-specific diagnostic information.
Package osdiag provides loggers for OS-specific diagnostic information.
osuser
Package osuser implements OS user lookup.
Package osuser implements OS user lookup.
pidowner
Package pidowner handles lookups from process ID to its owning user.
Package pidowner handles lookups from process ID to its owning user.
precompress
Package precompress provides build- and serving-time support for precompressed static resources, to avoid the cost of repeatedly compressing unchanging resources.
Package precompress provides build- and serving-time support for precompressed static resources, to avoid the cost of repeatedly compressing unchanging resources.
progresstracking
Package progresstracking provides wrappers around io.Reader and io.Writer that track progress.
Package progresstracking provides wrappers around io.Reader and io.Writer that track progress.
quarantine
Package quarantine sets platform specific "quarantine" attributes on files that are received from other hosts.
Package quarantine sets platform specific "quarantine" attributes on files that are received from other hosts.
race
Package race contains a helper to "race" two functions, returning the first successful result.
Package race contains a helper to "race" two functions, returning the first successful result.
racebuild
Package racebuild exports a constant about whether the current binary was built with the race detector.
Package racebuild exports a constant about whether the current binary was built with the race detector.
rands
Package rands contains utility functions for randomness.
Package rands contains utility functions for randomness.
reload
Package reload contains functions that allow periodically reloading a value (e.g.
Package reload contains functions that allow periodically reloading a value (e.g.
ringbuffer
Package ringbuffer contains a fixed-size concurrency-safe generic ring buffer.
Package ringbuffer contains a fixed-size concurrency-safe generic ring buffer.
set
Package set contains set types.
Package set contains set types.
singleflight
Package singleflight provides a duplicate function call suppression mechanism.
Package singleflight provides a duplicate function call suppression mechanism.
slicesx
Package slicesx contains some helpful generic slice functions.
Package slicesx contains some helpful generic slice functions.
syspolicy
Package syspolicy provides functions to retrieve system settings of a device.
Package syspolicy provides functions to retrieve system settings of a device.
sysresources
Package sysresources provides OS-independent methods of determining the resources available to the current system.
Package sysresources provides OS-independent methods of determining the resources available to the current system.
systemd
Package systemd contains a minimal wrapper around systemd-notify to enable applications to signal readiness and status to systemd.
Package systemd contains a minimal wrapper around systemd-notify to enable applications to signal readiness and status to systemd.
testenv
Package testenv provides utility functions for tests.
Package testenv provides utility functions for tests.
topk
Package topk defines a count-min sketch and a cheap probabilistic top-K data structure that uses the count-min sketch to track the top K items in constant memory and O(log(k)) time.
Package topk defines a count-min sketch and a cheap probabilistic top-K data structure that uses the count-min sketch to track the top K items in constant memory and O(log(k)) time.
truncate
Package truncate provides a utility function for safely truncating UTF-8 strings to a fixed length, respecting multi-byte codepoints.
Package truncate provides a utility function for safely truncating UTF-8 strings to a fixed length, respecting multi-byte codepoints.
uniq
Package uniq provides removal of adjacent duplicate elements in slices.
Package uniq provides removal of adjacent duplicate elements in slices.
vizerror
Package vizerror provides types and utility funcs for handling visible errors that are safe to display to end users.
Package vizerror provides types and utility funcs for handling visible errors that are safe to display to end users.
winutil
Package winutil contains misc Windows/Win32 helper functions.
Package winutil contains misc Windows/Win32 helper functions.
winutil/policy
Package policy contains higher-level abstractions for accessing Windows enterprise policies.
Package policy contains higher-level abstractions for accessing Windows enterprise policies.
zstdframe
Package zstdframe provides functionality for encoding and decoding independently compressed zstandard frames.
Package zstdframe provides functionality for encoding and decoding independently compressed zstandard frames.
Package version provides the version that the binary was built at.
Package version provides the version that the binary was built at.
distro
Package distro reports which distro we're running on.
Package distro reports which distro we're running on.
mkversion
Package mkversion gets version info from git and provides a bunch of differently formatted version strings that get used elsewhere in the build system to embed version numbers into binaries.
Package mkversion gets version info from git and provides a bunch of differently formatted version strings that get used elsewhere in the build system to embed version numbers into binaries.
bench
Create two wgengine instances and pass data through them, measuring throughput, latency, and packet loss.
Create two wgengine instances and pass data through them, measuring throughput, latency, and packet loss.
capture
Package capture formats packet logging into a debug pcap stream.
Package capture formats packet logging into a debug pcap stream.
filter
Package filter is a stateful packet filter.
Package filter is a stateful packet filter.
magicsock
Package magicsock implements a socket that can change its communication path while in use, actively searching for the best way to communicate.
Package magicsock implements a socket that can change its communication path while in use, actively searching for the best way to communicate.
netlog
Package netlog provides a logger that monitors a TUN device and periodically records any traffic into a log stream.
Package netlog provides a logger that monitors a TUN device and periodically records any traffic into a log stream.
netstack
Package netstack wires up gVisor's netstack into Tailscale.
Package netstack wires up gVisor's netstack into Tailscale.
router
Package router presents an interface to manipulate the host network stack's state.
Package router presents an interface to manipulate the host network stack's state.
wgcfg
Package wgcfg has types and a parser for representing WireGuard config.
Package wgcfg has types and a parser for representing WireGuard config.
wgcfg/nmcfg
Package nmcfg converts a controlclient.NetMap into a wgcfg config.
Package nmcfg converts a controlclient.NetMap into a wgcfg config.
wgint
Package wgint provides somewhat shady access to wireguard-go internals that don't (yet) have public APIs.
Package wgint provides somewhat shady access to wireguard-go internals that don't (yet) have public APIs.
wglog
Package wglog contains logging helpers for wireguard-go.
Package wglog contains logging helpers for wireguard-go.
Package words contains accessors for some nice words.
Package words contains accessors for some nice words.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL