我使用动态 DNS 将我的域名指向我的家庭 IP 地址,然后在 ISP 调制解调器中将端口 80 和 443 转发到我的家庭 Web 服务器。但是,我显然在处理两个不同的公共 IP 地址,并且该过程不起作用(我无法从互联网访问我的家庭服务器)。
ISP 调制解调器的状态页面告知公共 IP 地址为100.64.xxx.xxx
,但我的动态 DNS 提供商的仪表板(以及其他 URL,如myip.dnsomatic.com
和icanhazip.com
)将其检测为170.79.xxx.xxx
。
当我从 Linux 机器 ping 我的域时,我得到以下结果:
PING mydomain.com (100.64.xxx.xxx) 56(84) bytes of data. 64 bytes from xxx-xxx-79-170.myisp.net.br (100.64.xxx.xxx): icmp_seq=1 ttl=64 time=1.05 ms
请注意,生成的 ISP URL ( xxx-xxx-79-170.myisp.net.br
) 包含检测到的公共 IP 地址 ( 170.79.xxx.xxx
),只是进行了反转。
我可以使用某种类型的 DNS 记录来更正此问题吗?或者这根本与 DNS 无关?您现在可能已经猜到了,我并不是这方面的专家。
答案1
听起来您的 ISP 正在使用 CGN(运营商级 NAT)。一些 ISP 使用私有寻址来实现这一点(RFC 1918,私有互联网的地址分配),有些使用共享地址空间(100.64.0.0/10
每RFC 6598,IANA 为共享地址空间保留的 IPv4 前缀) 留作此用,这是您的 ISP 正在使用的。
这意味着端口转发必须在 ISP NAT 上进行,而您无法控制它。ISP 并不关心您不能将端口转发到您的家庭服务器,因为您的住宅 ISP 协议中有一条条款禁止您在公共互联网上运行服务器。您对此无能为力,但您可以尝试向您的 ISP 询问。
答案2
这肯定是运营商级 NAT 问题 - 因为调制解调器 IP 地址在 CGN 范围内。您有两个实用选项 - 更改为不使用 CGN 的提供商/计划,或从您的家庭系统设置 VPN 到将为您提供静态 IP 的提供商。