如何查看我的机器上打开了哪些端口?

我想看看我的机器上打开了哪些端口,例如我的机器正在监听哪些端口。 例如,如果我安装了Web服务器,则为80端口,依此类推。

这有什么命令吗?

NMAP 安装nmap

Nmap(“网络映射器”)是一个免费的开源实用程序,用于网络探索或安全审计

nmap 192.168.1.33内部Pc或nmap external ip address

更多信息man nmap

我一直用这个:

 sudo netstat -ntlp | grep LISTEN 

找出哪些端口存在以及防火墙规则是什么的其他好方法:

  • sudo netstat -tulpn

  • sudo ufw status

这足以表明有一个进程在端口80(标准Web服务器端口号)上侦听IP地址0.0.0.0 (需要它将回复任何请求)。 在我的例子中,这表明它是web服务器lighttpd

 $ sudo netstat -ntlp | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2495/lighttpd 

如果您以后想要确保通过防火墙允许的唯一内容是端口80,我经常使用www.grc.com上的ShieldsUp来执行防火墙测试。

要列出打开的端口,请使用netstat命令。

例如:

  $ sudo netstat -tulpn | grep LISTEN tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 5452/dnsmasq tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1037/cupsd tcp6 0 0 ::1:631 :::* LISTEN 1037/cupsd 

在上面的示例中,三个服务绑定到环回地址。

绑定到环回地址“127.0.0.1”的IPv4服务仅在本地计算机上可用。 IPv6的等效环回地址是“:: 1”。 IPv4地址“0.0.0.0”表示“任何IP地址”,这意味着其他计算机可能会连接到特定端口上的任何本地配置的网络接口。

另一种方法是使用lsof命令:

  $ sudo lsof -nP -i | grep LISTEN cupsd 1037 root 9u IPv6 11276 0t0 TCP [::1]:631 (LISTEN) cupsd 1037 root 10u IPv4 11277 0t0 TCP 127.0.0.1:631 (LISTEN) dnsmasq 5452 nobody 5u IPv4 212707 0t0 TCP 127.0.0.1:53 (LISTEN) 

有关详细信息,请参阅man netstatman lsof

sudo iptables -L将列出你的电脑的端口规则。 请注意,如果您使用的是ufw或shorewall防火墙,则输出可能难以阅读。 在这种情况下,例如使用sudo ufw status

这本身并不是很有用,因为即使端口是开放访问,如果没有进程侦听该端口,仍将被拒绝。

如果您正在寻找服务器机器或本地端口的连续监控我认为您也可以使用nmap的图形版本,即Zenmap更详细的版本

Zenmap是Nmap Security Scanner的官方图形用户界面(GUI)。

支持可用(Linux,Windows,Mac OS X,BSD等)

看看这个工具视图:

在此处输入图像描述