我正在运行kerenl 3.14.18,并使用iptables 1.4.21,使用这些选项–static-enable –disable-shared构build。 当我运行这个命令:/ sbin / iptables -A PREROUTING -m -d 127.3.0.2/24 -j DNAT – 到目的地10.0.0.1 -p udp -dport 69我得到这个错误信息:iptables v1.4.21:无法加载匹配`-d':没有这样的文件或目录
有什么可以帮助解释我失踪? 先谢谢你。
嗨,我有一个主机系统2接口,eth0和eth1。 eth0将接收IP为127.3.xx的数据包,我希望将这些数据包从eth1转发到服务器(10.0.1)。 eth1的IP地址为192.168.0.100。 服务器需要看到数据包,就好像它们来自主机(192.168.0.100)。 我想我可以删除-m标志,但是当我这样做时,我得到这个错误:iptables v1.4.21:多个-d标志不允许
为了做到这一点,你可以使用followng iptables规则:
iptables -t nat -A PREROUTING -d 127.3.0.2/24 -p udp --dport 69 -j DNAT --to-destination 10.0.0.1 iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.0.100
但是,您应该用127.3.0.2/24replace单个IP(即127.3.0.2)或有效的CIDR范围(例如127.3.0.0/24)。 127.3.0.2/24不是有效的CIDR范围,因为/ 24将覆盖127.3.0.0-127.3.0.254。 这也会将任何stream量redirect到该范围内的任何IP到10.0.0.1的端口69。
另外,由于端口69是TFTP,因此我有义务提及 – 如果您尝试将其用于PXE引导或其他基于DHCP的解决scheme,则很有可能无法正常工作,因为大多数供应商都无法使用PXE遍历子网。