Como fechar manualmente uma porta

3

No OSX, se eu digitar netstat, posso ver certas coisas que têm uma conexão estabelecida. Eu não quero alterar as configurações para fechá-las, eu só quero poder fechar qualquer porta que eu escolher no terminal. Como você faz isso?

    
por tony_sid 03.04.2012 / 14:54

2 respostas

6

Você não pode fechar um soquete aberto como este. Idealmente, você apenas mataria o processo que estabeleceu a conexão.

Verifique suas conexões com lsof ( netstat não mostrará o processo), filtrando a saída com o status de conexão desejado:

lsof -i
lsof -i | grep LISTEN
lsof -i | grep ESTABLISHED

Ou, para obter a porta, por ex. 17500 :

lsof -i:17500

Então, apenas mate o processo. Por exemplo:

$ lsof -i | grep "Skype"
Skype     438 werner    9u  IPv4 0xffffff801dd0c640      0t0  UDP localhost:52218
Skype     438 werner   42u  IPv4 0xffffff80231a7a08      0t0  TCP *:29429 (LISTEN)
Skype     438 werner   43u  IPv4 0xffffff8022e18a40      0t0  UDP *:29429

Mate o Skype:

killall Skype

Note que isso não impedirá que as conexões sejam feitas - algo que você precisa especificar nas suas preferências de Firewall.

    
por 03.04.2012 / 15:18
3

Também pode usar o uso dos comandos fuser ou netstat .

A sintaxe

fuser é

fuser -k -n protocol portno

Exemplo:

$ fuser -k -n udp 7777

7777/udp:            11774

O número 11774 é o pid.

netstat exemplo:

$ sudo netstat -ap | grep :9050

tcp        0      0 localhost:9050          *:*       LISTEN      1613/tor

O número 1613 é o pid e "tor" é o nome do processo.

Uma vez que você tenha o pid, basta terminá-lo usando o comando kill ou killall

kill pid

ou

killall -9 command_name

    
por 15.09.2012 / 09:07