Skip to content

mostly incomplete: please don't use this - Node.js native module (N-API) for creating and configuring tun/tap interfaces and maybe also more things

Notifications You must be signed in to change notification settings

hellomouse/node-tunfd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-tunfd

It makes tun/tap interfaces.

How to use

const tunfd = require('tunfd');
const fs = require('fs');

let iface = new tunfd.TunInterface({
  // optional, kernel will automatically assign a name if not given here
  name: 'tun0',
  // can be either "tun" or "tap", default is "tun"
  // tun mode gets you ip packets, tap mode gets you ethernet frames
  mode: 'tun',
  // set to true if you want the 4-byte packet information header
  // default is false, which adds IFF_NO_PI to ifr_flags
  pi: false
});

// if you want to know the auto-assigned name of the interface
console.log(iface.name);
// the fd of the new interface
console.log(iface.fd);

// how to get packets
let readStream = fs.createReadStream(null, { fd: iface.fd });
readStream.on('data', packet => { ... });
// how to put packets
let writeStream = fs.createWriteStream(null, { fd: iface.fd });
writeStream.write(...);

// fork()
console.log(tunfd.fork());

License

ISC

About

mostly incomplete: please don't use this - Node.js native module (N-API) for creating and configuring tun/tap interfaces and maybe also more things

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published