Ipv6
根據 netstat,HTTPD 在 IPv6 中偵聽,但在 IPv4 中可達
使用 Openstack,我在我的伺服器 (HTTPS) 上託管了一個 Web GUI (horizon)。
當我做 a
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
我相信在 Linux 上,綁定到 [::] (IPv6) 會導致同時接收 IPv6 和 IPv4 流量(預設情況下)。我相信這些被稱為IPv4 映射的 IPv6 地址。
netstat
僅顯示 IPv6 條目,因為從技術上講,只有一個綁定,恰好支持 IPv4 和 IPv6。Apache 網站上有一些資訊。
軟體可能不使用 IPv4 映射的 IPv6 地址並分別綁定到 0.0.0.0 和 [::] 並因此在 中顯示兩次
netstat
,但這是開發人員的設計選擇。