繁体   English   中英

C ++奇怪的RAW套接字和iptables问题

[英]C++ weird RAW sockets and iptables issue

关于形成单独数据包的C ++ iptables重定向 ,我现在面临一个极其特殊的问题。 我试图将UDP端口5060上的所有传入流量重定向到端口56790,并将所有5050上的传出流量重定向到端口56789。我使用了以下iptables规则:

iptables -t nat -I PREROUTING -p udp ! -s localhost --dport 5060 -j REDIRECT --to-port 56790
iptables -t nat -I OUTPUT -p udp ! -s localhost --sport 5060 -j REDIRECT --to-port 56789

使用ioctl将接口设置为PROMISCUOUS模式后,我使用RAW SOCKETS在两个端口上侦听。

我仅在56789即发送侧看到数据包,而在56790上没有看到任何数据包,而Wireshark显示许多数据包已传递到端口5060。

为什么会这样? 有任何想法吗? 您认为iptables规则有问题还是与原始套接字有关?

原始套接字在修改(传入)之前获取原始数据包的副本。 在传出时,它是相反的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM