Como verificar se uma porta está aberta para o sistema remoto (ubuntu) [fechado]

53

É possível verificar se as portas estão abertas para o sistema remoto no servidor ubuntu?

Deveria verificar se uma porta (por exemplo: ssh) na minha máquina está aberta para a máquina remota.

user53864
fonte

Respostas:

72

use o bom e velho 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

esta é uma tentativa bem sucedida. Um mal sucedido deve ser assim;

[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

ou com 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
fonte
Ótima ajuda!. Eu senti que está listando apenas as portas não para as quais os serviços estão sendo executados no host especificado. Eu verifiquei parando os serviços e executando o comando nmap novamente. então não listou a porta que eu parei. Está realmente mostrando as portas abertas para a máquina remota?
user53864
11
@ user53864: você deve executar este teste em uma máquina remota, obviamente.
Natxo asenjo
2
Isso funcionará apenas para serviços TCP.
O uso nmapna máquina aws aciona uma denúncia de abuso.
Newbee
10

Use NMAP. Exemplo:

nmap example.com

Você pode usar o endereço IP no lugar do nome do domínio. Aqui está a documentação completa: http://nmap.org/book/man.html

Joshua
fonte
11
É apenas listar as portas nas quais os serviços estão sendo executados em uma máquina especificada.
user53864
Então você está usando errado.
Christoffer Hammarström
@ user53864, está correto. Mais especificamente, listará todas as portas OPEN e também descreverá quais serviços as estão usando. Se você estiver procurando por uma porta específica, tente simplesmente "nmap example.com 22", como disse natxo asenjo, que fará a varredura da porta 22 (SSH) para verificar se está aberta.
Joshua
9

Isto é simples como:

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

-w3 é o tempo limite

Gilles Quenot
fonte
11
nc -vzw3 domain.tld 22 é mais curto e pode ser um pouco mais informativo ...
g2mk 25/10
5

Para um script, eu uso algo como o seguinte:

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

O valor de retorno informa se a porta está aberta!

yardena
fonte
5

A partir desta resposta StackOverflow :

Você parece estar procurando um scanner de porta como o nmap ou o netcat, ambos disponíveis para Windows, Linux e Mac OS X.

Por exemplo, verifique se há telnet em um ip conhecido:

  nmap -A 192.168.0.5/32 -p 23

Por exemplo, procure portas abertas de 20 a 30 em host.example.com:

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

nmap example.com -p 22

Sudheer
fonte
2

O Telnet funcionará apenas para serviços TCP, portanto, se você estiver tentando verificar se o servidor DHCP (UDP / 68) está sendo executado em uma máquina remota, não funcionará. Da mesma forma, o nmap padroniza apenas a verificação de portas TCP.

Para portas UDP, use:

nmap -sU example.com -p 68


fonte
1

Eu usei o seguinte comando. Deu saída o que eu queria. nmap -A IPAddressOfRemoteSystem -p portNumber ex: nmap -A 192.168.1.87 -p 8080 (ou) também podemos verificar as portas locais

Antes disso, verifique primeiro quais são as portas no modo de abertura / escuta usando o seguinte comando.

netstat -ntlp | grep LISTEN

depois disso

nmap -A localhost -p portNumber

e feche qualquer porta, por exemplo, se o mysql estiver em execução no 3306, você pode pará-lo,

sudo service mysql stop

e depois,

nmap -A localhost -p 3306

Espero que isso seja útil.

Harish Kumar
fonte