tailscale.com

module
v0.100.0 Latest Latest
Warning

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

Go to latest
Published: Jul 3, 2020 License: BSD-3-Clause

README

Tailscale

https://tailscale.com

Private WireGuard® networks made easy

Overview

This repository contains all the open source Tailscale code. It currently includes the Linux client.

The Linux client is currently cmd/relaynode, but will soon be replaced by cmd/tailscaled.

Using

We serve packages for a variety of distros at https://pkgs.tailscale.com .

Building

go install tailscale.com/cmd/tailscale{,d}

We only guarantee to support the latest Go release and any Go beta or release candidate builds (currently Go 1.14) in module mode. It might work in earlier Go versions or in GOPATH mode, but we're making no effort to keep those working.

Bugs

Please file any issues about this code or the hosted service on the issue tracker.

Contributing

under_construction.gif

PRs welcome, but we are still working out our contribution process and tooling.

We require Developer Certificate of Origin Signed-off-by lines in commits.

About Us

We are apenwarr, bradfitz, crawshaw, danderson, dfcarney, from Tailscale Inc. You can learn more about us from our website.

WireGuard is a registered trademark of Jason A. Donenfeld.

Directories

Path Synopsis
Package atomicfile contains code related to writing to filesystems atomically.
Package atomicfile contains code related to writing to filesystems atomically.
cmd
derper
The derper binary is a simple DERP server.
The derper binary is a simple DERP server.
microproxy
microproxy proxies incoming HTTPS connections to another destination.
microproxy proxies incoming HTTPS connections to another destination.
mkpkg
mkpkg builds the Tailscale rpm and deb packages.
mkpkg builds the Tailscale rpm and deb packages.
tailscale
The tailscale command is the Tailscale command-line client.
The tailscale command is the Tailscale command-line client.
tailscaled
The tailscaled program is the Tailscale client daemon.
The tailscaled program is the Tailscale client daemon.
tsshd
The tsshd binary is an SSH server that accepts connections from anybody on the same Tailscale network.
The tsshd binary is an SSH server that accepts connections from anybody on the same Tailscale network.
control
controlclient
Package controlclient implements the client for the Tailscale control plane.
Package controlclient implements the client for the Tailscale control plane.
Package derp implements DERP, the Detour Encrypted Routing Protocol.
Package derp implements DERP, the Detour Encrypted Routing Protocol.
derphttp
Package derphttp implements DERP-over-HTTP.
Package derphttp implements DERP-over-HTTP.
derpmap
Package derpmap contains information about Tailscale.com's production DERP nodes.
Package derpmap contains information about Tailscale.com's production DERP nodes.
Package disco contains the discovery message types.
Package disco contains the discovery message types.
gokrazy module
internal
deepprint
Package deepprint walks a Go value recursively, in a predictable order, without looping, and prints each value out to a given Writer, which is assumed to be a hash.Hash, as this package doesn't format things nicely.
Package deepprint walks a Go value recursively, in a predictable order, without looping, and prints each value out to a given Writer, which is assumed to be a hash.Hash, as this package doesn't format things nicely.
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.
ipnstate
Package ipnstate captures the entire state of the Tailscale network.
Package ipnstate captures the entire state of the Tailscale network.
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.
log
logheap
Package logheap logs a heap pprof profile.
Package logheap logs a heap pprof profile.
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.
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
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.
interfaces
Package interfaces contains helpers for looking up system network interfaces.
Package interfaces contains helpers for looking up system network interfaces.
netcheck
Package netcheck checks the network conditions from the current host.
Package netcheck checks the network conditions from the current host.
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.
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.
tlsdial
Package tlsdial originally existed to set up a tls.Config for x509 validation, using a memory-optimized path for iOS, but then we moved that to the tailscale/go tree instead, so now this package does very little.
Package tlsdial originally existed to set up a tls.Config for x509 validation, using a memory-optimized path for iOS, but then we moved that to the tailscale/go tree instead, so now this package does very little.
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.
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 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.
Package syncs contains addition sync types.
Package syncs contains addition sync types.
tempfork
osexec
Package exec runs external commands.
Package exec runs external commands.
registry
Package registry provides access to the Windows registry.
Package registry provides access to the Windows registry.
Package tstest provides utilities for use in unit tests.
Package tstest provides utilities for use in unit tests.
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.
Package tsweb contains code used in various Tailscale webservers.
Package tsweb contains code used in various Tailscale webservers.
types
empty
Package empty defines an empty struct type.
Package empty defines an empty struct type.
key
Package key defines some types related to curve25519 keys.
Package key defines some types related to curve25519 keys.
logger
Package logger defines a type for writing to logs.
Package logger defines a type for writing to logs.
opt
Package opt defines optional types.
Package opt defines optional types.
strbuilder
Package strbuilder defines a string builder type that allocates less than the standard library's strings.Builder by using a sync.Pool, so it doesn't matter if the compiler can't prove that the builder doesn't escape into the fmt package, etc.
Package strbuilder defines a string builder type that allocates less than the standard library's strings.Builder by using a sync.Pool, so it doesn't matter if the compiler can't prove that the builder doesn't escape into the fmt package, etc.
structs
Package structs contains the Incomparable type.
Package structs contains the Incomparable type.
Package version provides the version that the binary was built at.
Package version provides the version that the binary was built at.
filter
Package filter contains a stateful packet filter.
Package filter contains 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.
monitor
Package monitor provides facilities for monitoring network interface changes.
Package monitor provides facilities for monitoring network interface changes.
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.
tsdns
Package tsdns provides a Resolver capable of resolving domains on a Tailscale network.
Package tsdns provides a Resolver capable of resolving domains on a Tailscale network.
tstun
Package tstun provides a TUN struct implementing the tun.Device interface with additional features as required by wgengine.
Package tstun provides a TUN struct implementing the tun.Device interface with additional features as required by wgengine.

Jump to

Keyboard shortcuts

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