Освобождение порта TCP / IP? - PullRequest
125 голосов
/ 15 апреля 2009

netstat -tulnap показывает мне, какие порты используются. Как освободить порт в Linux?

Ответы [ 10 ]

191 голосов
/ 15 апреля 2009

Как уже говорили другие, вам придется убить все процессы, которые прослушивают этот порт. Самый простой способ сделать это - использовать команду fuser (1). Например, чтобы увидеть все процессы, прослушивающие http-запросы на порту 80 (запустите от имени пользователя root или используйте sudo):

# fuser 80/tcp

Если вы хотите убить их, просто добавьте опцию -k.

63 голосов
/ 10 июня 2015

Чтобы уничтожить определенный порт в Linux, используйте команду ниже

sudo fuser -k Port_Number/tcp

замените номер_порта занятым портом.

12 голосов
/ 27 февраля 2014

Вы можете использовать tcpkill (часть пакета dsniff), чтобы разорвать соединение, которое находится на нужном порту:

sudo tcpkill -9 port PORT_NUMBER
9 голосов
/ 15 апреля 2009

Команда "netstat --programs" предоставит вам информацию о процессе, если вы являетесь пользователем root. Тогда вам придется убить «оскорбительный» процесс, который вполне может начаться снова, просто чтобы раздражать вас: -).

Чего вы на самом деле пытаетесь достичь здесь? Решения могут различаться в зависимости от процессов, содержащих эти порты.

7 голосов
/ 29 июня 2016

В типе терминала:

netstat -anp|grep "port_number"

Он покажет детали порта. Перейти к последнему столбцу. Это будет в этом формате. Например: - PID / Java

затем выполните:

kill -9 PID. Worked on Centos5

Для MAC:

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

Пример ответа:

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

и затем выполнить:

kill -9 PID 

Работал на Macbook

7 голосов
/ 15 апреля 2009

Убить процесс, который прослушивает данный порт. Я считаю, что netstat показывает вам идентификаторы процессов.

2 голосов
/ 15 апреля 2009

Если вы действительно хотите немедленно завершить процесс, вы отправляете ему сигнал KILL вместо сигнала TERM (последний - запрос на остановку, первый вступит в силу немедленно без какой-либо очистки). Это легко сделать:

kill -KILL <pid>

Имейте в виду, однако, что в зависимости от программы, которую вы останавливаете, ее состояние может быть сильно повреждено при этом. Обычно вы хотите отправить сигнал KILL только тогда, когда обычное завершение не работает. Мне интересно, в чем заключается основная проблема, которую вы пытаетесь решить, и является ли убийство правильным решением.

0 голосов
/ 18 июля 2013

Выключение компьютера всегда убивает процесс для меня.

0 голосов
/ 28 марта 2013

sudo killall -9 "имя процесса"

0 голосов
/ 15 апреля 2009

Я думаю, что единственным способом будет остановить процесс, открывший порт.

...