如何检查是否为远程系统(ubuntu)打开了端口[关闭]


53

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

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

Answers:


72

使用良好的旧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命令。因此它没有列出我停止的端口。它确实显示了远程计算机的开放端口吗?
user53864

1
@ user53864:显然,您应该在远程计算机上运行此测试。
natxo asenjo 2010年

2
这仅适用于TCP服务。

nmap在AWS机器上使用会触发滥用报告。
Newbee '18

10

使用NMAP。例:

nmap example.com

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


1
它仅列出在指定计算机上运行服务的端口。
user53864

那你就用错了。
ChristofferHammarström,2010年

@ user53864,那是正确的。更具体地说,它将列出所有OPEN端口,并描述正在使用哪些服务。如果您要查找特定端口,请尝试按natxo asenjo所说的“ nmap example.com 22”,它将扫描端口22(SSH)以查看其是否打开。
约书亚


5

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

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

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


5

从这个StackOverflow答案

您似乎正在寻找端口扫描程序,例如nmap或netcat,这两种扫描程序都可用于Windows,Linux和Mac OSX。

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

  nmap -A 192.168.0.5/32 -p 23

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

  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

希望对您有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.