Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ioctl (TUNSETIFF) : device or resource busy

I am unable to set TUN interface. Everywhere i searched and it says the device should be rooted. I am setting up proxyserver on my ubuntu 14.04 system

static int get_interface(char *name) {
int interface = open("/dev/net/tun", O_RDWR | O_NONBLOCK);
struct ifreq ifr;
memset(&ifr, 0, sizeof(ifr));
ifr.ifr_flags = IFF_TUN | IFF_NO_PI;   
strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));

if (ioctl(interface, TUNSETIFF, (void *)&ifr) < 0) {
    perror("Cannot get TUN interface");
    exit(1);
}

return interface;

}

like image 385
user2044000 Avatar asked Nov 08 '22 15:11

user2044000


1 Answers

Check your device name (i.e. ifr.ifr_name). Another process maybe using the same device. For example, you may be trying to use tun0 and another process has it open already.

like image 164
hackmaxed Avatar answered Nov 26 '22 15:11

hackmaxed