GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Chiudi le porte aperte manualmente in Ubuntu

Apri porte

Quando si esegue molta programmazione socket, capita spesso che un programma server, quando viene ricompilato/rieseguito, non riesce a collegarsi a un numero di porta particolare perché quel numero di porta è già in uso.

Per chiudere manualmente il numero di porta è necessario prima scoprire il nome/id del processo che tiene aperta la porta e quindi utilizzare il comando kill su quel processo.

ldi

$ lsof -i :8888
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    8461 enlightened   11u  IPv6 138527      0t0  UDP *:8888

Nell'esempio sopra si vede che la porta 8888 è tenuta in uso dal comando java con pid 8461.
Ora terminare il processo eseguendo una delle seguenti operazioni

$ kill 8461
$ killall -9 8461
$ killall -9 java

netstat

Il comando netstat può essere utilizzato anche per scoprire quale processo contiene un determinato numero di porta

$ netstat -u -ap
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp        0      0 *:18347                 *:*                                 -
udp        0      0 localhost:11211         *:*                                 -
udp        0      0 localhost:36254         localhost:36254         ESTABLISHED -
udp        0      0 localhost:domain        *:*                                 -
udp        0      0 *:ipp                   *:*                                 -
udp        0      0 *:42038                 *:*                                 -
udp        0      0 *:17500                 *:*                                 4090/dropbox
udp        0      0 *:mdns                  *:*                                 -
udp        0      0 localhost:58797         localhost:7777          ESTABLISHED 9831/ncat
udp        0      0 localhost:42724         localhost:domain        ESTABLISHED -
udp6       0      0 [::]:46282              [::]:*                              -
udp6       0      0 [::]:mdns               [::]:*                              -
udp6       0      0 [::]:9999               [::]:*                              11598/java

La porta che vogliamo chiudere qui è 9999. E netstat mostra che il pid =11598 e il nome del comando =java
Qui abbiamo usato -u per la porta udp. Se è una porta TCP, lo switch u non è necessario.

$ sudo netstat -ap | grep :9050
tcp        0      0 localhost:9050          *:*                     LISTEN      1613/tor

Una volta trovato l'id/nome del processo, terminalo con il comando kill.

$ kill 11598

fusore

Il comando fusore può essere utilizzato anche per scoprire il pid del programma. La sintassi è

fuser -k -n protocol portno

Esempio veloce

$ fuser -k -n udp 7777
7777/udp:            11774

Ubuntu
  1. Guida per aprire le porte in CentOS

  2. Come aprire le porte in Ubuntu/Debian

  3. Aprire una porta su Ubuntu 20.04 - Guida passo passo?

  4. Come chiudere le porte in Linux?

  5. Modificare manualmente i DNS in Ubuntu 14.04?

Come installare Open Visual Traceroute su Ubuntu 16.04

Come aprire una porta su Ubuntu 20.04

Come trovare e chiudere le porte aperte in Linux

Come aprire il terminale in Ubuntu Linux

Come aprire o chiudere le porte in AlmaLinux 8 o Rocky Firewall

Come aprire più terminali?