2
iptables -t nat -A POSTROUTING -p udp --dport 50 -j REDIRECT --to-port 5050
我聽5050上使用RAW套接從重定向到5050端口50的所有通信,以及我看到的IP分組從0.0.0.0:50爲0.0。 0.0:5050。 原來的目標地址顯然不存在,因爲這似乎是從端口50到端口5050的單獨重定向數據包。
如果原始數據包應該轉到abcd:50,如何獲取該ip地址?我怎樣才能找出郵件應該發送到的目的地址,以便我可以在那裏轉發郵件?
我感謝您的幫助。
P.S .:我不想使用libipq,因爲由於某種原因,它不起作用,我不想浪費更多時間來使它工作。
感謝您的回覆。不,它也不起作用。它給my_ip_address:0。我們能否以其他方式完成這項工作? – SkypeMeSM 2010-10-17 02:25:08
@SkypeMeSM:'SO_ORIGINAL_DST'需要您啓用端口轉發。它應該解決你的問題。 – jweyrich 2010-10-17 04:00:38
@jweyrich:謝謝你的回覆。我已經做了。 \t \t \t system(「sysctl net.ipv4.ip_forward = 1」); addr_len = sizeof(struct sockaddr); getsockopt(sip_socket,IPPROTO_IP_IP,SO_ORIGINAL_DST,&sender_addr,(socklen_t *)&addr_len); cout << inet_ntoa(sender_addr.sin_addr)<<「:」<< ntohs(sender_addr.sin_port)<< endl; – SkypeMeSM 2010-10-17 04:30:06