What are the detailed system requirements for running Tailscale on Linux?

I recently purchased an eReader that runs Linux. I’d love to put it on my Tailscale network, but I’m not exactly sure what the system requirements for Tailscale are besides needing a kernel compiled with the TUN/TAP driver enabled (CONFIG_TUN=y).

Outside of things like CPU and memory requirements, what system-level features does a Linux host need in order to run Tailscale? Since this is an embedded device, assume maximum levels of tomfoolery.

You don’t even have to have TUN/TAP. You can use Tailscale as a SOCKS5 proxy.

Appreciate you pointing that out, but my eReader doesn’t support configuring a proxy.

logtail started
Program starting: v1.16.1-tab40ff74e-gd605b5271, Go 1.17.1-ts097d1284f9: []string{"./tailscaled", "--state=tailscaled.state"}
LogID: 5a0eb6cb979e492460a711fb2eb7d4a9935d4399279ae8684e3ba3f8aa993222
logpolicy: using system state directory "/var/lib/tailscale"
logpolicy.Read /var/lib/tailscale/tailscaled.log.conf: open /var/lib/tailscale/tailscaled.log.conf: no such file or directory
wgengine.NewUserspaceEngine(tun "tailscale0") ...
wgengine.NewUserspaceEngine(tun "tailscale0") error: exec: "iptables": executable file not found in $PATH
wgengine.New: exec: "iptables": executable file not found in $PATH
flushing log.
logger closing down
logtail: dialed "log.tailscale.io:443" in 86ms

Looks like it wants iptables. After compiling libmnl, libnftnl, and iptables on a Raspberry Pi running Debian 8 in Docker, I was able to copy the iptables binary to my eReader and get Tailscale up and running!

image

I did see some IPv6 errors though, not sure if these are that big of a deal:

[unexpected] peerapi listen("fd7a:115c:a1e0:ab12:4843:cd96:6261:936f") error: listen tcp6 [fd7a:115c:a1e0:ab12:4843:cd96:6261:936f]:0: bind: cannot assign requested address
netmap diff:
- [JUB2v] d:119d659a2e6e4729 D10 100.88.121.76 fd7a:115c:a1e0:ab12:4843:cd96:6258:794c/128 :  174.31.253.169:41227  192.168.50.133:41227 [2600:100f:105f:95d6:4669:45cd:a098:4f8f]:41227 [2600:100f:b06b:946f:c462:95c4:dab2:5dfa]:41227
+ [JUB2v] d:119d659a2e6e4729 D10 100.88.121.76 fd7a:115c:a1e0:ab12:4843:cd96:6258:794c/128 :  174.31.253.169:41227  192.168.50.133:41227 [2600:100f:105f:95d6:4669:45cd:a098:4f8f]:41227
peerapi: serving on http://100.97.147.111:56597
[unexpected] peerapi listen("fd7a:115c:a1e0:ab12:4843:cd96:6261:936f") error: listen tcp6 [fd7a:115c:a1e0:ab12:4843:cd96:6261:936f]:0: bind: cannot assign requested address