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规则并在下次重启时重新加载它们.
请帮忙.谢谢!
这是我添加到 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)