如果我想将某个 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 文件。
不过,我无法具体说明如何使用静态路由来完成您想要做的事情。