Port sieci jest otwarty, ale nie podłączono żadnego procesu?


22

Mam dziwną sytuację z otwartym portem sieciowym. Moje główne pytanie brzmi: dlaczego nie byłoby programu powiązanego z otwartym portem TCP:

netstat -ln --program
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      -  

W moim konkretnym przypadku powinien istnieć demon nrpe (instalacja opsview) nasłuchujący na porcie 5666, ale nie działa żaden demon nrpe. Jeśli spróbuję go uruchomić, natychmiast się kończy.

lsof -i :5666nie pokazuje również żadnego wyniku. W moim systemie nie ma uruchomionego (x) inetd.

AKTUALIZACJA

Tak, uruchamiałem te polecenia jako root. Telnet mógłby, ale nigdy nie było żadnej odpowiedzi.

Po dalszych badaniach znalazłem błąd jądra w dmesg: była to instancja EC2 (właściwie kilka z nich) z uruchomionym starszym jądrem (2.6.16 jest najwyraźniej niestabilny). Naprawą zatrzymania awarii była aktualizacja jądra .

Wygląda na to, że awaria jądra spowodowała zakończenie procesu i pozostawienie portu otwartego.


2
Jaki jest wynik: lsof -i tcp: 5666? Czy port pozostaje tam po ponownym uruchomieniu?
— Dave Drager

Czy to nowa instalacja NRPE?
— fpmurphy

Musisz uruchomić netstat jako root, aby zobaczyć szczegóły programu
— eckes

Dodaj odpowiedź na swoje własne pytania ...
— rogerdpack

Odpowiedzi:


6

Porty otwarte przez jądro nie będą wyświetlane z nazwą programu. Przychodzą mi na myśl niektóre elementy NFS i OCFS. Może to coś takiego?

Lub może to być błąd jądra. Sprawdź dzienniki jądra pod kątem OOPS i BŁĘDÓW.


24

Czy korzystasz z netstat i lsof jako root lub z sudo? Zwróć uwagę na ostatnią kolumnę:

netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -

sudo netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3125/sshd

Ze strony man netstat:

Będziesz także potrzebować uprawnień administratora, aby zobaczyć te informacje na gniazdach, których nie posiadasz.

Skąd wiesz, że nie ma jednego uruchomionego? Jeśli port jest w użyciu, ma sens natychmiastowe wyjście z błędu „gniazdo w użyciu”. co się stanie, gdy telnet do portu?

telnet localhost 5666

4

wykonaj polecenie „netstat --tcp --udp - listening --program” jako użytkownik root . w przeciwnym razie nie poda PID / nazwy programu

następnie użyj komendy kill -9 PID


3

Właściwie napisałem mały skrypt powłoki, aby pomóc zidentyfikować te sporadyczne pytania:

#! /bin/bash
([ "$1" = "" ] || [ "$2" = "" ]) && echo "Usage: tracer <space> <port>" && exit 0
for i in `fuser -n $1 $2`
 do
  ps aux | grep $i | grep -v 'grep'
 done

zapisz jako / usr / local / bin / tracer; wydajność:

root@mo-log:/usr/flows# tracer tcp 80
80/tcp:             
root     27904  0.0  0.0 111668  3292 ?        Ss   Aug04   0:03 /usr/sbin/apache2 -k start
www-data 32324  0.0  0.0 335332  3560 ?        Sl   Aug05   0:00 /usr/sbin/apache2 -k start
www-data 32327  0.0  0.0 335324  3560 ?        Sl   Aug05   0:00 /usr/sbin/apache2 -k start

Do korzystania z niego potrzebne będą uprawnienia roota


Dobrze, ale potrzebuję więcej, muszę wykonać to dla każdego połączenia w netstat. Następnie mogę zidentyfikować, co robi pojedynczy program. Jest to pudełko bez lsof / fstat lub innych dobrych narzędzi, a jako root nie mogę ich zainstalować z powodu innych problemów.
— Aki

3

Byłem w stanie wyśledzić ten proces, pobierając jego i-węzeł za pośrednictwem netstat, a następnie używając tego i-węzła z lsof. Zobacz moją bardziej szczegółową odpowiedź w /server//a/847910/94376 .


2

Czasami programy powiązane z nfs nie są widoczne na liście programów.

Ponadto moduły pam LDAP i libnss_ldap otwierają połączenia z serwerami ldap, ale nie ma faktycznego procesu utrzymującego otwarte połączenie, więc netstat -tnp pokazuje aktywne połączenie bez procesu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.