Skip to content
/ vpnkit Public
forked from moby/vpnkit

A toolkit for embedding VPN capabilities in your application

License

Notifications You must be signed in to change notification settings

avsm/vpnkit

 
 

Repository files navigation

VPN-friendly networking devices for HyperKit

VPNKit diagram

VPNKit is a set of tools and services for helping HyperKit VMs interoperate with host VPN configurations.

Building on Unix

First install wget, opam using your package manager of choice. Install the OCaml library dependencies with:

make depends

Build the application using:

make

Why is this needed?

Running a VM usually involves modifying the network configuration on the host, for example by activating Ethernet bridges, new routing table entries, DNS and firewall/NAT configurations. Activating a VPN involves modifying the same routing tables, DNS and firewall/NAT configurations and therefore there can be a clash -- this often results in the network connection to the VM being disconnected.

VPNKit, part of HyperKit attempts to work nicely with VPN software by intercepting the VM traffic at the Ethernet level, parsing and understanding protocols like NTP, DNS, UDP, TCP and doing the "right thing" with respect to the host's VPN configuration.

VPNKit operates by reconstructing Ethernet traffic from the VM and translating it into the relevant socket API calls on OSX or Windows. This allows the host application to generate traffic without requiring low-level Ethernet bridging support.

About

A toolkit for embedding VPN capabilities in your application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • OCaml 73.2%
  • Roff 21.9%
  • Shell 3.2%
  • Makefile 1.5%
  • PowerShell 0.2%