【发布时间】:2012-08-24 00:50:08
【问题描述】:
我正在尝试在 Linux 中打开 TUN 设备(希望最终在 Java 应用程序中)。由于我不想使用任何本机代码(如果可能,我想避免使用 JNI)我想通过命令行尽可能多地做。这是我正在尝试做的事情:
- 使用
ip tuntap add dev tun0 mode tun创建一个TUN接口 - 设置它,并给它一个 IP 地址(使用
ip命令很简单) - 打开某种
/dev/tun0文件从网络侧写入流量。
最后一步是我有点困惑的地方 - 我认为这可以在 Unix 上工作,因为网络适配器是文件,但我在 Linux 上,我认为我不能以这种方式访问 NIC。我知道这对于本机代码很简单(对ioctl 进行几次调用并获取文件描述符),但除非有某种方法可以从命令行执行此操作,否则它将无法正常工作。
有什么方法可以通过open 调用打开已经配置的tun 接口(配置为ip tuntap),并开始向其写入网络端IP 数据包(不使用ioctl)?
【问题讨论】:
标签: java linux networking