我希望能够记录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 可以涵盖的吗?如果没有,我如何获得通过网络接收数据包的应用程序?
答案 0 :(得分:1)
流量通过iptables,然后由守护进程/服务器/ ...进行本地处理,因此iptables不知道INPUT链中数据包的所有者(UID)。 见http://de.wikipedia.org/wiki/Datei:Netfilter-packet-flow.svg
答案 1 :(得分:0)
要获取应用程序列表,您可以使用 netstat -tulpen 或 ss -tulpen 动态生成应用程序列表,并将该数据与来自INPUT链的iptables日志链接起来