GNU/Linux >> Znalost Linux >  >> Linux

Příkaz Linuxu získat nepoužívaný port

netstat -lat poskytuje úplný seznam poslechu a založena porty.

Když port není v žádném z těchto stavů, systém pro systém neexistuje, takže nenajdete příkaz, který by zobrazil seznam nepoužívaných portů.

Mějte na paměti, že existuje 65535 portů, takže vše, co není na netstat -lat je nepoužívaný port.

Následující bash skript provede jednoduchou kontrolu tcp porty a dejte vám vědět, které jsou otevřené a které jsou zavřené :

#!/bin/bash
IP=$1
first_port=$2
last_port=$3
function scanner

{
for ((port=$first_port; port<=$last_port; port++))
        do
                (echo >/dev/tcp/$IP/$port)> /dev/null 2>&1 && echo $port open || echo "$port closed"
        done
}

scanner

Pokud jej uložíte jako portscan.sh pak musí být spuštěn jako ./portscan.sh IP first_port last_port , například:./portscan 127.0.0.1 20 135 bude skenovat místní zařízení z portů 20 až 135


Ruby 2.x (one-liner):

ruby -e 'require "socket"; puts Addrinfo.tcp("", 0).bind {|s| s.local_address.ip_port }'

Na mém počítači právě vytištěno:

42644

Vytištěno následné vyvolání:

36168

Tato technika způsobí, že aktuální uživatel požádá o nepoužívaný port (svázání s portem "0") a poté vytiskne číslo portu poskytnuté operačním systémem. A protože se ptá aktuální uživatel, porty pod 1024 nebudou vráceny (pokud aktuální uživatel =root).

Kredit tam, kde je splatný kredit – toto řešení pochází z komentáře Franklina Yu na unix.stackexchange.com's Jaký je nejjednodušší způsob, jak najít nepoužívaný místní port?


Krátký bash skript, který náhodně generuje číslo mezi 1025 a 60000 a opakuje se, dokud toto číslo není nalezeno v seznamu použitých portů. Toto je rychlé a špinavé řešení, které má sklon k větším portům:

CHECK="do while"

while [[ ! -z $CHECK ]]; do
    PORT=$(( ( RANDOM % 60000 )  + 1025 ))
    CHECK=$(sudo netstat -ap | grep $PORT)
done

echo $PORT

Linux
  1. Linuxový příkaz mv

  2. Linux du command

  3. Příkaz Linux získat ID procesu Tomcat podle názvu

  1. Linuxový ip příkaz

  2. Linux cd příkaz

  3. Zkontrolujte použití portu v Linuxu

  1. Získejte zdrojový kód pro jakýkoli příkaz Linux

  2. Získejte seznam otevřených portů v Linuxu

  3. Výpis nepoužívaných portů SATA v systému Linux