独自のアプリとサービスを含む独自の AOSP を作成しています。これらのサービスの 1 つは ppp0 インターフェイスを作成し、そのインターフェイスを介して転送される特定のアプリをリンクしようとします。これらのコマンドを試しましたが、期待どおりに機能しませんでした。
iptables -t mangle -A OUTPUT -m owner --uid-owner 10088 -j MARK --set-mark 100
ip route add via 10.0.0.201 dev ppp0 テーブル 100
すべての fwmark 100 テーブル 100 から IP ルールを追加
iptables -t nat -A POSTROUTING -m owner --uid-owner 10088 -j SNAT --to-source 10.0.0.201
ip route add default dev wlan0
ちなみに、10.0.0.201はppp0インターフェースのIPアドレスです。
これはユーザー 10088 で正常に動作しますが、Android chrome ブラウザー (UID 10088 ではありません) を使用すると DNS の問題が発生するため、URL を解決できません。これは、UID 10088 を持つユーザー以外はインターネットに接続できないことを意味します。
VPN を有効にした後に Android の iptables を分析したところ、次の行が見つかりました。
-A st_mangle_OUTPUT -m mark --mark 0x3c -g st_mangle_ppp0_OUTPUT
-A st_mangle_OUTPUT -m owner --uid-owner 0-99999 -g st_mangle_ppp0_OUTPUT
-A st_mangle_ppp0_OUTPUT -j MARK --set-xmark 0x0/0xffffffff
-A st_mangle_ppp0_OUTPUT -j MARK --set-xmark 0x3c/0xffffffff
彼らはいくつかのパケットをマークし、uid の範囲を選択したようです。まさに私がやりたいことですが、それらの範囲ではなく特定の uid が必要です。
ip route は私にこれを提供します:
default via 192.168.0.1 dev wlan0
default via 192.168.0.1 dev wlan0 metric 310
10.10.0.200 dev ppp0 proto kernel scope link src 10.10.0.201
67.219.95.113 via 192.168.0.1 dev wlan0
70.83.139.168 via 192.168.0.1 dev wlan0
72.38.129.202 via 192.168.0.1 dev wlan0
104.167.113.112 via 192.168.0.1 dev wlan0
130.102.128.23 via 192.168.0.1 dev wlan0
139.112.153.37 via 192.168.0.1 dev wlan0
159.203.8.72 via 192.168.0.1 dev wlan0
190.181.129.115 via 192.168.0.1 dev wlan0
192.168.0.0/24 dev wlan0 scope link
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.110 metric 310
192.168.0.1 dev wlan0 scope link
209.81.9.7 via 192.168.0.1 dev wlan0
218.75.4.130 via 192.168.0.1 dev wlan0
218.189.210.4 via 192.168.0.1 dev wlan0
これを解決するか、別の新しいソリューションを解決するかのいずれかで、仕事を成し遂げるソリューションを探しています。
あなたから聞いて楽しみにして。
よろしくお願いします。