私はAndroidが初めてで、プログラムを使用して独自のプロバイダー( Androidに存在vpn
するデフォルトのvpn
プロバイダーではないPPTP
、など)を確立して接続しようとしています。L2TP
Setting -> Wireless and Networks
私のシナリオは、ボタンがあり、ボタンをクリックすると、自分で構成する必要がvpn
あり、リンク (www.google.com など) は構成したものを通過する必要がVPN
あります。
サンプルコードはありますか?
私はAndroidが初めてで、プログラムを使用して独自のプロバイダー( Androidに存在vpn
するデフォルトのvpn
プロバイダーではないPPTP
、など)を確立して接続しようとしています。L2TP
Setting -> Wireless and Networks
私のシナリオは、ボタンがあり、ボタンをクリックすると、自分で構成する必要がvpn
あり、リンク (www.google.com など) は構成したものを通過する必要がVPN
あります。
サンプルコードはありますか?
何千回もググったのに、なぜgithub の検索をしなかったのかはわかりません。ずいぶん探して、やっと綺麗に書かれたものを見つけた。コードは文字通り美しいですが、これはまれです。
https://github.com/hexene/LocalVPN
このプロジェクトは、NDK やネイティブ コード (純粋な Java) を使用していないため、単純なプロジェクトの開始に最適です (複雑なプロジェクトには適していないというわけではありません)。ワークフローは非常にシンプルです。
LocalVPNService.class
LocalVPNService
TCP/UDP パケットが調査され、送信元と宛先の IP が抽出されます (そのPacket.class
ために が使用されます)。LocalVPNService
、リクエストを開始するアプリに代わって接続を確立し、VpnService.protect()
新しく作成された接続を呼び出してループを回避します。ご覧のとおり、ヘキセンはすでにすべての大変な作業と重労働を行っています。
上記のすべてのクラスは、プロジェクト ディレクトリにあります。github からソース コードをざっと見てみましたが、ここで説明するワークフローは正確ではない可能性があります。
AndroidSDKにバンドルされているサンプルアプリケーションToyVpnを参照できます。サンプルに移動して、そのアプリケーションを参照してください。これも参照してください。
これに加えて、Openvpnのソースコードをダウンロードできます。これがそのためのリンクです
https://github.com/kghost/ics-openvpn
ありがとう
OpenSwan ソリューション: https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClient
OpenVPN ソリューション: https://code.google.com/p/ics-openvpn/