正如标题所述,我正尝试从外部访问我的家庭网络,我的目标是能够连接到所述家庭网络上的 VPN 服务器。
首先,我有一台 TP-Link Archer MR600 LTE+ 路由器,配有 Vodafone 的 4G 无限流量 SIM 卡。我将描述我所遵循的步骤:
- 我已经开始通过 TP-Link 的 DDNS 服务在我的路由器上设置 DDNS,因为我的 IP 是动态的。
- 是的,IP 应该是公共的,因为它始终会产生 A 类 IP 地址,而且我可以看到分配给路由器上我的 WAN 接口的 IP 与“我的 IP 地址是什么”服务报告的 IP 相匹配,DDNS 域也解析为相同的匹配 IP 地址。
- 我已经在路由器上直接设置了一个 OpenVPN 服务器,因为它具有该功能,但无济于事,无法从外部网络建立 TLS 握手。
- 然后,我尝试在本地 Ubuntu Server 桥接网络 VM 上设置 AlgoVPN 服务器,我通过路由器 DHCP 的 MAC 为该服务器保留了一个静态 IP,并转发(或最好尝试转发)了所需的端口。无法建立握手。
- 我已经使用 Wireshark 监控了两个 VPN 服务器的流量,当从外部网络尝试时,我无法真正分辨出服务器空闲时有什么区别,到处都是一些 ICMP 或 ARP 请求。
- 然后,我尝试通过在我的电脑上设置 TCP 协议的端口监听器来测试端口转发,在 Windows 防火墙上转发并允许相应的端口并从外部 telnet 到它们,但没有得到积极的回应。
- 然后我尝试执行 tracert,我看到路由在第 10 跳到达某种 Vodafone 的中继,在第 12 跳之后请求开始超时,没有最终响应,显然无法访问我的公共 IP。
- 我还允许来自外部的 ICMP 请求,并完全禁用路由器上的 IPv4 防火墙,但上述所有点均没有变化。
我真的很困惑,所有正常流量、游戏、流媒体、浏览都可以完美运行(并且我可以从 LAN 访问两个 VPN 服务器,所以至少我知道它们可以工作),我甚至尝试使用常见端口设置所有内容,例如 Wireguard Algo 使用的 80 端口和 SSH 的 443 端口。
我假设我的 ISP 端可能有某种防火墙,要允许流量通过,需要我的 IP 首先发出请求,但基于我有限的网络知识,我不知道它是如何工作的。在 Server Fault 上,有人说他们可能会阻止服务器类型的流量。
如果有人知道为什么会发生这种情况,我们将非常感激任何帮助!
编辑:我按照@Albin 的建议对一些公共 IP 执行了 tracert,我的路由器确实是第一跳。至于@Mark Scheck 建议的内容,这里有一个端口转发和 nmap 扫描结果的屏幕截图(如下)。Nmap 扫描是在 LAN 内部对我的 DDNS 域执行的。我必须在周末尝试更好地检查 nmap。
编辑2:我注意到一些奇怪的事情,我的 is 已经有一个与 ip 关联的主机名,如下面的屏幕截图所示。我的 DDNS 域解析到相同的 ip,但这是否表明 CGNAT 或来自 ISP 的其他某种阻止?我仍然需要联系他们