如何更改IP地址以指向本地主机?

Mik*_*ike 11 hosts

Web 应用程序的沙箱环境可通过 IP 地址直接访问:http://<my_ip_address>无需登录名。

有没有办法在我的本地机器上创建一个虚拟主机,命名为<my_ip_address>,并更改 /etc/hosts 以便它“重定向”到我的本地主机?

127.0.0.1 <my_ip_address>
Run Code Online (Sandbox Code Playgroud)

那么当我加载 url 时http://<my_ip_address>,浏览器会指向我的本地主机吗?我已经可以重定向域名的方式。

Too*_*eve 22

Hosts文件只能用于将域名与 IP 关联;它无法将 IP 映射到 IP。

更改 IP 可以通过防火墙来完成。在 Linux 上,默认防火墙由iptables命令控制。“man iptables”是文档。谷歌“explain iptables”的介绍性解释。

一些链接:

http://linux.die.net/man/8/iptables

http://www.linuxnix.com/2009/12/iptables-in-linux-explained.html

http://blog.adityapatawari.com/2011/12/ip-packet-filtering-iptables-explained.html

具体来说,您希望将来自您的 PC 的 OUTGOING 请求更改为 IP 地址 ( <my_ip_address>),以便它们改为转到不同的 IP 地址,在本例中为 127.0.0.1。您想要执行NAT网络地址转换),给定“目标 IP”(<my_ip_address>例如 123.45.67.89),将其更改为不同的“目标 IP”(127.0.0.1)。

试试这个(代替123.45.67.89,把需要修改的 ip_address 放在):

iptables -t nat -A OUTPUT -p all -d 123.45.67.89 -j DNAT --to-destination 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

细节:

-t nat = 用于将一个地址转换为另一个地址的表

-A OUTPUT = 附加到本地生成的传出数据包的规则列表。 安全警告:确保规则包含此 OUTPUT 指令。如果不这样做,该规则将创建一个可能的安全漏洞,因为来自远程位置的匹配传入数据包也将被定向到本地主机。

-p all = 适用于所有协议(tcp、udp 和 icmp)。

-d 123.45.67.89 = 数据包要去的原始 IP 地址(其目的地)。

-j DNAT = 如果规则匹配(在这种情况下,如果传出数据包的目标 IP 为 123.45.67.89),则使用 DNAT 处理它,从而改变目标。

--to-destination 127.0.0.1 = 告诉 DNAT 做什么;用“127.0.0.1”替换原始目的地。

(注意:如果您遇到更复杂的情况,例如拦截对特定网页的请求,另一种解决方案可能是使用“代理”软件。)

  • 它工作正常,但我看不到它在 iptables --list 或 --list-rules 的任何地方列出。我如何列出它并在不再需要时将其删除? (3认同)
  • ...基本的安全措施是在规则中包含“-A OUTPUT”。根据您的评论,人们需要意识到省略会带来您描述的危险。我将添加评论以强调这一点。 (2认同)