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

53

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

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

user53864
источник

Ответы:

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
natxo asenjo
источник
Большая помощь!. Я чувствовал, что это только список номеров портов, для которых службы работают на указанном хосте. Я проверил это, остановив службы и снова выполнив команду 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

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

Хариш Кумар
источник