Я играю, чтобы захватить пакет с помощью libnetfilter_conntrack
Следующий код работал до сих пор на Ubuntu, кроме Ubuntu 18.04.
Нет выходных данных, несмотря на просмотр или доступ к ssh.
Знаете ли вы, почему ???
static int cb(enum nf_conntrack_msg_type eMsgType,
struct nf_conntrack *psConntrack,
void *pvData)
{
char buf[1024] = {0,};
nfct_snprintf(buf, sizeof(buf), psConntrack, eMsgType, NFCT_O_DEFAULT, NFCT_OF_TIME);
printf("%s\n", buf);
return NFCT_CB_STOP;
}
int main()
{
struct nfct_handle *pSNfctHandle;
pSNfctHandle = nfct_open(CONNTRACK, NFCT_ALL_CT_GROUPS);
nfct_callback_register(pSNfctHandle, NFCT_T_ALL, cb, NULL);
nfct_catch(pSNfctHandle);
nfct_close(pSNfctHandle);
return 0;
}
Я тестировал после добавления модулей ядра nf_conntrack, nf_conntrack_ipv4, nf_conntrack_netlink.