Mik*_*ike 3 linux networking gateway
我正在尝试测试我写的网关(请参阅测试网关的最简单方法是什么?对于上下文).由于我不想进入的问题,网关和"发送者"必须在同一台机器上.我有一个网关能够到达的接收器(比如说9.9.9.9).
所以我将运行一个应用程序./sendStuff 9.9.9.9
,它会将一些数据包发送到该IP地址.
问题是:如何将目的地为9.9.9.9的数据包转到localhost上的网关?我试过了:
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
但这些都没有通过网关传递数据包.我已经验证了存在正确的IP sudo route
.我能做什么?
每个请求,这是路由表,运行第二个命令后(更改IP地址以匹配问题.xyzt是我正在运行此机器的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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
这应该将所有流量重定向到9.9.9.9而不是localhost.
归档时间: |
|
查看次数: |
7731 次 |
最近记录: |