Kabuktan hangi yuva seçeneklerinin ayarlandığını nasıl görebilirim? Özellikle SO_BROADCAST ayarlanmış olup olmadığını bilmek ilginç mi?Görüntüleme soketi seçenekleri
8
A
cevap
7
lsof(8)
'u kullanabilirsiniz. PID
işlem kimliği ve FD
ilgilendiğiniz soket dosya tanıtıcı numarası ise, bunu yapabilirsiniz:
lsof -a -p PID -i 4 -T f
:
lsof -a -p PID -d FD -T f
bir sürecin tüm IPv4 soketleri listelemek için Bu, diğer bilgilerin yanı sıra SO=
ile soket seçeneklerini basacaktır. Hiçbir seçenek belirlenmediyse, boş dizeyi alırsınız, böylece SO=PQLEN=0
vb. Gibi bir şey görürsünüz. SO_BROADCAST
için test etmek için SO_BROADCAST
dizesinindizesinden sonra grep'i SO=
, örn.
if lsof -a -p PID -d FD -T f | grep -q 'SO=[^=]*SO_BROADCAST'; then
# socket has SO_BROADCAST
else
# it doesn't
fi
2
Linux üzerinde, SO_BROADCAST
dahil soket seçenekleri incelemek için knetstat çekirdek modülünü kullanabilirsiniz.
Sistemimde (RHEL 5.3) lsof'un "-T" işareti "q" ve "s" harflerini kabul edebilir, ancak "f" değerini kabul etmez. Başka bir çözüm var mı? – dimba
Ayrıca fuser (1) 'http://linux.die.net/man/1/fuser veya' netstat (8) 'http://linux.die.net/man/8/netstat deneyebilirsiniz, ancak eğer lsof işe yaramazsa ve işe yaramazsa, sisteminizde şanstan mahrum kalabilirsiniz. –