0

我认为双栈 ipv4 / ipv6 是必要的,nginx、apache、ssh 在 ipv4 和 ipv6 接口上都监听。但是在使用 tvheadend 之后,我发现即使它只监听 ipv6 堆栈,它也会响应 ipv4 地址……为什么?这是证明:

sudo lsof -i -P -n

tvheadend 3676  hts   33u  IPv6 679854      0t0  TCP 192.168.0.8:9981->192.168.0.4:57868 (ESTABLISHED)

ipv6 堆栈使用 192.168.xx ipv4 地址...

并且在 ipv4 上没有监听:

sudo lsof -i -P -n | grep LISTEN | grep tvheadend

tvheadend 3676  hts    7u  IPv6 439770      0t0  TCP *:9981 (LISTEN)

tvheadend 3676  hts    8u  IPv6 439773      0t0  TCP *:9982 (LISTEN)


sudo netstat -tlnp | grep tvheadend

tcp6       0      0 :::9981                   :::*                    LISTEN      3676/tvheadend
tcp6       0      0 :::9982                   :::*                    LISTEN      3676/tvheadend
4

1 回答 1

1

如果 IPv4 和 IPv6 堆栈正在工作并且仅存在 IPv6 侦听器,则在许多(如果不是所有主要的)操作系统(例如 Linux)上,默认情况下发送到 v6 并将 v4 发件人地址映射到 ipv6 是正常的。IPV6_V6ONLYsocket 选项可在大多数操作系统上使用,以禁用此文档,如本文档中所示。

于 2020-02-26T19:37:33.687 回答