web-dev-qa-db-ja.com

VPNはAndroidおよび利用可能なAPIのリストでどのように機能しますか?(ロリポップ)

参照:

Android 4.0には、VPNサービスを構築するためのAPIがあります。

  1. VPNService(Android Docs)
  2. VPNService.Builder(Android Docs)
  3. ArneSchawbeによるOpenVPNの実装Android(github)

VPNサービスを備えたそのようなアプリの1つは NetMotionMobility®(Google Play)

「Lollipop」バージョンから、Androidには、VPN接続状態、リクエストがVPNを経由するかどうかなどに関する情報を提供する新しいVPNタイプが付属しています。

試験結果

(VPNに接続)

  1. Android <= 5.0(Android Lollipop)
    1. WIFI(Wlan)およびCellular(rmnet)インターフェースIPとの接続は成功しています。
    2. VPN(tun)インターフェースのIPアドレスで接続は成功しますが、VPN接続/切断イベントは発生しません。
  2. Android> 5.0(Android Lollipop 5.1および6.0)
    1. 接続はnotWIFI(Wlan)およびCellular(rmnet)インターフェイスIPで成功します。
    2. VPN(tun)インターフェースIPのアドレスで接続が成功し、VPN接続/切断イベントも取得します。

tunインターフェイスIP: SITE local Private IP().

  1. ConnectivityManager#TYPE_VPN
  2. NetworkCapabilites#TRANSPORT_VPN
  3. NetworkCapabilities#NET_CAPABILITY_NOT_VPN

このネットワークがVPNではないことを示します。この機能はデフォルトで設定されており、VPNネットワークでは明示的にクリアする必要があります。定数値:15(0x0000000f)

質問:

  1. VPNサービスがデバイスでアクティブな場合、WhatsApp、Skype、ブラウザーなどのサードパーティアプリからのリクエストはどのように機能しますか?
  2. VPNが接続されると、デバイスのIPスタックは正確にどうなりますか?
  3. VPNトンネリングはAndroidでどのように機能しますか?
  4. アクティブなIPにバインドしてリクエストを送信するアプリのデザインは何ですか?
  5. Lollipop(5.0)のVPN APIは安定していませんか?
  6. bindProcessToNetwork がCelluarネットワーク経由で行われ、WiFiがデバイスに接続されている場合、VPNはどのネットワークを使用しますか?
33
NitZRobotKoder

いくつかの質問に答えようとします:

1。 VPNは、他のアプリフローには影響しません。デバイスを別のネットワークに「仮想的に」配置するだけです。たとえば、ある会社のプライベートネットワーク。これは、VPN接続を介して送信されるすべてのリクエストがそのネットワークに送信され、そのネットワーク内で適用されるすべてのルール/フィルターが電話によって生成されるトラフィックに適用されることを意味します。これにより、サードパーティのアプリに問題が発生する可能性があります。

2。トラフィックがVPN接続を通過するときの実際のIPアドレスは、VPNサーバーによって割り当てられたVPNのIPアドレスに置き換えられます。接続するWebサーバーには、実際のIPアドレスは表示されません。彼らはあなたが接続するVPNネットワークゲートウェイのIPを見るでしょう。

5。 Android 5.0 Lollipopを使用すると、VPNクライアントは最終的に、セキュリティで保護されたネットワークを介して通信するアプリと、インターネットに直接接続するアプリをきめ細かく制御できます。これにより問題が発生する可能性があります。

VPN APIの使用法については、このプロジェクトを確認できます: Android用OpenVPN

3
j2ko