如何与Linux tun驱动程序进行接口

前端之家收集整理的这篇文章主要介绍了如何与Linux tun驱动程序进行接口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很难想出这个问题 – 我正在尝试编写一个与 Linux隧道驱动程序交互的程序.在一个非常基本的层面上,我只想创建一个能够通过网络隧道传输数据的应用程序.但是,为了完成这一点,我完全失去了如何正确设置隧道驱动程序.

我正在Ubuntu 9.04开发,并且我加载了隧道驱动程序内核模块.

存在设备/ dev / net / tun,但是没有/ dev / tunX设备.我无法使用ifconfig创建这些设备 – 每当我运行/ sbin / ifconfig tun0 up,例如,我收到以下错误:tun0:ERROR,而获取接口标志:没有这样的设备.如果我尝试查看/ dev / net / tun设备,会出现以下错误:cat:/ dev / net / tun:文件描述符处于不良状态.尝试通过小程序打开/ dev / tunX(基本上,简单的tun_fd = open(“/ dev / tun0”,O_RDWR)返回-1:应用程序以root用户身份运行,仍然无法打开此隧道设备要打开/ dev / net / tun,但是这似乎不会生成一个新的/ dev / tunX设备来使用.

所以,总而言之,如何编写一个希望使用Linux隧道驱动程序的应用程序?任何见解将不胜感激.

谢谢;
〜罗伯特

解决方法

阅读 /usr/src/linux/Documentation/networking/tuntap.txt.

你应该打开/ dev / net / tun设备.打开fd后的ioctl将创建tun0(或任何您想要命名的)网络接口. Linux的网络接口不对应任何/ dev / *设备.

猜你在找的Linux相关文章