4

ルート権限を取得されたデバイスで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
4

3 に答える 3

6

tcpの代わりに6を入力できます。

iptables -A INPUT -p 6(iptables -A INPUT -p tcpの代わりに)

http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml

于 2012-08-13T20:58:46.497 に答える
6

AndroidはBioniclibcを使用します。これは、多くのものが欠落している本当に最小限のlibcです。そのエラーメッセージは、それgetprotobyname()がBioniclibcに実装されていないことを示しています。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

于 2013-08-22T15:55:57.680 に答える
1

一部のデバイスでは、これは単なる警告である可能性がありますが、ルールは問題ありません。iptables -L INPUT -nvを使用してルールが表示されることを確認してから、試してください。

于 2012-08-13T21:30:36.190 に答える