it-swarm.com.de

Einen TCP / IP-Port freigeben?

netstat -tulnap zeigt mir, welche Ports belegt sind. Wie mache ich einen Port unter Linux frei?

127
bapi

Wie die anderen bereits gesagt haben, müssen Sie alle Prozesse beenden, die diesen Port überwachen. Am einfachsten geht das mit dem Befehl fuser (1). So können Sie beispielsweise alle Prozesse anzeigen, die auf HTTP-Anforderungen an Port 80 warten (als Root ausführen oder Sudo verwenden):

# fuser 80/tcp

Wenn Sie sie töten möchten, fügen Sie einfach die Option -k hinzu.

196
uzi

Verwenden Sie den folgenden Befehl, um einen bestimmten Port in Linux zu beenden

Sudo fuser -k Port_Number/tcp

ersetzen Sie Port_Number durch Ihren belegten Port.

64
Anil Chahal

Sie können tcpkill (Teil des Pakets dsniff) verwenden, um die Verbindung zu beenden, die sich auf dem von Ihnen benötigten Port befindet:

Sudo tcpkill -9 port PORT_NUMBER
13
AlexT

Das "netstat --programs" Befehl gibt Ihnen die Prozessinformationen, vorausgesetzt, Sie sind root. Dann müssen Sie den "beleidigenden" Prozess beenden, der möglicherweise erneut gestartet wird, um Sie zu ärgern :-).

Was versuchst du eigentlich hier zu erreichen? Die Lösungen hängen von den Prozessen ab, in denen sich diese Ports befinden.

9
paxdiablo

Im Terminaltyp:

netstat -anp|grep "port_number"

Daraufhin werden die Portdetails angezeigt. Gehe zur letzten Spalte. Es wird in diesem Format sein. Zum Beispiel: - PID/Java

dann führen Sie aus:

kill -9 PID. Worked on Centos5

Für MAC:

lsof -n -i :'port-number' | grep LISTEN

Beispielantwort:

Java   4744 (PID)  test  364u  IP0 asdasdasda   0t0  TCP *:port-number (LISTEN)

und dann ausführen:

kill -9 PID 

Arbeitete auf Macbook

8
user2332505

Beenden Sie den Prozess, der den betreffenden Port abhört. Ich glaube, Netstat zeigt Ihnen Prozess-IDs.

7
Gleb

Wenn Sie einen Prozess wirklich sofort beenden möchten, senden Sie ihm ein KILL-Signal anstelle eines TERM-Signals (letzteres ist eine Aufforderung zum Beenden, das erste wird sofort ohne Bereinigung wirksam). Es ist leicht zu machen:

kill -KILL <pid>

Beachten Sie jedoch, dass der Status je nach Programm, das Sie stoppen, stark beschädigt werden kann. Normalerweise möchten Sie nur dann ein KILL-Signal senden, wenn die normale Terminierung nicht funktioniert. Ich frage mich, was das zugrunde liegende Problem ist, dass Sie versuchen zu lösen und ob das Töten die richtige Lösung ist.

2
Paul de Vrieze

Ich denke, der einzige Weg wird sein, den Prozess zu stoppen, der den Hafen geöffnet hat.

0
Tilo Prütz

So überprüfen Sie alle Ports:

netstat -lnp

So schließen Sie einen offenen Port:

fuser -k port_no/tcp

Beispiel:

fuser -k 8080/tcp

In beiden Fällen können Sie bei Bedarf den Befehl Sudo verwenden.

0
Vinayak