GNU/Linux >> Znalost Linux >  >> Ubuntu

Ručně zavřete otevřené porty v ubuntu

Otevřené porty

Při velkém programování soketů se často stává, že se serverový program při rekompilaci/opětovném spuštění nedokáže navázat na konkrétní číslo portu, protože toto číslo portu je již používáno.

Chcete-li ručně zavřít číslo portu, musíte nejprve zjistit název/id procesu, který drží port otevřený, a poté u tohoto procesu použít příkaz kill.

lsof

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

Ve výše uvedeném příkladu je vidět, že port 8888 je používán příkazem java s pid 8461.
Nyní ukončete proces provedením některého z následujících

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

netstat

Příkaz netstat lze také použít ke zjištění, který proces drží určité číslo portu

$ 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

Port, který zde chceme zavřít, je 9999. A netstat ukazuje, že pid =11598 a název příkazu =java
Tady jsme použili -u pro port udp. Pokud je to tcp port, pak přepínač u není potřeba.

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

Jakmile je nalezeno id/název procesu, ukončete jej příkazem kill.

$ kill 11598

fixační jednotka

Ke zjištění pid programu lze také použít příkaz fuser. Sytanx je

fuser -k -n protocol portno

Rychlý příklad

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

Ubuntu
  1. Jak nainstalovat Open Real Estate na Ubuntu 16.04

  2. Jak aktualizovat Ubuntu ručně?

  3. Ručně upravit DNS v Ubuntu 14.04?

  1. Průvodce otevřením portů v CentOS

  2. Jak otevřít porty v Ubuntu / Debian

  3. Jak otevřít AppImage v Ubuntu

  1. Otevřete port na Ubuntu 20.04 – průvodce krok za krokem?

  2. Jak zavřít porty v Linuxu?

  3. Otevřít instalaci zásobníku na Ubuntu 14.04?