Einen TCP / IP-Port freigeben?

146

netstat -tulnap zeigt mir, welche Ports verwendet werden. Wie kann ich einen Port unter Linux freigeben?

informatik01
quelle

Antworten:

214

Wie die anderen gesagt haben, müssen Sie alle Prozesse beenden, die diesen Port abhören. Der einfachste Weg, dies zu tun, wäre die Verwendung des Befehls fuser (1). So zeigen Sie beispielsweise alle Prozesse an, die auf Port 80 auf http-Anforderungen 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.

uzi
quelle
1
Ich fand, dass das Senden einer Anfrage an den Port auch bereinigt (ich bin jedoch kein Linux-Experte)
Matej
1
So installieren Sie die Fixiereinheit unter Debian: sudo apt-get install psmisc ( bitflop.com/document/107 )
Korneel
1
Es hat funktioniert, aber ich musste psmisc auch auf CentOs 7 ( sudo yum install psmisc) installieren
Marlon Bernardes
1
kill -9 $(fuser 80/tcp 2>/dev/null)
Hanynowsky
76

Um einen bestimmten Port unter Linux zu beenden, verwenden Sie den folgenden Befehl

sudo fuser -k Port_Number/tcp

Ersetzen Sie Port_Number durch Ihren belegten Port.

Anil Chahal
quelle
6
Dies beendet tatsächlich den Prozess, der den Port geöffnet hat, und nicht den Port selbst.
Vinayc
16

Sie können tcpkill(Teil des dsniffPakets) verwenden, um die Verbindung zu dem Port zu beenden, den Sie benötigen:

sudo tcpkill -9 port PORT_NUMBER
AlexT
quelle
11
Dies hängt nur$ sudo tcpkill -9 port 5432 tcpkill: listening on lxcbr0 [port 5432]
Anentropic
16

Im Terminaltyp:

netstat -anp|grep "port_number"

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

dann ausführen:

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

user2332505
quelle
Offensichtlich
1
... und das passiert, wenn Sie nicht die Erlaubnis haben, den Prozess zu sehen ... versuchen Sie sudo netstattatsächlich, die PIDs zu sehen :)
Anentropic
Ich habe versucht, einen Port auf einer Amazon Ec2-Instanz über Putty Cli zu töten. Für immer gesagt, es wurden keine Prozesse ausgeführt, aber der Port (4200 für eine eckige App) war noch offen. Dies ist der einzige Befehl, der für mich funktioniert hat.
Vtechmonkey
9

Der "netstat --programs"Befehl gibt Ihnen die Prozessinformationen, vorausgesetzt, Sie sind root. Dann musst du den "beleidigenden" Prozess beenden, der möglicherweise wieder startet, nur um dich zu ärgern :-).

Was versuchst du eigentlich hier zu erreichen? Die Lösungen variieren je nach den Prozessen, die diese Ports enthalten.

paxdiablo
quelle
8

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 den sudoBefehl bei Bedarf verwenden.

Vinayak
quelle
7

Beenden Sie den Prozess, der den betreffenden Port abhört. Ich glaube, netstat zeigt Ihnen, wie Sie IDs verarbeiten.

Gleb
quelle
3
netstat -anp | grep <port> die letzte Spalte hat den Prozess
user1747935
2

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

kill -KILL <pid>

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

Paul de Vrieze
quelle
0

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

Tilo Prütz
quelle
-5

sudo killall -9 "Prozessname"

Zonxwedop
quelle
-14

Das Herunterfahren des Computers beendet den Prozess für mich immer.

Zonxwedop
quelle
Das Herunterfahren eines Servercomputers ist selten.
Waqas
23
Hast du dein "lustigstes" Abzeichen bekommen?
Jplandrain
Sie müssen Ihren Computer nicht herunterfahren.
Anil Chahal
Beste Idee aller Zeiten 10/10
Valentin Roudge
10
Im Gegensatz zu einigen anderen Antworten wird dies sicherlich funktionieren
Anentropic