English

iptables android arm64

iptables是 Linux 用户态命令行工具,用于操作内核 netfilter 网络子系统,实现数据包过滤、访问控制、网络地址转换、数据包修改等防火墙功能。

标签:
下载 v1.8.10

使用说明

Android iptables 说明文档

Android 底层基于 Linux,使用 iptables 操作内核 netfilter 子系统;必须 Root 权限才能修改规则。 Android 由 netd 守护进程维护系统网络规则,会生成很多自定义链;规则全部内存生效,重启手机全部丢失。 IPv6 使用 ip6tables;Android 12+ 部分设备逐步迁移到 nftables。

目录

基础说明

  • 执行环境:adb shellsu 获取root
  • 路径:一般 /system/bin/iptables
  • 规则结构:表 → 链 → 规则,从上向下匹配,命中即执行动作。
  • Android 系统存在大量 netd 创建的自定义链(natctrl_*oem_*),不要随意全部清空,会破坏热点、VPN、网络策略。

表 Table

表名 用途 Android说明
filter 数据包过滤(允许/丢弃) 默认表,控制本机入站、出站、转发流量
nat 网络地址转换 DNAT/SNAT/REDIRECT 热点共享、透明代理、端口重定向高频使用
mangle 修改报文TTL、打mark标记 透明代理、流量标记常用
raw 关闭连接跟踪 高级调优,普通场景很少使用

不指定 -t,默认使用 filter 表。

内置链 Chain

filter 表

作用
INPUT 发给本机的入站数据包
OUTPUT 本机APP进程发出的出站数据包
FORWARD 设备热点:经过本机转发的数据包

nat 表

作用
PREROUTING 数据包刚到达,做DNAT端口映射
OUTPUT 本机进程发出报文NAT/REDIRECT(透明代理主要用这条链)
POSTROUTING 报文离开本机,SNAT/MASQUERADE(热点共享上网)

Android 特有要点

  1. -m owner --uid-owner <UID>:Android独有高频模块,按APP的UID匹配流量,实现单APP流量拦截/重定向。
  2. netd 服务会动态重写iptables,部分场景手动添加规则会被系统覆盖。
  3. 开启Wi‑Fi热点,系统自动大量写入nat/filter规则,不要直接iptables -F全量清空,会导致热点失效。
  4. 网络接口名:移动数据一般rmnet0,Wi‑Fi一般wlan0
  5. IPv6需要独立使用ip6tables,iptables完全不处理ipv6流量。

命令语法格式

iptables [-t 表名] 命令选项 [链名] [匹配条件] -j 动作