使用 Openstack,我在我的服务器(HTTPS)上托管了一个 Web GUI(horizon)。
当我做一个时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
,但这是开发人员的设计选择。