特定のアプリによって要求されたネットワークトラフィックを表示する方法 - applications フィールド と networking フィールド と internet フィールド と data-monitoring フィールド と processes フィールド android 関連 問題

How to view network traffic requested by a specific app












3
vote

問題

日本語

どのアプリがネットワーク接続を要求しているかを確認する方法についての議論がたくさんあります。私は次のアプリを試しました:

<事前> <コード> 9988776655443330

しかし、それらのどれも有用ではありませんでした。たとえば、短期間で、表示できる30KB PCAPファイルをアップロードしました。 / a>。それでも私はどのアプリが接続を要求しているのか、そしてそれが接続しようとしているのかを見つけていません。

私はまた adb logcat を見てみましたが、有用な情報が見つかりませんでした。多分何かがここに見逃されました。推測?

              

回答リスト

5
 
vote

根づけられた電話機の場合は、<コード> 99887766544331 (ライブ監視用)または<コード> 99887766544332 (統計情報)のコマンドラインツールを参照してください。 VPNまたはAndroid統計ベースのアプリを使用することは可能な限り根本的な解決策です。または 9988776554433 / <コード> 99887766544333 ベースの解決策


まず、ネットワークストリームのUIDまたはPIDを追跡することは、ネットワークに関連していますがOS関連のパラメータではないため、簡単ではありません。 提案と放棄されたプロジェクト存在する

Android Linux上のすべての人ユーザーのように、すべての人ユーザーのように、インストールされているすべてのアプリに固有のUIDを割り当てます。そのため、使用方法を追跡するために、ネットワークインターフェイスを介して特定のUIDによって送信されたパケットをキャプチャできます。

tcpdump:

現在ネットワークトラフィックをキャプチャできる方法ほとんどのネットワークスニファーは libpcap この目的のためにシステムに依存しないライブラリのファミリ。それは、 BSDパケットフィルタ(BPF)がカーネルパケットフィルタリングにサポートしています。 <コード> 9988766544335 、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード>、<コード> <コード> logcat10 などのAndroid app ネットワークユーティリティその他<コード> 998877665443311 。

しかしながら、UID情報は <コード> 998877666554433312 / <コード> 998877665443313 チャネル<コード> 998876655443314 OSIレイヤ2 。だからここでできることは、作成されているネットワークソケット(IPとポートの組み合わせ)を利用することです。 <コード> nethogs5 または<コード> 9988776654443316 は、アクティブ/確立された接続ですべてのネットワークソケットを表示します。両方のツールはAndroidで入手可能です(または静的バイナリを取得することもできます)、<コード> nethogs7 は新しいものです。 ソケットとUID 情報は、<コード> 998877666654433318 から直接読み取ることもできます。 Android app NetStat Plus 同じ原則。これにより、プロセスによってローカルアドレス(ソケット)が使用されます。

アプリ(UID)によって使用されているものがどのようなものか知っていたら、<コード> nethogs9 はそのプロセスから発信されたトラフィック全体をダンプします。
同様に、リモートソケット(複数のアプリが接続していない場合)も結果をフィルタリングするために使用できます。

制限:

しかしこのアプローチにはいくつかの問題があります:

  • Androidアプリは通常、同じUIDの下で動作する複数のPIDを並列に1回以上起動します。そのため、すべてのプロセスからのトラフィックをキャプチャする必要があります。
  • アプリケーションはソケットの作成と削除を続けます。 継続的な変更の軌跡は、特に多数のアプリが同時にアクセスされているときに特に不可能です。
  • 存在することはありませんが、Local ソケットは、UNIXのようなOSの複数のプロセスによって共有されています。 DNS解決に使用されるUDP / 53などのリモート共有ソケットは、単一のプロセスで追跡することはできません。これによりアプローチがさらに弱まります。

href="htps://github.com/raboof/nethogs" rel="nofollow noreferrer"> nethogs トラバース<コード> iptables0 上記の制限により(必ずしも非常に成功しているわけではありません)。

iptables:

レイヤ2ツールの上記の欠点は、 iptables を使って軽減できます。 または<コード> iptables2 レイヤ2 は、物理層すなわち、デバイスを離れる前に最後のPacketsが遭遇する。 そのため、データリンクレイヤにいると、Net Stackの下位レベルで動作するため、BPFは<コード> 99887766666643323 / <コード> iptables4 は、OSI レイヤ3 (ASERSPACEプログラムに近い)で機能します。そのため、TCP / IPスタック(レイヤ4 )から情報を取得することもできます。 99887766655443325 。モジュール 99887665443326 Socketsと対話してパケットの所有権を見つけます。

