GNU/Linux >> Linux Esercitazione >  >> Linux

Il comando Linux ottiene la porta inutilizzata

netstat -lat fornisce l'elenco completo degli ascolti e stabilito porti.

Quando una porta non si trova in nessuno di questi stati non esiste per il sistema, quindi non troverai un comando che mostri l'elenco delle porte inutilizzate.

Tieni presente che ci sono 65535 porte, quindi tutto ciò che non è su netstat -lat è una porta inutilizzata.

Il seguente script bash eseguirà una semplice scansione di tcp porte e farti sapere quali sono aperte e che sono chiusi :

#!/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

Se lo salvi come portscan.sh quindi deve essere eseguito come ./portscan.sh IP first_port last_port , ad esempio:./portscan 127.0.0.1 20 135 eseguirà la scansione dell'apparecchiatura locale dalle porte da 20 a 135


Ruby 2.x (una riga):

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

Sulla mia macchina in questo momento che ha stampato:

42644

Una successiva invocazione stampava:

36168

Questa tecnica fa sì che l'utente corrente richieda una porta inutilizzata (associazione alla porta "0"), quindi stampa il numero di porta fornito dal sistema operativo. E poiché l'utente corrente è quello che chiede, le porte inferiori a 1024 non verranno restituite (a meno che utente corrente =root).

Il credito è dovuto:questa soluzione viene da un commento di Franklin Yu su unix.stackexchange.com Qual è il modo più semplice per trovare una porta locale inutilizzata?


Breve script bash che genera in modo casuale un numero compreso tra 1025 e 60000 e si ripete fino a quando quel numero non viene trovato nell'elenco delle porte utilizzate. Questa è una soluzione rapida e sporca che ha una propensione per le porte più grandi:

CHECK="do while"

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

echo $PORT

Linux
  1. Comando Linux mv

  2. comando IP Linux

  3. comando cd di Linux

  4. Controlla l'uso della porta in Linux

  5. Ottieni il codice sorgente per qualsiasi comando Linux

Al comando in Linux

Come eseguire una scansione delle porte in Linux

Ottieni informazioni su un comando con Type Command in Linux

Come controllare le porte aperte in Linux?

Apertura di una porta su Linux

5 metodi per ottenere una guida rapida sui comandi Linux