当前位置: 首页>>技术问答>>正文


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

, ,

问题描述

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

有没有这方面的命令?

最佳解决思路

nmap

Nmap(“Network Mapper”)是一款免费的开源工具,用于网络探索或安全审计

nmap 192.168.1.33内部PC或nmap external ip address

更多信息man nmap

次佳解决思路

我一直使用这个:

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等)

看看这个工具视图:

networking,server,ubuntu

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/634.html,未经允许,请勿转载。