Как отслеживать исходящие соединения nat с помощью nftables. Достаточно посмотреть на статистику, какие адреса вывода используются более-менее.
root@nat-1:~# nft list table nat
table ip nat {
chain post {
type nat hook postrouting priority 100; policy accept;
ip saddr 10.0.0.0/8 oif "bond0.926" snat to 19.246.159.1-19.246.159.7
}
chain pre {
type nat hook prerouting priority -100; policy accept;
}
}
netstat-nat больше работает с iptables, но не с nftables.
netstat-nat -S
Could not read info about connections from the kernel, make sure netfilter is enabled in kernel or by modules.
Я, конечно, могу использовать tcpdump, но должна быть какая-нибудь более приятная утилита ;-)
iptables или столы не выполняют NAT: сетевой фильтр Является ли. iptables и столы используют крючки в сетевой фильтр отдать «приказы» для создания новых состояний NAT. После этого все обрабатывается непосредственно сетевой фильтр (поэтому для обоих iptables и столы, виден только первый пакет таблицы / типа nat). Таким образом, хранителем состояния NAT является netfilter и его подсистема conntrack.
Сейчас, netstat-nat
использует предоставленный ядром файл /proc/net/nf_conntrack
для отображения информации conntrack. Если этот файл недоступен (например: не имеет полных привилегий root, запускается в контейнере, не отображая эту часть /proc
и т. д.) вы можете получить ошибку. Я не знаю, почему это не так, но в любом случае вот конкретный бэкэнд-инструмент conntrack: conntrack
(из Conntrack-Tools), который полагается исключительно на новый API (netlink) скорее, чем /proc
. На его странице руководства эквивалентная команда (конечно, с совершенно другим выводом) будет:
conntrack -L -n
КОМАНДЫ
[...]
-L --дамп
Список отслеживания соединений или таблица ожидания
[...]
-E, --event
Отображение журнала событий в реальном времени.
[...]ПАРАМЕТРЫ ФИЛЬТРА
[...]
-n, --src-nat
Фильтрация исходных соединений NAT.
Вы даже можете следить за состояниями NAT источника в режиме реального времени, используя режим событий:
conntrack -E -n