Skip to content

mdkhani/nipovpn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NipoVPN (Not ready yet :D)

Overview

NipoVPN is a powerful proxy tool designed to conceal your HTTP requests within fake HTTP requests. This program, written in C++, leverages the Boost library to handle networking functionalities efficiently.

Features

  • HTTP Request Obfuscation: Hide your legitimate HTTP requests inside decoy requests to avoid detection.
  • Boost Library Integration: Utilizes Boost for robust and reliable networking operations.
  • High Performance: Optimized for speed and efficiency, ensuring minimal impact on request latency.

Requirements

C++20 or higher
Boost 1.75.0 or higher

Usecases

Bypass filtering

This could help you to bypass the filtering in your country.

Filtering

Hide your requests in the Internet

If you want to hide your HTTP requests in the Internet, this proxy could help you.

Internet

Flow

Here you can see the logical flow of a single request from first step to get the response Flow

Contribution

To contribute take a look at contribution page.

Installation

Source

Dependencies

This program needs following dependencies

libyaml-cpp >= 0.8
boost-libs >= 1.75.0

Clone

[~]>$ git@github.com:MortezaBashsiz/nipovpn.git
[~]>$ cd nipovpn

Install Boost Library:

Follow the instructions on the Boost to install the Boost library suitable for your system.

Make

Make the source code

[~/nipovpn]>$ make 
mkdir -p build/
g++ -Wall -Wextra -std=c++20 -ggdb  -MMD -MP -Iinclude -Isrc -c -o build/tcpserver.o src/tcpserver.cpp -Llib -lyaml-cpp -lssl -lcrypto
mkdir -p build/
g++ -Wall -Wextra -std=c++20 -ggdb  -MMD -MP -Iinclude -Isrc -c -o build/main.o src/main.cpp -Llib -lyaml-cpp -lssl -lcrypto
mkdir -p build/
g++ -Wall -Wextra -std=c++20 -ggdb  -MMD -MP -Iinclude -Isrc -c -o build/agenthandler.o src/agenthandler.cpp -Llib -lyaml-cpp -lssl -lcrypto
mkdir -p build/
g++ -Wall -Wextra -std=c++20 -ggdb  -MMD -MP -Iinclude -Isrc -c -o build/config.o src/config.cpp -Llib -lyaml-cpp -lssl -lcrypto
mkdir -p build/
g++ -Wall -Wextra -std=c++20 -ggdb  -MMD -MP -Iinclude -Isrc -c -o build/tcpclient.o src/tcpclient.cpp -Llib -lyaml-cpp -lssl -lcrypto
mkdir -p build/
g++ -Wall -Wextra -std=c++20 -ggdb  -MMD -MP -Iinclude -Isrc -c -o build/http.o src/http.cpp -Llib -lyaml-cpp -lssl -lcrypto
mkdir -p build/
g++ -Wall -Wextra -std=c++20 -ggdb  -MMD -MP -Iinclude -Isrc -c -o build/tcpconnection.o src/tcpconnection.cpp -Llib -lyaml-cpp -lssl -lcrypto
mkdir -p build/
g++ -Wall -Wextra -std=c++20 -ggdb  -MMD -MP -Iinclude -Isrc -c -o build/log.o src/log.cpp -Llib -lyaml-cpp -lssl -lcrypto
mkdir -p build/
g++ -Wall -Wextra -std=c++20 -ggdb  -MMD -MP -Iinclude -Isrc -c -o build/serverhandler.o src/serverhandler.cpp -Llib -lyaml-cpp -lssl -lcrypto
mkdir -p build/
g++ -Wall -Wextra -std=c++20 -ggdb  -MMD -MP -Iinclude -Isrc -c -o build/runner.o src/runner.cpp -Llib -lyaml-cpp -lssl -lcrypto
Building...
mkdir -p nipovpn/usr/bin/
g++ build/tcpserver.o build/main.o build/agenthandler.o build/config.o build/tcpclient.o build/http.o build/tcpconnection.o build/log.o build/serverhandler.o build/runner.o -o nipovpn/usr/bin/nipovpn -Llib -lyaml-cpp -lssl -lcrypto
[~/nipovpn]>$

Create directories

Create the log directory and log file

[~/nipovpn]>$ sudo mkdir /var/log/nipovpn/
[~/nipovpn]>$ sudo touch /var/log/nipovpn/nipovpn.log 

Run

Run it

[~/nipovpn]>$ sudo nipovpn/usr/bin/nipovpn server nipovpn/etc/nipovpn/config.yaml
2024-08-02_15:30:07 [INFO] Config initialized in server mode 
2024-08-02_15:30:07 [INFO] 
Config :
 General :
   fakeUrl: http://www.adas.com/api01
   method: HEAD
   timeWait: 0
   repeatWait: 1
 Log :
   logLevel: DEBUG
   logFile: /var/log/nipovpn/nipovpn.log
 server :
   threads: 4
   listenIp: 0.0.0.0
   listenPort: 443
 agent :
   threads: 4
   listenIp: 0.0.0.0
   listenPort: 8080
   serverIp: 127.0.0.1
   serverPort: 443
   token: af445adb-2434-4975-9445-2c1b2231
   httpVersion: 1.1
   userAgent: NipoAgent 

Package

Install

Currently it is only available for debian based Linuxs and fully tested on ubuntu 24.04 You can simply install the package

[~]>$ wget https://raw.githubusercontent.com/MortezaBashsiz/nipovpn/main/files/deb/nipovpn.deb
[~]>$ sudo apt install ./nipovpn.deb

Run

[~]>$ sudo nipovpn server /etc/nipovpn/config.yaml
2024-08-02_15:30:07 [INFO] Config initialized in server mode 
2024-08-02_15:30:07 [INFO] 
Config :
 General :
   fakeUrl: http://www.adas.com/api01
   method: HEAD
   timeWait: 0
   repeatWait: 1
 Log :
   logLevel: DEBUG
   logFile: /var/log/nipovpn/nipovpn.log
 server :
   threads: 4
   listenIp: 0.0.0.0
   listenPort: 443
 agent :
   threads: 4
   listenIp: 0.0.0.0
   listenPort: 8080
   serverIp: 127.0.0.1
   serverPort: 443
   token: af445adb-2434-4975-9445-2c1b2231
   httpVersion: 1.1
   userAgent: NipoAgent 

About

Powerfull http proxy

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.5%
  • Makefile 1.5%