Egy fura ténnyel állok szemben.
Ha megpróbálok csatlakozni egy gép adott portjára, amin hallgat, akkor a kezdeményező gép azt hiszi, hogy él a kalcsolat, a server meg vár a sync_ack-ra.
A server gépen elég érdekes a netstat, mert valahogy eltüntek a pid-ek a kapcsolatok mögül.
Van valakinek ötlete ez miért lehet, és hogy hozhatnám helyre? Egy idein megy, aztán ezek valahogy létrejönnek. Viszont a helyzet előtt kiépült kapcsolatok tudnak forgalmazni.
tcp 0 0 0.0.0.0:53389 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:8525 0.0.0.0:* LISTEN 3789/nsrexecd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 3487/portmap
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:8020 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3624/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3573/sshd
tcp 0 0 0.0.0.0:62103 0.0.0.0:* LISTEN 3731/Byster
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 3584/xinetd
tcp 0 0 0.0.0.0:9445 0.0.0.0:* LISTEN -
tcp 58 0 10.219.96.115:9445 10.1.11.5:44043 CLOSE_WAIT -
tcp 58 0 10.219.96.115:9445 10.1.11.5:44046 CLOSE_WAIT -
tcp 58 0 10.219.96.115:9445 10.1.11.5:44049 CLOSE_WAIT -
tcp 0 0 10.219.96.115:9445 10.117.118.196:2600 ESTABLISHED -
tcp 0 0 10.107.108.115:3401 10.107.108.117:45635 ESTABLISHED -
tcp 0 0 10.219.96.115:53400 10.219.96.65:2402 ESTABLISHED -
tcp 0 0 10.219.96.115:53393 10.219.96.65:2402 ESTABLISHED -
- 1487 megtekintés
Hozzászólások
"...aztán ezek valahogy létrejönnek"
Mik?
"a helyzet előtt kiépült kapcsolatok tudnak forgalmazni"
Pontosan milyen helyzet, és miből látszik ennek a helyzetnek a léte?
"a kezdeményező gép azt hiszi, hogy él a kalcsolat, a server meg vár a sync_ack-ra."
Ez most hogy is van? A mellékelt netstat kimenetének melyik részéből következtettél erre? A kérdésedben a "sync_ack" a SYN-ACK lenne? A kliens akkor tudja élőnek a kapcsolatot, ha az általa küldött SYN-re visszajön a SYN-ACK, majd erre ő egy ACK-kal nyugtáz. A szerverhez pedig nem érhet soha SYN-ACK - és ezért nem is várhat rá -, mivel azt ő küldi a kliens részére.
A CLOSE_WAIT állapot jelenléte nem kapcsolatfelvételi problémára utal, tekintve, hogy ez már egy szinkronizált állapot. A nevéből is látszik, hogy ez a lezárás első fázisa a FIN-t kapó oldalon. Ilyenkor az őt nyitvatartó programra vár.
Tehát ha jól dekódoltam a "sync_ack"-ot, akkor látható, hogy a netstat kimenetében látható LISTEN, ESTABLISHED és CLOSE_WAIT állapotokhoz nincs köze.
Ha időszakos kapcsolódási problémák vannak, akkor nézz körül a tűzfalszabályok táján (ratelimit), a syslogban, a TCP/9445 (illetve a problémás) porton hallgató program logjában. Aztán utána jöhetnek a tcpdump és társai.
"valahogy eltüntek a pid-ek a kapcsolatok mögül."
Milyen módon hívod meg a netstatot?
man netstat:
-p, --program
Show the PID and name of the program to which each socket belongs.
Ha így sem látszik, akkor pedig kellene hogy milyen rendszer vagy disztribúció, és a netstat verziója.
- A hozzászóláshoz be kell jelentkezni
A netstat parancs az jó, mivel egy két kapcsolat pid-je megjelenik (root-ként kiadva).
Nem a server vár a syn_ack-ra, hanem SYN_RECV állapotba marad a kapcsolat a serveren, a kliens meg connected.
Tűzfal nincs közte, de localhost-ból sem lehet kapcsolódni.
Az "állapot elött" amikor még lehetett, és jelenleg is kapcsolódva vannak, de már több kapcsolat nem jön létre.
A mellékelt netstat a server gépen van, és az a fura, hogy több kapcsolat ESTABLISHED-ben van, de nincs mögötte pid, és forgalmaz adatokat.
- A hozzászóláshoz be kell jelentkezni