vpncore

package module
v0.0.0-...-7757972 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2016 License: GPL-3.0 Imports: 1 Imported by: 2

README

waiting...

DESC

This project is originally a fold of water, that is a tun/tap util implemented with Go. I extend it for supporting Mac OS X, and DNS/routing feature. Now I recreate a project for better portability, implements basic toolset for VPN Server/Client, including but not limited to tun/tap, DNS, routing management, transport.

PROJECT

  • vpncore/tuntap is a native Go library for TUN/TAP interfaces.

  • vpncore/tcpip has some useful functions to interpret MAC frame headers and IP packet headers. It also contains some constants such as protocol numbers and ethernet frame types.

TODO

  • kcp/obfs protocol

tun/tap

Mac OS X tips for Tun/Tap

< Mac OS X 10.10

Since the Mac OS kernel has no tun/tap device(but FreeBSD have), you need to use the third-party opensource Tun/Tap device kernel extension(kext), for example, tuntaposx.

sudo kextload /opt/local/Library/Extensions/tap.kext
sudo kextload /opt/local/Library/Extensions/tun.kext

If you had used Tunnelblick/Viscosity before, you may need to check if some kinds of Tun/Tap kext have already loaded, if so, close them before loading new Tun/Tap kext:

kextstat |grep tun
kextstat |grep tap

sudo kextunload /Library/Extensions/tun.kext
sudo kextunload /Library/Extensions/tap.kext
>= Mac OS X 10.10

Mac 10.10 or later OS version deny from loading unsigned kext, so:

  1. Disable it

  2. Use the signed kext.You can extract tap-signed.kext/tun-signed.kext file from Tunnelblick.app App Bundle, then loads it using command line:

    sudo chmod -R 644  /Applications/Tunnelblick.app/Contents/Resources/tap-signed.kext
    sudo chown -R root:wheel  /Applications/Tunnelblick.app/Contents/Resources/tap-signed.kext
    
    kextstat |grep tap 
    sudo kextutil -d /Applications/Tunnelblick.app/Contents/Resources/tap-signed.kext -b net.tunnelblick.tap
    sudo kextunload -b  net.tunnelblick.tap
    
  3. Use utun to implements Tun without loading third-party tun/tap kext. Reference to implementation of vpn-ws/tun.c.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Logger *logger.Logger

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version.
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version.
enc
aont
All-Or-Nothing-Transform, based on OAEP.
All-Or-Nothing-Transform, based on OAEP.
cnw
Chaffing-and-Winnowing.
Chaffing-and-Winnowing.
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version.
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version.
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version.
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version.
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version.
* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL