使用 ipv4 连接仅 ipv6 的路由器

使用 ipv4 连接仅 ipv6 的路由器

我的情况如下,我在一台 Linux 机器(使用 apache2)上托管了一个网站,不幸的是我的路由器(unitymedia)只为 IPv6 地址提供了端口过滤,但没有为 IPv4 提供端口转发。然后我创建了一个 noip 帐户,创建了一个域名并在我的计算机上安装了一个 duc。Noip 为我的机器提供了一种虚拟 IPv4 号码,所以我认为它可以工作,不幸的是,来自 IPv6 的连接可以工作,但非本地的 IPv4 连接返回超时错误。(本地网络上的 IPv4 连接可以工作)。

我认为有两种可能性,盒子正在切断 IPv4 连接或者网站正在虚拟 IPv4 连接上使用 IPv6 回复(可能吗?)。

有什么办法可以解决这个问题?(我无法更换盒子/路由器)。

编辑:

如果我尝试使用 socat 我会收到以下错误:

sudo socat TCP4-LISTEN:22,fork,su = nobody TCP6:[2a02:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:22

socat[10594] E bind(5, {AF=2 0.0.0.0:22}, 16): 地址已在使用中

答案1

您的主要问题是许多提供商(占欧洲所有互联网接入的 50%)仅为 IPv4 连接提供 CGNAT。

这意味着许多客户共享一个 IPv4 地址,因此您无法在这样的互联网线路上运行服务器。(如果两个或三个客户想要转发端口 80 怎么办?)

如果您的提供商没有 IPv6,那么在这种情况下您就非常不走运了。

但您有 IPv6。

你有两种选择:

  • 另一台机器(运行 Web 浏览器的那台)也具有 IPv6。然后您可以直接连接到您的服务器。例如,您可以在仅支持 IPv4 的计算机上安装 Teredo 以访问 IPv6 网站。(不幸的是,许多 WLAN 路由器防火墙会阻止 Teredo。)

  • 有商业“端口转发”服务,它们在固定 IP 地址上为您提供一些端口。传入(IPv4)连接被转发到互联网上的 IPv6 地址(您家中的服务器)。我不确定,但我想我读到过这些服务的起价为每年 5 欧元(实际上我认为您每年需要支付 15-20 欧元)。

相关内容