是否有可能检查,如果端口是开放的远程系统在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
希望这会有所帮助。