N2N is a VPN project that supports p2p. It was originally developed and open sourced by Luca Deri
deri@ntop.org, Richard Andrews
andrews@ntop.org of ntop.org, and Meyerd
https://github.com/meyerd continues to do optimization work. Our goal is to provide mobile version support.
The original n2n supports many platforms, including Windows, Linux, OSX, BSD, OpenWrt, Raspberry Pie, etc., except for mobile phones (non-root). Therefore, we have developed the Hin2n project.
- Hin2n is a mobile VPN app that supports the n2n protocol
- Hin2n does not need to root your phone
- Hin2n only supports Android phones for now, iPhone version will be developed in the future
- Hin2n is currently in continuous development and will gradually provide more complete versions
- Hin2n now supports all v1/v2s/v2/v3 protocols
Hin2n latest version CHANGELOG
The latest version of Hin2n is available for download at release link.
View the development plan at Projects
.
If you have new features and ideas, you can submit them in Issues
, and we will arrange development plans as appropriate. Your concern is our motivation.
- VPNService
Hin2n is based on Android's native VPNService. It builds a tun virtual network card through VPNService and communicates with supernode and edges.
- tun2tap
Android only supports tun virtual network card, only support network layer, and n2n requires tap virtual network card, which needs data link layer support. So we simulated the data link layer and ARP protocol.
- n2n protocol
Hin2n supports the n2n protocol by using the native method of jni to reuse the code of the original n2n project as far as possible.
There are four popular versions of the n2n project
- Version v1 developed by ntop.org, not being updated. Project address: github.com/switch-iot/n2n_meyerd/v1
- Version v2s developed by meyerd, not being updated. Project address: github.com/switch-iot/n2n_meyerd/v2s
- Version v2 developed by ntop.org, been sealed. Project address: github.com/ntop/n2n/v2.8_r540
- Version v3 developed by ntop.org, in updating. Project address: github.com/ntop/n2n
The v2s is the renaming of the v2 (also known as v2.1) developed by master Meyerd in the QQ group (5804301), that is, the v2 upgrade version. The v2s version is not compatible with the v2 version developed by the ntop.org masters. To avoid confusion, the QQ group members named the project separately.
The n2n source code is linked to the hin2n directory via git submodules, which are located into the bundles
directory. Hin2n provides the CMakeLists.txt file to build all the supported n2n versions from the corresponding submodule. The submodules actually link a fork of the official n2n source code repositories (e.g. https://github.com/switch-iot/n2n_ntop) in order to guaranteed that the compilation of hin2n always succedes. The ntop v2 fork is a 1:1 copy of the official repository, which will be periodically updated to reflect the upstream changes.
You need to install Java and Android SDK before compile.
git clone https://github.com/switch-iot/hin2n.git --depth=1 --recurse-submodules
# download sourcecd hin2n/Hin2n_android
# hin2n_android directory is the hin2n project android source directory./gradlew assemble
# compile hin2n (You can compile one of the files by running./gradlew assembleNormalAllarchDebug
). If you are using Android Studio, use "Import Project", then select theHin2n_android
directory and build theapp
module. The compiled files are inhin2n/Hin2n_android/app/build/outputs/apk/
- When switching branches, you need to execute
git submodule update
to synchronize the code of the submodules
You need to install Java and Android SDK before compile, and the git compatible symbolic link needs to be set in the Windows environment.
- Launch
gpedit.msc
, and add the account(s) toComputer Configuration/Windows Setting/Security Settings/Local Policies/User Rights Assignment/Create symbolic links
- Or run
git-cmd
as an administrator user, and execute the following command git clone -c core.symlinks=true https://github.com/switch-iot/hin2n.git --depth=1 --recurse-submodules && cd hin2n && link.bat
cd Hin2n_android
# hin2n_android directory is the hin2n project android source directorygradlew assemble
# compile hin2n (You can compile one of the files by runninggradlew assembleNormalAllarchDebug
). If you are using Android Studio, use "Import Project", then select theHin2n_android
directory and build theapp
module. The compiled files are here:hin2n\Hin2n_android\app\build\outputs\apk\
- When switching branches, you need to execute
git submodule update
to synchronize the code of the submodules
The project is open sourced under the GPLv3
agreement, and is consistent with the original open source agreement of n2n. We also hope that everyone will support and comply with the open source agreement of this project.
Hin2n is a free and open source n2n project, and we welcome anyone to contribute to it.
- Any problems in use can be fed back through
Issues
- Bug fixes can submit
Pull Request
toandroid_dev
branch - If you want to add a new feature, please create an
Issues
first to describe the new feature, as well as the implementation approach. Once a proposal is accepted, create an implementation of the new features and submit it as a pull request. - Sorry for my poor English and improvement for this document is welcome even some typo fix.
- Welcome to watch the project and give the project a
Star
!
zhangbz
emanuele-f
ozyb
lucktu
- Thanks to their selfless dedication, and everyone's support to Hin2n project.
- Hin2n QQ group: 769731491
- N2N QQ group: 256572040