我为家里运行的服务器购买了静态 IP。我可以在外面访问它,但连接到家庭网络时,我无法使用静态 IP 地址访问我的服务器。
它只使用本地IP,无法直接通过域名访问。
我在 Windows 10 上的 Workstation Pro 中的 Debian 11 上使用 TP-Link Archer VR1200 AC 1200 路由器。
这可能是什么原因呢?
答案1
这很常见,这意味着你的路由器没有发夹形SNAT,通常需要在路由器上进行特定配置,具体取决于您拥有的路由器平台。一些路由器平台不支持发夹(我认为我自己的 D-Link 不久前需要固件升级)。
- “正确”的解决方案(正如@RonMaupin 正确指出的那样)是让网络拥有自己的 DNS 解析器,以便将来自内联网的域名解析为其真实的内联网地址;此设置通常在 SOHO/Home 设置中不可用,并且会被卸载到调制解调器路由器,在那里它不进行 DNS 解析,而是在对数据包进行 de/NAT 后将其路由回去。
- 一个有点笨拙的“解决方法”是修改静态 DNS 解析器 [
/etc/hosts
或%WinDir%\SYSTEM32\drivers\etc\hosts
],并将外部解析的域名 [www.yoursite.com
] 映射到内部的IP 地址[例如192.168.2.253
];然后您应该能够使用访问该网站www.yoursite.com
,并且如果该网站运行基于名称的虚拟主机,它将正常工作,并且您将能够使用无法与数字 IP 地址一起使用的各种开发人员工具。 - 一些固件 [OpenWRT 等] 也有进行 DNS 缓存的选项和内部解析[覆盖]一些主机,通常通过将一些广告网站映射到来剪切它们
127.0.0.1
,但如果使用,它可以使用内部 IP 地址覆盖该域名。
除非您设置了内部 DNS,否则您所能合理期望的最好结果是自行重新配置路由器,或者与 ISP 联系并让他们正确设置发夹弯路由。