5

完全なnetfilter機能を有効にしてLinuxforandroidエミュレーターをコンパイルしました。そして、ソースからandroidをビルドした後、iptablesバイナリを取得しました。

このバイナリをエミュレータにプッシュすると

以下のようなコマンドを正常に実行できます。

iptables -L
iptables -F
iptables -A INPUT -s www.google.com -j DROP 

このエラーで:

# # 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         
# 

# 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

しかし、少なくとも上記のコマンドは機能します!

でもやってみると

iptables-save     or
iptables-restore

エラーが発生します

iptables-save: not found

私の設定ファイルで

CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m

何が問題ですか..??また、Androidで完全なiptables機能を有効にするにはどうすればよいですか、または現在アクティブなiptablesルールを安全に保存して、次回の再起動時にそれらを再ロードするにはどうすればよいですか。

助けてください。ありがとう!

4

2 に答える 2

2

およびバイナリは、デフォルトのAndroidシステムのmakefileでは作成されませんiptables-saveiptables-restore

それらを構築するには、Android.mkファイルにルールを追加する必要があります。$mydroid/external/iptables/ソースファイル、iptables-save.cおよびiptables-restore.cはすでにそのディレクトリにあります。

テストされていませんが、ビルドするiptables-saveには、の末尾に次のようなものを追加しAndroid.mkます。すすぎ、繰り返しiptables-restoreます:

#
# Build iptables-save
#

include $(CLEAR_VARS)

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

LOCAL_CFLAGS:=-DNO_SHARED_LIBS
LOCAL_CFLAGS+=-DIPTABLES_VERSION=\"1.3.7\"

LOCAL_SRC_FILES:= \
    iptables-save.c 

LOCAL_MODULE_TAGS:=debug
LOCAL_MODULE:=iptables-save

LOCAL_STATIC_LIBRARIES := \
    libiptc \
    libext

include $(BUILD_EXECUTABLE)
于 2011-04-05T01:00:43.397 に答える
1

これは、iptables-saveとiptables-retoreの両方を取得するためにAndroid.mkに追加したものです。android4.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
#arm-eabi-4.4.3を設定しないツールに対応する__ANDROID__
LOCAL_CFLAGS + =-D__ANDROID__

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

LOCAL_MODULE_TAGS:=オプション
LOCAL_MODULE:=iptables-保存

LOCAL_STATIC_LIBRARIES:= \
    libext \
    libext4 \
    libip4tc \
    libxtables

$(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
#arm-eabi-4.4.3を設定しないツールに対応する__ANDROID__
LOCAL_CFLAGS + =-D__ANDROID__

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

LOCAL_MODULE_TAGS:=オプション
LOCAL_MODULE:=iptables-復元

LOCAL_STATIC_LIBRARIES:= \
    libext \
    libext4 \
    libip4tc \
    libxtables

$(BUILD_EXECUTABLE)を含める

于 2012-09-30T10:33:00.497 に答える