npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

simple-dns-proxy

v0.0.3

Published

A simple DNS proxy with UI that allows to override name resolution of hosts based on regular expressions.

Downloads

10

Readme

simple-dns-proxy

Description

simple-dns-proxy is very simple tool that sets up a DNS server that will provide customized responses to certain queries while letting the rest go through an upstream DNS server, this is, acting like a proxy.

This can be useful when you don't have access to the DNS records for a domain or just want to fake the response for testing purposes.

For instance, imagine you're developing an application that allows registered users to have their own subdomain on your site, something like <username>.my-app.com. You can easily test this scenario on your development machine using simple-dns-proxy:

simple-dns-proxy *.my-app.com:A:127.0.0.1

Installation

npm install -g simple-dns-proxy

Usage

simple-dns-proxy *.mydomain.com:A:127.0.0.1 -u 8.8.8.8

The above will run a DNS server listening on UDP port 53 (the default DNS service port) that will resolve A queries for ANY subdomain of the domain mydomain.com with the IP address 127.0.0.1. Any other request will be forwarded to the upstream server at 8.8.8.8.

More than one rule can be defined, just separate them using whitespaces, like so:

simple-dns-proxy test-*.domain.com:A:10.0.0.1 prod-*.domain.com:A:10.0.0.2

Also, any valid DNS record type can be used:

simple-dns-proxy my-secret-domain.com:MX:192.168.1.100

Security

By default simple-dns-proxy will try to bind to the standard DNS port (UDP 53). Depending on your configuration this will fail. First, you may need to run it with elevated privileges, in Windows, or as a superuser, in linux based systems:

sudo simple-dns-proxy ...

Second, it may fail if you already have any other piece of software listening at that port. This can be the case, for instance, for Ubuntu based systems, which use dnsmasq. You can take rid of this by editing the /etc/NetworkManager/NetworkManager.conf file, commenting out the dns=dnsmasq line and restarting the network manager service (sudo service network-manager restart).

Note that if you're running simple-dns-proxy as a superuser you may be also interested in using the -G <group id/group name> and -U <user id/user name> parameters to force it use a different account after initialization.