如何打开使用'ip tuntap'创建的tun设备

时间:2012-08-24 00:50:08

标签: java linux networking

我正在尝试在Linux中打开一个TUN设备(希望最终在Java应用程序中)。因为我不想使用任何本机代码(如果可能的话我想避免JNI)我想通过命令行尽可能多地做。这就是我想要做的事情:

  • 使用ip tuntap add dev tun0 mode tun
  • 创建TUN界面
  • 将其设置为up,并为其指定IP地址(使用ip命令就足够简单)
  • 打开某种/dev/tun0文件以从网络端写入流量。

最后一步是我有点困惑 - 我认为这可以在Unix上运行,因为网络适配器是文件,但我在Linux上,我认为我不能以这种方式访问​​NIC。我理解这对于本机代码很简单(对ioctl进行一些调用并获取文件描述符)但除非有一些方法可以从命令行执行此操作,否则它将无法工作。

有没有办法可以打开已配置tun接口(配置ip tuntap)并进行open调用,并开始向其编写网络侧IP数据包(不使用ioctl)?

1 个答案:

答案 0 :(得分:2)

如果您通过ip tuntap进行了设置,那么您可以将其作为java的读/写文件打开,然后将整个以太网数据包写入其中。您可以打开它两次(FileInputStream / FileOutputStream)来读取和写入以太网数据包。