DAILY NEWS

Stay Ahead, Stay Informed – Every Day

Advertisement
Need your attention on my current project



I am currently working on a project. The concept is I select a github repository then it will automatically backs up that repository daily to a selected destination. Currently it only supports Google Drive and Dropbox for backup destination.

Current version is just a proof of concept. What I actually want to do is – it will take the repository and upload it to another git provider like gitlab etc. From then it will get only those commits that are not backed up and back up them. Basically automatic version controling.

It will help to have a back up copy of a project in other provider and easily migrate away from github to that git provider. I feel that we need this type of application now more than ever before. Slowly Github’s quality is going down, it is having outages frequently. Their uptime dropped to 90% from 99%. A lot of developers are moving away from it but few developers don’t want to. Perhaps they can’t for any reason. I myself don’t want to migrate away right now.

So I am thinking this concept can help those developers including me. What do you think. If you have any suggestions or queries let me know. Also you can check the project at nexrepo.qzz.io



Source link

How to Test if Your Proxy is Leaking DNS: 2026 Setup Guide



How to Test if Your Proxy is Leaking DNS: 2026 Setup Guide

You configured a proxy. Traffic is routing through it. IP check passes. Job done?

Not necessarily.

DNS leaks are one of the most common ways a proxy setup can expose your real location and ISP while appearing to work correctly. Your IP changes, but your DNS queries still go home.

This guide covers:

What a DNS leak actually is at the network level
How to detect one reliably
How to fix it across different proxy configurations
Programmatic detection methods with code examples

What Is a DNS Leak?

When you type a domain into your browser, a DNS resolver translates it into an IP address.

Normally this happens through your ISP’s DNS server. When you use a proxy, the expectation is that DNS resolution also happens inside the proxy network rather than through your local ISP.

A DNS leak occurs when your operating system or application bypasses the proxy and sends DNS queries directly to your ISP’s resolver.

The result:

The proxy hides your IP from the destination website
Your ISP still sees every domain you’re resolving
Anyone monitoring DNS traffic can reconstruct your browsing activity regardless of what proxy you’re using

This matters most for

Automation and scraping jobs where geo-accurate DNS is required for localized responses
Multi-account workflows where a mismatched DNS origin can trigger platform-side identity checks
Privacy-sensitive workflows where DNS history is the actual attack surface

Why DNS Leaks Happen

DNS leaks are usually not a misconfiguration on the proxy provider’s side.

They happen because of how OS-level DNS resolution works.

Most operating systems have a DNS resolver that runs independently of application-level proxy settings.

When you configure an HTTP or SOCKS5 proxy in a browser or script, the proxy handles connection routing, but the OS resolver may still handle DNS separately depending on the application and proxy type.

Common causes

HTTP proxies handle DNS on the proxy server by default, but some clients resolve DNS locally first and then send the IP to the proxy
SOCKS4 does not support remote DNS resolution
SOCKS5 supports remote DNS resolution, but only if the client explicitly requests it
WebRTC in browsers can expose local DNS even when a proxy is active
Some automation frameworks use the system DNS resolver instead of routing through the proxy
Split DNS configurations on corporate or managed networks

How to Test for a DNS Leak

There are several reliable ways to verify whether your DNS requests are leaving the proxy tunnel.

Method 1: Manual Test with a DNS Leak Test Tool

The fastest way to check is to use NodeMaven’s DNS leak test tool while your proxy is active.

It works by making multiple DNS requests to unique subdomains and checking which DNS server resolved them.

Steps

Configure your proxy in your browser or system settings.
Navigate to the DNS leak test tool with the proxy active.
Run the extended test.
Check the resolver IPs in the results.

Result interpretation

If any resolver belongs to your ISP or home network rather than the proxy provider’s infrastructure, you have a DNS leak.

Method 2: dig or nslookup via the Proxy

For terminal-based testing, you can route a DNS query through the proxy using dig with a SOCKS5 proxy:

# Test DNS resolution through a SOCKS5 proxy
# Replace with your NodeMaven proxy credentials and host

dig @8.8.8.8 whoami.akamai.net +short

# Route the query through the proxy using proxychains
proxychains dig whoami.akamai.net +short

# Compare the two outputs
# If they return different IPs, your DNS is routing through the proxy
# If they return the same IP, you have a potential DNS leak

Enter fullscreen mode

Exit fullscreen mode

You can also use curl to hit a DNS echo service:

# Check your apparent DNS resolver through the proxy

curl –proxy socks5h://username:password@proxy.nodemaven.com:9999 \
https://whoami.akamai.net

# Note the ‘h’ in socks5h – this forces remote DNS resolution
# socks5:// resolves DNS locally
# socks5h:// resolves DNS on the proxy server

