如何检查远程系统的端口是否已打开(ubuntu)

use*_*864 64 port

是否可以检查 ubuntu 服务器上的远程系统的端口是否已打开?

我应该能够检查我的机器上的端口(例如:ssh)是否对远程机器开放。

nat*_*njo 88

使用旧的 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
Run Code Online (Sandbox Code Playgroud)

这是一次成功的尝试。一个不成功的应该是这样的;

[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
Run Code Online (Sandbox Code Playgroud)

或使用 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
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于 TCP 服务。 (2认同)

Gil*_*not 12

这很简单:

nc -zw3 domain.tld 22 && echo "opened" || echo "closed"
Run Code Online (Sandbox Code Playgroud)

-w3 是超时


Jos*_*hua 10

使用 NMAP。例子:

nmap example.com

您可以使用 IP 地址代替域名。这是完整的文档:http : //nmap.org/book/man.html


yar*_*ena 6

对于脚本,我使用如下内容:

nmap example.com -p 22 -sV --version-all -oG - | grep -iq '22/open'
Run Code Online (Sandbox Code Playgroud)

返回值告诉你端口是否打开!


小智 5

从这个StackOverflow 答案

您似乎在寻找端口扫描器,例如 nmap 或 netcat,它们都可用于 Windows、Linux 和 Mac OS X。

例如,检查已知 IP 上的 telnet:

  nmap -A 192.168.0.5/32 -p 23
Run Code Online (Sandbox Code Playgroud)

例如,在 host.example.com 上查找从 20 到 30 的开放端口:

  nc -z host.example.com 20-30
Run Code Online (Sandbox Code Playgroud)