4

このチュートリアルを使用して、プログラムで PPTP VPN 接続を作成し、パケットをキャプチャします

アプリでvpnに接続し、ブラウザでサイトを開こうとすると、次のように表示されます:You are offline... Sendそして、received常に0 bytes / 0 pockets アプリで接続を切断する必要もあります

どうすれば修正できますか?

4

1 に答える 1

2

使用したチュートリアルは、PPTP や別の特定の VPN の種類に関するものではなく、パケット キャプチャに関するものです。PPTP クライアント側を自分で実装し、その後、パケット キャプチャ コード (while ループ) と PPTP クライアント コードを相互接続する必要があります。

ソースコードを表示できれば、何が問題なのかを簡単に示すことができます。

UPD1:

では、どのようにPPTP接続を使用し、接続および切断できますか?

これは大きくて複雑な作業です。迅速な解決策はありません。私が同じことをしたとき、私はそれに約1年を費やしました。次のようなことができます。

  1. 既存のサード パーティ PPTP クライアントをプロジェクトにインポートします (例: http://pptpclient.sourceforge.net/ ) 。
  2. インポートされたコードを改善して、メイン コードと対話できるようにします (C/C++ コードは、JNI 経由でネイティブ ライブラリとして、または外部実行可能ファイルとして使用でき、IPC 経由で対話できます)。
  3. コードをインポートされたコードとリンクします (VPN サービス ソケットから IP データグラムを読み取り、それらを PPTP クライアント ソケットに書き込み、その逆も同様です)。

UPD2:

VpnService を実装する 2 つのアプリケーションを見ました。

最初のものはStrongSwanです。VpnService はここから拡張され、ネイティブ部分 (実際の VPN サービスの実装) はここから始まります。

2 つ目は OpenVpn ポート ics-openvpn です。ここでスタンドアロンの openvpn プロセスを開始し、ここで標準の openvpn 管理インターフェイス (UNIX ソケット) を介して管理します

于 2016-06-04T20:16:19.627 に答える