The main goal of this project is to create an interface between a web server running on the local machine and public internet. After establishing the protocol any internet user can access the local webserver from public internet without requiring any Dedicated IP or Real IP on our local webserver. This system can work behind firewalls.
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Khudro Web Tunnel - Simple Tunneling
1. Shanto-Mariam University of
Creative Technology
24th
January 2017
Project Documentation
For
Software Development Lab II
Khudro Web Tunnel
“Local Network to Public Internet Tunnel
Name: Arman Hossain
ID: 161071014
Department: CSE
Batch: 11th
Semester: 6th
Trimester
Course Title: Software Development Lab II
Course Code: CSE-2370
2. Project Name
Khudro Web Tunnel
Project Abstract
From day to day internet is getting more and more saturated with users. That’s
why we are facing a great problem with IPv4. Numbers of our devices have
outnumbered the range of IPv4. So Real IP or Dedicated IP is becoming costly.
Without Real IP it’s not possible to give someone access to self hosted services of
our computer. That’s why we have to find some other alternative to do this.
Project Description
The main goal of this project is to create an interface between a web server
running on local machine and public internet. After establishing the protocol any
internet user can access our local web server from public internet without
requiring any Dedicated IP or Real IP on our local web server. This project will
maintain a very low dependency on the OS, so that it can be easily implemented
on embedded system as well. The technology behind this project is also known as
tunneling.
Project Objectives
Running A Public Website from a Private Network
Secure Data Transmission
Web Tunneling
Advanced Networking
Project Resources
C++ ( Programming )
Crypto++ ( Cryptography Library )
POSIX Thread ( Multi-Threading )
Socket
Khudro Web Server
Plain Text based Database
3. Network Topology of Project
Since this project tunnels data from Client A to Client B, so there is a Server X in
between, which relays the communication to avoid being blocked by basic firewall
mechanism of OS and different network layers. Server X works as public interface
for User B or any internet user and transmits data back & forth.
Sample Input
Sample Output
:: Khudro Web Tunnel ::
Version: 0.0.1 ( Alpha )
----------------------------------------
Select Options Below
[ 1 ] Connect
[ 2 ] Exit
> 1
Enter Local Port: 80
Enter Server IP: ***.***.***.****
Enter Server Port: 8800
UserName: test
Password: ******
Connected to Server [ ***.***.***.*** ]
Public Address: http://test.khudro.site/
:: Ready To Accept Requests ::
4. Sample Output
GUI
Incoming Request :
Request URI: /index.html
Remote IP: ***.***.***.***
User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 …
Local Response:
HTTP/1.1 200 OK
Server: Apache/2.2.14 (Win32)
Content-Length: 88
Content-Type: text/html
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>
5.
6. Practical Usage
This application has much practical usage. First of all it can be used to make any
normal internet connected computer into a web server. So that anyone can run a
web server in their computer and make it publicly available on the internet.
Field of Usage
There are many places it can be used. Some of them are:
Web Development
IoT Devices behind Firewall
Local Network to Public Network interface
Network rerouting