iptables7 998877665443328 または 9988776665443329 を使用して読み取ることができるカーネルログへの書き込みを行う。アプリのUIDは、アプリケーションを使用するか、または<コード> 9988776654433330 または<コード>または<コード>または<コード> 9988776654433331

を使用して入手できます。
 <コード> logcat32  

出力はファイルに保存し、<コード> 99887766664333 、<コード>、<コード>、<コード>、<コード>、<符号>、<符号>などのネットワークログ - 非常に古くなっていますが、同様にして作業します。 real="nofollownoreferrer"> afwall + は、アプリのネットワークをログ/通知できる 998877665443336 に基づくファイアウォールです。アプリがブロックされているときのアクティビティ。

このアプローチの唯一の欠点は、同じUID で実行されている複数のプロセスがあるときに、あるプロセスからのトラフィックをスニフするために使用することはできません。 <コード> logcat7 PIDに基づいてパケットをキャプチャできません。彼らはを決定しました<コード> logcat8338 は、ブロック/盗聴される前にプロセスが開始され、プログラムはブロック/盗聴されない新しいPIDで子プロセスを簡単に展開することができます。また、ソケットのように迅速にPIDSが作成され破壊されます。だから常にトラフィックが漏洩する余地があります。

QTAGUID:

logcat9 モジュールは、IPパケットが所有権情報を伝送しないため、着信または転送されたトラフィックのために機能しません。 App毎の着信/発信ネットワークの使用法を測定するには、Android Patched Kernelを含めるには、 モジュール。 998877665443341 から統計を読み取ることができます。シェルスクリプティングが再起動以降のライブデータ使用量を取得します。

しかしAndroid 9+、<コード> dumpsys2 は BPF(< Linuxカーネルのフレームワーク。関連:データ使用量のキャプチャを担当しますか?

iptables + tcpdump:

代替は、 99887766665543344 Group以降のアプリからの発信トラフィックを置くことです tcpdumpキャプチャそのグループからパケットをキャプチャします。 <事前> <コード> dumpsys5

発信トラフィックを遮らせるときに物理層に近づくことを確認するためです。しかし、それはまだ偽陽性を与えることができますルーティングテーブルでパケットがドロップ/紛失した場合だから Sniffers OSIレイヤ2.またはさらに良いことは、外部から見守ることです。プロキシ/ VPNサーバーまたはテザーPCまたはルータで使用する。しかし、これはUID / PIDベースごとにトラフィックをキャプチャしません。

その他のオプション:

  • プロセスのネットワークアクティビティに関連する<コード> 998877665443347 の<コード> 998877665443347 などの診断ツールを使用します。 force_bind と Tracedump も同じ原理に取り組んでいます。 Linuxカーネルの監査サブシステムは同じに使用できます。
  • ネットワーク分類子cgroup 特定のプロセスからのスニフトラフィックへのトラフィックES)
  • <コード> libpcap0 を使用して、プロセスを分離し、インタフェースごとにデータの使用状況を読み取ります。 nstrace 同じ原則で動作します。
  • 意図が特定のプロセスから発信されたトラフィックを完全にブロックするために、<コード> 9988776665443351 を使用して、制限付き<コードを定義することでソケットを作成する機能を制限することができます。それぞれ<コード> 99887766655443353 9988776665443354

これらのほとんどは、Androidのための簡単な実行可能なオプションではなく、高度な構成を必要としています。


AndroidのAPI(非ルートオプション):

