diff --git a/hosts/Gutterman/default.nix b/hosts/Gutterman/default.nix index f790576..b201ef7 100644 --- a/hosts/Gutterman/default.nix +++ b/hosts/Gutterman/default.nix @@ -10,6 +10,7 @@ ../../modules/nixos/programs/git.nix ../../modules/nixos/services/tailscale + ../../modules/nixos/services/tailscale/exit-node/server.nix ../../modules/nixos/services/gameserver/minecraft-server.nix ../../modules/nixos/system/headless.nix diff --git a/hosts/Swordsmachine/default.nix b/hosts/Swordsmachine/default.nix index f47b19c..d9b3367 100755 --- a/hosts/Swordsmachine/default.nix +++ b/hosts/Swordsmachine/default.nix @@ -14,6 +14,7 @@ ../../modules/nixos/programs/gaming.nix ../../modules/nixos/services/tailscale + ../../modules/nixos/services/tailscale/exit-node/client.nix ../../modules/nixos/system/colors.nix ../../modules/nixos/system/console-colors.nix diff --git a/modules/nixos/services/tailscale/exit-node/client.nix b/modules/nixos/services/tailscale/exit-node/client.nix new file mode 100644 index 0000000..cc8086e --- /dev/null +++ b/modules/nixos/services/tailscale/exit-node/client.nix @@ -0,0 +1,8 @@ +{ config, ... }: + +{ + services.tailscale = { + useRoutingFeatures = "client"; + extraUpFlags = [ "--exit-node-allow-lan-access=true" ]; + }; +} \ No newline at end of file diff --git a/modules/nixos/services/tailscale/exit-node/server.nix b/modules/nixos/services/tailscale/exit-node/server.nix new file mode 100644 index 0000000..387cfd2 --- /dev/null +++ b/modules/nixos/services/tailscale/exit-node/server.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs, ... }: + +{ + services.tailscale = { + useRoutingFeatures = "server"; + extraUpFlags = [ "--advertise-exit-node" ]; + }; + + # performance improvement + environment.systemPackages = [ pkgs.ethtool ]; + services.networkd-dispatcher = { + enable = true; + rules."50-tailscale" = { + onState = [ "routable" ]; + script = '' + ${lib.getExe pkgs.ethtool} -K eth0 rx-udp-gro-forwarding on rx-gro-list off + ''; + }; + }; +} \ No newline at end of file