【发布时间】:2023-03-14 08:11:01
【问题描述】:
我正在尝试在运行 linux 的第 2 层网桥上使用 iptables 来获取从以太网端口传入并在 wlan0 接口上传出的 udp 数据包,并将它们重定向到 localhost 上的端口(例如,10000 )。
例如,如果 device1 (10.0.0.2) 通过以太网通过网桥 (10.0.0.1) 发送 udp 数据包,然后通过无线接口将该数据包传递到 device2 (10.0.0.3),您将如何重定向将这些数据包发送到 localhost(网桥),以便在网桥上运行的 python 脚本可以处理它们?
我试过iptables -t nat -A PREROUTING -d 10.0.0.3 -p udp --dport 10000 -j REDIRECT --to-ports 10000,但它似乎不起作用。数据包永远不会被重定向。
我也尝试过iptables -t nat -A PREROUTING -d 10.0.0.3 -p udp --dport 10000 -j DNAT --to-destination 127.0.0.1:10000,但也没有运气。
有没有办法使用iptables 或其他任何方法来做到这一点?否则,是否有另一种单独使用 Python 拦截数据包的方法?它目前只是监听 UDP 数据包:
socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
socket.bind(('', 10000))
谢谢。
【问题讨论】:
标签: python linux sockets networking iptables