6_查看正在侦听的网络端口

Checking for Listening Ports(netstat,ss,lsof,telnet,nmap)

  1. 运行'netstat'相关命令来显示所有打开的端口:

      sudo netstat -tupan #-t显示tcp端口,-u显示udp端口,-p显示正在监听的程序的pid和名称,-a显示所有端口,包括监听和不监听 ,-n显示数字地址而不是尝试确定符号主机和端口名称。
    

    在本地地址栏中,如果您看到类似0.0.0.0的IP地址,这意味着该进程正在侦听主机的所有IP地址,而有些三重冒号实际上是IPV6地址

    根据条件过滤查询出来的端口,用grep命令:

      sudo netstat -tupan | grep :80
      sudo netstat -tupan | grep sshd
    

    安装nginx,这是一个著名的web服务器:

      sudo apt install nginx
    

    查看nginx的状态:

      sudo systemctl status nginx
    

    查看80端口:

      sudo netstat -tupan | grep :80
    

    可以看到刚刚没有搜到的80端口此时打开了

  2. 让我们继续讨论一个类似的命令,即SS,这是一个较新的命令,SS代表套接字统计信息并显示。

    使用ss命令打开所有端口。

      ss -tupan
    

    另一个有用的命令是lsof,它代表列出由系统任何进程打开的文件,获取所有文件的列表。

      lsof
    

    有很多输出项。。。

    如果想查看特定用户的进程打开的所有文件:

      lsof -u ^用户名 # ^表示排除该用户
    

    让我们看看nginx打开的所有文件:

      sudo lsof -c nginx
    

    仅显示打开tcp端口的文件:

      sudo lsof -iTCP -sTCP:LISTEN -nP #-iTCP -sTCP:LISTEN 仅显示打开tcp端口的文件 
      # -nP显示数字格式的端口和主机。
    

    仅显示打开tcp端口22的文件:

      sudo lsof -iTCP:22 -sTCP:LISTEN -nP
      # :22 TCP端口22
    

    要扫描其他主机上的端口,可以使用telnetnmap这样的专业端口扫描器。

    例如我想在Ubuntu上检查CentOS上的22端口是否打开。

      telnet 192.168.0.113 22
      or 
      nmap -p 80 linux.com
    
posted @ 2023-08-01 10:17  lyyyuanfang  阅读(69)  评论(0)    收藏  举报