android中的iptables错误:iptables-save和iptables-restore无法正常工作

Pre*_*tam 5 android iptables netfilter linux-kernel saving-data

我已经为Android模拟器编译了Linux,并启用了完整的netfilter功能.从源代码构建android之后获得了iptables二进制文件.

当我把这个二进制文件推送到模拟器

我可以成功执行下面的命令.

iptables -L
iptables -F
iptables -A INPUT -s www.google.com -j DROP 
Run Code Online (Sandbox Code Playgroud)

有这个错误:

# # iptables -L
getsockopt for multiport failed strangely: No such file or directory
getsockopt for multiport failed strangely: No such file or directory
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
# 
Run Code Online (Sandbox Code Playgroud)

# iptables -A INPUT -s www.google.com -j DROP
getsockopt for multiport failed strangely: No such file or directory
getsockopt for multiport failed strangely: No such file or directory
FIX ME! implement getgrnam() bionic/libc/bionic/stubs.c:344
Run Code Online (Sandbox Code Playgroud)

但至少他们上面的命令工作!

但是当我尝试

iptables-save     or
iptables-restore
Run Code Online (Sandbox Code Playgroud)

我得到错误说

iptables-save: not found
Run Code Online (Sandbox Code Playgroud)

在我的配置文件中

CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
Run Code Online (Sandbox Code Playgroud)

问题是什么..??如何在android中启用完整的iptables功能,或者如何安全地保存当前活动的iptables规则并在下次重启时重新加载它们.

请帮忙.谢谢!

Apr*_*Ori 1

这是我添加到 Android.mk 中的内容,以便同时获得 iptables-save 和 iptables-retore。它在 android 4.0.3 上编译正常。


#------------------------------------------------- ----------------
# iptables-保存


包括 $(CLEAR_VARS)

LOCAL_C_INCLUDES:= \
    $(LOCAL_PATH)/../include/

LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1
LOCAL_CFLAGS+=-DALL_INCLUSIVE
LOCAL_CFLAGS+=-DXTABLES_INTERNAL
# 适应未设置__ANDROID__的arm-eabi-4.4.3工具
LOCAL_CFLAGS+=-D__ANDROID__

LOCAL_SRC_FILES:= \
    iptables-save.c iptables.c xshared.c

LOCAL_MODULE_TAGS := 可选
LOCAL_MODULE:=iptables-保存

LOCAL_STATIC_LIBRARIES := \
    自由文本\
    libext4 \
    libip4tc \
    库文件

包括 $(BUILD_EXECUTABLE)


#------------------------------------------------- ----------------
# iptables-恢复


包括 $(CLEAR_VARS)

LOCAL_C_INCLUDES:= \
    $(LOCAL_PATH)/../include/

LOCAL_CFLAGS:=-DNO_SHARED_LIBS=1
LOCAL_CFLAGS+=-DALL_INCLUSIVE
LOCAL_CFLAGS+=-DXTABLES_INTERNAL
# 适应未设置__ANDROID__的arm-eabi-4.4.3工具
LOCAL_CFLAGS+=-D__ANDROID__

LOCAL_SRC_FILES:= \
    iptables-restore.c iptables.c xshared.c

LOCAL_MODULE_TAGS := 可选
LOCAL_MODULE:=iptables-restore

LOCAL_STATIC_LIBRARIES := \
    自由文本\
    libext4 \
    libip4tc \
    库文件

包括 $(BUILD_EXECUTABLE)