netstat

netstat -anpl | grep 192.168.29.130

问1:

显示以下信息是什么含义?

(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 192.168.29.130:22 192.168.29.1:60986 ESTABLISHED - tcp 0 0 192.168.29.130:22 192.168.29.1:61016 ESTABLISHED - tcp 0 48 192.168.29.130:22 192.168.29.1:60978 ESTABLISHED - tcp 0 0 ::ffff:192.168.29.130:1521 ::ffff:192.168.29.130:50471 ESTABLISHED - tcp 0 0 ::ffff:192.168.29.130:50475 ::ffff:192.168.29.130:1521 ESTABLISHED 12530/java

答1:

 这个命令用于查看与 IP 地址 192.168.29.130 相关的网络连接信息

-a 选项表示显示所有活动的网络连接和监听的服务器套接字;-n 选项表示以数字形式显示地址和端口号,不进行 DNS 解析;-p 选项表示显示与每个套接字关联的进程 ID 和名称;-l 选项通常用于显示监听套接字,但在这里由于被 grep 过滤了,所以实际上不会显示监听套接字

  1. (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)
    这个信息表示,由于当前用户不是 root 用户,所以不是所有进程都能被识别出来。只有当前用户拥有的进程才会显示进程信息(如进程 ID 和进程名)。
  2. tcp 0 0 192.168.29.130:22 192.168.29.1:60986 ESTABLISHED -
    这条记录表示一个 TCP 连接,其中 192.168.29.130 上的 22 端口(通常是 SSH 服务的端口)与 192.168.29.1 上的 60986 端口处于 ESTABLISHED(已建立)状态。由于是非 root 用户执行的命令,所以没有显示与该连接关联的进程信息。
  3. ...
    其他记录与第2条类似,只是端口号和连接状态可能不同。
  4. tcp 0 0 ::ffff:192.168.29.130:1521 ::ffff:192.168.29.130:50471 ESTABLISHED -
    这条记录表示一个 TCP 连接,使用了 IPv6 映射的 IPv4 地址(::ffff: 前缀)。它表示 192.168.29.130 上的 1521 端口(可能是 Oracle 数据库服务的默认端口)与同一台机器上的 50471 端口处于 ESTABLISHED 状态。
  5. tcp 0 0 ::ffff:192.168.29.130:50475 ::ffff:192.168.29.130:1521 ESTABLISHED 12530/java
    这条记录与上一条类似,但是显示了与该连接关联的进程信息。进程 ID 是 12530,进程名是 java。这表示一个 Java 进程正在监听或使用了 192.168.29.130 上的 50475 端口,并与同一台机器上的 1521 端口建立了连接。

netstat -anp | grep 9803

(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 :::9803 :::* LISTEN 12530/java 

问2:

为什么9803服务是部署在192.168.29.130服务器上的,但是netstat -anpl | grep 192.168.29.130 却不显示netstat -anp | grep 9803显示的结果呢:

tcp 0 0 :::9803 :::* LISTEN 12530/java 

答2:

原因可能是这个监听套接字并没有绑定到特定的 IP 地址 192.168.29.130,而是绑定到了所有可用的 IP 地址(包括 IPv6 的 :: 和 IPv4 的 0.0.0.0)。在 netstat 的输出中,:::9803 表示该套接字正在监听所有可用的 IPv6 地址和端口 9803,而不是特定的 IP 地址 192.168.29.130

如果你想要查看 192.168.29.130 这个 IP 地址上是否有进程在监听端口 9803,但实际上由于端口 9803 是在所有地址上监听的,所以 grep 192.168.29.130 不会返回这条信息。但是,由于 192.168.29.130 是机器上的一个有效 IP 地址,并且端口 9803 正在监听所有地址,因此从这个 IP 地址也可以访问到该端口

问3:

怎么知道并且端口 9803 正在监听所有地址?

答3:

要确定端口 9803 是否正在监听所有地址(即绑定到 0.0.0.0 对于 IPv4 或 :: 对于 IPv6),你可以从 netstat 的输出中直接观察。当端口绑定到所有地址时,netstat 会显示 0.0.0.0(对于 IPv4)或 ::(对于 IPv6)作为本地地址。

以下是如何通过 netstat 命令来确定端口 9803 是否正在监听所有地址的步骤:

  1. 运行 netstat 命令并过滤出端口 9803 的信息。你可以使用 grep 来过滤输出。

对于 IPv4:

netstat -tulnp | grep 9803

对于 IPv6:

netstat -tulnp6 | grep 9803

注意:-t 表示 TCP,-u 表示 UDP(如果你不确定是 TCP 还是 UDP,可以省略 -t 或 -u),-l 表示仅列出监听状态的套接字,-n 表示以数字形式显示地址和端口号(不进行 DNS 解析),-p 表示显示与套接字关联的进程信息。

  1. 观察输出中的本地地址(Local Address)列。如果看到 0.0.0.0:9803(对于 IPv4)或 :::9803(对于 IPv6),那么端口 9803 正在监听所有地址。

如果你只运行了 netstat -anp | grep 9803 而没有指定 -l 选项,你可能会看到与端口 9803 相关的所有连接,包括已建立的连接和监听状态的套接字。但是,要特别关注那些状态为 LISTEN 的行,因为它们表示套接字正在监听连接请求。

如果你看到类似这样的输出:

tcp 0 0 0.0.0.0:9803 0.0.0.0:* LISTEN 12530/java

或者

tcp6 0 0 :::9803 :::* LISTEN 12530/java

那么端口 9803 正在监听所有地址。

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值