为什么ipv6堆栈(在Linux上可以解释ipv4地址?

问题描述 投票:0回答:1

我认为必须使用双堆栈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.x.x 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
linux ipv6 ipv4
1个回答
0
投票

如果IPv4和IPv6堆栈正常工作,并且仅存在IPv6侦听器,则在许多(如果不是所有主要的)主要操作系统上,默认情况下,发送到v6并仅将v4发送者地址映射到ipv6是正常的。 IPV6_V6ONLY套接字选项可在大多数操作系统上使用,以禁用此功能,如this documentation所示。

© www.soinside.com 2019 - 2024. All rights reserved.