Enter fullscreen mode

Exit fullscreen mode

Important

The socks5h:// vs socks5:// distinction is one of the most common sources of DNS leaks in automation scripts.

Method 3: Python Script for Programmatic Detection

If you’re running automated workflows, you can build DNS leak detection into your setup verification:

import requests
import json

def check_dns_leak(proxy_url: str) -> dict:
“””
Check for DNS leaks by comparing DNS resolvers visible
with and without the proxy.
“””

proxies = {
“http”: proxy_url,
“https”: proxy_url,
}

Enter fullscreen mode

Exit fullscreen mode



Source link

I Spent a Decade Chasing Microservices Before Realizing What Scalability Actually Means



A few years ago, I was staring at a red, blinking monitoring dashboard. The system I was looking at had all the modern shiny technology: Kubernetes, Redis, and a massive microservices setup. Yet, under just a normal spike in traffic, it completely collapsed.

Meanwhile, our legacy app — a clunky, ten-year-old monolith that nobody on the team wanted to touch — was humming along, handling millions of requests without breaking a sweat.

That was the exact moment it hit me. I had spent years building backends, writing code, and putting out fires in the middle of the night, and I realized something uncomfortable: we don’t actually understand scalability. We just confuse implementing new technology with understanding our own systems.

A system is scalable when it handles more traffic smoothly and predictably. It is not scalable just because the architecture diagram looks cool.

Here is the reality I’ve learned the hard way.

The Microservices Trap

When an application starts to slow down, our first reflex is to chop it into smaller pieces.

Early in my career, I was convinced that if we just broke our massive app into tiny microservices, it would magically handle more users. I was dead wrong. Splitting systems up doesn’t fix bad code; it just introduces network delays. Suddenly, one small bug creates a domino effect (If you want a real-life horror story about this, I wrote a whole separate piece on how a single 60-second Node.js bottleneck almost took down our entire app under pressure). Instead of having one broken app, you have fifteen broken apps talking to each other over a laggy network, making it impossible to track down the root cause.

The painful truth? Most monoliths fail because of sloppy code, not because they are monoliths. Microservices help large engineering teams work together without stepping on each other’s toes. They do not automatically make your servers handle more traffic.

The “Redis Will Fix It” Band-Aid

If splitting the app doesn’t work, we usually reach for the duct tape of the backend world: Redis.

I used to do this all the time. Whenever a database query was slow, I’d just slap Redis in front of it to cache the data and call it a day. I thought I was a genius. I learned the hard way that caching does not actually remove your bottleneck; it just hides it for a little while.

When that cache eventually drops or resets during a traffic spike, all those requests suddenly hit your slow database at the exact same time. The database gets hammered and dies anyway. I realized that implementing Redis often just delays scalability problems instead of actually solving them.

The Async Illusion

As I spent more time writing backends, I fell into another trap: thinking that throwing async/await everywhere would turbocharge my performance.

Don’t get me wrong, async programming is great. It lets your server multitask instead of freezing up while waiting for a network request to finish. But it doesn’t magically make the actual work happen faster.

If you have 10,000 asynchronous requests happily running at the same time, but they are all waiting in line for the exact same slow database, your actual output is still zero. Async helps your application wait better. It does not make your database faster.

What Actually Keeps Servers Alive

If scalability isn’t about K8s, Redis, or microservices, what is it? It boils down to a few basic, unglamorous concepts that don’t look exciting on a resume.

Finding the Bottleneck Every single system has a slow point. It might be your database, your hard drive speed, or some random external API you are calling. Scalability is just the tedious, step-by-step job of finding that one slow pipe and making it wider.

Managing Contention Servers rarely crash because they are simply “too busy.” They crash because too many things are fighting for the exact same resource. Imagine twenty people trying to write on the same piece of paper with the exact same pen. Whether it’s a locked row in a database or a shared file, this fighting — contention — is the silent killer of backends.

Learning to Say “No” (Backpressure) This is the most important lesson I’ve learned. I used to build servers that would blindly accept every single request from users until they ran out of memory and died.

Now, I use backpressure. Backpressure is simply teaching your system how to reject people. If the database is busy, the server needs to tell the user, “I’m busy, try again later.” Without backpressure, queues explode and everything collapses. A scalable system isn’t one that never fails — it’s one that fails safely and in control.

The Hardest Part to Scale

Scalability isn’t about buying into the latest tech trends. It’s about understanding exactly how your specific code behaves when it gets stressed out.

Most systems don’t die because traffic spikes. They die because the engineers building them never bothered to test the limits. They trusted the hype instead of testing the boundaries.

After years of fixing broken servers, I can promise you this: the hardest part of scalability is not scaling your machines. It’s scaling your understanding.



Source link