So prüfen Sie, ob ein Port für ein Remote-System (Ubuntu) offen ist [geschlossen]

53

Ist es möglich zu überprüfen, ob die Ports für das Remote-System auf dem Ubuntu-Server geöffnet sind?

Ich sollte in der Lage sein zu überprüfen, ob ein Port (z. B. ssh) auf meinem Computer für den Remotecomputer geöffnet ist.

user53864
quelle

Antworten:

72

benutze gutes altes telnet:

[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

Dies ist ein erfolgreicher Versuch. Ein erfolgloser sollte so aussehen;

[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

oder mit 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
quelle
Tolle Hilfe!. Ich hatte das Gefühl, es listet nur die Portnummern auf, für die die Dienste auf dem angegebenen Host ausgeführt werden. Ich habe überprüft, ob die Dienste gestoppt wurden und der Befehl nmap erneut ausgeführt wurde. so listete es nicht den Hafen auf, den ich stoppte. Zeigt es wirklich die offenen Ports für den Remotecomputer?
User53864
1
@ user53864: Sie sollten diesen Test natürlich auf einem Remotecomputer ausführen.
Natxo Asenjo
2
Dies funktioniert nur für TCP-Dienste.
Bei Verwendung nmapauf einem aws-Computer wird ein Missbrauchsbericht ausgelöst.
Newbee
10

Verwenden Sie NMAP. Beispiel:

nmap example.com

Sie können die IP-Adresse anstelle des Domainnamens verwenden. Hier finden Sie die vollständige Dokumentation: http://nmap.org/book/man.html

Joshua
quelle
1
Es listet nur die Ports auf, auf denen Dienste auf einem bestimmten Computer ausgeführt werden.
user53864
Dann benutzt du es falsch.
Christoffer Hammarström
@ user53864, das ist richtig. Insbesondere werden alle OPEN-Ports aufgelistet und beschrieben, welche Dienste sie verwenden. Wenn Sie nach einem bestimmten Port suchen, probieren Sie einfach "nmap example.com 22" aus, wie von natxo asenjo angegeben. Dadurch wird Port 22 (SSH) gescannt, um festzustellen, ob er geöffnet ist.
Joshua
9

Das ist ganz einfach:

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

-w3 ist die Auszeit

Gilles Quenot
quelle
1
nc -vzw3 domain.tld 22 ist kürzer und könnte ein bisschen informativer sein ...
g2mk
5

Für ein Skript verwende ich etwa Folgendes:

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

Der Rückgabewert gibt an, ob der Port offen ist!

Yardena
quelle
5

Aus dieser StackOverflow-Antwort :

Sie scheinen nach einem Port-Scanner wie nmap oder netcat zu suchen, die beide für Windows, Linux und Mac OS X verfügbar sind.

Überprüfen Sie beispielsweise eine bekannte IP-Adresse auf Telnet:

  nmap -A 192.168.0.5/32 -p 23

Suchen Sie beispielsweise unter host.example.com nach offenen Ports von 20 bis 30:

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

nmap example.com -p 22

Sudheer
quelle
2

Telnet funktioniert nur für TCP-Dienste. Wenn Sie also versuchen, festzustellen, ob Ihr DHCP-Server (UDP / 68) auf einem Remotecomputer ausgeführt wird, funktioniert dies nicht. Ebenso scannt nmap standardmäßig nur TCP-Ports.

Für UDP-Ports verwenden Sie:

nmap -sU example.com -p 68


quelle
1

Ich habe den folgenden Befehl verwendet. Es gab die Ausgabe, was ich wollte. nmap -A IPAddressOfRemoteSystem -p portNumber zB: nmap -A 192.168.1.87 -p 8080 (oder) wir können auch die lokalen Ports überprüfen

Bevor Sie dies tun, überprüfen Sie zunächst mit dem folgenden Befehl, welche Ports im Open / Listen-Modus sind.

netstat -ntlp | grep LISTEN

nachdem

nmap -A localhost -p portNumber

und schließen Sie einen beliebigen Port, zum Beispiel wenn MySQL auf 3306 läuft, können Sie es stoppen, indem Sie

sudo service mysql stop

und dann,

nmap -A localhost -p 3306

Hoffe das wird hilfreich sein.

Harish Kumar
quelle