Giter Site home page Giter Site logo

vpnhood / vpnhood Goto Github PK

View Code? Open in Web Editor NEW
848.0 32.0 139.0 212.24 MB

Undetectable Fast Portable VPN

License: GNU Lesser General Public License v2.1

C# 87.08% PowerShell 3.42% Shell 0.77% Dockerfile 0.10% TypeScript 8.63%
vpn xamarin cross-platform csharp

vpnhood's Introduction

VpnHood

An alternative way for circumvention and privacy!

Undetectable VPN for ordinary users and experts. VpnHood is a solution to bypass Advanced Firewalls and circumvent deep packet inspection. VpnHood has been created entirely from scratch in C#.

Get VpnHood!

It is available for Windows and Android. The iOS client still needs to be ready!

Use Alternative Download links.

Client Features

  • Easy Installation: Just install and press connect
  • Undetectable on private IPs
  • Fast
  • Split Tunneling by Apps & Countries
  • Windows (x64) 10, 11
  • Android, Android TV
  • IPv6*

Server Features

  • No Network configuration or knowledge is required
  • No Admin privilege is required
  • Hot Restart (User sessions' will not close on restart)
  • Built-In User Management
  • Built-in NAT with zero configuration
  • NetScan Protector
  • Windows (x64) 10, 11, or Windows Server
  • Linux

Developer Features

  • Open source (LGPL License)
  • Completely in .NET
  • Highly Customizable
  • Easily Embed into your .NET app
  • Extendable User Management via REST API
  • Component-based via Nuget packages
  • Open the solution with Visual Studio and build

IPv6 Support

VpnHood supports IPv6, but in Windows, you need to be already on the IPv6 network, so all your network traffic will be tunneled through VpnHood. In Windows, you will not have access to IPv6 sites if your network is not already configured to use IPv6. In Android, however, you will get an IPV6 address and access to all IPv6 sites regardless of your network configuration.

FAQ & Documents

Please check our Wiki to see the VpnHood documents.

Support

You are always welcome!

Supported Server

Windows Linux

Special Thanks

  • SharpPcap: Fully managed, cross platform .NET library for capturing packets from live and file based devices.
  • WinDivert: a user-mode packet capture-and-divert package for Windows.
  • EmbedIO: A tiny, cross-platform, module based web server for .NET.
  • Advanced Installer: Installer tools for Windows.

vpnhood's People

Contributors

alexalok avatar bobvhood avatar petervhood avatar poussinou avatar trudyhood avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vpnhood's Issues

can not start via systemd

Failed to restart VpnHoodServer.service: Unit VpnHoodServer.service is not loaded properly: Exec format error.
ubuntu 18.04

Run server on LAN

I want to run VPNHood on my LAN. The problem is, when it starts, it binds to my LAN address, but the key created is for my public address (192.168.x.x vs 72.x.x.x). So is it possible to make the key only for the LAN address?

Network Traffic

Please how can I intercept the network to get the packet or url my app is making request to when the vpnhood is active

IPv6 Leak Protection

Discussed in #42

Originally posted by mihaibarbulescu September 9, 2021
Please consider implementing IPv6 leak protection. As far as I know, this could be done by effectively rerouting all IPv6 traffic to a โ€œblack holeโ€ within the client device. Alternatively, the capability on server-side to tunnel IPv6 would be awesome. Thank you!

Installation broken

Hello !
it looks like the installation or the script is broken.

Ubuntu 20

/dev/fd/63: line 2: $'\r': command not found
/dev/fd/63: line 3: $'\r': command not found
Installation script for linux
/dev/fd/63: line 4: $'\r': command not found
Install .NET Runtime 5.0 for ubuntu/21.04 (y/n)?y
/dev/fd/63: line 5: $'\r': command not found
Auto Start (y/n)?y
/dev/fd/63: line 7: $'\r': command not found
/dev/fd/63: line 8: $'\r': command not found
/dev/fd/63: line 10: $'\r': command not found
/dev/fd/63: line 11: $'\r': command not found
/dev/fd/63: line 12: $'\r': command not found
/dev/fd/63: line 76: syntax error: unexpected end of file

Server ignoring appsettings port

"appsettings.json" have port 5003 mentioned but server still binding on 443. While generating access token server endpoint is 192.168.0.101:5003 but while running server it's showing 443. "appsettings.json" in the root folder of VpnHood server beside "publish.json".

Please check logs attached below. Thanks !

logs.zip

Andrpod: Crash on opening SPA zip stream

android.runtime.JavaProxyThrowable: at VpnHood.Client.App.UI.VpnHoodAppUi..ctor (System.IO.Stream spaZipStream, System.Int32 defaultPort) [0x0000d] in :0
at VpnHood.Client.App.UI.VpnHoodAppUi.Init (System.IO.Stream zipStream, System.Int32 defaultPort) [0x00000] in :0
at VpnHood.Client.App.Android.MainActivity.OnCreate (Android.OS.Bundle savedInstanceState) [0x00057] in <905a3a645f504aec9eef644d31a46e2c>:0
at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x0000f] in <3b578da00037433c8dbdc4a9075086dc>:0
at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.2(intptr,intptr,intptr)
at crc647486a17e72a62434.MainActivity.n_onCreate (Native Method)
at crc647486a17e72a62434.MainActivity.onCreate (MainActivity.java:33)
at android.app.Activity.performCreate (Activity.java:8000)
at android.app.Activity.performCreate (Activity.java:7984)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3464)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3643)
at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2105)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:223)
at android.app.ActivityThread.main (ActivityThread.java:7700)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:612)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:997)

