Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mrahmadt/smartgw

Domain based VPN Gateway/Proxy for all devices
https://github.com/mrahmadt/smartgw

dns-server dnsmasq firewall gateway http-proxy nordvpn privacy proxy smart-dns sniproxy unblocker vpn vpn-client

Last synced: 23 days ago
JSON representation

Domain based VPN Gateway/Proxy for all devices

Awesome Lists containing this project

README

        

# SmartGW

SmartGW is a VPN Gateway/Proxy that allows you to route HTTP/HTTPS traffic for specific internet domains to go through VPN tunnel while keeping the other traffic goes through your ISP gateway.

**Example:**
- HTTP/HTTPS for **netflix.com** (from all devices in your network) --> Will go through your **VPN tunnel**.
- HTTP/HTTPS for **youtube.com** (from all devices in your network) --> Will go through your **ISP gateway**.

**This can help you to:**
- Access Geo-restricted content.
- Access any blocked domains.
- Use it with all your devices (Laptop, Mobiles, SmartTV...etc).
- Utilize your full ISP network speed to access any site that you don't want it to go through the VPN tunnel.
- Work with Pi-Hole for Network-wide Ad Blocking
- More browsing privacy?.

## Features
* Works with all devices in local network (PC, Laptop, Mobiles, SmartTV...etc).
* No need to change any settings in your devices, install SmartGW and configure the DNS in your internet router.
* Simple GUI to check SmartGW status and to add/remove any domain.
* Automatically connect to the fastest low latency VPN servers in a given country.
* Auto retry and auto-failover to next best VPN server if the connection dies.

## How difficult it's?
The setup is straightforward, you need a Linux server, and a NordVPN VPN subscription.

## What Do I need to start?
1. Linux server (any old laptop or single-board such us Raspberry Pi will work).
2. NordVPN VPN subscription.
3. Static IP in your local network.
4. Docker engine with basic know how.

## Instructions
1. Install Linux.
2. Set a static IP in your server.
3. Install Docker.
4. Download SmartGW source code.
5. Rename example.env to .env and change the variables
```
#Your NordVPN Username
[email protected]
#Your NordVPN Password
VPN_PASSWORD=yourNordvpnPassword
#VPN country
VPN_OPTIONS=us
#Local network CIDR network
CIDR_NETWORK=192.168.1.0/24
#No need to change this
VPN_DNS1=103.86.96.100
#No need to change this
VPN_DNS2=103.86.99.100
#Pi-Hole web admin password
PIHOLE_PASSWORD=pihole
```
6. Run SmartGW docker-compose
``` bash
docker-compose up
```
7. Open your browser and type your SmartGW IP (port 8080) (http://Your-Server-IP:8080/) and start adding your domains (e.g., yahoo.com).
8. Define SmartGW IP address as the only DNS entry in the router.
```
Login to your router’s configuration page and find the DHCP/DNS settings.
Note: make sure you adjust this setting under your LAN settings and not the WAN.
```
![6e475c318358d8266052015e28841a72b3cc3b84](https://user-images.githubusercontent.com/957921/44320410-9cccc200-a44a-11e8-88fe-570d01eb2e93.png)

Enjoy!.

## Screenshots
![Screen Shot 2019-04-27 at 3 57 54 AM](https://user-images.githubusercontent.com/957921/56842702-fc645280-68a0-11e9-83df-0a9c4089a87e.png)
![Screen Shot 2019-04-27 at 3 58 13 AM](https://user-images.githubusercontent.com/957921/56842707-fff7d980-68a0-11e9-975b-1e81e1bc6133.png)
.