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  阅读(98)  评论(0)    收藏  举报