[question] Logs on Android

Hi,

I am using VpnHood on my mobile a Samsung device. At times VpnHood works fine without any issues, however, I noticed that certain times the connection drops randomly (Reconnecting at that instance works fine). Is there any way I could retrieve VpnHood logs from the device, are they stored anywhere?

How do we debug these random issues? I verified that the network is fine when the issue occurs.

Thanks in advance.

Socket Exception - Connection Refused

Environment :

Centos 7 - VPS (Contabo)
Port : 9443
Client : latest
Server : latest

Issue :

VPN connects fine, after that warning and error start's throwing at server side. VPN stays connected but unable to access most of the resources on the internet. Server logs showing connection refused for most of the requests. Don't know if it's VPS issue or something else.

Attached logs below, Please let me know. Thanks!

2021-01-30.txt

Certificate file name inconsistency

Hi, i was testing the project and i found that there's a ssl error, which comes from the server using local ip instead of the public ip for the cert file.

e.g. if you generate the certificate and tokens using
gen -name "vpn" -ep [server-public-ip] -maxClient 6
the pfx file will be created using the provided public ip endpoint, but on every connection the server checks for a file named with the local ip and throws an ssl error because of the missing file.
image

renaming the file to the local ip solves the issue, i thought this would help.

Add comprehensive diagnose

Lets check user network before try to establish connection
=>Before Connect

  • Internet Ping Test using 8.8.8.8 or 1.1.1.1
  • Internet DNS Test using 8.8.8.8 or 1.1.1.1
  • HttpGet https://www.google.com/
  • Server Ping Test (If Possible)
    (Connect)
  • Internet Ping Test 8.8.8.8 or 1.1.1.1
  • Internet DNS Test 8.8.8.8 or 1.1.1.1
  • HttpGet https://www.google.com/
    Done

[Question] UDP through Tunnel

Hi,

I was wondering how UDP traffic is handled on the Tunnel? I am currently using TcpMode which means all the UDP traffic is sent through the TcpDatagramChannel. However on the server-side how does it handle proxying of these UDP packets to the actual resource (since in UDP there is no session per see). Does the server open a random port on which the data is sent to the actual server and closes it after a specific timeout? Appreciate some more details on this.

Same for ICMP, how is it handled.

Thanks.

VPNHood not working

Bruh seriously? VPNHood not working if i using specific country

I didn't try what if i use all country option
How do i know this VPNHood not working?
Try to find what is your devices ip ...
And it's still on my original region even after VPNHood connected
(Bruh ๐Ÿ—ฟ๐Ÿ—ฟ๐Ÿ—ฟ๐Ÿ—ฟ๐Ÿ—ฟ๐Ÿ—ฟ)

Realme 5i
Android 10 (Realme UI 1.0)

@trudyhood

f-droid

Hello, please add the program to f-droid

Android: Crash by writing log on VpnService destruction

