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

是否有可能检查,如果端口是开放的远程系统在Ubuntu服务器?

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

使用好的旧的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 

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

 [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。 例:

nmap example.com

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

对于脚本,我使用如下所示:

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

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

这很简单:

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

-w3是超时

从这个StackOverflow答案 :

您似乎正在寻找一个端口扫描程序,如nmap或netcat,这两个都可用于Windows,Linux和Mac OS X.

例如,在一个已知的ip上检查telnet:

  nmap -A 192.168.0.5/32 -p 23 

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

  nc -z host.example.com 20-30 

Telnet只能用于TCP服务,所以如果你想看看你的DHCP服务器(UDP / 68)是否在远程机器上运行,它将不起作用。 同样,nmap默认只扫描TCP端口。

对于UDP端口使用:

nmap -sU example.com -p 68

nmap example.com -p 22

我用下面的命令。它给出了我想要的输出。 nmap -A IPAddressOfRemoteSystem -p portNumber ex: nmap -A 192.168.1.87 -p 8080 (或)我们也可以检查本地端口

在此之前首先使用以下命令检查哪些端口处于打开/侦听模式。

netstat -ntlp | grep LISTEN

之后

nmap -A localhost -p portNumber

并closures任何一个端口,例如,如果mysql在3306上运行,您可以通过它停止,

sudo service mysql stop

接着,

nmap -A localhost -p 3306

希望这会有所帮助。