根据 netstat,HTTPD 在 IPv6 中监听,但在 IPv4 中可访问

根据 netstat,HTTPD 在 IPv6 中监听,但在 IPv4 中可访问

使用 Openstack,我在我的服务器(HTTPS)上托管了一个 Web GUI(horizo​​n)。

当我做一个时netstat -lt | grep https,我有:

tcp6       0      0 [::]:https              [::]:*                  LISTEN

有了lsof -i :443,我有:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd    5250   root    6u  IPv6  27390      0t0  TCP *:https (LISTEN)
httpd   17675 apache    6u  IPv6  27390      0t0  TCP *:https (LISTEN)
httpd   17676 apache    6u  IPv6  27390      0t0  TCP *:https (LISTEN)
httpd   17677 apache    6u  IPv6  27390      0t0  TCP *:https (LISTEN)
httpd   17678 apache    6u  IPv6  27390      0t0  TCP *:https (LISTEN)
httpd   17679 apache    6u  IPv6  27390      0t0  TCP *:https (LISTEN)
httpd   17680 apache    6u  IPv6  27390      0t0  TCP *:https (LISTEN)
httpd   17681 apache    6u  IPv6  27390      0t0  TCP *:https (LISTEN)
httpd   17682 apache    6u  IPv6  27390      0t0  TCP *:https (LISTEN)
httpd   27444 apache    6u  IPv6  27390      0t0  TCP *:https (LISTEN)

但是,服务器在 IPv4 中是可以访问的。对我来说没问题,但是我想知道为什么 netstat 没有这样的条目:

tcp       0      0 0.0.0.0:https              0.0.0.0:*                  LISTEN

答案1

我认为在 Linux 上,绑定到 [::] (IPv6) 会导致接收 IPv6 和 IPv4 流量(默认情况下)。我认为这些被称为IPv4 映射的 IPv6 地址. netstat仅显示 IPv6 条目,因为从技术上讲只有一个绑定,恰好同时支持 IPv4 和 IPv6。

关于Apache 站点

软件可以不使用 IPv4 映射的 IPv6 地址,而是分别绑定到 0.0.0.0 和 [::],因此在 中出现两次netstat,但这是开发人员的设计选择。

相关内容