android.runtime.JavaProxyThrowable: at System.IO.StreamWriter.WriteSpan (System.ReadOnlySpan1[T] buffer, System.Boolean appendNewLine) [0x00068] in <bb2de28f196242aead07c87a2abd5688>:0 at System.IO.StreamWriter.WriteLine (System.String value) [0x0000d] in <bb2de28f196242aead07c87a2abd5688>:0 at VpnHood.Common.Logging.StreamLogger.Log[TState] (Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func3[T1,T2,TResult] formatter) [0x0000e] in :0
at Microsoft.Extensions.Logging.Logger.g__LoggerLog|12_0[TState] (Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, Microsoft.Extensions.Logging.ILogger logger, System.Exception exception, System.Func3[T1,T2,TResult] formatter, System.Collections.Generic.List1[System.Exception]& exceptions, TState& state) [0x00000] in :0
at crc64f4a10f915900e574.AppVpnService.n_onDestroy (Native Method)
at crc64f4a10f915900e574.AppVpnService.onDestroy (AppVpnService.java:38)
at android.app.ActivityThread.handleStopService (ActivityThread.java:4694)
at android.app.ActivityThread.access$3000 (ActivityThread.java:296)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2264)
at android.os.Handler.dispatchMessage (Handler.java:107)
at android.os.Looper.loop (Looper.java:213)
at android.app.ActivityThread.main (ActivityThread.java:8178)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1101)

Unable to run Android Samples in Android Emulator

Hi there,

I having been trying to run the Android Sample in an Android Emulator but couldn't do so. The app crashes while launching. The Android App does run fine though.

Below is the snippet of logs for the crash

> am start -a "android.intent.action.MAIN" -c "android.intent.category.LAUNCHER" -n "com.vpnhood.samples.simpleclient.droid/crc645e76e89519cc4178.MainActivity"
> Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.vpnhood.samples.simpleclient.droid/crc645e76e89519cc4178.MainActivity }
[pleclient.droi] Not late-enabling -Xcheck:jni (already on)
[pleclient.droi] Unexpected CPU variant for X86 using defaults: x86
[AndroidRuntime] Shutting down VM
[AndroidRuntime] FATAL EXCEPTION: main
[AndroidRuntime] Process: com.vpnhood.samples.simpleclient.droid, PID: 10172
[AndroidRuntime] java.lang.RuntimeException: Unable to instantiate application com.vpnhood.samples.simpleclient.droid.VpnHood: java.lang.ClassNotFoundException: Didn't find class "com.vpnhood.samples.simpleclient.droid.VpnHood" on path: DexPathList[[zip file "/data/app/com.vpnhood.samples.simpleclient.droid-1JDg_b7bemibub6TErY2-A==/base.apk"],nativeLibraryDirectories=[/data/app/com.vpnhood.samples.simpleclient.droid-1JDg_b7bemibub6TErY2-A==/lib/x86, /data/app/com.vpnhood.samples.simpleclient.droid-1JDg_b7bemibub6TErY2-A==/base.apk!/lib/x86, /system/lib]]
[AndroidRuntime] 	at android.app.LoadedApk.makeApplication(LoadedApk.java:1069)
[AndroidRuntime] 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5842)
[AndroidRuntime] 	at android.app.ActivityThread.access$1100(ActivityThread.java:199)
[AndroidRuntime] 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
[AndroidRuntime] 	at android.os.Handler.dispatchMessage(Handler.java:106)
[AndroidRuntime] 	at android.os.Looper.loop(Looper.java:193)
[AndroidRuntime] 	at android.app.ActivityThread.main(ActivityThread.java:6669)
[AndroidRuntime] 	at java.lang.reflect.Method.invoke(Native Method)
[AndroidRuntime] 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
[AndroidRuntime] 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
[AndroidRuntime] Caused by: java.lang.ClassNotFoundException: Didn't find class "com.vpnhood.samples.simpleclient.droid.VpnHood" on path: DexPathList[[zip file "/data/app/com.vpnhood.samples.simpleclient.droid-1JDg_b7bemibub6TErY2-A==/base.apk"],nativeLibraryDirectories=[/data/app/com.vpnhood.samples.simpleclient.droid-1JDg_b7bemibub6TErY2-A==/lib/x86, /data/app/com.vpnhood.samples.simpleclient.droid-1JDg_b7bemibub6TErY2-A==/base.apk!/lib/x86, /system/lib]]
[AndroidRuntime] 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
[AndroidRuntime] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
[AndroidRuntime] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
[AndroidRuntime] 	at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:50)
[AndroidRuntime] 	at androidx.core.app.CoreComponentFactory.instantiateApplication(CoreComponentFactory.java:52)
[AndroidRuntime] 	at android.app.Instrumentation.newApplication(Instrumentation.java:1120)
[AndroidRuntime] 	at android.app.LoadedApk.makeApplication(LoadedApk.java:1061)
[AndroidRuntime] 	... 9 more
[Process] Sending signal. PID: 10172 SIG: 9

Any clue what could be wrong? The windows sample runs fine.

Thanks,
A.K.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.