nft to narzędzie wiersza poleceń do obsługi nftables — następcy starego iptables w nowoczesnych dystrybucjach Linuksa (od jądra 3.13). Jednym frameworkiem ogarniasz filtrowanie pakietów IPv4 i IPv6, NAT, mangling i kolejkowanie. Zamiast czterech osobnych narzędzi (iptables, ip6tables, arptables, ebtables) masz jedną składnię, jeden ruleset i atomowe przeładowania reguł. Reguły organizujesz w tablice (table), te dzielą się na łańcuchy (chain), a w łańcuchach siedzą konkretne reguły.
Składnia i najważniejsze opcje
Podstawowa forma: nft [opcje] 'polecenie obiekt specyfikacja'
-a, --handle— pokazuje uchwyty (handle) obiektów; bez nich nie usuniesz pojedynczej reguły.-n, --numeric— wyświetla dane liczbowo, bez rozwiązywania adresów na nazwy. Podany dwa razy pokazuje też porty, trzy razy protokoły i UID/GID.-s, --stateless— pomija informacje stanowe (liczniki) — przydatne do diffów i backupów.-c, --check— sprawdza poprawność poleceń bez ich zastosowania (suchy bieg).-f— wczytuje polecenia z pliku;-f -czyta ze stdin. Tak wgrywa się cały ruleset atomowo.-e, --echo— przyadd/insert/replacewypisuje dodaną regułę (jaknft monitor).-j, --json— formatuje wyjście w JSON, wygodne do parsowania w skryptach.
Przykłady użycia
nft list ruleset— wyrzuca cały aktualny zestaw reguł. Twój punkt startowy do każdej diagnozy.nft -a list ruleset— to samo, ale z uchwytami; potrzebne, żeby cokolwiek precyzyjnie skasować.nft add table inet filter— tworzy tablicęfilterrodzinyinet(obejmuje naraz IPv4 i IPv6).nft add rule inet filter input tcp dport 22 accept— przepuszcza ruch SSH na porcie 22.nft delete rule inet filter input handle 7— usuwa regułę o uchwycie 7 (numer odczytasz z-a).nft -f /etc/nftables.conf— wczytuje pełną konfigurację z pliku; tak ładuje ruleset usługanftables.service.
Częste błędy i pułapki
nft nie zapisuje zmian na dysk. Reguły dodane w locie znikają po reboocie — żeby przetrwały, wpisz je do /etc/nftables.conf i włącz systemctl enable nftables. Druga klasyczna wtopa: nft flush ruleset kasuje wszystko, łącznie z regułą wpuszczającą Twoje SSH — na zdalnym serwerze tak odcinasz się od maszyny. Testuj politykę z -c albo trzymaj awaryjny cron z flush. Pamiętaj też, że łańcuch bez słowa policy drop domyślnie akceptuje ruch, a reguły działają w kolejności od góry — pierwsze trafienie accept/drop decyduje. Na koniec: jeśli na systemie działa równolegle stary iptables-legacy, reguły mogą się nakładać i wprowadzać chaos — sprawdź, czy używasz wariantu iptables-nft.
Powiązane komendy: iptables, ip6tables, nft monitor, systemctl, ip, conntrack, ufw, firewalld.