Uzak sistem için bir portun açık olup olmadığı nasıl kontrol edilir (ubuntu) [kapalı]


53

Bağlantı noktalarının ubuntu sunucusundaki uzak sistem için bağlantı noktalarının açık olup olmadığını kontrol etmek mümkün mü?

Makinemdeki bir portun (örneğin: ssh) uzaktaki makine için açık olup olmadığını kontrol etmeliyim.

Yanıtlar:


72

eski telnet kullan:

[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

bu başarılı bir girişim. Başarısız olan böyle görünmeli;

[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

veya nmap ile

[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

Harika yardım! Yalnızca hizmetlerin belirtilen ana bilgisayarda çalıştığı bağlantı noktası no'larını listelediğimi hissettim. Servisleri durdurup nmap komutunu tekrar çalıştırdığımı kontrol ettim. bu yüzden durduğum bağlantı noktasını listelemedi. Gerçekten uzak makine için açık portları mı gösteriyor?
user53864

1
@ user53864: Açıkçası bu testi uzak bir makinede yapmalısınız.
natxo asenjo

2
Bu sadece TCP servisleri için çalışacaktır.

nmapAws makinesinde kullanmak kötüye kullanım raporunu tetikler.
Newbee

10

NMAP kullanın. Örnek:

nmap example.com

Etki alanı adı yerine IP adresini kullanabilirsiniz. İşte tüm belgeler: http://nmap.org/book/man.html


1
Yalnızca hizmetlerin belirli bir makinede çalıştığı bağlantı noktalarını listeliyor.
user53864

O zaman yanlış kullanıyorsun.
Christoffer Hammarström

@ user53864, bu doğru. Daha spesifik olarak, tüm OPEN portlarını listeleyecek ve ayrıca hangi servisleri kullandıklarını açıklayacaktır. Belirli bir bağlantı noktası arıyorsanız, açık olup olmadığını görmek için bağlantı noktası 22'yi (SSH) tarayacak olan natxo asenjo'nun söylediği gibi basitçe "nmap example.com 22" yi deneyin.
Joshua,

9

Bu kadar basit:

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

-w3 zaman aşımı


1
nc -vzw3 domain.tld 22 daha kısa ve biraz daha bilgilendirici olabilir ...
g2mk

5

Bir komut dosyası için aşağıdaki gibi bir şey kullanıyorum:

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

Dönüş değeri, portun açık olup olmadığını söyler!


5

Bu StackOverflow cevabından :

Her ikisi de Windows, Linux ve Mac OS X için kullanılabilen nmap veya netcat gibi bir port tarayıcı arıyor gibi görünüyorsunuz.

Örneğin, bilinen bir ipte telnet'i kontrol edin:

  nmap -A 192.168.0.5/32 -p 23

Örneğin, host.example.com adresinde 20'den 30'a kadar açık portları arayın:

  nc -z host.example.com 20-30


2

Telnet yalnızca TCP hizmetleri için çalışacaktır, bu nedenle DHCP sunucunuzun (UDP / 68) uzak bir makinede çalışıp çalışmadığını görmeye çalışıyorsanız, çalışmaz. Aynı şekilde, nmap varsayılanları sadece TCP portlarını taramak için kullanılır.

UDP bağlantı noktaları için kullanın:

nmap -sU example.com -p 68


1

Aşağıdaki komutu kullandım. İstediğim şeyi çıktı verdi. nmap -A IPAddressOfRemoteSystem -p portNumber örn .: nmap -A 192.168.1.87 -p 8080 (veya) yerel limanları da kontrol edebiliriz

Bundan önce, aşağıdaki komutu kullanarak portların açık / dinleme modunun ne olduğunu kontrol edin.

netstat -ntlp | grep LISTEN

Daha sonra

nmap -A localhost -p portNumber

ve herhangi bir bağlantı noktasını kapatın; örneğin, mysql 3306’da çalışıyorsa,

sudo service mysql stop

ve sonra,

nmap -A localhost -p 3306

Umarım bu yardımcı olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.