NetGUARD を使用する vpnservice Api Layer 3(Tun Interface)でトラフィックをブロックするためのAPI。アプリは、アプリケーションがインターネットにアクセスしたときに通知することができます。アプリごとのキャプチャとトラッキング( 1 2 )はVPN APIを使用して可能Androidは<コード> 99887766544355 および<コード> ( 1 、 2 ネットワークルーティングポリシーのトラフィックを制御する( rpdb )は、デバイスを離れる直前に。

NetLive networkstatsmanager 、しかし、リアルタイム使用量と"が早く更新されません。十分な ""は履歴データを提供することを意味します "

注:参照されているアプリとの所属はありません。


関連:

  • インターネットトラフィックのみを送信するが、そのバックを受信しないようにアプリを制限しますか?
  • ファイアウォールがブロックした後のアプリケーションからネットワークアクティビティが検出されたのはなぜですか?
  • Wireshark
  • の携帯電話トラフィックのキャプチャ

 
 
0
 
vote

どのアプリがどのサーバに接続を実行したのかを追跡したい場合は、アプリを推薦する場合
> ネットモニタに。それはローカルVPNとして機能し、それ故、すべてのネットワークトラフィックを検出することができます。さらに、どのアプリがネットワーク要求を実行したか(リモートホスト、ポート、接続がプレーンまたはSSL / TLSの場合でも)どのアプリケーションを実行しました。

そのため、質問で既に述べたキャプチャツールと組み合わせてこのアプリを使用する場合は、各ネットワーク接続をトレースすることができます。

 
 

関連する質問

19  Android 7(Nougat)で実行中のプロセスとCPU使用率を表示しますか?  ( View running processes and cpu usage in android 7 nougat ) 
Androidの以前のバージョンでは、私の電話バッテリーがすぐにダウンしていたとき、私は OSモニタ、ロットCPUを使用しているのか(多くの場合それは常時存在またはmaps.me)を使用してから、そのプロセスをキルします。 しかし、OSモニタと類似のアプリは...

1  バッテリの履歴に表示される無効なアプリエントリ。疑わしい?  ( Unlabled app entries appearing in battery history suspicious ) 
今朝私は私のバッテリーの歴史の中で奇妙な無題のエントリーに気づいた。また、何らかの行がパーセンテージを表示していないのかはわかりません。 (タップされると、エントリ詳細ビューにはパーセンテージが表示されます。)エントリはAndroid OSエントリと同じコード...

5  ルートターミナルコマンドサービスを殺すか停止する?  ( Root terminal command to kill or stop a service ) 
最新 LiveViewアプリケーション LiveViewデバイスが接続されていなくてもステータスバーに表示されています。この動作を無効にする手段が見つかりませんので、タスクーーを介して自分の修正を作成します。デバイスが切断されたときにLiveViewプロセスが...

0  それでも謎。 ThumbData3ファイルスペースとパフォーマンスホッグ  ( Still a mystery thumbdata3 file space performance hog ) 
私はこの問題を解決する方法がわからない。 私はほとんどすべてを試してみました。 99887765544330 ファイルがたくさんのスペースを占めるファイルの場合、他のスレッドを読んでいます。私のファイルはほぼ20 GBを占めています、そして私はそのスペース無...

3  "system_server" - BluetoothPhoneServiceが高いCPU使用量を引き起こします  ( System server bluetoothphoneservice causes high cpu usage ) 
Nexus 4上のAndroid 5.1を使用しており、数ヶ月前に通常よりも早く電池の排水排水を急ぎました。私が最初にCPU使用率をチェックすることを決定し、プロセス "system_server" - BluetoothPhoneServiceを実行す...

42  バックグラウンドプロセスを制限するためのダウンサイドやリスクはありますか?  ( Are there any downsides or risks to limiting background processes ) 
私のSamsung Galaxy Grand Duosで開発者オプションを有効にしてから、標準制限からなしの背景プロセスに「制限バックグラウンドプロセス」オプションを変更しました。 その後、私の電話がうまく機能しています。ぶら下がっている問題や前のように静止し...

7  AndroidタスクのCPUアフィニティを設定する方法  ( How to set cpu affinity for android tasks ) 
デュアルコアAndroidデバイスを持っています。 AndroidタスクのCPUアフィニティを設定する方法はありますか? ...

2  Dalvik仮想マシンはすべてのプロセスで実行する必要があるのですか?  ( Why does dalvik virtual machine need to run in every process ) 
JVMとDVMはどちらも仮想環境を提供します。 JVMはすべてのプロセスにある必要はありません。 DVMはなぜすべてのプロセスにある必要があるのですか? ありがとう。 ...

3  特定のアプリによって要求されたネットワークトラフィックを表示する方法  ( How to view network traffic requested by a specific app ) 
どのアプリがネットワーク接続を要求しているかを確認する方法についての議論がたくさんあります。私は次のアプリを試しました: <事前> <コード> 9988776655443330 しかし、それらのどれも有用ではありませんでした。たとえば、短期間で、表示できる3...

3  Android 4.0.3低迷:NANDDプロセスHOGGING CPU  ( Android 4 0 3 sluggish nandd process hogging cpu ) 
私はAllwinner A10タブレットクローンを持っています。タブレットを「フリーズ」している間は、定期的に「フリーズ」しますが、2~15秒の間の時間の間にはあまり頻繁にはしません。別の説明的に説明されています:タブレットは使用可能ですが、素晴らしい「流体」...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有