Giter VIP home page Giter VIP logo

dns's Introduction

maj0rdns

A Smart DNS for bypassing geo restorations of specific various web services.

🎗️ Hint : this service should be only available to a specefic geo or specefic ip addresses to prevent attacks and etc problem



Installation

Pull & run the pre build image

# pull the image and run it
docker pull maj0rmil4d/maj0rdns
docker run -d -it --cap-add=NET_ADMIN -p 53:53/udp -p 443:443 -p 80:80 -e IP=PublicIpOfContainer maj0rmil4d/maj0rdns

Build

# Change SERVER_IP in Dockerfile with your server public ip
# Build the docker image, so you could use the docker image and its context in the future easily
docker build . -t maj0rdns:latest

Run

# Now run the mentioned docker in the previous step
docker run -d -it --cap-add=NET_ADMIN -p 53:53/udp -p 443:443 -p 80:80 -e IP=PublicIpOfContainer maj0rdns:latest

Usage

# Changing the main DNS configuration file and add the public IP address of the container to the `resolve.conf` file.
echo "" > /etc/resolv.conf && echo "nameserver Public_IP_Of_Container" >> /etc/resolv.conf

Verify

# To be sure that everything works correctly, use the following command on your local system.
run curl api.myip.com on your local system

It should return your public ip of container


Restart

If you saw your public IP address in previous step, it’s time to restart everything in order to make sure.

# To restart the container after changing the config files
./restart.sh

restart.sh is a bash script file that stops and starts the container in the background, actually if you add some new domains to dnsmasq.custom file you need to run the restart.sh too.


IrAccess

I strongly recommend that this service be only available at specific Geo or IP addresses to prevent attacks and other problems.

to restrict the service to Iran ip address run the iraccess.sh. (Recommended for IR)

./iraccess.sh

Cluster Mode ( docker swarm - single node )

You can also increase reliability and connectivity, with help of Cluster Mode. To have a cluster, do the following steps:

1. Initialize swarm mode

docker swarm init

2. Create docker swarm service

docker service create --cap-add=NET_ADMIN -p 53:53/udp -p 443:443 -p 80:80 -e IP=PublicIpOfContainer --name maj0rdnscontainer maj0rdns:latest

3. Scale the service to 5 instances

docker service scale maj0rdnscontainer=5

4. Verify the cluster

It’s necessary to verify that the previous steps are working correctly and that all of them are running.

docker service ls

docker service ps maj0rdnscontainer

image

5. Verify the service

image

dns's People

Contributors

maj0rmil4d avatar rakeei avatar smzm avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.