使用 Teredo 通过 IPv6 运行 Apache2 服务器

使用 Teredo 通过 IPv6 运行 Apache2 服务器

我正在尝试在我的 Ubuntu 16.04 系统上设置一个 Apache 服务器,我可以使用它来提供一个包含一些系统状态信息的基本 HTML 文件,我可以从我的手机访问这些信息。

我的手机使用的是 IPv6,我想绕过 NAT,因此我在 Ubuntu 16.04 计算机上设置了从 IPv4 到 IPv6 的 Teredo 隧道,并且我可以使用以下方法从 LAN 外部 ping 我的计算机http://www.subnetonline.com/pages/ipv6-network-tools/online-ipv6-ping.php。我在电脑和手机上都尝试过了,两种方式都可以。

Apache2 也可以工作,我可以使用以下方法在台式电脑的浏览器中获取默认页面http://[::1]以及完整的 IPv6 地址。我还更新了 ufw 以允许 http 流量通过:

$ sudo ufw 状态

状态:活跃

行动来自

-- ------ ----

22 允许任何地方
80 允许任何地方
22 (v6) 允许任何地方 (v6)
80 (v6) 允许任何地方 (v6)

但是,我仍然无法通过手机浏览器访问 Apache 默认页面。我还能检查什么来查明为什么我的计算机响应外部 ping,但不响应 HTTP 请求?

答案1

在 Teredo 地址上运行服务器通常不是一个好主意,因为客户端将体验到与服务器不可靠的连接。

您的场景有点特殊,因为您计划将手机作为唯一的客户端,因此您可能没有与典型服务器相同的可靠性要求。您只需要记住这些陷阱。

Teredo 中断的最常见原因是缺少 Teredo 中继。另一种容易中断 Teredo 的方法是过滤 ICMPv6 数据包。

需要注意的事项

  • 找到手机的 IPv6 地址,然后使用网络上的众多 ping 测试站点之一尝试 ping 该地址。如果您的手机对 ping 没有响应,它将永远无法与 Teredo 地址上托管的服务器通信。
  • 找出您的手机所连接的 ISP 正在使用哪个 Teredo 中继。如果该 ISP 没有自己的 Teredo 中继,您可能依赖第三方中继,这意味着无法保证可靠性,也无法通过简单的方式报告问题。
  • 确定手机如何找到服务器。Teredo 旨在为设备提供单个动态 IPv6 地址。未经修改的 Teredo 客户端和 Teredo 服务器无法提供静态地址。因此,您需要找到一种方法让手机知道服务器的 IPv6 地址是否发生变化。一种可能性是使用支持 IPv6 的动态 DNS 提供商。

相关内容