我希望能够记录 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 可以涵盖的内容吗?如果没有,如何获取通过网络接收数据包的应用程序?
最佳答案
流量在最终由守护进程/服务器/...进行本地处理之前会经过 iptables,因此 iptables 不知道 INPUT 链中数据包的所有者 (UID)。 请参阅http://de.wikipedia.org/wiki/Datei:Netfilter-packet-flow.svg
关于android - IPTables:获取传入网络流量的 UID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22729721/