Go to file
Avery Pennarun a496cdc943 router_linux: remove need for iptables.ListChains().
Instead of retrieving the list of chains, or the list of rules in a
chain, just try deleting the ones we don't want and then adding the
ones we do want. An error in flushing/deleting still means the rule
doesn't exist anymore, so there was no need to check for it first.

This avoids the need to parse iptables output, which avoids the need to
ever call iptables -S, which fixes #403, among other things. It's also
much more future proof in case the iptables command line changes.

Unfortunately the iptables go module doesn't properly pass the iptables
command exit code back up when doing .Delete(), so we can't correctly
check the exit code there. (exit code 1 really means the rule didn't
exist, rather than some other weird problem).

Signed-off-by: Avery Pennarun <apenwarr@tailscale.com>
2020-05-28 07:15:05 -04:00
.github Disable staticcheck for tempfork packages. 2020-04-24 20:46:06 -07:00
atomicfile scripts: add a license header checker. 2020-03-17 21:34:44 -07:00
cmd cmd/tailscale: make ip_forward warnings more actionable. 2020-05-28 07:07:39 -04:00
control/controlclient control/controlclient: use "getprop net.hostname" for Android hostname 2020-05-27 12:50:41 -07:00
derp all: make client use server-provided DERP map, add DERP region support 2020-05-23 22:31:59 -07:00
ipn router_linux: use only baseline 'ip rule' features that exist in old kernels. 2020-05-28 07:07:39 -04:00
log/logheap tailcfg: add MapResponse.Debug mechanism to trigger logging heap pprof 2020-05-25 15:22:13 -07:00
logpolicy ipnserver and logpolicy: configure zstd with low-memory settings. 2020-05-20 11:23:26 -04:00
logtail filch_test: clarify the use of os.RemoveAll(). 2020-05-27 18:50:44 -04:00
metrics metrics: add a LabelMap type for variables with 1 label dimension. 2020-03-04 13:22:50 -08:00
net net/netcheck: fix race condition initializting RegionLatency maps. 2020-05-28 03:41:37 -04:00
paths paths: use /var/db for state on BSDs, and /var/run for sockets. 2020-03-03 17:49:31 -08:00
portlist portlist: fix "readdirent: no such file or directory" errors on Linux. 2020-05-19 01:51:21 -04:00
safesocket safesocket: gofmt 2020-03-30 11:23:18 -07:00
scripts wgengine/router: split out from wgengine. 2020-04-30 13:31:24 -07:00
syncs syncs: add new package for extra sync types 2020-03-12 11:13:33 -07:00
tailcfg tailcfg: add MapResponse.Debug mechanism to trigger logging heap pprof 2020-05-25 15:22:13 -07:00
tempfork tempfork/x509: moved to tailscale/go's crypto/x509 instead 2020-04-27 08:14:54 -07:00
tstest tstest: document PanicOnLog 2020-05-14 10:05:32 -07:00
tstime tstime: hand-implement parseInt for specific needs of rfc3339 parsing. 2020-04-14 12:36:55 -07:00
tsweb tstest: rename from testy. 2020-04-28 20:45:12 -07:00
types types/strbuilder: add a variant of strings.Builder that uses sync.Pool 2020-05-25 08:50:48 -07:00
version version: bump date 2020-04-10 08:23:36 -07:00
wgengine router_linux: remove need for iptables.ListChains(). 2020-05-28 07:15:05 -04:00
.gitattributes .gitattributes: add a smudge filter for go.mod. 2020-02-19 20:02:02 -05:00
.gitignore cmd/relaynode: drop local --acl-file in favour of central packet filter. 2020-02-20 00:15:43 -05:00
AUTHORS Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
CODE_OF_CONDUCT.md Add a code of conduct. 2020-02-10 22:16:30 -08:00
Dockerfile Dockerfile: install iproute2 in the container image. 2020-05-10 17:12:17 -07:00
LICENSE Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
PATENTS Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
README.md Dockerfile: add some usage docs, bump to Go 1.14 2020-04-06 07:57:47 -07:00
SECURITY.md Add a SECURITY.md for vulnerability reports. 2020-02-11 10:26:41 -08:00
go.mod all: make client use server-provided DERP map, add DERP region support 2020-05-23 22:31:59 -07:00
go.sum all: make client use server-provided DERP map, add DERP region support 2020-05-23 22:31:59 -07:00

README.md

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.