IPTables:获取传入网络流量的UID

时间:2014-03-29 10:15:02

标签: android linux iptables

我希望能够记录Android上所有应用的所有网络流量。目前我正在使用 iptables 来生成这样的日志消息:

如果是传出数据包,一切都很好,我得到发送应用程序的uid

Rule: iptables -A OUTPUT -j NFLOG
Logs: IN= OUT=pdp0 SRC=10.179.120.240 DST=173.252.102.16 LEN=52 PROTO=TCP SPT=49541 DPT=443 UID=10093

但是,对于传入的包,我只获得目标端口(DPT),并且与接收应用程序没有匹配。

Rule: iptables -A INPUT -j NFLOG
Logs: IN=pdp0 OUT= SRC=173.252.102.16 DST=10.179.120.240 LEN=81 PROTO=TCP SPT=443 DPT=49541  

这是 iptables 可以涵盖的吗?如果没有,我如何获得通过网络接收数据包的应用程序?

2 个答案:

答案 0 :(得分:1)

流量通过iptables,然后由守护进程/服务器/ ...进行本地处理,因此iptables不知道INPUT链中数据包的所有者(UID)。 见http://de.wikipedia.org/wiki/Datei:Netfilter-packet-flow.svg

答案 1 :(得分:0)

要获取应用程序列表,您可以使用 netstat -tulpen ss -tulpen 动态生成应用程序列表,并将该数据与来自INPUT链的iptables日志链接起来