netstat -tulnap
zeigt mir, welche Ports verwendet werden. Wie kann ich einen Port unter Linux freigeben?
netstat -tulnap
zeigt mir, welche Ports verwendet werden. Wie kann ich einen Port unter Linux freigeben?
Antworten:
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.
sudo yum install psmisc
) installieren
kill -9 $(fuser 80/tcp 2>/dev/null)
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.
Sie können tcpkill
(Teil des dsniff
Pakets) verwenden, um die Verbindung zu dem Port zu beenden, den Sie benötigen:
sudo tcpkill -9 port PORT_NUMBER
$ sudo tcpkill -9 port 5432 tcpkill: listening on lxcbr0 [port 5432]
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
sudo netstat
tatsächlich, die PIDs zu sehen :)
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.
Beenden Sie den Prozess, der den betreffenden Port abhört. Ich glaube, netstat zeigt Ihnen, wie Sie IDs verarbeiten.
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.
Ich denke, der einzige Weg wird sein, den Prozess zu stoppen, der den Port geöffnet hat.
Das Herunterfahren des Computers beendet den Prozess für mich immer.