无法从我的网络外部访问通过 IPv6 访问的网站

无法从我的网络外部访问通过 IPv6 访问的网站

我有一台 Ubuntu 服务器 20.04,我无法在家外访问我的网站,我正在运行 bind9、Apache2、PHP、MariaDB,我使用 Cloudflare,并且启用了 IPv6,并且我在路由器上处于 DMZ 中, ip address

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:23:24:08:58:1f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.8/24 brd 192.168.1.255 scope global dynamic enp0s25
       valid_lft 84322sec preferred_lft 84322sec
    inet6 2604:99c0:8:2f0f:223:24ff:fe08:581f/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 43200sec preferred_lft 27000sec
    inet6 fe80::223:24ff:fe08:581f/64 scope link 
       valid_lft forever preferred_lft forever

以下是我的 Cloudflare 设置的屏幕截图:

Cloudflare 设置

这是我的端口转发设置:

在此处输入图片描述

ADNS 传播检查显示主机名和 IPv6 已正确传播。

Ifconfig

enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.8  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::223:24ff:fe08:581f  prefixlen 64  scopeid 0x20<link>
        ether 00:23:24:08:58:1f  txqueuelen 1000  (Ethernet)
        RX packets 39144  bytes 8484850 (8.4 MB)
        RX errors 0  dropped 5561  overruns 0  frame 0
        TX packets 27929  bytes 5369531 (5.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  memory 0xf0500000-f0520000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 70795  bytes 6729178 (6.7 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 70795  bytes 6729178 (6.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

在此处输入图片描述

答案1

您在问题中没有指出 IPv6 防火墙配置正确。IPv4 和 IPv6 防火墙是完全独立的,因为它们是独立的协议。

由于不使用 NAT,端口转发在 IPv6 中并不常用。即使您的暴露主机(通常被错误地标记为 DMZ)设置也只对一种协议有效。如果您必须输入 IPv4 地址,那就更加明显了。

处理 IPv6 防火墙规则对路由器来说更具挑战性;与以前不同,它不一定能控制本地网络上主机的 IPv6 地址。使用 SLAAC,他们可以自己选择。然后,前缀可以随时更改,从而再次更改所有地址。

您需要找到路由器的 IPv6 防火墙设置。在我的 FritzBox 上,我有专门的 IPv4/6 部分,如下所示:

FritzBox 防火墙设置

也许可以尝试“端口转发”设置旁边的“防火墙”设置。

如果您的路由器不提供 IPv6 防火墙设置,则此方法无效。您应该改用 IPv4,可能还要结合使用动态 DNS 服务。

答案2

您的路由器屏幕截图显示您只设置了到本地 IPv4 地址的端口转发。您的路由器的 NAT 很可能阻止了对内部地址(甚至是 IPv6)的任何公共请求。

您要么需要公开您的本地 IPv6 地址以供公共请求(许多路由器都有允许这样做的“DMZ”设置)以便能够访问您的 Web 服务器的 IPv6 端,要么也为您的 IPv6 地址添加端口转发条目。

答案3

您首先需要在路由器中禁用 IPV6 防火墙。转到http://192.168.1.1并输入路由器管理员登录名和密码。进入后按照用户界面操作即可完成。

我最初也遇到过这个问题。我甚至打电话给我的 ISP,以为他们可能阻止了端口,但后来意识到我的错误。我从来没有想到我的 TP-LINK 路由器启用了 IPV6 防火墙。但现在我在 Ubuntu 上运行的 Apache 可以被外界访问。

相关内容