我认为双协议栈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发布于 2020-02-27 03:37:34
如果IPv4和IPv6堆栈正在工作,并且只存在IPv6侦听器,那么在许多(如果不是所有主要的) OSes上,默认情况下,发送到v6并将v4发送器地址映射到ipv6是正常的。可以在大多数OSes上使用IPV6_V6ONLY套接字选项来禁用此功能,如this documentation中所示。
https://stackoverflow.com/questions/60418857
复制相似问题