Как проверить, открыт ли порт для удаленной системы (Ubuntu) [закрыт]


53

Можно ли проверить, открыты ли порты для удаленной системы на сервере Ubuntu?

Я должен иметь возможность проверить, открыт ли порт (например, ssh) на моей машине для удаленной машины.

Ответы:


73

используйте старый добрый телнет:

[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

это успешная попытка. Неудачный должен выглядеть так;

[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

или с 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

Большая помощь!. Я чувствовал, что это только список номеров портов, для которых службы работают на указанном хосте. Я проверил это, остановив службы и снова выполнив команду nmap. поэтому он не указал порт, который я остановил. Это действительно показывает открытые порты для удаленной машины?
— user53864

1
@ user53864: очевидно, вы должны запустить этот тест на удаленной машине.
— Natxo Asenjo

2
Это будет работать только для служб TCP.

Использование nmapна AWS триггера машины сообщения о нарушении.
— Newbee

10

Используйте NMAP. Пример:

nmap example.com

Вы можете использовать IP-адрес вместо доменного имени. Вот полная документация: http://nmap.org/book/man.html


1
Это только список портов, на которых работают службы на указанной машине.
— user53864

Тогда вы используете это неправильно.
— Кристофер Хаммарстрем

@ user53864, это правильно. Более конкретно, в нем будут перечислены все открытые порты, а также описано, какие сервисы их используют. Если вы ищете определенный порт, попробуйте просто «nmap example.com 22», как сказал natxo asenjo, который просканирует порт 22 (SSH), чтобы увидеть, открыт ли он.
— Джошуа

9

Это просто как:

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

-w3 это тайм-аут


1
nc -vzw3 domain.tld 22 короче и может быть более информативным ...
— g2mk

5

Для сценария я использую что-то вроде следующего:

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

Возвращаемое значение говорит вам, открыт ли порт!


5

Из этого ответа StackOverflow :

Похоже, вы ищете сканер портов, такой как nmap или netcat, оба из которых доступны для Windows, Linux и Mac OS X.

Например, проверьте telnet на известном ip:

  nmap -A 192.168.0.5/32 -p 23

Например, найдите открытые порты от 20 до 30 на host.example.com:

  nc -z host.example.com 20-30


2

Telnet будет работать только для служб TCP, поэтому, если вы пытаетесь проверить, работает ли ваш DHCP-сервер (UDP / 68) на удаленной машине, он не будет работать. По умолчанию nmap по умолчанию сканирует только порты TCP.

Для портов UDP используйте:

nmap -sU example.com -p 68


1

Я использовал следующую команду. Он выдал то, что хотел. nmap -A IPAddressOfRemoteSystem -p portNumber например: nmap -A 192.168.1.87 -p 8080 (или) мы можем также проверить локальные порты

перед этим сначала проверьте, какие порты находятся в режиме открытия / прослушивания, с помощью следующей команды.

netstat -ntlp | grep LISTEN

после того

nmap -A localhost -p portNumber

и закройте любой порт, например, если MySQL работает на 3306, вы можете остановить его,

sudo service mysql stop

а потом,

nmap -A localhost -p 3306

Надеюсь, это поможет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.