gpt4 book ai didi

linux - 如何路由数据包以使用 localhost 作为网关?

转载 作者:可可西里 更新时间:2023-11-01 11:50:45 31 4
gpt4 key购买 nike

我正在尝试测试我编写的网关(有关上下文,请参阅 What's the easiest way to test a gateway?)。由于一个我不想涉及的问题,网关和“发件人”必须在同一台机器上。我有一个网关可以访问的接收器(比方说 9.9.9.9)。

所以我将运行一个应用程序 ./sendStuff 9.9.9.9它将向该 IP 地址发送一些数据包。

问题是:如何让发往 9.9.9.9 的数据包到达本地主机上的网关?我试过:

sudo route add -host 9.9.9.9 gw 127.0.0.1 lo

sudo route add -host 9.9.9.9 gw <machine's external IP address> eth0

但它们都不通过网关传递数据包。我已验证 sudo route 中存在正确的 IP .我能做什么?


根据请求,这是运行第二个命令后的路由表(IP 地址已更改以匹配问题。x.y.z.t 是我正在运行的机器的 IP):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
9.9.9.9 x.y.z.t 255.255.255.255 UGH 0 0 0 eth0
x.y.z.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
0.0.0.0 <gateway addr> 0.0.0.0 UG 100 0 0 eth0

最佳答案

127.0.0.1 可能正在接收数据包,然后在启用 ipv4 数据包转发的情况下以愉快的方式转发它们。如果未启用,它将丢弃它们。

如果您尝试将发往 9.9.9.9 的数据包转发到 127.0.0.1,请查看 iptables。

编辑:试试这个:

iptables -t nat -A OUTPUT -d 9.9.9.9 -j DNAT --to-destination 127.0.0.1

那应该将所有流量重定向到 9.9.9.9 到本地主机。

关于linux - 如何路由数据包以使用 localhost 作为网关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4941184/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com