Liberando uma porta TCP / IP?

146

netstat -tulnap mostra-me quais portas estão em uso. Como liberar uma porta no Linux?

informatik01
fonte

Respostas:

214

Como os outros disseram, você terá que matar todos os processos que estão ouvindo nessa porta. A maneira mais fácil de fazer isso seria usar o comando fuser (1). Por exemplo, para ver todos os processos atendendo solicitações http na porta 80 (execute como root ou use sudo):

# fuser 80/tcp

Se você quiser matá-los, basta adicionar a opção -k.

uzi
fonte
1
Achei que o envio de um pedido para o porto também limpa-lo (não sou especialista linux embora)
Matej
1
Para instalar o fusor no Debian: sudo apt-get install psmisc ( bitflop.com/document/107 )
Korneel
1
Funcionou, mas eu tive que instalar psmisc também no CentOS 7 ( sudo yum install psmisc)
Marlon Bernardes
1
kill -9 $(fuser 80/tcp 2>/dev/null)
Hanynowsky
76

Para matar uma porta específica no Linux, use o comando abaixo

sudo fuser -k Port_Number/tcp

substitua Port_Number pela sua porta ocupada.

Anil Chahal
fonte
6
Na verdade, isso mata o processo que abriu a porta e não a porta em si.
Vinayc 26/05
16

Você pode usar tcpkill(parte do dsniffpacote) para matar a conexão que está na porta que você precisa:

sudo tcpkill -9 port PORT_NUMBER
AlexT
fonte
11
este só trava$ sudo tcpkill -9 port 5432 tcpkill: listening on lxcbr0 [port 5432]
Anentropic
16

No tipo de terminal:

netstat -anp|grep "port_number"

Ele mostrará os detalhes da porta. Vá para a última coluna. Será neste formato. Por exemplo: - PID / java

então execute:

kill -9 PID. Worked on Centos5

Para MAC:

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

Resposta da amostra:

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

e então execute:

kill -9 PID 

Trabalhou no Macbook

user2332505
fonte
Obviamente, isso não funciona se a coluna PID está vazio para essa porta
Anentropic
1
... e que acontece se você não tem permissão para ver o processo ... tente sudo netstatrealmente ver os PIDs :)
Anentropic
Eu estava tentando matar uma porta em uma instância do amazon ec2 via putty cli. A Forever disse que não havia processos em execução, mas a porta (4200 para um aplicativo angular) ainda estava aberta. Esse é o único comando que funcionou para mim.
vtechmonkey
9

O "netstat --programs"comando fornecerá as informações do processo, supondo que você seja root. Então você terá que interromper o processo "ofensivo", que pode ser iniciado novamente apenas para incomodá-lo :-).

O que você está realmente tentando alcançar aqui? As soluções variarão com base nos processos que mantêm essas portas.

paxdiablo
fonte
8

Para verificar todas as portas:

netstat -lnp

Para fechar uma porta aberta:

fuser -k port_no/tcp

Exemplo:

fuser -k 8080/tcp

Nos dois casos, você pode usar o sudocomando, se necessário.

Vinayak
fonte
7

Mate o processo que está ouvindo a porta em questão. Acredito que o netstat mostra os IDs de processo.

Gleb
fonte
3
-anp netstat | grep <porta> última coluna tem o processo
user1747935
2

Se você realmente deseja interromper um processo imediatamente, envia um sinal KILL em vez de um sinal TERM (o último é um pedido para parar, o primeiro entra em vigor imediatamente sem nenhuma limpeza). É fácil de fazer:

kill -KILL <pid>

No entanto, esteja ciente de que, dependendo do programa que você está parando, seu estado pode ficar muito corrompido ao fazê-lo. Você normalmente deseja enviar apenas um sinal KILL quando a terminação normal não funcionar. Gostaria de saber qual é o problema subjacente que você tenta resolver e se matar é a solução certa.

Paul de Vrieze
fonte
0

Eu acho que a única maneira será parar o processo que abriu a porta.

Tilo Prütz
fonte
-5

sudo killall -9 "nome do processo"

Zonxwedop
fonte
-14

Desligar o computador sempre mata o processo para mim.

Zonxwedop
fonte
desligar uma máquina servidor é raro.
Waqas
23
você recebeu seu distintivo "mais engraçado"?
jplandrain
Não há necessidade de desligar o computador.
Anil Chahal
Melhor idéia de sempre 10/10
Valentin Roudge
10
ao contrário de algumas das outras respostas, isso certamente irá trabalhar
Anentropic