I got taildrop working fine when sending a file from my NixOS machine to an Iphone but the opposite doesn’t seem to be working: I get “reconnect to tailscale and try again” on the phone.
On the NixOS side, I just started on the background:
$ sudo tailscale file get -wait -verbose .
waiting for file...
In the logs there doesn’t seem to be any particular related error, I see some ACKs but nothing relevant beyond that:
May 11 12:26:53 nixos tailscaled[12466]: Accept: TCP{100.117.13.46:50485 > 100.114.22.77:60886} 64 tcp ok
May 11 12:26:54 nixos tailscaled[12466]: Accept: TCP{100.117.13.46:50485 > 100.114.22.77:60886} 64 tcp ok
May 11 12:26:55 nixos tailscaled[12466]: Accept: TCP{100.117.13.46:50485 > 100.114.22.77:60886} 64 tcp ok
May 11 12:27:04 nixos tailscaled[12466]: Accept: TCP{100.117.13.46:50485 > 100.114.22.77:60886} 64 tcp ok
Given that this is a beta feature, it may be not supported yet so just checking
This is interesting. I just tried to replicate it on my NixOS box and I was unable to have my iPhone XS running Tailscale 1.8.x fail to send me a picture:
$ sudo tailscale file get -wait -verbose .
waiting for file...
wrote IMG_4203.JPG (1642122 bytes)
moved 1 files
I did reboot my NixOS box after updating it from Tailscale 1.6.x to Tailscale 1.8.x though (nixos-unstable had a kernel patch go through), maybe try rebooting and see if that helps? I’m going to take a closer look after this meeting though.
That’s fine, I was just wondering if you could paste the parts that pull from unstable and where you override Tailscale to use the package from unstable so I can recreate that issue in my lab (context: I am a tailscale employee).
I found I have to do the following: networking.firewall.trustedInterfaces = [ "tailscale0" ];
i.e.
# cat tailscale.nix
# Tailscale VPN
{ config, pkgs, lib, ... }:
with lib;
let
enable = true;
openssh = config.services.openssh.enable;
ports = config.services.openssh.ports;
in
{
# Tailscale VPN
services.tailscale.enable = enable;
# allow the Tailscale UDP port through the firewall; is this a nessasary setting? If so when?
# networking.firewall.allowedUDPPorts = [ config.services.tailscale.port ];
# Do we rely upon tailscale controls??? Then:
networking.firewall.trustedInterfaces = [ "tailscale0" ];
# Or be explicit
# networking.firewall.interfaces."tailscale0".allowedTCPPorts = if enable && openssh then ports else []; # allow SSH from VPN
}
It would be really nice to know what ports TailDrop will connect to…
I’d love to configure a mapping between device and directory / owner so that different devices can push to different directories…