GNU/Linux >> Belajar Linux >  >> Linux

Perintah Linux dapatkan port yang tidak digunakan

netstat -lat memberikan daftar lengkap mendengarkan dan didirikan port.

Saat port tidak berada di salah satu status tersebut tidak ada untuk sistem, jadi Anda tidak akan menemukan perintah yang menampilkan daftar port yang tidak digunakan.

Perlu diingat bahwa ada 65535 port, jadi semua yang tidak ada di netstat -lat adalah port yang tidak digunakan.

Skrip bash berikut akan melakukan pemindaian sederhana pada tcp port, dan memberi tahu Anda mana yang terbuka dan mana yang ditutup :

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

Jika Anda menyimpannya sebagai portscan.sh maka harus dijalankan sebagai ./portscan.sh IP first_port last_port , misalnya:./portscan 127.0.0.1 20 135 akan memindai peralatan lokal dari port 20 hingga 135


Ruby 2.x (satu baris):

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

Di mesin saya sekarang yang dicetak:

42644

Doa selanjutnya dicetak:

36168

Teknik ini menyebabkan pengguna saat ini meminta port yang tidak digunakan (mengikat ke port "0"), dan kemudian mencetak nomor port yang disediakan oleh sistem operasi. Dan karena pengguna saat ini yang bertanya, port di bawah 1024 tidak akan dikembalikan (kecuali pengguna saat ini =root).

Kredit di mana kredit jatuh tempo - solusi ini berasal dari komentar Franklin Yu di unix.stackexchange.com Apa cara termudah untuk menemukan port lokal yang tidak digunakan?


Skrip bash pendek yang secara acak menghasilkan angka antara 1025 dan 60000 dan berulang hingga angka itu tidak ditemukan dalam daftar port yang digunakan. Ini adalah solusi cepat dan kotor yang condong ke port yang lebih besar:

CHECK="do while"

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

echo $PORT

Linux
  1. Perintah mv Linux

  2. Linux du perintah

  3. Perintah ip Linux

  1. Perintah cd Linux

  2. Periksa penggunaan port di Linux

  3. Dapatkan Kode Sumber untuk Perintah Linux apa pun

  1. Perintah Linux dapatkan id proses kucing jantan dengan nama

  2. Dapatkan daftar Port Terbuka di Linux

  3. Daftar port SATA yang tidak digunakan di Linux