4

Linuxで(できれば最終的にはJavaアプリケーションで)TUNデバイスを開こうとしています。ネイティブコードを使用したくないので(可能であればJNIを避けたい)、コマンドラインから可能な限り実行したいと思います。これが私がやろうとしていることです:

  • を使用してTUNインターフェイスを作成しますip tuntap add dev tun0 mode tun
  • ipupに設定し、IPアドレスを指定します(コマンドで十分簡単)
  • ある種の/dev/tun0ファイルを開いて、ネットワーク側からトラフィックを書き込みます。

最後のステップは私が少し混乱しているところです-ネットワークアダプタはファイルであるため、これはUnixで機能するでしょうが、私はLinuxを使用しており、NICにそのようにアクセスできるとは思いません。これはネイティブコードでは簡単だと理解しています(ioctlファイル記述子を数回呼び出して取得します)が、コマンドラインからそれを行う方法がない限り、機能しません。

すでに構成されているtunインターフェース(で構成されているip tuntap)をopen呼び出しで開き、ネットワーク側のIPパケットを(を使用せずにioctl)書き込み始める方法はありますか?

4

1 に答える 1

3

を介して設定した場合はip tuntap、Javaから読み取り/書き込みファイルとして開いて、イーサネットパケット全体を書き込むことができます。これを2回開いて(FileInputStream / FileOutputStream)、イーサネットパケットの読み取りと書き込みを行うことができます。

于 2012-08-24T01:01:05.917 に答える