強制 *BSD 在單一套接字上接受 IPv4 和 IPv6 流量

強制 *BSD 在單一套接字上接受 IPv4 和 IPv6 流量

我嘗試過很多東西,但總是空手而歸。

請容許我描述一下情況:

我在 FreeNAS 中設定了一個 *BSD Jail,它運行 Plex 媒體伺服器 (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

相關內容