小编rat*_*tio的帖子

Linux TUN / TAP:无法从TAP设备读回数据

问题是有关要利用Tun / Tap模块的Linux主机的正确配置。

我的目标:

利用现有的路由软件(以下简称APP1和APP2),但截取和修改由它发送和接收的所有消息(由Mediator完成)。

我的场景:

              Ubuntu 10.04 Machine
+---------------------------------------------+
|                                             |
|APP1 --- tap1 --- Mediator --- tap2 --- APP2 |
|                                             |
+---------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
  • tap1和tap2:分别设置带有IFF_TAP标志和IP 10.0.0.1/24和10.0.0.2/24的设备设置。创建设备的代码如下:

    #include <stdlib.h>
    #include <stdio.h>
    #include <sys/socket.h>
    #include <sys/ioctl.h>
    #include <fcntl.h>
    #include <linux/if.h>
    #include <linux/if_tun.h>
    #include <string.h>
    #include <errno.h>
    #include <sys/resource.h>
    
    void createTun(char *, char *, short);
    
    int main(void)
    {
        const short FLAGS = IFF_TAP;
        char *tunName;
        char *tunIP;
    
        // Create tap1
        tunName = "tap1\0";
        tunIP = "10.0.0.1/24\0";
        createTun(tunName, tunIP, FLAGS);
        printf("Created %s with …
    Run Code Online (Sandbox Code Playgroud)

c sockets linux networking tun

5
推荐指数
1
解决办法
2679
查看次数

标签 统计

c ×1

linux ×1

networking ×1

sockets ×1

tun ×1