强制 *BSD 在单个套接字上接受 IPv4 和 IPv6 流量

强制 *BSD 在单个套接字上接受 IPv4 和 IPv6 流量

我尝试过很多方法但都一无所获。

请允许我概括一下情况:

我在 FreeNAS 中设置了一个 *BSD Jail,它运行 Plex Media Server (Plexpass)。它具有 IPv6 访问权限并配置为使用它。Plex 目前构建为使用单个套接字(这完全符合标准,因为有一个 RFC 支持此行为)。我知道 BSD 出于安全考虑不允许在单个套接字上侦听两种协议,因此任何未明确编程为使用不同套接字进行 IPv4 和 IPv6 的应用程序都将无法在套接字未绑定到的任何协议上进行通信。

我可以使用 Web 浏览器中的 IPv6 地址访问管理页面。MyPlex 无法访问服务器进行远程访问(MyPlex 目前仅支持 IPv4)。

附加信息:

root@plexmediaserver_plexpass:/#netstat -a | grep 32400
tcp6 0 0 *.32400

我尝试了以下方法:

  • 在 rc.conf 中设置 ipv6_ipv4mapping="YES"
  • 设置 sysctl net.inet6.ip6.v6only=0
  • 使用 socat 将端口 32400 上的 TCP4 代理到地址 [::1]:32400 上的 TCP6
  • 使用 socat 将端口 32400 上的 TCP4 代理到地址 [Public-IPv6-Address]:32400 上的 TCP6
  • 以上内容的混合物

我完全不知所措。我知道这对欧洲的很多人来说是一个大问题,因为 ISP 已经开始大规模切换到 IPv6。这对我来说非常令人沮丧,尽管对他们来说并不那么可怕。我无法找到有关在 Plex 中永久修复此问题的状态的任何信息。据我所知,最好的解决办法是绑定多个端口,然后让 MyPlex 将它们都拉出来,并根据它是否可以通过任何流量来决定使用哪种协议。不过,这是他们论坛的问题。

我的问题是,是否有其他方法可以强制 *BSD 遵守有关 IPv6 套接字的 RFC 标准,或者他们是否完全放弃对它的支持。

感谢任何我能得到的帮助。

答案1

也许这有帮助:

ipv6_ipv4mapping="YES"

但我不知道这是否是你想要的 src:https://www.freebsd.org/doc/handbook/network-ipv6.html

相关内容