详细了解 Linux 上的 netstat -an 输出

详细了解 Linux 上的 netstat -an 输出

我尝试寻找有关 netstat 的优秀文档,尤其是有关选项 -an 的文档,但找不到足够详细的内容。

例 1:

tcp 0 126 android.home:58797 par10s34-in-x0e.1e100.net:https 已建立

par10s34-in-x0e.1e100.net 是什么?它不是域名吗?nslookup 返回:找不到 par10s34-in-x0e.1e100.net:无答案

例 2:

tcp 0 0 2a01:cb1d:192:e100:f167:9ba7:494f:61fa:45634 par21s03-in-x14.1e100.net:https已建立

2a01:cb1d:192:e100:f167:9ba7:494f:61fa:45634 是什么?

答案1

评论是正确的。

par10s34-in-x0e.1e100.net 是反向查找的结果。当您不使用 -n(通常是正确的)时,netstat 会将端口 443 称为 https。这No answer意味着您的本地网络配置有问题;nslookup 无法联系您的 dns 服务器。这是我的结果:

>nslookup par10s34-in-x0e.1e100.net
Server:  router
Address:  8.8.8.8

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
Name:    par10s34-in-x0e.1e100.net
Address:  2a00:1450:4007:817::200e

ipv6 输出之前的两次超时可能意味着该主机名下没有 ipv4 地址,这并不奇怪,因为这样的主机名往往只是为了给地址提供一个占位符来解析而存在。对于托管网站来说,这是一种常见的做法,因为每个 ip 上可能都有多个“正常”域名在不断变化。

2a01:cb1d:192:e100:f167:9ba7:494f:61fa 是 IPv6 地址。45634 是端口。

此外,由于从您的标签可以看出您正在运行 Linux,因此我建议dig尽可能使用命令代替 nslookup。几乎总是有更多有用的信息。您还可以使用 @ 参数指定要联系的服务器:

$dig @8.8.8.8 par10s34-in-x0e.1e100.net
; <<>> DiG 9.10.3-P4-Ubuntu <<>> @8.8.8.8 par10s34-in-x0e.1e100.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31757
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;par10s34-in-x0e.1e100.net. IN  A

;; AUTHORITY SECTION:
1e100.net.      59  IN  SOA ns3.google.com. dns-admin.google.com. 174338493 900 900 1800 60

;; Query time: 97 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Nov 02 14:01:43 MST 2017
;; MSG SIZE  rcvd: 114

答案2

这两个都是使用端口信息反向解析的 IPv6。

在 IPv4 上,结果将如下所示:

tcp4 0 0 192.168.0.149.50818 stackoverflow.co.https 已建立

因为 IPv6 不适合,所以缩写为:

xxx:xxxx:xxxx:xxxx:端口号

netstat 多年来已被弃用,并且对于大多数常见用途来说不应再使用。

现在你应该改用 ss。这会显示完整的 IP 地址,但会超出 80 列终端的宽度。

相关内容