Можно ли проверить, открыты ли порты для удаленной системы на сервере ubuntu?
Я должен проверить, открыт ли порт (например, ssh) на моем компьютере для удаленного компьютера.
используйте старый добрый телнет:
[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
Это просто:
nc -zw3 domain.tld 22 && echo "opened" || echo "closed"
-w3
это тайм-аут
Используйте NMAP. Пример:
nmap example.com
Вы можете использовать IP-адрес вместо доменного имени. Вот полная документация: http://nmap.org/book/man.html
Для сценария я использую что-то вроде следующего:
nmap example.com -p 22 -sV --version-all -oG - | grep -iq '22/open'
Возвращаемое значение сообщает вам, открыт ли порт!
Из этого 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
nmap example.com -p 22
Telnet будет работать только для служб TCP, поэтому, если вы пытаетесь узнать, работает ли ваш DHCP-сервер (UDP / 68) на удаленном компьютере, это не сработает. Точно так же по умолчанию Nmap сканирует только TCP-порты.
Для портов UDP используйте:
nmap -sU example.com -p 68
Я использовал следующую команду. Она дала то, что я хотел. 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
Надеюсь, это будет полезно.