Cara memeriksa apakah port terbuka untuk sistem jarak jauh (ubuntu) [ditutup]

53

Apakah mungkin untuk memeriksa apakah port terbuka untuk sistem jarak jauh di server ubuntu?

Saya harus dapat memeriksa apakah port (misalnya: ssh) pada mesin saya terbuka untuk mesin jarak jauh.

pengguna53864
sumber

Jawaban:

72

gunakan telnet lama yang bagus:

[user@lappie ~]$ telnet host 22
Trying ip.adr.tld ...
Connected to host  (ip.addr.tld).
Escape character is '^]'.
SSH-2.0-OpenSSH_5.1p1 Debian-5

ini adalah upaya yang berhasil. Yang tidak berhasil akan terlihat seperti ini;

[user@lappie ~]$ telnet host 23
Trying ip.adr.tld ...
telnet: connect to address ip.adr.tld: Connection refused
telnet: Unable to connect to remote host: Connection refused

atau dengan nmap

[user@lappie ~]$ nmap host

Starting Nmap 5.21 ( http://nmap.org ) at 2010-10-07 11:25 CEST
Nmap scan report for host (ip.adr.tld)
Host is up (0.0052s latency).
rDNS record for ip.adr.tld : host.domain.tld
Not shown: 995 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
3000/tcp open  ppp
5666/tcp open  nrpe

Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds
natxo asenjo
sumber
Sangat membantu! Saya merasa Ini hanya mencantumkan no port yang layanannya berjalan pada host yang ditentukan. Saya memeriksanya menghentikan layanan dan menjalankan perintah nmap lagi. jadi tidak mencantumkan port yang saya hentikan. Apakah ini benar-benar menunjukkan port terbuka untuk mesin jarak jauh?
user53864
1
@ user53864: Anda harus menjalankan tes ini pada mesin jarak jauh, jelas.
natxo asenjo
2
Ini hanya akan berfungsi untuk layanan TCP.
Menggunakan nmapmesin aws memicu laporan penyalahgunaan.
Newbee
10

Gunakan NMAP. Contoh:

nmap example.com

Anda dapat menggunakan alamat IP sebagai ganti nama domain. Berikut ini dokumentasi lengkapnya: http://nmap.org/book/man.html

Joshua
sumber
1
Ini hanya daftar port tempat layanan berjalan pada mesin yang ditentukan.
user53864
Maka Anda salah menggunakannya.
Christoffer Hammarström
@ user53864, itu benar. Lebih khusus, ini akan mencantumkan semua port OPEN dan juga menggambarkan layanan apa yang menggunakannya. Jika Anda mencari port tertentu, coba saja "nmap example.com 22" seperti yang dikatakan natxo asenjo, yang akan memindai port 22 (SSH) untuk melihat apakah port tersebut terbuka.
Joshua
9

Ini sederhana seperti:

nc -zw3 domain.tld 22 && echo "opened" || echo "closed"

-w3 adalah batas waktu

Gilles Quenot
sumber
1
nc -vzw3 domain.tld 22 lebih pendek dan mungkin sedikit lebih informatif ...
g2mk
5

Untuk skrip, saya menggunakan sesuatu seperti berikut:

nmap example.com -p 22 -sV --version-all -oG - | grep -iq '22/open'

Nilai pengembalian memberi tahu Anda apakah port terbuka!

yardena
sumber
5

Dari jawaban StackOverflow ini :

Anda tampaknya mencari pemindai port seperti nmap atau netcat, yang keduanya tersedia untuk Windows, Linux, dan Mac OS X.

Sebagai contoh, periksa telnet pada ip yang dikenal:

  nmap -A 192.168.0.5/32 -p 23

Misalnya, cari port terbuka dari 20 hingga 30 di host.example.com:

  nc -z host.example.com 20-30
Mohamed Brahimi
sumber
2

nmap example.com -p 22

Sudheer
sumber
2

Telnet hanya akan berfungsi untuk layanan TCP, jadi jika Anda mencoba melihat apakah server DHCP Anda (UDP / 68) berjalan pada mesin jarak jauh, itu tidak akan berfungsi. Demikian juga nmap secara default hanya memindai port TCP.

Untuk port UDP gunakan:

nmap -sU example.com -p 68


sumber
1

Saya menggunakan perintah berikut. Ini memberikan output apa yang saya inginkan. nmap -A IPAddressOfRemoteSystem -p portNumber mis: nmap -A 192.168.1.87 -p 8080 (atau) kami dapat memeriksa port lokal juga

sebelum itu periksa dulu apa port-portnya adalah mode buka / dengar dengan menggunakan perintah berikut.

netstat -ntlp | grep LISTEN

setelah itu

nmap -A localhost -p portNumber

dan tutup salah satu port misalnya jika mysql berjalan pada 3306 Anda dapat menghentikannya,

sudo service mysql stop

lalu,

nmap -A localhost -p 3306

Semoga ini bisa membantu.

Harish Kumar
sumber