我已从http://source.android.com/source/building-kernels.html
下载了Android内核源代码然后我启动了模拟器并希望使用iptable规则但是我得到以下错误。 iptable包没有完全安装吗?为什么NAT表丢失?
最初我开始关注http://randomizedsort.blogspot.de/2011/03/porting-iptables-1410-to-android.html#comment-form_8482839589527760177安装iptables,但是在adb shell上看过iptablesv1.4.11.1后,我放弃了这个想法。有没有人尝试在更新的Android内核源代码上移植iptables?
adb shell
# su root
# iptables -t nat -A OUTPUT -p tcp --dport 8000 -j REDIRECT --to-port 8080
FIX ME! implement getprotobyname() bionic/libc/bionic/stubs.c:450
iptables v1.4.11.1: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
请指教!
答案 0 :(得分:1)
使用协议编号(-p 6
)代替名称(-p tcp
):
iptables -t nat -A OUTPUT -p 6 --dport 8000 -j REDIRECT --to-port 8080
有关详细信息,请参阅此答案: getprotobyname error iptables