PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : besetzter port



Aef
06.03.03, 19:17
hi!
ich habe seid neulich lmule 1.1.5 laufen...
läuft auch soweit ganz gut, ausser:
wenn ich den lmule schliesse und direkt danach neu starte beschwert er sich, dass sein port besetzt ist, und ich eine lowid kriege...
dann muss ich immer erst ein wenig warten bis der port wieder frei ist...
wie kann ich den port kurzfristig frei geben?
und wie kann ich sehen welche ports überhaupt besetzt sind?
Aef

sauertopf
23.03.03, 17:11
wenn ich den lmule schliesse und direkt danach neu starte beschwert er sich, dass sein port besetzt ist, und ich eine lowid kriege...
Eine LowId kriegst du, wenn Dein Client-Port (Default bei Edonkey 4662) von aussen nicht erreichbar ist, z. B. wegen Firewall.
Ob ein Port frei ist siehst du mit netstat -l, der zeigt dir alle Sever-Sockets an.

Aef
23.03.03, 20:02
kann ich den port denn manuell schliessen, falls er nicht mehr gebraucht wird (also falls lmule schon beendet ist)?
Aef

Jinto
23.03.03, 20:03
Der Port wird mit beenden von lmule wieder freigegeben. Wenn das Programm für seinen "Shutdown" etwas länger bracuht, dann musst du halt ein paar sekunden mit dem Neustart warten.

Aef
23.03.03, 20:22
für gewöhnlich muss ich immer etwa 15 minuten warten, bis sich das echo auf meine lmule pakete bzw. die paketanforderungen anderer donkey nutzer auf eth0 wieder gelegt hat...
und das obwohl das programm schon längst beendet ist...
ist das normal?
kann ich den port nicht so schliessen, ohne gleich die verbindung zum internet zu kappen?
Aef

Aef
24.03.03, 11:30
kann es sein, dass es an meiner firewall liegt?
ich habe die entsprechenden ports dort geöffnet...
aber warum ist sie von aussen nicht erreichbar wenn dort noch datenverkehr durch die ports läuft?
was kann ich dagegen tun?
Aef

ps: inzwischen benutze ich lmule 1.1.11b

sauertopf
24.03.03, 13:09
Frage:
1. Läuft der donkey auf der maschine, die ans internet angeschlossen ist? oder nat?
2. startet der donkey beim neustar eine *neue* core oder connected er sich mit einer laufenden?
3. ist der Port, auf dem du beim 2. start die lowid kriegst der gleiche wie der vom ersten start mit der highid?

Aef
24.03.03, 13:32
Antwort:
1. der donkey - oder besser gesagt lmule - läuft auf dem rechner hinter der firewall:

| client mit lmule | <--------> | firewall mit nat | <----------> | das grosse böse internet |


2. lmule hat kein core client modell. dh. die gui und der core sind verschmolzen. dadurch wird beim neustart quasi ein neue core gestartet wenn man so will.

3. der port ist der selbe wie beim ersten starten (5662).

Aef

sauertopf
24.03.03, 14:03
Ok, danke für die Info. Ich hab ein bisschen gegoogelt und nix gefunden, wie man per befehl ein socket killt.


aber warum ist sie von aussen nicht erreichbar wenn dort noch datenverkehr durch die ports läuft?

Zuerst ists ein server-socket mit source-port und destination-port 5662 (der dann nicht beendet wird), dann kann kein weiter server-socket mit diesem source-port etabliert werden (bind() schlägt fehl mit "port already in use"). Also wird (vor dem runterladen) ein client-socket mit destination-port 5662 und zufälligem (>=1024) Port etabliert. Das wird irgendwie dazu führen, dass du eine lowid kriegst.

hier aber vielleicht drei ansatze:

Wenn der Prozess noch läuft:

1. sieh auf http://www.nslug.ns.ca/pipermail/nslug/2002-December/001114.html wie man ein socket eines laufenden processes killt

2. sieh mit top nach ob vielleicht noch irgendein process, der vom donkey gestartet wurde und versuch ihn mit diversen signalen zu killen. ich weiss aber nicht, ob dann der socket auch weg ist.

wenn der process schon weg ist:

3. Du kannst versuchen, alle connections, die noch auf dem server-port sind, mit gefakten TCP-Paketen zu beenden (gespooft).

MfG sauer