当我使用家庭网络时,我为文件服务器映射了一个网络驱动器。我在路由器上设置了端口转发,并设置了一个静态 IP 地址,这样我就可以 ssh 并在外出时访问我的文件。有什么方法可以设置 Windows 来检测我何时使用本地网络,并在使用相同驱动器号 (E:) 时使用该路径 (192.168.xx) 而不是外部 IP 路径,反之亦然?
答案1
一个问题是确定你什么时候你的本地网络,而不是其他人的本地网络。例如:我的家庭子网是 192.168.1.0/24,但是当我在工作时,本地子网也是 192.168.1.0/24。
我家里的服务器上也托管着许多服务,我也面临同样的情况。我解决这个问题的方法是为我的家庭外部 IP 地址设置一个域名,并在家庭网络上托管我自己的 DNS 服务器。
当我不在家时,mydomainname.com 会解析为我的公共 IP 地址,然后我通过相关的转发端口进行远程连接。在我的家庭 DNS 服务器上,我手动为 mydomainname.com 添加 DNS 记录,并将其指向本地地址 [192.168.1.x],这将覆盖公共 DNS 记录。
这意味着我可以简单地将 mydomainname.com 用于我的所有脚本/配置,并且使用的 IP 地址由 DNS 服务器根据我在家还是在外面来确定。
当然,设置 DNS 服务器可能会使情况变得更加复杂,超出您的承受范围 [这是可以理解的]。我建议您查看 pfSense 或其他形式的路由器/网关固件,这样会简单很多。
另外,看看你的路由器/网关是否支持“NAT 反射”功能。这允许你在内部网络上使用外部 IP 地址进行连接,并且仍然获得正确路由的连接。虽然不太优雅,但可能适合你的情况。