Ich möchte eine iptables-Regel auf meinem Android-Telefon hinzufügen. Ich benutzte:
iptables -t nat -A PREROUTING -p 6 -d 192.168.66.1 --dport 80 -j DNAT --to 192.168.66.1:808
... als Wurzel. Diese Regel kann in der Adb-Shell überprüft werden, und ich kann sehen, dass sie hinzugefügt wurde:
# iptables -t nat -nL
chain PREROUTING (policy ACCEPT)
prot opt source destination idletimer_nat_PREROUTING
all -- 0.0.0.0/0 0.0.0.0/0 DNAT
tcp -- 0.0.0.0/0 192.168.66.1 tcp dpt:80 to:192.168.66.1:8080
Ich möchte, dass diese Regel nach einem Neustart bestehen bleibt, also habe ich eine iptabless-Datei /etc/sysconfig
mit folgendem Inhalt hinzugefügt:
-t nat -A PREROUTING -p 6 -d 192.168.66.1 --dport 80 -j DNAT --to 192.168.66.1:8080
Wenn ich mein Telefon jedoch neu starte, wird keine Regel hinzugefügt.
Unterstützt Android den /etc/sysconfig/iptables
Pfad? Ich habe diesen Pfad von einer PC-Linux-Installation erhalten (ich habe es auch getestet /etc/iptables/rules.v4
, es hat auch nicht funktioniert).
Gleichzeitig weiß ich auch nicht, ob der Inhalt stimmt.
Außerdem kann ich mein Testtelefon in Zukunft nicht mehr rooten. Ist es möglich, dauerhafte iptables-Regeln auf einem nicht gerooteten Telefon hinzuzufügen?
Das Ausführen von Skripten beim Booten (init), wie Sie es versuchen, wird nur unterstützt, wenn der Kernel dies unterstützt.
Wenn Sie einen Stock-Kernel verwenden, müssen Sie möglicherweise einen benutzerdefinierten Kernel installieren, der Init-Unterstützung enthält.
Es gibt auch Apps, die mit Android beginnen und automatisch Firewall-/iptables-Regeln anwenden, aber denken Sie daran, dass diese Root-Zugriff erfordern.
Es ist nicht möglich, iptables-Regeln ohne Root-Zugriff zu ändern. Sie können jedoch eine VPN-Verbindung verwenden, um den Netzwerkverkehr weiterzuleiten, der auf jedem Android 4.0+-Gerät ohne Root-Zugriff funktioniert.
LA_