我有一台只有一个接口的机器。它有 2 个 IP 地址(eth0:192.168.2.3,eth0:1 192.168.2.4)。我想接收来自 192.168.2.4 的任何流量并将其 NAT 到外部 IP 地址。据我所知,我已经做了让它工作所需的一切,但它没有,所以我遗漏了一些东西。
/proc/sys/net/ipv4/ip_forward 设置为 1
我的 iptables 全部设置为默认 ACCEPT,这是我的 DNAT 规则:
iptables -t nat -A PREROUTING -d 192.168.2.4 -j DNAT --到目标 192.1.1.2
该机器通过可从 eth0 到达的网关有一条到 192.1.1.2 的路由:192.1.1.2 192.168.2.248 255.255.255.0 UG 0 0 0 eth0
DNAT 规则实际上似乎并没有执行任何类型的 NAT/重定向。
我错过了什么?
答案1
我会执行一个操作iptables -t nat -L -v -n
来查看 PREROUTING 链中 DNAT 规则的计数。您可以看到它们随着规则处理的每个新连接而增加。如果它们没有增加,那么我会开始嗅探 eth1 接口上的流量,看看流量是否到达那里。
您的 FORWARD 链可能设置为默认丢弃策略,并且没有转发此流量的规则。请仔细检查。