Jak sprawdzić, czy port jest otwarty dla systemu zdalnego (ubuntu) [zamknięty]

53

Czy można sprawdzić, czy porty są otwarte dla zdalnego systemu na serwerze Ubuntu?

Powinienem móc sprawdzić, czy port (np .: ssh) na moim komputerze jest otwarty dla komputera zdalnego.

użytkownik53864
źródło

Odpowiedzi:

72

użyj dobrego starego telnetu:

[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

to udana próba. Nieudany powinien wyglądać tak;

[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

lub z 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
źródło
Świetna pomoc! Czułem, że wyświetla tylko numer portu, dla którego usługi działają na określonym hoście. Sprawdziłem, czy zatrzymałem usługi i ponownie uruchomiłem polecenie nmap. więc nie wymieniono portu, który zatrzymałem. Czy to naprawdę pokazuje otwarte porty dla zdalnego komputera?
user53864,
1
@ user53864: oczywiście powinieneś uruchomić ten test na zdalnym komputerze.
natxo asenjo
2
Będzie to działać tylko w przypadku usług TCP.
Używanie nmapna maszynie aws powoduje zgłoszenie nadużycia.
Newbee,
10

Użyj NMAP. Przykład:

nmap example.com

Możesz użyć adresu IP zamiast nazwy domeny. Oto pełna dokumentacja: http://nmap.org/book/man.html

Jozuego
źródło
1
Podaje tylko porty, na których usługi działają na określonym komputerze.
user53864,
Więc źle go używasz.
Christoffer Hammarström
@ user53864, to prawda. Dokładniej, wyświetli listę wszystkich portów OPEN, a także opisuje, z których usług korzystają. Jeśli szukasz określonego portu, spróbuj po prostu „nmap example.com 22”, jak powiedział natxo asenjo, który przeskanuje port 22 (SSH), aby sprawdzić, czy jest otwarty.
Joshua
9

Jest to proste:

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

-w3 jest limit czasu

Gilles Quenot
źródło
1
nc -vzw3 domain.tld 22 jest krótszy i może być nieco bardziej pouczający ...
g2mk 25.10.18
5

Do skryptu używam czegoś takiego:

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

Wartość zwracana mówi, czy port jest otwarty!

yardena
źródło
5

Z tej odpowiedzi StackOverflow :

Wygląda na to, że szukasz skanera portów, takiego jak nmap lub netcat, które są dostępne dla systemów Windows, Linux i Mac OS X.

Na przykład sprawdź telnet na znanym adresie IP:

  nmap -A 192.168.0.5/32 -p 23

Na przykład poszukaj wolnych portów od 20 do 30 na hoście.przyklad.com:

  nc -z host.example.com 20-30
Mohamed Brahimi
źródło
2

nmap example.com -p 22

Sudheer
źródło
2

Telnet będzie działał tylko w przypadku usług TCP, więc jeśli próbujesz sprawdzić, czy serwer DHCP (UDP / 68) działa na komputerze zdalnym, nie będzie działać. Podobnie nmap domyślnie skanuje tylko porty TCP.

W przypadku portów UDP użyj:

nmap -sU example.com -p 68


źródło
1

Użyłem następującego polecenia. Dało to wyjście, czego chciałem. nmap -A IPAddressOfRemoteSystem -p portNumber np .: nmap -A 192.168.1.87 -p 8080 (lub) możemy również sprawdzić porty lokalne

przed tym najpierw sprawdź, które porty są w trybie otwartym / nasłuchuj, używając następującego polecenia.

netstat -ntlp | grep LISTEN

po tym

nmap -A localhost -p portNumber

i zamknij dowolny port, na przykład jeśli mysql działa na 3306, możesz go zatrzymać,

sudo service mysql stop

i wtedy,

nmap -A localhost -p 3306

Mam nadzieję, że to pomoże.

Harish Kumar
źródło