修改 hosts 文件和在命令提示符中添加静态路由有什么区别?

修改 hosts 文件和在命令提示符中添加静态路由有什么区别?

如果我想将某个 IP 地址路由到我的默认网关,我可以使用 Windows 命令提示符中的路由以及 hosts 文件来完成吗?

有区别吗?

谢谢!

答案1

文件HOSTS和路由命令功能彼此不同,不能使用一个来完成另一个的功能。

HOSTS文件允许您映射特定的主机名,例如www.google.com到特定 IP 地址。route 命令允许您指定在尝试到达特定 IP 地址(或更准确地说,特定网络)时要使用的网关。

就您而言,您需要使用路由命令,而不是文件HOSTS

值得注意的是全部不属于您本地子网的 IP 地址将自动通过您的默认网关路由。您无需手动添加路由即可实现此目的。

答案2

将某个 IP 地址路由到我的默认网关

上述内容的含义是:您正在告诉您的 TCP/IP 堆栈,“特定 IP 地址”可通过您的默认网关访问。

因此,系统上所有应用程序使用的 TCP/IP 堆栈会将具有该目标 IP 地址的任何流量发送到您的默认网关。

路由规则没有域名或 DNS 的概念。它们仅与 IP 地址和子网掩码配合使用。


您的主机文件由 DNS 解析器使用 - 它可能位于您系统上的各个库/dll 中。

应该发生的是,DNS 解析器(通常在应用程序想要查找域名的 IP 地址时被调用)将首先查找此文件以将域名转换为 IP 地址。如果不存在,它将查询 DNS 服务器。

(此行为在 Linux 和 Windows 上是可配置的 - 在 Linux 上,您可以告诉它不要查阅文件,或者如果查询 DNS 服务器首先失败,则第二次查阅文件)。

如果没有发生此 DNS 查找,则该hosts文件将不会产生任何效果。

返回的 IP 仅供请求它的应用程序使用。一旦应用程序实际向此 IP 发送了某些内容,路由规则仍会生效。


因此,您不能将您的hosts文件用于与设置默认网关相同的目的。

答案3

主办方文件用于映射主机名(例如本地主机或者超级用户网) 到 IP 地址。它涉及 DNS,而不是路由 - 因此您不能使用 hosts 文件。

不过,我无法具体说明如何使用静态路由来完成您想要做的事情。

相关内容