我有一个 ftp 服务器,我想从本地网络之外访问它。它位于 IP 192.168.0.23 端口 21 上。我转发了端口 21,并在未连接到 wifi 时尝试连接我的手机,并且成功了。问题是我无法连接任何其他设备。今天,我不在家时我再次尝试连接我的手机(所以你不会认为我是被 acident 连接到 wifi 的),并且成功了,但我的朋友尝试时却没有成功。我的网络设置是:连接到互联网的主 ZTE 路由器,连接到我的 ZTE 路由器的 TP-Link archer C7,我将其用作接入点。我的 ftp 服务器也设置在 Archer C7 上。我对这个问题真的很困惑,因为出于某种未知原因,它在我的手机上有效,但在其他所有设备上却不行。有人遇到过这样的事情吗?
PS,我联系了我的 ISP,询问他们是否阻止了我的端口,他们说没有。
答案1
从评论来看,你的家庭网络和电话都在运营商级 NAT系统。
这是很明显的,因为您的“WAN”地址在 10.* IPv4 范围内,这是私人用途(即用于 NAT 或隔离网络),因此互联网上的其他机器无法访问。
您的手机可以访问您的家庭路由器,因为它们位于同一个 NAT 上,就像您的家庭网络上的两台机器可以相互访问一样。
解决方案:
- 向您的 ISP 索取合适的外部可路由 IPv4 地址,但这可能行不通,或者需要额外付费。另外,索取静态 IP 地址,以便您可以访问您的机器。
- 向您的 ISP 索取一个 IPv6 地址(范围) - 这是正确的长期解决方案,因为 IPv6 有大量可用地址,但您的 ISP 可能不支持它,并且任何客户端也需要有 IPv6 地址才能联系到您(或某种网关)。
- 在 AWS 或类似的云提供商上托管您的服务。
- 请求在运营商级 NAT 中建立隧道,但您的 ISP 不太可能提供该服务。
此外,ftp 可能不是最好的服务器类型,它们往往存在端口问题,并且 ftp 未加密,最好设置 sftp 或 http 服务器?