我在有根设备上安装了支持 iptables 的 android。
我似乎得到了这个错误,有人知道为什么吗?
iptables -A INPUT -p tcp -i eth0 --dport 8000 -m state --state NEW -j ACCEPT
FIX ME! implement getprotobyname() bionic/libc/bionic/stubs.c:378
我在有根设备上安装了支持 iptables 的 android。
我似乎得到了这个错误,有人知道为什么吗?
iptables -A INPUT -p tcp -i eth0 --dport 8000 -m state --state NEW -j ACCEPT
FIX ME! implement getprotobyname() bionic/libc/bionic/stubs.c:378
您可以键入 6 而不是 tcp。
iptables -A INPUT -p 6(而不是 iptables -A INPUT -p tcp )
http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
Android 使用 Bionic libc,这是一个非常小的 libc,缺少很多东西。该错误消息表示getprotobyname()
未在 Bionic libc 中实现。iptables
似乎在触发此错误时无论如何都会运行该命令,但我的猜测是它忽略了该-p tcp
部分并只是为所有协议设置规则。
幸运的是,该功能对于使用 iptables 并不是必不可少的。getprotobyname()
只是将协议名称(如 tcp)转换为数字(tcp == 6)。你可以在这里找到这些数字:http ://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
请改用协议号-p 6
来消除错误消息:
iptables -A INPUT -p 6 -i eth0 --dport 8000 -m state --state NEW -j ACCEPT
On some devices this may be just a warning but the rule will be OK. Check that the rule appears using iptables -L INPUT -nv and then try it.