如何在本地和远程统一访问主机?

Ste*_*fan 4 networking router dns

我有一个 SSH 服务器在我的本地网络上运行,它通过我的路由器的端口转发暴露给公共互联网。我还在我的机器上本地(通过etc/hosts)和远程(通过动态 DNS)为主机设置了一个名称,让我们说:

            ip            name
locally     192.168.0.5   myhost
remotely    11.22.33.44   myhost.example.com
Run Code Online (Sandbox Code Playgroud)

在我的本地网络内,我可以通过ssh 192.168.0.5/访问服务器,ssh myhost而从我的网络外部我可以通过ssh 11.22.33.44/访问它ssh myhost.example.com

到那时,一切正常。但是,为同一服务器使用两个不同的主机名有点麻烦。我想以统一的方式访问服务器,即只使用一个在本地和远程都可以使用的 IP/主机名。

这个问题有简单的解决方案吗?如果这很重要,我在 macOS 上。

顺便说一句:我无法使用其公共 IP 从本地网络访问我的路由器。

小智 8

由于您设置了动态 DNS,您无需更改 /etc/hosts 文件。

对于外部访问,您将使用 DNS 进行主机到 IP 的解析,并且您希望本地网络也使用 DNS。

大多数路由器确实支持 DNS 注入。您需要检查您的路由器配置并分配 192.168.0.5 IP 地址以对应相同的动态 DNS 主机名,就好像它来自外部网络一样。然后当你在内部网络中,并使用你的路由器作为 DNS 服务器时,路由器会将 myhost.example.com 解析为本地地址。当你出去尝试外部访问时,动态 DNS 将轮流解析到外部 IP。

如果您在设置路由器时遇到问题,请发布品牌和型号,以便我们查看它是否支持所需的设置。