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.
- 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.
C++20 or higher
Boost 1.75.0 or higher
This could help you to bypass the filtering in your country.
If you want to hide your HTTP requests in the Internet, this proxy could help you.
Here you can see the logical flow of a single request from first step to get the response
To contribute take a look at contribution page.
This program needs following dependencies
libyaml-cpp >= 0.8
boost-libs >= 1.75.0
[~]>$ [email protected]:MortezaBashsiz/nipovpn.git
[~]>$ cd nipovpn
Follow the instructions on the Boost to install the Boost library suitable for your system.
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 the log directory and log file
[~/nipovpn]>$ sudo mkdir /var/log/nipovpn/
[~/nipovpn]>$ sudo touch /var/log/nipovpn/nipovpn.log
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
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
[~]>$ 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