Kernel 3.4.6 - netstat nic nie pokazuje?

Jacek Osiecki joshua at hybrid.pl
Fri Oct 5 11:25:29 CEST 2012


On Fri, 5 Oct 2012, Adam Osuchowski wrote:

> Jacek Osiecki wrote:
>> Ciekawe - netstat -nlpu działa, pokazuje słuchające UDP.
>> Ktoś ma pomysł dlaczego nie widzi słuchających portów TCP?
> Ciężko powiedzieć jak się tego na żywo nie widzi. Podeślij strace'a,
> może w nim będzie coś charakterystycznego.

Może prościej będzie ze zwykłym "netstat -an", które też nic nie pokazuje:

http://pastebin.com/zCpZcLc2

Porównałem jak wygląda strace na 3.4.6 i na starszych kernelach, gdzie 
działa. I wygląda to tak:

Najpierw jest:
write(1, "Active Internet connections (servers and established)\n", 54) = 
54
write(1, "Proto Recv-Q Send-Q Local Address           Foreign Address 
State      \n", 80) = 80

I tu jest różnica. Na 3.4.6, gdzie jest źle, mamy:

socket(PF_NETLINK, SOCK_RAW, 4)         = 3
sendmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, 
msg_iov(1)=[{" (ciach dalej)

A na 2.6.39.4, gdzie działa:

socket(PF_NETLINK, SOCK_RAW, 4)         = -1 EPROTONOSUPPORT (Protocol not 
supported)
open("/proc/net/tcp", O_RDONLY)         = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7f8053992000

Czyli nowszy kernel podaje coś, co daje złe wyniki - zaś wcześniejszy nie, 
więc netstat sięga do /proc/net/tcp gdzie są prawidłowe dane. Sprawdziłem, 
na nowym kernelu /proc/net/tcp też wygląda sensownie.

Co to jest to PF_NETLINK? Sprawdziłem /proc/config.gz na okoliczność 
NETLINK i na obu kernelach jest to samo:

CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CT_NETLINK=m
CONFIG_SCSI_NETLINK=y
CONFIG_QUOTA_NETLINK_INTERFACE=y

Sprawdziłem nawet źródła netstat - i kurczę, nie widzę nawet skąd się to 
socket(PF_NETLINK, SOCK_RAW, 4) bierze!

Jakiś pomysł?

Pozdrawiam,
-- 
Jacek Osiecki joshua w ceti.pl GG:3828944
I don't want something I need. I want something I want.


More information about the pld-devel-pl mailing list