这hosts 文件( %SystemRoot%\system32\drivers\etc\hosts
) 可让您将 google.com 指向本地计算机上的 127.0.0.1,但如果我想将本地计算机上的 192.168.1.5 指向 127.0.0.1,该怎么办?有办法吗?可以在 Windows 7 上的 hosts 文件中完成此操作吗?
答案1
您不能为此使用 hosts 文件。
它仅将名称映射到 IP 地址。
我自己还没有尝试过,但我猜你可以滥用路由命令来实现这一点:
route add 192.168.1.5 127.0.0.1
这指示 IP 堆栈将 192.168.1.5 的所有流量路由到网关 127.0.0.1。当然那里没有网关,所以这只会使流量变成黑洞。您无法对这些流量做任何有用的事情。
答案2
正如其他人所指出的,您无法通过 hosts 文件执行此操作。您需要某种形式的数据包重写:最常见的是网络地址解读。NAT 通常用于允许多个设备使用相同的“公共”IP 地址(这是许多廉价家用路由器唯一能实现的形式),但更全面的 NAT 引擎(例如 Cisco IOS 或 Linux IPTables 中的引擎)可以进行通用重写。
请注意,NAT 并不是解决此问题的万能药:某些协议(例如 FTP)在数据包和 IP 报头中包含 IP 地址,如果 NAT 引擎不专门处理此类协议,则只需重写报头就会导致问题出现。
答案3
您不能在主机文件中将一个 IP 地址映射到另一个 IP 地址。
您可能可以在某些平台上的某些防火墙软件中重写 IP 地址(例如在 Linuxiptables或同等学历)。