diff options
| author | Devin Finlinson <devin.finlinson@pm.me> | 2026-03-28 16:01:01 -0600 |
|---|---|---|
| committer | Devin Finlinson <devin.finlinson@pm.me> | 2026-03-28 16:01:01 -0600 |
| commit | b956f3ebd611c9354a4138e8dfa5bfbed5a45894 (patch) | |
| tree | 03135dc59e10237abfd2a4ce8669dc90010d3df7 /machines/biski/portforward.nix | |
| parent | cf31c63d296c728f5431bf8af0e7df80eb295bca (diff) | |
set up port forwarding module for list of ports
Diffstat (limited to 'machines/biski/portforward.nix')
| -rw-r--r-- | machines/biski/portforward.nix | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/machines/biski/portforward.nix b/machines/biski/portforward.nix new file mode 100644 index 0000000..a2fd58a --- /dev/null +++ b/machines/biski/portforward.nix @@ -0,0 +1,45 @@ +{ config, lib, ... }: { + networking = let + forward_ports = [ + 25565 + 25566 + ]; + forward_protocols = [ "tcp" "udp" ]; + internal_ip = "100.64.0.2"; + in { + firewall = { + enable = true; + allowedUDPPorts = forward_ports; + allowedTCPPorts = forward_ports; + }; + nat = { + enable = true; + internalInterfaces = [ "tailscale0" ]; + externalInterface = "eno1"; + + forwardPorts = builtins.concatLists ( + lib.lists.forEach forward_protocols (protocol: + builtins.concatMap (port: [ + { + destination = "${internal_ip}:${toString port}"; + proto = protocol; + sourcePort = port; + } + ]) forward_ports + ) + ); + }; + nftables = { + enable = true; + flushRuleset = true; + tables.nixos-nat = { + family = "ip"; + content = '' + chain post { + masquerade + } + ''; + }; + }; + }; +} |
